Добавлена обратная функция рассчета времени нарастания для экспоненциального фильтра
This commit is contained in:
2026-03-19 12:32:07 +03:00
parent fd45847d5d
commit 396871c7dc

View File

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