便携式一级倒立摆实验指导(第二版)最终版DOC

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Reinovo
便携式直线一级倒立摆
实验指导书
(第二版)
深圳市元创兴科技有限公司
2011年08月
目录
第一章开发环境及其系统组成 (1)
第二章系统控制原理简介 (2)
第三章便携式倒立摆建模及仿真 (3)
第四章实验 (13)
实验一运动控制基础实验 (13)
1.1 编码器原理 (13)
1.2 编码器使用实验 (14)
实验二根轨迹控制实验 (17)
2.1 根轨迹分析 (17)
2.2 根轨迹校正及仿真 (18)
2.3 仿真模型搭建 (22)
2.4 根轨迹实时控制实验 (27)
实验三频率响应控制实验 (30)
3.1 频率响应分析 (30)
3.2 频域控制器设计及仿真 (31)
3.3 仿真实验 (35)
3.4 直线一级倒立摆频率响应校正法实时控制实验 (38)
实验四 PID控制实验 (40)
4.1 PID控制分析 (40)
4.2 PID控制参数设定及仿真 (40)
4.3 PID控制实时控制实验 (44)
实验五状态空间极点配置控制实验 (47)
5.1 状态空间分析 (47)
5.2 极点配置及仿真 (48)
5.3 极点配置控制实验 (55)
实验六线性二次最优控制(LQR)控制实验 (57)
6.1 线性二次最优控制(LQR)基本原理及分析 (57)
6.2 LQR控制参数调节及仿真 (58)
6.3 直线一级倒立摆LQR控制实验 (60)
实验七Bang-Bang起摆控制算法实验 (62)
7.1 Bang-Bang起摆控制算法 (62)
7.2 Bang_Bang控制算法实物控制 (63)
实验八能量自摆起实验 (65)
8.1 基于能量反馈的起摆算法 (65)
8.2 能量自摆起实物控制 (66)
第一章开发环境及其系统组成
一开发环境要求
硬件要求:
1、Pentium II、Pentium III、AMD Athlon或者更高;
2、内存至少256MB,推荐512MB 以上;
3、至少有一个USB2.0接口;
软件要求:
1、Microsoft Windows 98、Microsoft Windows 2000、Microsoft Windows XP;
2、Microsoft Visual C++ 6.0;
3、Matlab 6.5。

二系统组成
便携式直线一级倒立摆试验系统总体结构如图1.1所示
图1.1 便携式一级倒立摆试验系统总体结构图
本实验系统的主体包括摆杆、小车、便携支架、导轨、直流伺服电机等。

主体、驱动器、电源和数据采集卡都置于实验箱内,实验箱通过一条USB数据线与上位机进行数据交换,另有一条线接220v交流电源。

便携支架为实验箱方便携带和安装而设计。

移动实验箱时,可以扭下便携支架和小车之间的旋钮,将支架和摆杆放倒在实验箱内,简单的接线可以使得本系统方便做课堂演示实验。

第二章系统控制原理简介
本实验系统以自动控制中的经典控制和现代控制理论为理论基础。

便携式直线一级倒立摆的实验原理是:数据采集卡采集到旋转编码器数据和电机尾部编码器数据,旋转编码器与摆杆同轴,电机与小车通过皮带连接,所以通过计算就可以得到摆杆的角位移以及小车位移,角位移差分得角速度,位移差分可得速度,然后根据自动控制中的各种理论转化的算法计算出控制量。

控制量由计算机通过USB数据线下发给伺服驱动器,由驱动器实现对电机控制,电机尾部编码器连接到驱动器形成闭环,从而可以实现摆杆直立不倒以及自摆起。

其工作原理如图2.1所示
图2.1 直线一级倒立摆工作原理图
倒立摆的控制目标有两个,一是稳摆,即使摆杆直立不倒;二是自摆起,即控制电机使摆杆左右摆动进入稳摆范围。

整个过程是动态的,表现为小车的左右移动也就是电机的正反转。

倒立摆系统的实时性很强,就是说它的速度比较快,所以采样时间较小,一般取10ms左右。

