实验七 直线一级倒立摆根轨迹控制实验

更新时间:2024-04-22 23:21:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验七 直线一级倒立摆系统根轨迹校正和仿真

一、实验目的

(1)了解直线倒立摆系统的组成以及系统建模的过程; (2)学习根轨迹法设计控制器的原理和方法;

(3)学习用MATLAB&SIMULINK对倒立摆系统建立模型的方法,并仿真实现; (4)学习用MATLAB实现倒立摆控制器的设计,并仿真实现; (5)了解根轨迹校正实时控制方法和过程。

二、实验设备

(1)直线倒立摆实验装置 (2)电控箱

(3)GT-400-SV-PCI运动控制卡 (4)计算机

(5)软件要求:Matlab6.5以上版本软件,VC++6.0软件,板卡自带Device Manager,倒立摆实时控制软件。

三、实验原理

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 根轨迹校正原理

磁悬浮系统的根轨迹校正可以转化为如下的问题: 对于传递函数为:

0.0102125s?0.26705的系统,设计控制器,使得校正后系统的要求如下: 调整时间ts=0.5s(2%);最大超调量Mp?10%。根轨迹设计步骤如下:

G(s)0.027252

1、确定闭环期望极点的位置,由最大超调量公式(7-1)(7-2)时间常数公公式(7-3),根据指标要求确定期望闭环极点sd的位置,计算出系统结构参数为:

??0.591155?0.6,??0.938306rad,?n?13.5328。

Mp?e?(?/1??2)??10%

(7-1) (7-2)

??arccos?

ts?4??n?0.5s

(7-3)

期望的闭环极点为:13.5328*(?cos??jsin?)。

2、未校正系统的根轨迹在实轴和虚轴上,不通过闭环期望极点,因此需要对系统进行超前校正,设控制器为:

C(s)?Kas?zcTs?1?K(a?1)aTs?1s?pc3、按取a值最大的法则,求出超前校正装置的零点和极点分别为:zc??6.92214,pc??26.4568 4、校正后系统的开环传递函数为

5、由幅值条件

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;

Q?G(s)C(s)?G(sd)H(sd)?1K(s?6.92214)0.02725(s?26.4568)0.0102125s2?0.26705,并设反馈为单位负反馈于是我们得到了系统的校正控制器:

C(s)?Ks?zcs?6.92214?141.137s?pcs?26.45686、上述过程手动计算比较复杂,可以采用编程程序自动计算得到。

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) %校正后系统阶跃相应

四、实验步骤

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。

五、数据记录 1、

表7-2 根轨迹校正程序仿真记录

根轨迹曲线 原系统 增加零点(-7) 增加极点(-30) P11 KK1= P12 P13 P21 KK2= P22 P23 阶跃响应曲线 阶跃响应曲线

2、

表7-3 根轨迹校正Simulink模块仿真记录 控制器 一阶 传递函数 阶跃响应曲线 二阶 自定义

3、将实验数据输出到工作空间显示并记录。

六、实验报告

1、根据表7-2分别写出KK1和KK2所对应的系统开环传递函数以及对应闭环的性能指示。 2、根据表7-3分别写出各控制器对应系统响应曲线的指示:超调量、上升时间、调节时间。比较控制效果。

3、分析实时控制数据和仿真结果的差别。

本文来源:https://www.bwwdw.com/article/s8bp.html

Top