From 396871c7dcf5f809c225789a5df479c8b1530001 Mon Sep 17 00:00:00 2001 From: Razvalyaev Date: Thu, 19 Mar 2026 12:32:07 +0300 Subject: [PATCH] 0.3.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Добавлена обратная функция рассчета времени нарастания для экспоненциального фильтра --- MyLibs/Inc/filters.h | 48 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/MyLibs/Inc/filters.h b/MyLibs/Inc/filters.h index 529df5c..ae488be 100644 --- a/MyLibs/Inc/filters.h +++ b/MyLibs/Inc/filters.h @@ -344,6 +344,54 @@ float FilterRMS_Process(FilterRMS_t* filter, float input); * @return Коэфициент альфа */ #define FilterExp_CalcAlpha99(rise_time, TsUs) FilterExp_CalcAlpha((rise_time) / 5.0f, TsUs) + +/** + * @brief Расчет постоянной времени из коэффициента альфа + * @param alpha Коэфициент альфа фильтра + * @param TsUs Период вызова фильтра в микросекундах + * @return Постоянная времени tau (время нарастания до 63% от уровня сигнала) + */ +#define FilterExp_CalcTau(alpha, TsUs) ((((float)TsUs/1000000) * (1.0f - (alpha))) / (alpha)) + +/** + * @brief Расчет времени нарастания до 63% из коэффициента альфа + * @param alpha Коэфициент альфа фильтра + * @param TsUs Период вызова фильтра в микросекундах + * @return Время нарастания до 63% + */ +#define FilterExp_CalcRiseTime63(alpha, TsUs) (FilterExp_CalcTau(alpha, TsUs) * 1.0f) + +/** + * @brief Расчет времени нарастания до 86% из коэффициента альфа + * @param alpha Коэфициент альфа фильтра + * @param TsUs Период вызова фильтра в микросекундах + * @return Время нарастания до 86% + */ +#define FilterExp_CalcRiseTime86(alpha, TsUs) (FilterExp_CalcTau(alpha, TsUs) * 2.0f) + +/** + * @brief Расчет времени нарастания до 95% из коэффициента альфа + * @param alpha Коэфициент альфа фильтра + * @param TsUs Период вызова фильтра в микросекундах + * @return Время нарастания до 95% + */ +#define FilterExp_CalcRiseTime95(alpha, TsUs) (FilterExp_CalcTau(alpha, TsUs) * 3.0f) + +/** + * @brief Расчет времени нарастания до 98% из коэффициента альфа + * @param alpha Коэфициент альфа фильтра + * @param TsUs Период вызова фильтра в микросекундах + * @return Время нарастания до 98% + */ +#define FilterExp_CalcRiseTime98(alpha, TsUs) (FilterExp_CalcTau(alpha, TsUs) * 4.0f) + +/** + * @brief Расчет времени нарастания до 99% из коэффициента альфа + * @param alpha Коэфициент альфа фильтра + * @param TsUs Период вызова фильтра в микросекундах + * @return Время нарастания до 99% + */ +#define FilterExp_CalcRiseTime99(alpha, TsUs) (FilterExp_CalcTau(alpha, TsUs) * 5.0f) // ==================== INT32_T ВЕРСИИ ==================== /**