通过建立直线一级倒立摆的数学模型,我们得到其模型是可控的,所以我们可以通过自动控制原理课堂所学建立相应的控制器来实现本系统的控制,使它达到稳定。

第三章 便携式倒立摆建模及仿真
在控制系统的分析和设计中,首先要建立系统的数学模型。

控制系统的数学模型是描述系统内部物理量(或变量)之间关系的数学表达式。

建立控制系统数学模型的方法有分析法和实验法两种。

分析法是对系统各部分的运动机理进行分析,根据它们所依据的物理规律或化学规律分别写相应的运动方程。

对于倒立摆系统,由于其本身是自然不稳定的系统,实验建模存在一定的困难。

但是经过小心的假设,忽略掉一些次要的因素后,倒立摆系统就是一个典型的运动的刚体系统,可以在惯性坐标内应用经典力学理论建立系统的动力学方程。

下面我们采用力学分析方法建立直线型一级倒立摆的数学模型。

一 便携式直线一级倒立摆的物理建模和可控性分析
直线一级倒立摆主要由小车、摆杆等组成,它们之间自由连接。

小车可以在导轨上自由移动,摆杆可以在铅垂的平面内自由地摆动。

将其置于平面坐标系后其结构图如图
3.1所示,我们规定逆时针方向的转角和力矩均为正,另外,我们规定以下记号:
0m -小车质量;1m -摆杆质量; O -旋转点坐标; G -摆杆质心坐标;
l -点O 到点G 的距离;L -摆杆的长度;J -摆杆的转动惯量;0f -小车与导轨间的摩擦系数;1f -摆杆绕转动轴的摩擦阻力矩系数;θ-摆杆与垂直向上方向的夹角;F -外界作用力。

下面我们分别分析摆杆和小车的受力情况。

1. 摆杆
由图 3.4得到旋转点O 和质心G 的坐标分别为()
,(,0)x y O O x =和(),(sin ,cos )x y
G G x l θθ=-
图3.1 一级倒立摆结构图
由图 3.1得到旋转点O 和质心G 的坐标分别为(),(
,0)x y O O x =和(),(sin ,cos )x y G G x l θθ=-.
由图3.2分析摆杆受力情况
图3.2 摆杆受力分析图 摆杆水平方向受力:
()1(sin )x x F m G x l θ''''==-
即 2111cos sin x F m x m l m l θθθθ=-+
(1) 摆杆绕O 点的力矩平衡方程:
()()()2
11111sin cos sin x y J m l m gl f m O l m O l θθθθθ''''+=-+-
即 ()2
1111sin cos J m l m gl f m xl θθθθ+=-+
(2) 2. 小车
小车竖直方向受力平衡。

小车水平方向受力:
00x F f x F m x --=
(3) 由(1)和(3)式消去x F 可得:
()2
01101cos sin m m x ml f x ml F θθθθ+-=--+
(4) 由(2)式和(4)式得到方程组:
201101111cos sin cos sin a x a a f x u
a x
b f a g θθθθθθθθ
⎧-=--+⎨-+=-+⎩
(5) 其中2
0011111;;;a m m a ml b J ml u F =+==+=.
这样我们就得到了描述一级倒立摆运动的微分方程组:
01011111cos 01sin cos sin 00a a x x f a u a b a g f θθθθθθθ-⎡⎤--⎡⎤⎡⎤⎡⎤⎡⎤⎡⎤
=++⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢
⎥--⎣⎦⎣⎦⎣⎦⎣⎦⎣⎦⎣⎦

6)
我们知道倒立摆摆杆旋转角度不会太大,也就是1<<θ(1为弧度),这样就可以近似处理(也就是在稳定点附近线性化):
2sin ,cos 1,0.θθθθ===
于是得到了一级倒立摆的线性化微分方程组:
010*********a a f x x x u a b f a g θθθ--⎡⎤⎡⎤⎡⎤⎡⎤⎡⎤⎡⎤⎡⎤=++⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥--⎣⎦⎣⎦⎣⎦⎣⎦
⎣⎦⎣⎦⎣⎦ (7) 对方程组(7)进行拉式变换:
22010221111()()()()()()()()
a s X s a s s f sX s U s a s X s
b s s f s s a g s ⎧-Θ=-+⎨-+Θ=-Θ+Θ⎩ (8) 倒立摆实物控制中,系统的输出是摆杆的角度,受到控制的是小车的位置,以控制小车的位置来矫正摆杆的角度,使其尽可能为零,所以实物建模时,我们以角度为受控对象。

