单级倒立摆的智能控制及GUI动画演示
的超调量很小,而且摆杆的稳定和上升所消耗的时间偏长,小车向相反的方向移动是像预计的跟随摆杆移动。
0.1Cart PositionPendulum Angle 0.050-0.05-0.1-0.15-0.2-0.25 00.511.522.533.544.55
图3-2系统响应曲线
可以发现,在Q矩阵中,增加Q11降低摆杆稳定所消耗的时间和上升时间,并且使摆杆的摆动幅度减小。在这里取Q11?4500,在Q33?150,则
] K=[-67.082-36.2547102.340520.226响应曲线如图3-3所示。
11
单级倒立摆的智能控制及GUI动画演示
3x 10-3 Cart PositionPendulum Angle210-1-2-3 00.511.522.533.544.55
图3-3 系统响应曲线
此时,如果再增加Q11和Q33值,系统的响应还会改善。但在保证Q11和Q33足够小的情况下,系统响应已经满足要求了。
上述的设计中,是在输出信号得到反馈之后与系数矩阵K相乘,然后再减去输入量,即可得到控制信号。但是,这样会导致输入和反馈的量纲相异,因此为了不发生这样的矛盾,我们可以给输入乘以一个增益NBar,如图3-4所示
RyNBar??Axx??Byy?Cxxy+?K 图3-4 控制系统框图
此时具有量纲匹配的最优控制LQR仿真文件LQR2.m如下:
% 最优控制(量纲匹配)
% 确定开环极点的程序如下 M = 0.5;m = 0.2; b = 0.1;I = 0.006; g = 9.8;
12
单级倒立摆的智能控制及GUI动画演示
l = 0.3; I*(M+m)+M*m*l^2;
A = [0 1 0 0; 0 -(I+m*l^2)*b/p (m^2*g*l^2)/p 0; 0 0 0 1; 0 -(m*l*b)/p m*g*l*(M+m)/p 0]; B = [ 0; (I+m*l^2)/p; 0;m*l/p ]; C = [1 0 0 0;0 0 1 0]; D = [0;0]; p = eig(A); % 求向量K x = 5000; y = 100;
Q = [x 0 0 0; 0 0 0 0; 0 0 y 0 0 0 0 0]; R = 1;
K = lqr(A,B,Q,R)
% 计算LQR控制矩阵 Ac = [(A-B*K)];
Bc = [B];Cc = [C];Dc = [D]; % 计算增益Nbar Cn = [1 0 0 0];
Nbar = rscale(A,B,Cn,0,K); Bcn = [Nbar*B];
% 求阶跃响应并显示,小车位置为虚线,摆杆角度为实线 T = 0:0.005:5;
U = 0.2*ones(size(T));
[Y,X] = Lsim(Ac,Bcn,Cc,Dc,U,T); plot(T,Y(:,1),':',T,Y(:,2),'-')
legend('Cart Position','Pendulum Angle') grid
% ------ end ------
在仿真的过程中需要用到输入/输出匹配系数函数rscale,由于它不是Matlab工具,因此需要将其拷贝到rscale.m文件中,并将其与源文件LQR2.m一起复制到Matlab工作区内,方可正常仿真,rscale.m如下:
% ---- rscale.m ----
% 求取输入输出匹配系数
function[Nbar] = rscale(A,B,C,D,K) s = size(A,1);
Z = [zeros([1,s]) 1]; N = inv([A,B;C,D])*Z'; Nx = N(1:s);
13
单级倒立摆的智能控制及GUI动画演示
Nu = N(1+s);
Nbar = Nu + K*Nx; % ------ end ------
利用函数recale来计算N,运行程序,计算出:
K = -70.7107 -37.8345 105.5298 20.9238
即Nbar=rscaleNbar=rscale(ABCn事实上0K)=-70.7107 ,可以看出,
Nbar和K向量中与小车位置x对应的那一项相等。此时系统的响应曲线如图3-5所示:
0.250.20.150.10.050-0.05-0.1-0.15-0.2 0Cart PositionPendulum Angle 0.511.522.533.544.55
图3-5 系统响应曲线
从系统曲线上反映出,小车位置跟踪输入信号,并且摆杆超调足够小,稳态误差满足要求,上升时间和稳定时间也符合了设计指标。
3.4 本章小结
最优控制理论是现代控制理论中的重要内容,过去因为许多复杂的计算难以实现,但随着计算机技术的不断进步,复杂的计算可以通过计算机进行处理,因此最优控制在工程技术应用的越来越广泛。
而最用控制算法(LQR)的目的是在一定性能指标下,使系统获得最佳的控制效果,达到最小的状态误差。
在仿真的过程中我首先对倒立摆系统如何缩短稳定时间和上升时间进行了仿真,通过不断的调试,使得系统的响应时间满足了设计要求。然后为了使系统
14
单级倒立摆的智能控制及GUI动画演示
输入和反馈的量纲相互匹配,给输入乘以了增益Nbar,然后进行仿真之后使得小车位置跟踪输入信号,而且摆杆超调最够小,稳态误差满足了要求,上升时间和稳定时间也满足设计指标。
15