Simulink中如何通过输入端口实时更新PID控制器P/I/D参数
实现Simulink PID系数实时更新(无脚本)
方法1:使用官方带外部增益的PID模块
- 在Simulink库浏览器中,找到
Control System Toolbox→PID Controllers→ 选择PID Controller (External Gains)(离散系统选对应离散版本) - 该模块自带P、I、D三个增益输入端口,直接将模型的2、3、4号输入端口分别连接到这三个端口即可
- 参数设置:保持默认即可,无需依赖工作区的P、I、D变量,所有系数由输入端口实时传入
方法2:手动搭建PID结构(灵活可控)
直接用基础模块组合实现,完全摆脱特定PID模块限制:
- 误差信号(模型1号输入,通常为设定值减反馈值)分三路处理:
- 比例项:用
Gain模块,将误差信号与模型2号输入(P系数)相乘 - 积分项:先将误差信号送入
Integrator(离散系统用Discrete Integrator),再通过Gain模块与模型3号输入(I系数)相乘 - 微分项:将误差信号送入
Derivative(离散系统用Discrete Derivative),再通过Gain模块与模型4号输入(D系数)相乘
- 比例项:用
- 用
Sum模块将比例、积分、微分项相加,输出即为PID控制信号 - 可选:将整个PID结构打包为
Subsystem,方便模型复用
注意事项
- 确保输入端口信号类型与增益模块匹配(默认
double类型即可) - 离散系统中,所有模块的采样时间需保持一致
内容的提问来源于stack exchange,提问作者Remi
相关产品推荐
相关产品推荐