以摆杆角度为输出,传递函数为: ()()()214321010110010110()()a s s U s a a b s a f b f s a a f f s a f gs
-Θ=----+--- (9) 由式(7)可以得到系统的状态方程 210111111001010100000000101000000100x x b f b a g a f x x Q Q Q Q u a a f a a g a f Q Q Q Q x x x y u θθθθθθθ⎡⎤⎡⎤⎢⎥⎢⎥⎡⎤⎡⎤--⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=+⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥----⎣⎦⎣⎦⎢⎥⎢⎥⎣⎦⎣⎦
⎡⎤⎢⎥⎡⎤⎡⎤⎡⎤⎢⎥=+⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦⎢⎥⎣⎦
(10) 其中2011Q a b a =-. 实际控制中我们使用的是电机的加速度而并非作用力,对于质量分布均匀的摆杆有213
J ml =,这样就可以对一级倒立摆进行实物建模了。

由(2)式代入213
J ml =得: 121333sin cos 444f g x l m l l
θθθθ=-+
线性化后: 121333444f g x l m l l
θθθ=-+ (11) 设x a =,以a 做控制输入,状态方程为:
121010000000100010333004441000000100x x x x a f g l m l l x x x y a θθθθθθθ⎡⎤⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥+⎢⎥⎢⎥⎢⎥⎢⎥⎢
⎥-⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎢⎥⎣⎦⎣⎦
⎡⎤⎢⎥⎡⎤⎡⎤⎡⎤⎢⎥=+⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦⎢⎥⎣⎦ (12) 即以加速度为控制量,角度为被控对象,此时的传递函数为
21213
()433()44s l f g A s s m l l
Θ=+- (13) 表3.1 一级倒立摆的物理参数
一般的认为10f =,代入数据得一级倒立摆实物近似模型:
01000000010001000600 6.1221000000100x x x x u x x x y u θθθθθθθ⎡⎤⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥'=+⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦⎣⎦⎡⎤⎢⎥⎡⎤⎡⎤⎡⎤⎢⎥'==+⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦⎢⎥⎣⎦
(14) 此时的传递函数为
223
() 6.12243()60
4s l g A s s s l
Θ==-- (15)
稳定性分析
通过求线性化后系统模型的特征根来研究系统的稳定性:
特征根为:17.746λ=,27.746λ=-.
存在位于右半平面的极点故系统不稳定。

能控性分析:
23(,,,)4rank b Ab A b A b =,
由此可知,系统可控。

判断可控的MATLAB 程序
clear;
A=[ 0 1 0 0;
0 0 0 0;
0 0 0 1;
0 0 60 0];
b=[ 0 1 0 6.122]';
cona=[ b A* b A^2* b A^3* b];
rank(cona)
二 便携式一级直线倒立摆仿真模型搭建
Simulink 是MATLAB 最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。

在这个环境中可以构建出复杂的仿真模型,方便在此基础之上进行各种算法的仿真实验。

下面我们以下面的模型为例详述Simulink 环境下仿真平台的建立。

由物理建模我们得到直线一级倒立摆的微分方程组
01011111cos 01sin cos sin 00a a x x f a u a b a g f θθθθθθθ-⎡⎤--⎡⎤⎡⎤⎡⎤⎡⎤⎡⎤=++⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥--⎣⎦⎣⎦⎣⎦
⎣⎦⎣⎦⎣⎦ 20011111;;;a m m a ml b J ml u F =+==+=
1、鼠标双击Matlab 图标
启动Matlab ,在指令区键入指令Simulink 或双击Matlab 工具栏中的图标
(Simulink )均可启动Simulink 模块库浏览器;然后单击浏览器的工具栏中图标(create a new model )新建一个Simulink 模型窗口。

