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


?Googol 2005

125

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

设置好各项参数后,点击“ ”运行仿真,得到如下的仿真结果:

图 4-15 直线一级顺摆 LQR 控制仿真结果

用户可以修改权重矩阵 Q 的值,得到不同的反馈控制参数 K,再输入到仿 真模型中进行仿真,观察仿真结果的变化。

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

在进行 MATLAB 实时控制实验时,请用户检查倒立摆系统机械 结构和电气接线有无危险因素存在,在保障实验安全的情况下进 行实验。 操作步骤: ?Googol 2005
126

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

1) 打开直线一级顺摆 LQR 实时控制模块: (进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开 “ Inverted PendulumLinear Inverted PendulumLinear 1-Stage Pendulum Experiment LQR Control Experiments”中的“LQR Control Demo”)

图 4-16 直线一级顺摆 LQR 实时控制程序

其中“LQR Controller”为 LQR 控制器模块,“Real Control”为实时控制模 块,双击“LQR Controller”模块打开 LQR 控制器参数设置窗口如下:

在“LQR Controller”模块上点击鼠标右键,选择“Look under mask”,打开 模型如下:

双击“Real Control”模块,打开实时控制模块如下图:

?Googol 2005

127

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

其中“Pendulum”模块为倒立摆系统输入输出模块,输入为小车的速度“Vel” 和“Acc”,输出为小车的位置“Pos”和摆杆的角度“Angle”。 双击“Pendulum”模块打开其内部结构:

其中“Set Cart’s Acc and Vel”模块的作用是设置小车运动的速度和加速度, “Get Cart’s Position”模块的作用是读取小车当前的实际位置, “Get Pend’s Angle” 的作用是读取摆杆当前的实际角度。更为详细的说明请参见直线倒立摆使用手 册。 2) 点击 编译程序,编译成功后点击“ ”连接,再点击“ ”运行程序,程

序运行后,小车应该停在中间位置,摆杆保持静止下垂。 3) 实验运行结果如下图所示:

?Googol 2005

128

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

图 4-17 直线一级顺摆 LQR 控制结果

其中图片上半部分为小车的位置曲线,下半部分为摆杆角度的变化曲线,从 图中可以看出,在给定外界干扰后,小车可以在 2 秒内回到平衡位置。达到了较 好的控制效果。 4) 改变 Q 矩阵的值 Q11和Q 33 ,再把仿真得到的 LQR 控制参数输入实时控制程 序,运行实时控制程序,观察控制效果的变化。 5) 记录实验结果,分析实验数据,完成实验报告。

在进行 MATLAB 实时控制实验时,请用户不要过大的改变控制 器参数,过大的参数会使系统有失控的危险,请在保障实验安全 的情况下进行实验。

?Googol 2005

129

第 5 章 直线一级倒立摆自动摆起控制实验

第5章 直线一级倒立摆自动摆起控制实验
对于直线一级倒立摆,其初始状态为静止下垂状态,为使其转化到竖直向上 的状态,需要给摆杆施加力的作用。上面的实验,我们都是采用手动的方法将摆 杆提起,下面我们采用自动摆起的方法对其进行控制。

5.1 摆起的能量控制策略
单个不受约束的倒立摆系统的能量为: E??? 有:
.??? . . dE ? J?????mgl?? Sin???? mul?? Cos?? dt 其中 u ——为水平向右的控制量。 应用李亚普诺夫方法,令: 1 V??? (E?E ref ) 2 2 则: . dV ?? (E?E ref )mul?? Cos?? dt .

1 ?2 J???? mgl(cos??? 1) 2

因此,令: u?? k (E?E ref )?? Cos?? 注意当??=0或Cos?=0 时, u?? 0 。 另外,由于实际物理系统的限制,控制量不能太大,因此采用:
. ?? ? sign [( E ? E ref )?? Cos? ]?? ng v????? ?? 0 .

????

 ? 2

其中, sign() 为取符号函数, n?? v max / g 为常数。

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

?Googol 2005

130

第 5 章 直线一级倒立摆自动摆起控制实验

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

图 5-1 直线一级倒立摆摆起实时控制程序

2) 其中“Swing-up Controller”为起摆控制模块。

双击“Swing-up Controller”模块打开模块如下图所示:

?Googol 2005

131

第 5 章 直线一级倒立摆自动摆起控制实验

其中“Swing-up”模块为编写好的起摆函数。 双击“Swing-up”模块打开能量系数设置窗口:

3) 在确认系数正确后,点击“

”编译程序。

4) 编译成功后,点击“ ”连接程序。 5) 点击“ ”运行程序,得到如下的实验结果:

图 5-2 直线一级倒立摆起摆控制结果(小车位置)

?Googol 2005

132

第 5 章 直线一级倒立摆自动摆起控制实验

图 5-3 直线一级倒立摆起摆控制结果(摆杆角度)

可以看出,摆杆的角度的最大值慢慢加大,当进入一定的范围之内,开始进 入稳摆控制,此时,小车平衡在初始位置(0)附近,摆杆平衡在竖直向上 的位置(相对于初始位置,即静止下垂的角度为 pi)。 6) 记录实验结果,分析实验数据,完成实验报告。

5.3 其它算法实验实现方法
在 MATLAB 实时控制软件中,用户可以很方便的添加自己开发的各种算法, 对于经典控制理论的单输入单输出算法,可以在 3.1.5 直线一级倒立摆 PID 控制 实验中所描述的模型中,修改 PID 控制器为用户开发的控制器:

修改控制器为用户控制器

图 5-4 用户控制器添加方法示意图(单输入单输出)

摆杆角度和小车位置等信号采集模块和其它当量转换模块等,在没有特殊的 情况下,并不需要改动。 应用现代控制理论等单输入(小车加速度)多输出(摆杆角度和小车位置) 的控制算法时,用户可以在如 3.1.7 线性二次最优控制 LQR 控制实验中修改 LQR 控制器为用户开发的控制器: ?Googol 2005
133

12345678910111213141516171819202122232425262728

 


 

  【Top

最新搜索

 


 

热点推荐