第三部分的自适应控制学习,对应前两部分的强化。为为弹簧系统设计控制器满足弹性系数未知的情况下通过控制输入u使得系统到达指定位置
系统方程为:
由于博客对lateX容忍度不高,即便我开启了数学公式解析,所以想更舒服的观看的点击这里
其中
转换为动态方程为:
控制目标:在
设状态误差分别为:
其中
首先设计李雅普诺夫函数为:
为保证设计函数为稳定的必须满足李雅普诺夫设计函数为正定,一阶导数为负定。对函数(3)、(4)求导并带入(7)得:
为了满足上述条件设计:
对(9)式进行整理:
带
将整理后的式(10)带入式(11)得:
因为
将(13)带入(12)得到
设
综上,控制输入
懒得描述啦,看结果吧
[photo]
[/photo]
调节不同的k1,k2,k3应该会让效果更好,可以动手试一下
源码如下
xxxxxxxxxx
function [u, e, aph_hat, x3r, ddotx1] = fcn(m, aph, x1, dotx1, x1d, dotx1d, ddotx1d, int_x3r, k1, k2, k3)
e = x1d - x1;
x2d = dotx1d + k1*e;
r = x2d - dotx1;
x3r = x1^3*r;
aph_hat = k3*(1/m)*int_x3r;
u = m*e + m*ddotx1d + m*k1*(dotx1d - dotx1) + x1^3*aph_hat + k2*r;
ddotx1 = -(aph/m)*x1^3 + (1/m)*u;