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


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Googol Linear 1 stage Inverted Pendulum Poles Placement Method2 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear; syms a s b k1 k2 k3 k4; A=[ 0 1 0 000 000 00a B=[ 0 1 0 SS=[ s 0 0 0; 0 s 0 0; 0 0 s 0; 000 s]; K=[k1 k2 k3 k4]; J=[ -10 0 0 -10 00 ans=A-B*K; P=poly(ans) PJ=poly(J) 0 0 0; 0; 0; 0; 0; 1; 0]; b]';

0 0 -2-2*sqrt(3)*i

0 -2+2*sqrt(3)*i];

(进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开 “Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment Poles Experiments”中的“Poles Control M File2”) 方法三:利用爱克曼公式计算。 爱克曼方程所确定的反馈增益矩阵为: K????0?? 其中 ? ( A)?? A3???? 11? A 2???? 2 A???? 3 I B?A??n1 B
 1

? 利用 MATLAB 可以方便的计算,程序如下:

?
??(A) ?Googol 2005
90

第 3 章 直线倒立摆建模、仿真及实验

PRO 3-9 直线一级倒立摆状态空间极点配置 MATLAB 程序 3(爱克曼公式)

clear; A=[ 0 0 0 0 B=[ 0 1 0 0; 0 0 0; 0 0 1; 0 29.4 0]; 1 0 3]';

M=[B A*B A^2*B A^3*B]; J=[ -10 0 0 0; 0 -10 0 0; 0 0 -2-2*sqrt(3)*i 0; 00 0 -2+2*sqrt(3)*i]; phi=polyvalm(poly(J),A); K=[ 0 0 0 1]*inv(M)*phi (进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开 “Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment Poles Experiments”中的“Poles Control M File3”) 运行可以得到: K= -54.4218 -24.4898 93.2739 16.1633

可以看出,计算结果和前面两种方法一致。 方法四: 可以直接利用 MATLAB 的极点配置函数 [K,PREC,MESSAGE] = PLACE(A,B,P) 来计算。 (进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开 “Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment Poles Experiments”中的“Poles Control M File4”)

?Googol 2005

91

第 3 章 直线倒立摆建模、仿真及实验

PRO 3-10 直线一级倒立摆状态空间极点配置 MATLAB 程序 4(爱克曼公式)

clear; A=[ 0 1 0 0; 0 0 0 0; 0 0 0 1; 0 0 29.4 0]; B=[ 0 1 0 3]'; P=[-10-0.0001*j,-10+0.0001*j,-2-2*sqrt(3)*j,-2+2*sqrt(3)*j]; K=place(A,B,P); 为匹配 place() 函数,把-10,-10 两个极点改成了 - 10 - 0.0001j, - 10?? 0.0001j ,因为 增加的虚部很小,可以忽略不记,运行得到如下结果: K= -54.4218 -24.4898 93.2739 16.1633

可以看出,以上四种方法计算结果都保持一致。 下面对以上的计算结果在 MATLAB Simulink 中进行仿真,打开直线一级倒 立摆的仿真模型: (进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打 开“Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment Poles Experiments”中的“Poles Control Simulink”)

图 3-49 直线一级倒立摆状态空间极点配置 MATLAB Simulink 仿真

其中“GL1IP State-Space”为直线一级倒立摆的状态空间模型,双击打开如 下窗口:

?Googol 2005

92

第 3 章 直线倒立摆建模、仿真及实验

双击“Controller1”模块,打开状态反馈矩阵 K 设置窗口:

把计算得到的 K 值输入上面的窗口。 运行仿真,得到以下结果:

?Googol 2005

93

第 3 章 直线倒立摆建模、仿真及实验

图 3-50 直线一级倒立摆状态空间极点配置 MATLAB Simulink 仿真结果

可以看出,在存在干扰的情况下,系统在 3 秒内基本上可以恢复到新的平衡 位置, 读者可以修改期望的性能指标,进行新的极点配置,在“Controller2”模块 中设置新的控制参数,并点击“Manual Switch”把控制信号切换到“Controller2”

3.1.6.3极点配置控制实验
实验步骤如下: 1) 进 入 MATLAB Simulink 中 “ \\matlab6p5toolboxGoogolTech InvertedPendulum Linear Inverted Pendulum, ”目录,打开直线一级倒立摆 状态空间极点配置控制程序如下: (进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打 开“Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment Poles Experiments”中的“Poles Control Demo”)

?Googol 2005

94

第 3 章 直线倒立摆建模、仿真及实验

图 3-51 直线一级倒立摆状态空间极点配置实时控制程序

2) 点击“Controller”模块设置控制器参数,把前面仿真结果较好的参数输入到 模块中:

点击“OK”完成设定。 3) 点击 编译程序,完成后点击 使计算机和倒立摆建立连接。

4) 点击 运行程序,检查电机是否上伺服,如果没有上伺服,请参见直线倒立 摆使用手册相关章节。提起倒立摆的摆杆到竖直向上的位置,在程序进入自 动控制后松开。 5) 双击“Scope”观察实验结果如下图所示:

?Googol 2005

95

第 3 章 直线倒立摆建模、仿真及实验

图 3-52 直线一级倒立摆状态空间极点配置实时控制结果(平衡)

可以看出,系统可以在很小的振动范围内保持平衡,小车振动幅值约为 4??10? 3 m,摆杆振动的幅值约为 0.05 弧度,注意,不同的控制参数会有不同的 控制结果。 在给定倒立摆干扰后,系统如响应如下图所示:

图 3-53 直线一级倒立摆状态空间极点配置实时控制结果(施加干扰)

从上图可以看出,系统稳定时间约为 3 秒,达到设计要求。 ?Googol 2005
96

第 3 章 直线倒立摆建模、仿真及实验

3.1.6.4实验结果及实验报告
上机实验并记录实验结果,完成实验报告。 提示:用户可以在极点配置实验的基础上添加状态观测器,对系统进行设计和仿 真以及实验。

?Googol 2005

97

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

3.1.7 线性二次最优控制 LQR 控制实验
本实验的主要内容是让实验者了解并掌握线性二次最优控制 LQR 控制的原 理和方法,并对直线一级倒立摆进行控制实验。

3.1.7.1线性二次最优控制 LQR 基本原理及分析
线性二次最优控制 LQR 基本原理为,由系统方程: X?? AX?? Bu 确定下列最佳控制向量的矩阵 K: u(t)=-K*x(t) 使得性能指标达到最小值:
J???? 0 ( X * QX?? u* Ru)dt
 ?

12345678910111213141516171819202122232425262728

 


 

  【Top

最新搜索

 


 

热点推荐