pid 以单摆系统为例

一、
如何解释P算法的作用?当前值与目标值存在误差,用系数kp乘误差值,在控制函数中加上这一项,用以减小误差,不同的系数KP对误差的调节作用不同,找到最合适的系数,来使误差较小,从而达到目标值。
Matlab:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、让theta快速到0
1.P控制缺点
在这里插入图片描述
将目标值设为0,P控制,KP为5,其结果如下图第一个波形所示:
在这里插入图片描述
可以看到,这时候,theta的峰值一直减小,却很缓慢,增大P,只能让速度快一点,但不明显,说明此时P控制已经满足不了需求,解释:

P控制是每一个时刻计算与0的误差,然后乘以系数KP,这是每一时刻,控制器对被控对象所施加的影响,舵机的力u=KP*Error,E=theta_d-theta; 力u与角度theta成比例关系,说明控制器的影响,控制作用在位移层次,也就是说,对速度层次没有施加控制;此时我们分析速度,在由最高点到0的过程,先不看控制器,分析受力,重力的切线向下分量加速小球,加速度为mgsin(theta).theta一直减小,加速度减小;再分析搭载P算法的控制器,theta减小,error减小,舵机施加的力也就减小,即小球做加速度减小的加速运动,速度一直在累加,在最低点达到最大值,这也正好说明了P算法不对速度施加控制,它只对原函数产生控制作用,而不控制一阶导;同时再解释为什么theta的幅值会减小,theta从0增大到最大幅值的过程中,阻力与运动方向相反,且此时舵机的力也与运动方向相反,所以幅值会减小。

增大KP,可以减小稳定到0的时间(如图KP为100),但缺点会使单摆频率大大增加,周期减小,看上去单摆来回摆动速度过快,且舵机施加的力过大为50N,不一定能提供。所以增大KP过于理想。

在这里插入图片描述

2.解决方法:增加微分D控制
(1)建模
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)现象
这样,力u就与速度theta的一阶导有了线性关系,便对速度有了控制作用,如图为加入D控制后的波形图,KP=1,KD=0.1:
在这里插入图片描述
发现theta可以很快到0,但是有超调。
下图为速度即一阶导的波形图:
在这里插入图片描述
增大KD为,加强D的控制作用:
KP=1,KD为0.2,波形如图:
在这里插入图片描述
KP=1,KD=0.4:
在这里插入图片描述
速度:
在这里插入图片描述
可以发现,theta可以一次到达0,没有超调。
KP=1,Kd=1:
在这里插入图片描述
速度:
在这里插入图片描述
到达0的时间增大
KP=2,Kd=1:
在这里插入图片描述
速度:
在这里插入图片描述
(3)那如何解释这种现象,解释D的控制是什么机理?
单纯D的控制机理其实和P的机理一样,通过系数乘以误差加到控制函数中来减小误差,不过P是对动力模型的数学函数的原函数层面来控制,而D则是在一阶函数层面;增加D后,在PD的共同作用下,theta可以很快的到0,但有超调。Theta由最大值到0的过程中,最开始,由于theta较大,速度较小,P的影响较大,对theta的控制较强,会使theta接近0,但同时由于P的影响大于D的影响,会使速度增大,;theta会减小,速度增大,则P对theta的影响慢慢减小,D对dot_theta速度的影响增大,总结为物体做加速度减小的加速运动;当达到某控制作用的平衡位置时,影响相同,控制作用为0;过了平衡位置,d的影响大于p,电机着重于让速度趋于0,由theta_d为0,dot_theta_d为0(目标值),可知最终状态必为单摆处于theta为0处静止。而系数kp和kd影响着哪个theta是平衡位置,若kp过大,p的作用过强,会使p大于d影响的那一段路程加长,使d大于p影响的那一段路程过小,导致在theta处于0处但dot_theta仍来不及减到0,因此有了超调现象;而kp合适但kd过大会使p大于d影响的那一段路程减短,使减速阶段时间增长;注:只要使kd过大的情形,最后的阶段一定是减速阶段,因为p和d的影响都在。那如何解释在不超调的情况下,kd增大会增大theta到达0的时间?在减速阶段,由于kd的增大,一方面会使pd相等的位置提前,减速阶段增大,时间加长; 另一方面使d减小的速度增大,即加速度减小的更快,则减速运动的速度减小的更慢,使到0的时间更长。
//theta由最大到0,物体做加速度减小的加速运动,对应p大于d,pd平衡,d大于p;加速度为0,受力平衡,速度最大,d最大同时也是在控制作用为0之后的控制作用pd之和最大处;加速度增大的减速运动;加速度减小的减速运动;同时说明了重力向下斜线的分量在减速阶段中加速度增大的阶段比控制作用减小的更快,加速度减小的阶段比控制作用减小的更慢。减速运动中,d和p的作用都减小,p小于d,且d减小的速度大于p;最后,pd同时减为0,物体也到达theta为0,速度为0处。
规律总结:kp过大,超调,此时合适增大kd,可减小超调;
Kd过大,到0时间过长,合适增大kp,减小到0时间;
都已调好的两队kp,kd,数值大的到0时间长。
3.此外,我还发现一个有趣的现象,如果不要p,只要D,能否达到预期的效果?可以,不妨设kp=0;
KD=0.1 :
在这里插入图片描述
速度:
在这里插入图片描述
KD=0.2 :
在这里插入图片描述
速度:
在这里插入图片描述
KD=0.4
在这里插入图片描述
速度:
在这里插入图片描述
如何理解:其实重力向下的分量在某种程度上相当于p控制,仅限这一题,都是随theta的减小而减小,因此,KD为0.1时相当于P过大,超调;KD为0.4时相当于D过大,theta到0时间增长。
但值得注意的是,这种现象并不一定具有普遍性,这道题恰好是重力可以替代P算法。
三、系统有外力做功
1.只有PD算法下的缺陷
(1)动力学方程增加外力(dis项)
在这里插入图片描述
(2)pd的缺陷:有残差无法消除
在这里插入图片描述
可见,即使控制器一直作用,残差仍无法消除。
(3)解释:原本静止的平衡系统,由于残差力的存在,平衡打破,物体再次动起来,PD发挥作用,想使物体回到原来的平衡,但注定无法回到原来的平衡,因为原来的平衡处PD皆无作用力。因此,新的平衡处必为PD控制有力的存在与残差力相平衡,且这个力一定是P的作用力,因为平衡时速度为0,而theta不为0,因此最后在某个偏离theta为0的位置处平衡。这是必然的,增大KP,只会使超调现象出现,而增大KD,只会使到达残差点的时间加长,最后都会出现残差。
KP=3,KD=0.4:
在这里插入图片描述
KP=1,KD=0.8:
在这里插入图片描述
2.解决方法:增加积分I(integral)
(1)建模:

