如果这是一个非常基本或愚蠢的问题,请原谅我,但我会提供一些帮助。我正在处理别人的代码,遇到了一些被描述为二阶过滤器的行。我不太确定什么是二阶过滤器或代码正在尝试执行什么操作。我想知道是否有人可以帮助解释以下算法?
setpoint_error = temperature_setpoint * FILTER_TERM_A - high_resolution_temperature_setpoint;
filtered_setpoint_error = filtered_setpoint_error + (setpoint_error - filtered_setpoint_error) / FILTER_TERM_A;
high_resolution_temperature_setpoint = high_resolution_temperature_setpoint + filtered_setpoint_error / FILTER_TERM_B;
请注意,此代码在微控制器上运行,每100毫秒调用一次。
非常感谢您的帮助。