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 ВЕРСИИ ==================== /**