Matlab之simulink中的PID模块的使用
Matlab之simulink中的PID模块的使用
1 Simulink中PID模块的介绍
首先,找到PID模块,双击打开模块的参数设置,如下:
可以通过Automated tuning,可选择的方法有基于频率响应和基于传递函数。
注意:基于传递函数的时候自己定义的多个模块可能会无法调试。
1.1 控制器类型的选择
可以看到Controller:可以选择PI、PD、PID、仅P或仅I控制等。
1.2 PID控制器格式
Form:有并行(默认)和理想型(串行),其传函如下:
注意:传函中的P(比例增益)、I(积分增益)、D(微分增益)系数就是我们需要整定的三个PID参数。
1.3 时域选择
Time domain:连续时间和离散时间。
当选择离散时间时,需要设置积分器和微分器中的滤波器的离散化方法,有向前欧拉,后向欧拉,双线性变换法,如下图:
可以看出,积分环节(1/s)通过前向欧拉离散化方法变成了Ts(1/(z-1))。
1.4 PID的饱和输出限制
限制PID的输出,还有去饱和积分的方法,如,反算法、钳位法。如图所示:
更多详细的参数请参考官方文档:连续时间或离散时间 PID 控制器 - Simulink- MathWorks 中国
1.5 简单PID模型示例
然后使用tune中的传递函数
通过滑动上面的滑条找到自己想要的效果然后点击应用即可。
最终跟踪的大致效果如下:
2 自建PID模块
下面搭建一个常用的离散型带输出饱和限制和积分饱和限制的PI控制器。如下:
从这个离散的PI控制模块中,可以看出积分环节是带有限幅输出的,当然还要对这个积分模块的限幅进行设置勾选,如图:
为什么我们需要对积分环节进行单独的限制输出。看个例子:
这个是带有积分饱和限制的PI控制器调节出来的系统响应。
这个是用simulink系统自带的PI控制器调节出来的系统响应。
两个PI控制器的参数设置一样。但是带抗饱和积分的PI控制器调节出来的系统响应效果明显更好。
那么什么时候需要加积分环节限制输出呢?当系统在抗扰动时,需要一个大的Ki参数来快速消除稳态误差,而在开始从0到稳态这个过程又会因为Ki太大而引起过大超调时,这个时候就需要加积分过饱和限制。














