PID控制的MATLAB仿真(2)对PID控制的一些改进

1. 积分分离

为了解决在大误差情况下积分器积累的大控制量影响系统超调的情况,可以只在误差较小的时候开启积分项,以消除静差;在误差大的情况下取消积分项。
我们设定一个阈值,在这个阈值的范围内开启积分项,在误差大的时候使用PD控制;在误差小的时候使用PID控制,提高精度。
对阈值的选择在这里比较重要,首先可以获得无积分情况的稳态误差,阈值需要包含误差带。如果不能包含误差带,也就是说一直无法开启积分消除静差,积分起不到作用了。

具体方法1:先进行无积分的阶跃信号下的仿真,获得稳态误差。阈值β为误差乘以一个略大于一的系数
下面的就是按照这种思路进行的。(程序输入阶跃信号最后必须接近稳定,否则参数不可用)
(方法2:对线性系统,通过计算得到无积分情况下的稳态误差。比如使用终值定理。)

不加入积分分离:
这里写图片描述
自动确定阈值的积分分离:
这里写图片描述
可见通过积分分离减少了超调,并且稳态精度也很好。
上面的积分分离相对而言是一种比较粗糙的做法,如果把积分的突然分离换成一种渐变,效果则要好一些。


2. 抗积分饱和

受到各种实际系统的约束,控制器的输出值只能在一个安全的范围,积分值超出线性区后保持不变,这种特性在积分值饱和后,退出饱和状态的时间较长,系统的动态特性变差。

防止积分饱和的方法之一就是抗积分饱和法,该方法的思路是在计算u(k)时,首先判断上一时刻的控制量u(k-1)是否已经超出了极限范围:如果u(k-1)大于umax,则只累加负偏差;如果 u(k-1)小于umin,则只累加正偏差。从而避免控制量长时间停留在饱和区。

不加入抗积分饱和:
这里写图片描述

加入抗积分饱和:
这里写图片描述
控制器输出值最大设定为6,可见由积分器造成的超调被减弱了。


3. 梯形积分

运用梯形公式,使用两次采样值计算每步的累加值。
将原来的积分运算:

t0e(t)dt=i=0ke(i)T

替换为:
t0e(t)dt=i=0ke(i)+e(i1)2T

感觉在采样足够的情况下效果差异不明显,在采样比较稀疏的情况下控制效果有较大提升。
在采样足够大情况下: 这里写图片描述

采样较少使用普通积分的输出响应:

  • 8
    点赞
  • 126
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值