
1、实验目的
(1)了解直线倒立摆系统的组成以及系统建模的过程;
(2)学习根轨迹法设计控制器的原理和方法;
(3)学习用MATLAB&SIMULINK对倒立摆系统建立模型的方法,并仿真实现;
(4)学习用MATLAB实现倒立摆控制器的设计,并仿真实现;
(5)了解根轨迹校正实时控制方法和过程。
2、实验设备
(1)直线倒立摆实验装置
(2)电控箱
(3)GT-400-SV-PCI运动控制卡
(4)计算机
(5)软件要求:Matlab6.5以上版本软件,VC++6.0软件,板卡自带Device Manager,倒立摆实时控制软件。
3、实验原理
3.1 倒立摆系统组成 (见附录4)
3.2 倒立摆系统模型 (见附录4)
3.3 根轨迹分析
闭环系统瞬态响应的基本特性与闭环极点的位置紧密相关,如果系统具有可变的环路增益,则闭环极点的位置取决于所选择的环路增益,从设计的观点来看,对于有些系统,通过简单的增益调节就可以将闭环极点移到需要的位置,如果只调节增益不能满足所需要的性能时,就需要设计校正器,常见的校正器有超前校正、滞后校正以及超前滞后校正等。
根据附录中公式(15)得到倒立舞者开环传递函数,输入为小车的加速度,输出为倒立摆系统摆杆的角度,被控对象的传递函数为:
给系统施加脉冲扰动,输出量为摆杆的角度时,系统框图如下:
图7-1 直线一级倒立摆闭环系统图(脉动干扰)
考虑到输入r(s) = 0,结构图变换成:
图7-2 直线一级倒立摆闭环系统简化图(脉动干扰)
该系统的输出为:
其中 num ——被控对象传递函数的分子项;
den ——被控对象传递函数的分母项;
numlead 、denlead ——控制器超前环节传递函数的分子项 ;
numlag 、denlag ——控制器滞后环节传递函数的分子项和分母项;
k ——控制器增益
实际系统的开环传递函数为:
可以看出,系统有两个零点,有两个极点,并且有一个极点为正。画出系统闭环传递函数的根轨迹如图7-3,可以看出闭环传递函数的一个极点位于右半平面,并且有一条根轨迹起始于该极点,并沿着实轴向左跑到位于原点的零点处,这意味着无论增益如何变化,这条根轨迹总是位于右半平面,即系统总是不稳定的。
图7-3 直线一级倒立摆开环根轨迹图
3.4 根轨迹校正原理
磁悬浮系统的根轨迹校正可以转化为如下的问题: 对于传递函数为:
的系统,设计控制器,使得校正后系统的要求如下: 调整时间ts=0.5s(2%);最大超调量。根轨迹设计步骤如下:
1、确定闭环期望极点的位置,由最大超调量公式(7-1)(7-2)时间常数公公式(7-3),根据指标要求确定期望闭环极点的位置,计算出系统结构参数为:
。
(7-1)
(7-2)
(7-3)
期望的闭环极点为:。
2、未校正系统的根轨迹在实轴和虚轴上,不通过闭环期望极点,因此需要对系统进行超前校正,设控制器为:
3、按取a值最大的法则,求出超前校正装置的零点和极点分别为:
4、校正后系统的开环传递函数为
5、由幅值条件,并设反馈为单位负反馈于是我们得到了系统的校正控制器:
6、上述过程手动计算比较复杂,可以采用编程程序自动计算得到。
num=[0.02725];den=[0.0102125 0 -0.26705];
G=tf(num,den)
[z,p,K]=tf2zp(num,den)
sys=zpk(z,p,K) %原系统零极点表达式
subplot(3,2,1),rlocus(sys); %绘制原系统根轨迹
t=0:0.005:10;
subplot(3,2,2),step(sys,t) %绘制原系统阶跃相应曲线
OverStep=0.1; %设置超调量
AdjustTime=0.5; %设置调整时间
zeta1=abs(sqrt((log(OverStep)^2)/(pi^2+(log(OverStep)^2)))) %计算满足设计要求的阻尼比
sita1=acos(zeta1)
wn=4/(zeta1*AdjustTime) %计算满足要求的自然振荡角频率
P=[wn*(-cos(sita1)+i*sin(sita1)),wn*(-cos(sita1)-i*sin(sita1))] %期望闭环主导极点用复数表示
fai=sum(angle([P(1)-p(1),P(1)-p(2)]))-pi %校正装置提供的相角(主导极点处的相角差)
gama=(pi-sita1-fai)/2 %按取a最大法则,求gama
zeroc=real(P(1))-imag(P(1))*tan(gama+sita1-pi/2) %校正环节零点
polec=real(P(1))-imag(P(1))*tan(gama+sita1-pi/2+fai) %校正环节极点
zg=[z;zeroc] %校正环节零极点加入原系统中
pg=[p;polec]
Kc=abs((P(1)-polec))*abs(P(1)-p(1))*abs(P(1)-p(2))/(K*abs(P(1)-zeroc)); %计算校正环节的放大系数
sysc=zpk(zeroc,polec,Kc)
sys2=zpk(zg,pg,Kc*K) %校正后系统开环传递函数
subplot(3,2,3),rlocus(sys2); %绘制加入校正环节后系统根轨迹
T=feedback(sys2,1); %校正后系统闭环传递函数
subplot(3,2,4);step(T,t) %校正后系统阶跃相应
4、实验步骤
1、根轨迹校正仿真实验
程序仿真
打开“Inverted Pendulum\B. Linear Inverted Pendulum\\1) Linear 1-Stage IP Experiments\\a. Root Locus Experiments ”中的“Root Locus Control M Files”。运行程序,观察根轨迹图和阶跃响应曲线,为使位于右半平面的根轨迹进入左边平面,因此增加一个坐半平面的零点,假设为-7,但在实际系统中,传递函数分子的阶次必须比分母的阶次低,因此我们增加一个远离零点的极点。校正后系统的跟轨迹如图7-4所示:
图7-4 校正后的根轨迹图
从图中可以看出,系统的三条根轨迹都有位于左半平面的部分,选取适当的K就可以稳定系统。系统的阶跃响应如图7-5所示:
图7-5 校正后的阶跃响应
可以看出,系统有较好的稳定性,但系统存在一定的稳态误差,并且超调过大,改变控制器的极点和零点,可以得到不同的控制效果。修改控制器的极点和零点,完成表7-2。
Simulink仿真
(1) 进入MATLAB Simulink 实时控制工具箱“Googol Education Products”打开“Inverted Pendulum\\Linear Inverted Pendulum\\Linear 1-Stage IP Experiment\\ Root Locus Experiments”中的“Root Locus Control Simulink”。如图7-6所示。
图7-36 根轨直线一级倒立摆的迹控制仿真模块图
(2) 在上面窗口中设置“Simulation time”以及“Solver options”等选项。设置仿真步长为 0.005 秒,仿真时间为5秒。如图7-7所示。点击 运行仿真,双击“Scope”模块观察仿真结果:
图7-7 直线一级倒立摆的系统仿真参数设置
(3) 点击运行仿真,双击“Scope”模块观察仿真结果。如果曲线超出界面范围,可以点击“”观察全图。
(4) 仿真并完成表7-3。
2、根轨迹校正实时控制实验
(1)安装好MATLAB实时控制软件。
(2)进入MATLAB Simulink 实时控制工具箱“Googol Education Products”打开“Inverted Pendulum\\Linear Inverted Pendulum\\Linear 1-Stage IP Experiment\\Root Locus Experiments”中的“Root Locus Control Demo”)。如图7-8所示。
图7-8 直线一级倒立摆的根轨迹实时控制模块
(3)点击“”编译程序,编译成功后在MATLAB命令窗口中有提示信息:Successful completion of Real-Time Workshop build procedure for model
(4)选择外部模式“Extermal”,点击“”连接程序。点击“”运行程序。
(5)程序运行后,用小球在电磁铁附近可以试探到电磁铁有一定的吸力。将小球用手放置到电磁铁下方期望悬浮的位置,程序进入自动控制时,缓慢松开手。
(6)用示波器“Scope”观察实验数据。
(7)双击“Manual Switch”切换控制器到上方,观察实验数据并记录,可以看到在给定干扰的情况下系统的响应。
(8)实验数据输出到MATLAB工件空间的方法:在Scope参数中,选中History,对Scope数据进行设置,Save data to workspace,设置数据名称,Format选Array。
5、数据记录
1、
表7-2 根轨迹校正程序仿真记录
| 根轨迹曲线 | KK1= | KK2= | ||||||
| 原系统 | 增加零点(-7) | 增加极点(-30) | P11 | P12 | P13 | P21 | P22 | P23 |
| 阶跃响应曲线 | 阶跃响应曲线 | |||||||
表7-3 根轨迹校正Simulink模块仿真记录
| 控制器 | 传递函数 | 阶跃响应曲线 |
| 一阶 | ||
| 二阶 | ||
| 自定义 |
6、实验报告
1、根据表7-2分别写出KK1和KK2所对应的系统开环传递函数以及对应闭环的性能指示。
2、根据表7-3分别写出各控制器对应系统响应曲线的指示:超调量、上升时间、调节时间。比较控制效果。
3、分析实时控制数据和仿真结果的差别。