2、从Simulink 模块库浏览器的菜单Simulink 的子菜单Ports & Subsystems 下选中子系统Subsystem ,并用鼠标点击拖动,将其拖到新建的模型窗口。

左击子系统框图下的
字符串“Subsystem”,删除后输入新的字符串“系数输入子系统”,结果如下图所示。

图3.3 系统输入子系统图
3、鼠标双击子系统便可以进入其编辑窗口,如下图左所示,从Library Browser
\Simulink\User-Defined Functions中拖出函数模块Fcn到子系统编辑窗口如下右图所示,双击函数模块Fcn并将Parameters下表达式“Expression”中的内容修改为a0,点击按钮ok即可。

连线方式为将鼠标移动到输出端会有十字出现,按住鼠标拖动到输入接口就形成连线,若是在线中间引线则按住Ctrl后拖动鼠标连接到输入点。

图3.4 系统输入子系统搭建图
4、重复步骤3(也可以复制Fcn模块再粘贴),可以建立其他几个模块,将其他模块的Expression分别改为a1*cos(u(3))、b1、-f0*u(4)-a1*u(5)^2*sin(u(3))+u(1)、-f1*u(5)+a1*g*sin(u(3))(因为函数模块Fcn只接受符号u或u(3),u(2)等表示的输入变量).在Signal Routing中拖出Mux,双击后将Parameters下输入个数Number of inputs 个数改为5,进行连线如下图所示(注:Fcn上下顺序不能改变)。

这样系数输出子系统就完成了。

左击工具栏中的存储按钮Save ,将整个Simulink模型命名为
pend_Simulink.
图3.5 pend_Simulink 图 5、关闭子系统编辑窗口,回到除编辑窗口。

这样我们得到的还不是倒立摆仿真模型,只是它的一部分,我们令
(1)(2)(4)(2)(3)(5)u u x u u u u θ⎡⎤⎡⎤⎡⎤=⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦
得:
22(3)(4)(2)(5)(1)(3)(2)(2)(4)(1)(5)(1)(3)(2)u u u u x u u u u u u u u u u θ-⎡⎤
⎢⎥
-⎡⎤⎢⎥=⎢⎥-+⎢⎥⎣⎦⎢⎥-⎣⎦
所以我们另建一个矩阵运算子系统,具体步骤同上面建立系数输入子系统一样,将两个Fcn 中Expression 改为上面等式右侧矩阵的两项,如下图。

图3.6矩阵运算子系统模块图
图3.7 矩阵运算子系统图
6、在Continuous中拖出两个Integrator,在Ports & Subsystems拖出In和Out,在Signal Routing中拖出Mux两个,连接如下图,就建立了一级直线倒立摆的仿真模型
图3.8 倒立摆的仿真模型图
注:我们这里所讲的只是搭建模型一种方法,而方法并不仅仅有这一种,也可有简单的搭建方法,只要是能够实现数学建模的微分方程就是合理的。

这也是为了让倒立摆系统
实验者熟悉Matlab中的Simulink工具箱和倒立摆模型而做的简单的实验设计。

当然我们可以把上面建立的仿真模型进行封装,封装几个变量,让倒立摆的仿真模型模块化,方便以后的使用。

全部选中,点击菜单项中Edit下拉选项中的Create Subsystem 会出现一个Subsystem,右击选择Edit Mask进行封装,Parameters选项可以设置变量如a0,a1等,封装完成后,双击则提示输入封装变量的赋值。

具体方法可参考Matlab 课本。

三系统的阶跃响应分析
上面已经得到系统的状态方程(14)式,对其进行阶跃响应分析,在MATLAB 指令区
中键入以下命令:
clear;
A=[ 0 1 0 0;
0 0 0 0;
0 0 0 1;
0 0 60 0];
b=[ 0 1 0 6.122]';
C=[ 1 0 0 0;
0 1 0 0];
D=[ 0 0 ]';
step(A, b ,C ,D)
得到如下图所示结果:
图3.9 小车位置和摆杆角度阶跃响应曲线
可以看出,在单位阶跃响应作用下,小车位置和摆杆角度都是发散的。

