Heater: segmented PID (full-power / slow-band / overtemp-cutoff) + 2s/5pct PWM

This commit is contained in:
2026-10-10 14:49:24 +08:00
parent 974a077e29
commit c9aa41685f
10 changed files with 114 additions and 71 deletions
+5 -3
View File
@@ -149,13 +149,15 @@ void usart1_irq_handler(void);
#define HEATER_EN_RCU RCU_GPIOB
#define HEATER_EN_PORT GPIOB
#define HEATER_EN_PIN GPIO_PIN_12
#define HEATER_PWM_PERIOD_MS 1000U /* PWM 载波周期(1s,恒 1Hz 开关频率) */
#define HEATER_PWM_STEP_PCT 10U /* 占空比步进(每档脉宽 = 100ms) */
#define HEATER_PWM_PERIOD_MS 2000U /* PWM 载波周期(2s,载波 0.5Hz) */
#define HEATER_PWM_STEP_PCT 5U /* 占空比步进(每档脉宽 = 100ms,维持最小开关频率约束) */
#define HEATER_PID_PERIOD_MS 500U /* PID 计算周期 */
#define HEATER_PID_KP 10.0f /* PID 参数:超温前退功率更快(配合超温强制关断) */
#define HEATER_PID_KI 0.05f
#define HEATER_PID_KD 30.0f /* 微分阻尼:按误差变化率提前刹车(抑制爬升惯性) */
#define HEATER_RAMP_CPS 0.8f /* 目标斜坡速率(℃/s):内部设定值缓升,抑制热滞后过冲 */
#define HEATER_SLOWBAND_C 7.0f /* 温和带宽度:距目标小于此值时占空上限受限
(低速爬完最后一段,减少蓄热惯性过冲) */
#define HEATER_SLOWBAND_DUTY 25U /* 温和带内占空上限(%) */
#define HEATER_OVERTEMP_C 150.0f /* 过温强制关断阈值(滞回保护) */
#define HEATER_OVERTEMP_HYST 5.0f /* 过温恢复滞回 */