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


k 23???

? 39.45

k 27???

? -0.088

于是由系统的状态方程为:
0??? 1 0 0 0 1 ? ??? .??????????? 0 0 ? 0 0 ? 0 0 0 0 x ? ? ? ? 0 ? ?? 1 ? ? ?

??..????0 86.69 ?? ??

?
. .

? ?? ? ?

?
2

?
2

? ? ??

? ? ? ?

0

u 0.088?? ?? ? 2???? 1 0? ?

? x??? ? x???????????????????????????0?? ?? ? .??? ??? 2???? ??1???

6.2 系统可控性分析
系统状态矩阵 A, B, C, D 如下:

?Googol 2005

141

? .??? ??1???

? .? ? ? ? 0 0 ????? ? 2??????0 ? x..??? ?0 ???? ?? ??0?40.31

????????? ? ??? 0??? 1???

??

?? ??

??? .x ???????? ?? 0??? ??? 0????1???? 6.64??? ??????????????

?1 0 0 0 0 0???????? ????????0 1 0 0 0 0???? 2??????0?u y???? 1??? ? ? ? ? ? ? ? ? ? ? ? ???? ? x?? ??2??? ? ? ? ? ? ? ? ?0?? ??0 0 1 0 0 0????? .????

第 6 章 直线两级倒立摆

?0 ??? 0 0

0

0 0 0 0 21.62 39.45

1 0 0?? 0 1 0??? 0 0 1?? ?? 0 0 0?? 0 0 0?? ?? 0 0 0???

?0 0 A????? 0 ?0 ?0 86.69 ?? ??0?40.31

? 0??? 0 ?? ? ?? ?? ?? ? 0??? B??????????? ?? 1 ?? ? 6.64??? ???????? ??0.088??? ?1 0 0 0 0 0?? C?????0 1 0 0 0 0??? ??0 0 1 0 0 0??? ?0?? D?????0??? ??0??? 利用 MATLAB 计算系统状态可控性矩阵和输出可控性矩阵的秩: clear; A=[ 0 0 0 1 0 0; 00 0 0 1 0; 00 0 0 0 1; 00 0 0 0 0; 0 86.69 -21.62 0 0 0; 0 -40.31 39.45 0 0 0]; B=[ 0 0 0 1 6.64 -0.088]'; C=[ 1 0 0 0 0 0 ; 0 1 0 0 0 0; 0 0 1 0 0 0]; D=[ 0 0 0 ]'; cona=[B A*B A^2*B A^3*B A^4*B A^5*B]; cona2=[C*B C*A*B C*A^2*B C*A^3*B C*A^4*B C*A^5*B D]; rank(cona) rank(cona2) 得到结果如下:

?Googol 2005

142

第 6 章 直线两级倒立摆

ans = 6 ans = 3 或是通过 MATLAB 命令 ctrb 和 obsv 直接得到系统的可控性和可观测性。 Uc=ctrb(A,B); Vo=obsv(A,C); rank(Uc) rank(Vo) 运行得到: ans = 6 ans = 6 可以得到,系统状态和输出都可控,且系统具有可观测性。

6.3 直线两级倒立摆 MATLAB 仿真
在 MATLAB Simulink 中建立直线两级倒立摆的模型:

图 6-2 直线两级倒立摆开环仿真

其中“State-Space”模块为直线两级倒立摆的状态方程,双击模块打开模型:

?Googol 2005

143

第 6 章 直线两级倒立摆

“Controller”模块为控制器模块,在“Controller”模块上单击鼠标右键,选择 “Look under mask”打开模型内部结构:

其中“Matrix Gain K”为反馈矩阵。 双击“Controller”模块打开其参数设置窗口:

?Googol 2005

144

第 6 章 直线两级倒立摆

先设置参数为“1”。 “Disturbance”模块为外界干扰模块,其作用是给系统施加一个阶跃信号,点击 “ ”运行模型进行开环系统仿真。 得到运行结果如下:

图 6-3 直线两级倒立摆开环仿真结果

从仿真结果可以看出,系统发散,为使系统稳定,需要对其添加控制器。

6.4 LQR 控制器设计及仿真
给系统添加 LQR 控制器,添加控制器后的系统闭环图如下图所示: (进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开 ?Googol 2005
145

第 6 章 直线两级倒立摆

“Inverted PendulumLinear Inverted PendulumLinear 2-Stage IP Experiments”中的 “LQR Control Simulink”)

图 6-4 直线两级倒立摆 LQR 控制仿真

下面利用线性二次最优控制 LQR 方法对系统进行控制器的设计,线性二次 最优控制 LQR 方法的原理请参见直线一级倒立摆“线性二次最优控制 LQR 控制 实验”实验内容以及相关书籍: (进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开 “Inverted PendulumLinear Inverted PendulumLinear 2-Stage IP Experiments”中的 “LQR Control M Files”)
PRO 6-2 直线两级倒立摆 LQR 控制 MATLAB 计算程序

clear all; format long; k12=86.69;k13=-21.62;k17=6.64; k22=-40.31;k23=39.45;k27=-0.088; A=[0 0 0 1 0 0; 0 0 0 0 1 0; 0 0 0 0 0 1; 0 0 0 0 0 0; 0 k12 k13 0 0 0; 0 k22 k23 0 0 0] B=[ 0 0 0 1 k17 k27]'; C=[1 0 0 0 0 0; 0 1 0 0 0 0; 0 0 1 0 0 0]; D=[0; 0; 0]; Q11=1;Q22=1;Q33=1;

?Googol 2005

146

第 6 章 直线两级倒立摆

Q=[Q11 0 0 0 Q22 0 0 0 Q33 0 0 0 0 0 0 0 0 0 R=1; K=lqr(A,B,Q,R) Ac=[(A-B*K)]; Bc=[B]; Cc=[C]; Dc=[D]; Cn=[1 0 0 0 0 0]; s=size(A,1); Z=[zeros([1,s]) 1];

0 0 0 0 0 0

0 0 0 0 0 0

0; 0; 0; 0; 0; 0];

N=inv([A,B;Cn,0])*Z'; Nx=N(1:s); Nu=N(1+s); Nbar=Nu+K*Nx; Bcn=[Nbar*B]; x0=[0 0 0.05 0 0 0]; [Y,X]=lsim(Ac,Bcn,Cc,Dc,U,T,x0); xpos=Y(:,1); xangle=Y(:,2); xangle2=Y(:,3); plot(T,xpos,':') hold on; plot(T,xangle,'--') hold on; plot(T,xangle2,'-') 运行得到以下结果: LQR 控制参数为: K=[ 1 73.818 -83.941 2.0162 4.2791 -13.036] 得到仿真结果如下:

?Googol 2005

147

第 6 章 直线两级倒立摆

可以看出,系统稳定时间过长,因此增加权重 Q 的值。 设 Q11=300;Q22=500;Q33=500; 运行得到仿真结果: LQR 控制参数为: K=[ 17.321 110.87 -197.57 18.468 2.7061 -32.142]

图 6-5 直线两级倒立摆 LQR 控制仿真结果 1

从图中可以看出,系统可以很好的稳定,在给定倒立摆干扰后,系统在 2.5 秒内可以恢复到平衡点附近。 把以上仿真参数输入 Simulink 模型中,

?Googol 2005

148

第 6 章 直线两级倒立摆

得到运行结果:

图 6-6 直线两级倒立摆 LQR 控制仿真结果 2

改变仿真中 LQR 参数,观察仿真结果变化,选取最合适的控制参数。

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

12345678910111213141516171819202122232425262728

 


 

  【Top

最新搜索

 


 

热点推荐