即系统是不稳定的。

第四章实验
实验一运动控制基础实验
本实验的目的是让实验者熟悉旋转编码器的基本原理,掌握利用计算机和数据采集卡对编码器进行数据采集的方法,以及利用计算机对电机进行控制的基本原理和方法,了解机电一体化的两个重要内容:传感技术和运动控制技术。

以便顺利完成倒立摆的各项试验。

1.1 编码器原理
旋转编码器是一种角度传感器,它分为光电式、接触式和电磁感应式三种。

我们在闭环系统中常用光电式编码器来测角度。

旋转编码器有增量编码器和绝对编码器两种,如图3.1为光电式编码器原理示意图,它由发光元件、光电码盘、光敏元件和光电检测装置组成。

光电式编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器,这是目前应用最多的传感器。

光电码盘是在一定直径的圆板上等分地开通若干个长方形孔,圆板不透光,长方孔透光。

由于光电码盘与被测装置同轴,被测装置旋转时,光电码盘与之同速旋转,光源透过光电码盘的孔在光栏板上形成忽明忽暗的光信号,经光电检测装置检测到并转换为电信号,然后通过信号处理电路的整形、放大、分频、记数、译码后输出。

图4.1 光电式编码器原理示意图
增量式光电编码器直接利用光电转换原理输出三组方波脉冲A、B和Z相;A、B两 ,将输出信号送入鉴向电路,从而可方便地判断出旋转方向,而Z相为组脉冲相位差2
每转一个脉冲,用于基准点定位。

光电式增量编码器的测量精度取决于它所能分辨的最小角度α (分辨角、分辨率),而这与码盘圆周内所分狭缝的线数有关。

360
a
=
n
n—编码器线数。

由于光电式脉冲编码盘每转过一个分辨角就发出一个脉冲信号,因此,根据脉冲数目可得出工作轴的回转角度,由传动比换算出直线位移距离;根据脉冲频率可得工作轴的转速;根据A、B两相信号的相位先后,可判断光电码盘的正、反转,以得到待测装置转向。

由于光电编码器输出的检测信号是数字信号,因此可以直接进入计算机进行处理,不需放大和转换等过程,使用非常方便,因此应用越来越广泛。

1.2 编码器使用实验
本实验对象为倒立摆系统上的光电式旋转编码器,在充分理解以上实验原理的基础上进行下列实验。

在开展实验之前必须确定计算机上已经成功安装了本公司提供的便携式倒立摆安装包,如果没有则根据元创兴便携倒立摆快速安装使用指南(Quck Install Guide)进行安装。

安装成功后会在桌面生成三个快捷方式,如下图所示
图4.2 倒立摆实验快捷方式
实物控制实验目标D:\MATLAB6.5\toolbox\Reinovo\SimpleInvertedPendulum\ ReinovoSIP1RealControl.mdl(此路径仅供参考)
仿真实验目标D:\MATLAB6.5\toolbox\Reinovo\SimpleInvertedPendulum\Simulink\ ReinovoSIP1Simulink.mdl(此路径仅供参考)
打开实验箱,取出实验箱内的连接线连接实验箱,即把USB数据线与计算机连接,将电源插头插入插座(此时实验箱电源开关应是断开的),连接完毕后,立起便携支架,取出旋钮固定支架,并将小车移到导轨中间位置,打开实验箱电源,指示灯亮表示电源接通。

上述准备工作完成以后就可以开始我们的实验了。

双击快捷方式“元创兴便携式倒立摆实物控制”,出现如下图所示界面
图4.3 便携式一级倒立摆实验项目选择界面
首先鼠标双击左侧的SelectExperiment模块,在弹出的对话框中选择实验编号1,然后单击右侧对应的Enabled Subsystem模块后出现下图所示界面。

