第三部分的自适应控制学习,对应前两部分的强化。为为弹簧系统设计控制器满足弹性系数未知的情况下通过控制输入u使得系统到达指定位置

其一:Advance控制理论简单的反步控制器设计

其二:从零学使用Lypunov直接法设计自适应控制器

其三:在弹性系数未知的情况下设计自适应控制器

系统方程为:mx¨+x3=F (1)

由于博客对lateX容忍度不高,即便我开启了数学公式解析,所以想更舒服的观看的点击这里

其中m为方块的质量,x为方块的位移,为未知弹性系数,F为输入量。

转换为动态方程为:

控制目标:未知的情况下,使得方块系统状态xxd,其中xd为期望状态。

设状态误差分别为:

e=x1dx1 (3)

r=x2dx2 (4)

~=^ (5)

其中er为系统状态误差,~为弹性参数估计误差,^为估计弹性参数。

首先设计李雅普诺夫函数为:

V(e,r)=12e2+12r2 (PD) (6)

V˙(e,r)=ee˙+rr˙ (7)

为保证设计函数为稳定的必须满足李雅普诺夫设计函数为正定,一阶导数为负定。对函数(3)、(4)求导并带入(7)得:

V˙(e,r)=e(x˙1dx˙1)+r(x˙2dx˙2) (8)

为了满足上述条件设计:x˙1dx˙1=k1e+r并带入(8)为:

V˙(e,r)=k1e+r(e+r˙) 同时令e+r˙=k2r (9)

对(9)式进行整理:

~得李雅普诺夫函数设计为:

V˙(e,r,~)=ee˙+rr˙+~~   (11)

将整理后的式(10)带入式(11)得:

V˙(e,r,~)=k1e2+r(x˙2dx˙2)~^   (12)

因为弹性系数位置,使用^估计参数,此时u设为:

将(13)带入(12)得到

^  =1mx13由引理1可证V˙(e,r,~)为NSD(半负定)

综上,控制输入u为:

u=me+x¨1d+k1e˙+1mx130tx13rdt+k2r

Matlab/Simulink仿真

懒得描述啦,看结果吧

[photo]

[/photo]

调节不同的k1,k2,k3应该会让效果更好,可以动手试一下

源码如下