首页 考试资料幻灯片工程技术公务员考试小学教学中学教学大学教学外语资料
倒立摆全套资料 word g格式


.

(4-1)

(4-2)

(4-3)

式中 Q——正定(或正半定)厄米特或实对称阵 R——为正定厄米特或实对称阵

图 3-54 最优控制 LQR 控制原理图

方程右端第二项是考虑到控制能量的损耗而引进的,矩阵 Q 和 R 确定了误差 和能量损耗的相对重要性。并且假设控制向量 u(t)是无约束的。 对线性系统:
? ? .X?? AX?? Bu ?? ??Y?? CX

根据期望性能指标选取 Q 和 R,利用 MATLAB 命令 lqr 就可以得到反馈矩阵 K 的值。 K=lqr(A,B,Q,R) 改变矩阵 Q 的值,可以得到不同的响应效果,Q 的值越大(在一定的范围之 内),系统抵抗干扰的能力越强,调整时间越短。但是 Q 不能过大,其影响将在 实验结果分析中阐述。 关于线性二次最优控制 LQR 的详细原理请参见现代控制理论的相关书籍。

3.1.7.2LQR 控制参数调节及仿真
前面我们已经得到了直线一级倒立摆系统的比较精确的动力学模型,下面我 们针对直线型一级倒立摆系统应用 LQR 法设计与调节控制器,控制摆杆保持竖 ?Googol 2005
98

第 4 章 直线一级顺摆建模和实验

直向上平衡的同时,跟踪小车的位置。 前面我们已经得到了直线一级倒立摆系统的系统状态方程。:
? x??? ???0 ??x??? ?? ???????0 ?????? 0 ?? ?????? ?? ???? ??? 0 ??? 1 0 0??? x?? 0 0 0??? x?? ?? ?0?? ?1?? ?????u ' 0 0 1??????? ?0?? ???? 0 29.4 0??????? ??????? ?3??

? x?? ???? ? x?? ?1 0 0 0??? x?????0? ' y????????????????????????????u ????? ?0 0 1 0????????0?? ? ??? ?? ?? ??

应用线性反馈控制器,控制系统结构如下图。图中 R 是施加在小车上的阶
??

跃输入,四个状态量 x, x?,? ,? 分别代表小车位移、小车速度、摆杆角度和摆杆角 速度,输出 y?? [ x,? ]? 包括小车位置和摆杆角度。设计控制器使得当给系统施加 一个阶跃输入时,摆杆会摆动,然后仍然回到垂直位置,小车可以到达新的指定 位置。 假设全状态反馈可以实现(四个状态量都可测),找出确定反馈控制规律的 向量 K 。在 Matlab 中得到最优控制器对应的 K 。Lqr 函数允许你选择两个参数 ——R 和 Q,这两个参数用来平衡输入量和状态量的权重。最简单的情况是假设 R?? 1,Q?? C?? * C 。当然,也可以通过改变 Q 矩阵中的非零元素来调节控制器以 得到期望的响应。 ?1 ?0 Q?? C?? * C????? ?0 ?? ?0 0 0 0?? 0 0 0??? 0 1 0?? ?? 0 0 0??

其中, Q1,1代表小车位置的权重,而 Q3,3 是摆杆角度的权重,输入的权重 R 是 1。 下面来求矩阵 K,Matlab 语句为 K?? lqr( A, B, Q, R) 。下面在 MATLAB 中编程计 算: (进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开 “Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment LQR Experiments”中的“LQR Control MFiles”)

?Googol 2005

99

第 4 章 直线一级顺摆建模和实验

PRO 3-11 直线一级倒立摆 LQR 控制 MATLAB 计算程序

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Googol Linear 1 stage Inverted Pendulum LQR Control % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear; A=[ 0 1 0 0; 0 0 0 0; 0 0 0 1; 0 0 29.4 0]; B=[ 0 1 0 3]'; C=[ 1 0 0 0; 0 0 1 0]; D=[ 0 0 ]'; Q11=1000; Q33=200; Q=[Q11 0 0 0; 0 0 0 0; 0 0 Q33 0; 0 0 0 0]; R = 1; K = lqr(A,B,Q,R) Ac = [(A-B*K)]; Bc = [B]; Cc = [C]; Dc = [D]; T=0:0.005:5; U=0.2*ones(size(T)); Cn=[1 0 0 0]; Nbar=rscale(A,B,Cn,0,K); Bcn=[Nbar*B]; [Y,X]=lsim(Ac,Bcn,Cc,Dc,U,T); plot(T,X(:,1),'-');hold on; plot(T,X(:,2),'-.');hold on; plot(T,X(:,3),'.');hold on; plot(T,X(:,4),'-') legend('CartPos','CartSpd','PendAng','PendSpd') 令 Q1,1?? 1, Q3,3?? 1求得 K?? [ -1 -1.7855 25.422 4.6849] 在 Simulink 中建立直线一级倒立摆的模型如下图所示: (进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开 “Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment LQR ?Googol 2005
100

第 4 章 直线一级顺摆建模和实验

Experiments”中的“LQR Control Simulink”)

图 3-55 直线一级倒立摆 LQR 控制仿真模型

“LQR Controller”为一封装好的模块,在其上单击鼠标右键,选择“Look under mask”打开 LQR Controller 结构如下:

双击“Matrix gain K”即可输入控制参数:

点击 执行仿真,得到如下仿真结果:

?Googol 2005

101

第 4 章 直线一级顺摆建模和实验

图 3-56 直线一级倒立摆 LQR 控制仿真结果 1

LQR 控制的阶跃响应如上图所示,其中 CartPos 为小车的位置曲线,CartSpd 为小车的速度曲线,PendAng 为摆杆角度曲线,PendSpd 为摆杆角速度曲线,从 图中可以看出,闭环控制系统响应的超调量很小,但稳定时间和上升时间偏大, 我们可以通过增大控制量来缩短稳定时间和上升时间。 可以发现,Q 矩阵中,增加 Q11 使稳定时间和上升时间变短,并且使摆杆的 角度变化减小。这里取 Q1,1 =1000, Q3,3 =200, 则 K?? [ -31.623 -20.151 72.718 13.155] 输入参数,运行得到响应曲线如下:

图 3-57 直线一级倒立摆 LQR 控制仿真结果 2

从图中可以看出,系统响应时间有明显的改善,增大 Q1,1和 Q3,3 ,系统的响 应还会更快,但是对于实际离散控制系统,过大的控制量会引起系统振荡。 ?Googol 2005
102

第 4 章 直线一级顺摆建模和实验

3.1.7.3直线一级倒立摆 LQR 控制实验
实时控制实验在 MATALB Simulink 环境下进行,用户在实验前请仔细阅读 使用手册。

在进行 MATLAB 实时控制实验时,请用户检查倒立摆系统机械 结构和电气接线有无危险因素存在,在保障实验安全的情况下进 行实验。 操作步骤: 1) 打开直线一级倒立摆 LQR 实时控制模块, (进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开 “Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment LQR Experiments”中的“LQR Control Demo”)

图 3-58 直线一级倒立摆 LQR 控制实时控制程序

12345678910111213141516171819202122232425262728

 


 

  【Top

最新搜索

 


 

热点推荐