图4.4 运动控制基础实验
1.2.1光电编码器认知实验部分
由于我们选用的旋转编码器分辨率为500线,那么经数据采集卡四倍频后为2000线,也就是说摆杆旋转一周,编码器计数2000个,那么计数对应角度公式如下(摆杆竖直向下时角度为零,逆时针方向为正):
2 2000n
π
θ=⨯(单位为弧度),
θ—摆杆旋转角度;n—编码器读数。

左击“”按钮,运行仿真,双击“显示摆杆脉冲和角度”模块打开示波器窗口,摆动摆杆,观察编码器输出和摆杆角度的示数,观察不到时,单击示波器窗口的“”按钮调整坐标。

可以让摆杆转动半周或一周,看示数是否与实际值相对应。

1.2.2 直流伺服电机位置控制实验
电机编码器的线数为1000线,经过数据采集卡四倍频后为4000线,即电机转动一周,采集卡采集到4000个编码器计数脉冲。

电机皮带轮周长为0.1117465m,即电机转一周,小车走过0.1117465m的距离。

小车位移模块对应实验的输入量,单位为米,实验
时,实验者可双击此模块,输入期望小车移动的距离,然后单击运行仿真“”,小车会在电机的带动下移动,移动的距离为小车位移量的输入数据。

电机停止后,停止仿真“”。

双击“显示小车目标位置.实际位置”模块,有三个图,由上而下分别为下发的位移量,实际的位移量和编码器的读数。

注:导轨的实际长度约为0.4m,我们对下发位移做了限制,下发的位移数据范围为“-0.2~0.2”。

超出此范围,默认下发数据为上一次的范围内数据。

实验二 根轨迹控制实验
闭环系统瞬态响应的基本特性与闭环极点的位置紧密相关,如果系统具有可变的环路增益,则闭环极点的位置取决于所选择的环路增益,从设计的观点来看,对于有些系统,通过简单的增益调节就可以将闭环极点移到需要的位置,如果只调节增益不能满足所需要的性能时,就需要设计校正器,常见的校正器有超前校正、滞后校正以及超前滞后校正等。

当系统的性能指标以时域形式提出时,通常用根轨迹法对系统进行校正。

基于根轨迹法校正的基本思想是:假设系统的动态性能指标可由靠近虚轴的一对共轭闭环主导极点来表征,因此,可把对系统提出的时域性能指标的要求转化为一对期望闭环主导极点。

确定这对闭环主导极点的位置后,首先根据绘制根轨迹的相角条件判断一下它们是否位于校正前系统的根轨迹上。

如果这对闭环主导极点正好落在校正前系统的根轨迹上,则无需校正,只需调整系统的根轨迹增益即可;否则,可在系统中串联一个超前校正装置
1()(1)1c aTs G s a Ts
+=>+, 通过引入新的开环零点1c z aT =- 和新的开环极点1c p =-来改变系统原根轨迹的走向,使校正后系统的根轨迹经过这对期望闭环主导极点。

2.1 根轨迹分析
前面我们已经得到了倒立摆系统的开环传递函数,输入为小车的加速度,输出为倒立摆系统摆杆的角度,被控对象的传递函数为:
2() 6.122()60
s A s s Θ=-, 可知系统没有零点,有两个极点17.746λ=,27.746λ=-.
画出系统闭环传递函数的根轨迹如图4.5,可以看出闭环传递函数的一个极点位于右半平面,并且有一条根轨迹起始于该极点,并沿着实轴向左到位于原点的零点处,然后沿着虚轴向上,这意味着无论增益如何变化,这条根轨迹总是位于右半平面,即系统总是不稳定的。