在这里插入图片描述
在这里插入图片描述
将theta_d和theta的误差积分,送给int_e;
(2)现象

KI=0.1
在这里插入图片描述
速度:
在这里插入图片描述

KI=0.15
在这里插入图片描述
速度:
在这里插入图片描述

KI=0.4
在这里插入图片描述
速度:
在这里插入图片描述
(3)解释:积分I为什么能消除残差?
I算法是将每一时刻的误差累积起来,加到控制函数上,这样在有残差的情况下,I会再给控制函数加上误差,使残差减小。那I过大为什么会有超调呢?因为某时刻的I控制作用是将前面所有误差积累起来,加到控制函数上,因此I过大会导致超调,又因为PD的作用,theta会回调。最终的平衡位置一定是P和I发挥作用,作用方向相同,但平衡处一定不为theta=0处,0处PID都无作用,平衡处P加I(KI*E定值)和残差力平衡,也因此KI的大小影响着减小残差的多少。I可以减小残差,却绝对不会消除残差。
总结:I过大,超调。I过小,减小残差不明显。
超调:减小KI,减小KP,增大KD;
到稳定的时间过长:减小KD,再根据波形调节KP,KI.
当需要减小残差时增大KI,需要调节超调时减小KP(前提是KP导致的超调,若KP本身合适,再减小会导致超调更大。此时需要减小KI或增大KD),需要减小到0时长时减小KD.

四、要求由theta到0改为,theta为变化的轨迹
1.线性PID的缺点
在这里插入图片描述
在这里插入图片描述
发现可以跟随,但是误差较大,则增大KP,减小误差
KP=10:

在这里插入图片描述

KP=20:
在这里插入图片描述
可以发现,即使KP调的非常大,仍有一个非线性的三角函数级误差,且控制器的作用力也是个三角函数形。

解释: 在这里插入图片描述
一方面,动力学模型里有sin(theta)这个非线性因素影响。另一方面,应该考虑参考轨迹里面的高阶项,即用到加速度前馈。而我们减小误差的方法只是线性的用误差来消除误差,这并不是一个对症下药的好法子。

2.非线性PID
在这里插入图片描述
在这里插入图片描述
将KP调回为1:
在这里插入图片描述
可以看到,吻合程度极好,误差小,且控制力也不需要很大。
实际上,控制函数将动力学模型里的非线性项约掉了。

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值