一阶线性系统的自适应控制
资料来源:程代展,《应用非线性控制》,P222,例8.3 例8.3 设计自适应控制器控制不稳定系统:
y3u y1,bp3对于自适应控制器是未知的。
假定对象参数ap参考模型选择为:
m4xm4r x4,bm4。取自适应增益2。两个控制器参数的初值均取为0.
即am仿真中使用了两种不同的参考信号:
(1)r(t)=4。从图8.9中知跟踪误差收敛到零,但参数误差不收敛。
(2)r(t)=4sin(3t)从图8.10中知跟踪误差和参数误差都收敛到零。
1
2
3
4
6x2xm4102-1002time/s46-202time/s46图8.9 跟踪性能和参数估计,r(t)=4
5x2xm100-1-50time/s510-20time/s510图8.10 跟踪性能和参数估计,r(t)=4sin(3t)
clear  clc
gamma=2; x=0; xm=0; a_r=0; a_y=0;  t=0;
Dt=0.001; n=1;
for i=1:5000     r=4;
%r=4*sin(3*t);
Dxm=-4*xm+4*r;     xm=xm+Dxm*Dt;
e=x-xm;
5
Da_r=-gamma*e*r;     Da_y=-gamma*e*x;
a_r=a_r+Da_r*Dt;     a_y=a_y+Da_y*Dt;
u=a_r*r+a_y*x;
Dx=x+3*u;     x=x+Dx*Dt;
x_store(:,n)=[x;xm];
a_store(:,n)=[4/3;(-1-4)/3;a_r;a_y];
n=n+1;     t=t+Dt; end
figure(1)
plot((1:n-1)*Dt,x_store(1,:),(1:n-1)*Dt,x_store(2,:)) legend('x','xm') xlabel('time/s')
figure(2)
plot((1:n-1)*Dt,a_store(1,:),(1:n-1)*Dt,a_store(3,:),(1:n-1)*Dt,a_store(2,:),(1:n-1)*Dt,a_store(4,:)) xlabel('time/s')
6