MATLAB 程序如下
clear;
num=[6.122];
den=[1 0 -60];
rlocus(num,den)
z=roots(num) p=roots(den)
图4.5 便携式直线一级倒立摆开环根轨迹图 2.2 根轨迹校正及仿真
直线一级倒立摆的根轨迹校正可以转化为如下的问题:对于传递函数为
2() 6.122()60
s A s s θ=-, 的系统,设计控制器,使得校正后系统的要求如下:
调整时间0.5s t s =;
最大超调量10%p M ≤;
根轨迹设计步骤如下
1、确定闭环期望极点d S 的位置,由最大超调量
(10%p M e π-=≤,
可以得到0.5912ζ≥,取0.6ζ=,
由cos ζθ=得0.9273θ=rad ,
其中θ为位于第二象限的极点和原点的连线与实轴负方向的夹角。

图4.6 性能指标与根轨迹关系图 又由4
0.5s n
t s ζω=≤
可以得到13.3333n ω≥,取13.5n ω=,于是可以得到期望的闭环极点为13.5(cos sin )8.110.8j j θθ-±≈-±*。

2、未校正系统的根轨迹在实轴和虚轴上,不通过闭环期望极点,因此需要对系统进行超
前校正,设控制器为
1()(1)1c c c s z aTs G s a Ts s p ++==>++。

3、计算超前校正装置应提供的相角,已知系统原来的极点在主导极点产生的滞后相角和为
1113.5sin 13.5sin ()tan tan 13.5cos 7.74613.5cos 7.7462.1362
d G s θθθθ--⎛⎫⎛⎫⎛⎫=-+ ⎪ ⎪ ⎪-+⎝⎭⎝⎭⎝
⎭≈, 所以一次校正装置提供的相角为
3.1416 2.1362 1.0054φ=-=。

4、设计超前校正装置,已知0.9273θ=,对于最大的a 值的γ角度
1()0.60452
γπθφ=--=。

图4.7 根轨迹校正计算图
按最佳确定法作图规则,在上图中画出相应的直线,求出超前校正装置的零点和极点,分别为
7,24c p z z =-=-,
校正后系统的开环传递函数为
2(7) 6.122()()2460.06
c K s Q KG s G s s s +==
+-。

5、由幅值条件()1d Q s =,反馈为单位反馈,所以可得52.71k =。

6、于是我们得到了系统的控制器
52.71(7)()24
s G s s +=+, 校正后系统的跟轨迹如下图所示:
图4.8 校正后根轨迹 校正后的阶跃响应曲线如下图所示
图4.9 校正后阶跃响应曲线
可以看出,系统有较好的稳定性,但系统存在一定的稳态误差,所以此次设计的校正器并不是最优的,为使系统瞬态响应满足要求,可以采用增大K的方法。

另外,K增大后可能会出现超调过大的现象,为使系统满足要求,下面提供两种方法:第一种方法:增加阻尼ζ,重复上面的设计方法,重新设计,直到系统的响应满足要求。

请读者自行设计,这里不再描述其过程。

第二种方法:在保持φ角不变的情况下,将校正装置的零点向左侧偏移,以减少闭环零点和极点的影响,实验者可以按此方法重新进行设计。

校正后Matlab绘制根轨迹和阶跃响应曲线的程序
clear;
num=[6.122]; % Transfer function of the Linear 1 stage
den=[1 0 -60]; % inverted penulum
numlead=-7; % Controller Zeros
denlead=-24; % Controller Poles
[Z,P,K]=tf2zp(num,den);
Za=[Z;numlead]; % Add Zeros to the system
Pa=[P;denlead]; % Add Poles to the system
[num2,den2]=zp2tf(Za,Pa,K);
sys=tf(num2,den2);
rlocus(sys);
figure
KK=52.71 % compensated system
sys2=zpk(Za,Pa,KK*K);
sysc=sys2/(1+sys2);
t=0:0.01:3;
step(sysc,t); % Response of the Close-loop system
另D:\MATLAB6.5\toolbox\Reinovo\SimpleInvertedPendulum\Simulink文件夹内的m
文件RootLC.m是根轨迹超前校正的近似函数,使用时将当前目录设为Simulink文件夹,
然后根据下面语句调用
G=tf(6.122,[1 0 -60]);
H=1; %单位负反馈
GH=G*H;
s1=-8.1+10.8j;%期望闭环极点
[Kc,Zlead,Plead]=RootLC(GH,s1)
2.3 仿真模型搭建
我们在前面试验中已经熟悉了Matlab Simulink工具箱的使用,下面介绍根轨迹校正倒立摆模型的建立步骤。

1、打开Matlab程序,在指令区键入Simulink,敲回车键进入仿真环境。

点击(create
a new model)新建一个模型,点击保存,并命名如Reinovo_IP,选择想保存的文件夹;
2、从“Continuous”中选择Transfer Fcn并按住鼠标拖到新建窗口中如下图;
图4.10 Matlab中Transfer Fcn 模块图
图4.11Transfer Fcn 模块搭建图
3、双击Transfer Fcn模块,打开参数设置窗口如下图,按照图示的数据输入,然后点击OK按钮完成输入;
图4.12Transfer Fcn 参数
4、同样从Simulink 模型库“Continuous”中拖一个“Zero-Pole”模块到窗口中作为控制器,双击模块,设定零点、极点和上面程序计算得到的增益KK值;
图4.13 Transfer Fcn 参数更改效果图
5、从Simulink 模型库“Math Operations中拖一个“Sum”模块编辑窗口中,并双击模块改为如下图所示(把其中的“++”改为“+-”);
图4.14Sum参数
6、从Simulink 模型库“Sourses ”中拖一个“Step”信号模块到编辑窗口中,并双击模块设置阶跃信号参数;
图4.15阶跃信号参数
7、从Simulink 模型库“Sinks”中拖一个“Scope”信号模块到编辑窗口中,如下图所示;
图4.16“Scope”信号模块搭建过程
8、把各个模块连接起来构成一个闭环系统,如下图。

图4.17 模块搭建完成图
9、点击“Simulation”菜单,在下拉菜单中选择“Simulation Parameters”,
图4.18 Simulation Parameters选择
打开如下窗口:
图4.19 Simulation Parameters界面
在上面窗口中设置“Simulation time”以及“Solver options”等选项。

设置仿真步长为0.01秒。

10、点击运行仿真,双击“Scope”模块观察仿真结果:
图 4.20 直线一级倒立摆的根轨迹校正仿真结果(一阶控制器)
如果曲线超出界面范围,可以点击“”观察全图。

11、可以看出,系统能较好的跟踪阶跃信号,但是存在一定的稳态误差,修改控制器的
零点和极点,可以得到不同的控制效果,请在多次改变参数后,选取仿真结果最好的参数。

例如修改控制为二阶的超前滞后控制器,给控制器再增加一个极点和零点,具体的设计方法请参见相关教材。

12、在“Simlulink\Signal Routing”中拉一个“Manual Switch”模块到窗口中。

图4.21 Manual Switch模块
13、复制一个控制器模块到窗口中并修改参数(用户自行设计),连接图如下:
图4.22 控制器模块连接图
14、双击“Manual Switch”模块打开到下面,运行并与第一个控制器相比较,直到找到需要的参数为止。

当然,也可以补偿多个零极点,仿真用户自己建立控制器,实时控制中只涉及到了单极点和零点的情况。

2.4 根轨迹实时控制实验
双击快捷方式“元创兴便携式倒立摆实物控制”,出现如下图所示界面。

图4.23 便携式一级倒立摆实验项目选择界面
首先在左侧的SelectExperiment模块中选择实验编号2,然后单击右侧对应的Enabled
Subsystem模块后出现以下界面。

图4.24 根轨迹校正实验模块组成
打开实验箱,将USB数据线和电源线取出,确定实验箱上的电源开关是关闭的,然后把数据线与电脑USB接口连接,电源插头插入插座。

把小车推到导轨中间位置,打开实验箱上的电源开关,此时,小车就推不动了,因为电机已经上伺服了。

上图中的绿色方框为设计的根轨迹校正器,运行前查看是否为自己设计好的校正器,并确定保证摆杆此时竖直向下。

不用编译链接,直接单击“”按钮,用手捏住摆杆顶端(不要抓住中部或下部),慢慢地提起,到接近竖直方向时放手,当摆杆与竖直向上的方向夹角小于0.25弧度时,进入稳摆范围,可以观察到,摆杆直立不倒,小车会向着一个方向运动直到撞到限位开关停下来,然后单击“”停止仿真。

双击打开“Scope”模块,观察得到的曲线图(上面为摆杆角度,下面为小车位移),分析原因,得到相应结论。

相关文档
最新文档