PID的控制量和反馈信号的关系
在PID控制系统中,计算出的控制量(输出)和反馈信号(Process Variable, PV)并不必须是相同的物理量,但两者必须通过合理的转换关系建立联系,以确保控制逻辑的有效性。以下是关键分析:
(1)核心原则:量纲一致性
允许不同物理量:PID的输入(误差)和输出可以是不同物理量,但需通过标度变换或传递函数建立关联。
示例:
温度控制:反馈是温度(℃),输出是PWM占空比(%)。
速度控制:反馈是转速(RPM),输出是电压(V)或电流(mA)。
(2)典型应用场景
1) 不同物理量的控制

2) 代码实现(温度→PWM占空比)
float PID_Output = PID_Calculate(desired_temp, current_temp); // 输出为无量纲值 TIM1->CCR1 = (uint16_t)(PID_Output * MAX_PWM); // 转换为PWM占空比
(3)关键处理技术
1) 归一化(Normalization)
将不同量纲的信号统一到相同范围(如0~1):
// 温度反馈归一化(假设量程0~100℃)
float normalized_pv = current_temp / 100.0f;
// PID输出反归一化为电压(0~10V)
float output_voltage = PID_Output * 10.0f;
2) 物理模型转换
通过数学模型连接不同物理量:
// 电机控制:转速(RPM)→ 电压(V) float voltage = K * desired_rpm + friction_compensation;
3) 查表法(LUT)
复杂非线性关系时使用查表:
// 压力→阀门开度(非线性) uint8_t valve_open = valve_LUT[(int)(current_pressure * 10)];
(4)注意事项
动态响应匹配:
反馈信号和输出信号的响应速度需协调(如温度变化慢,PWM调节需平滑)。
单位一致性:
PID参数(Kp/Ki/Kd)需根据实际物理量调整单位。
例如:温度误差1℃ → PWM变化5%,则Kp=5.0(%/℃)。
饱和处理:
不同物理量可能有不同的输出限幅(如电压不超过12V)。
(5)特殊案例
多层级控制(串级PID)
外层PID输出作为内层PID的目标值:
速度环(RPM)→ 电流环(A)→ 实际PWM输出
// 外层PID(速度→电流)
float target_current = Outer_PID(desired_rpm, current_rpm);
// 内层PID(电流→PWM)
float pwm_duty = Inner_PID(target_current, sense_current);
(6)总结
PID输入/输出可为不同物理量,但需通过标度变换、数学模型或查表建立关联。
设计要点:
确保控制链路的物理逻辑合理。
处理单位转换和限幅。
匹配动态响应特性。
优势:灵活适配复杂控制系统(如温度、压力、运动等多物理量耦合场景)。

浙公网安备 33010602011771号