倒立摆控制器设计与仿真根轨迹.docx
《倒立摆控制器设计与仿真根轨迹.docx》由会员分享,可在线阅读,更多相关《倒立摆控制器设计与仿真根轨迹.docx(39页珍藏版)》请在冰豆网上搜索。
倒立摆控制器设计与仿真根轨迹
摘要
倒立摆系统是一个非线性自然不稳定系统,是进行控制理论教学及开展各种控制实验的理想实验平台。
许多抽象的控制概念如控制系统的稳定性、可控性、系统收敛速度和系统抗干扰能力等,都可以通过倒立摆系统直观的表现出来。
除教学用途外,倒立摆系统的高阶次、不稳定、多变量、非线性和强耦合等特性使得许多现代控制理论的研究人员一直将它视为研究对象。
本课题以固高倒立摆系统为研究对象,通过Simulink搭建非线性模型然后将其线性化,并与数学方法近似的线性模型进行了比较。
采用根轨迹法设计出确定参数下的使系统稳定的控制器,并将其应用于倒立摆实际控制中,在摆杆角度控制器方面获得了很好的的控制效果。
最后,在MATLAB/Simulink环境下分别观察了线性模型和非线性模型的仿真情况。
本文以直线一级倒立摆系统为核心,掌握了在倒立摆系统控制方面国内外的研究情况。
通过实现对倒立摆的稳定控制,进而掌握了控制系统设计的一些基本方法。
关键词
倒立摆MATLAB/Simulink根轨迹法摆杆角度控制器线性化
Abstract
Invertedpendulumsystemisanonlinearnaturalunstablesystem,itisanidealexperimentalplatformforcontroltheoryteachinganddevelopingvariouscontrolexperiments.Manyabstractcontrolconceptsuchascontrolsystemstabilityandcontrollable,systemconvergencespeedandsystemanti-interferenceability,canbeintuitivlyexpressedthroughInvertedpendulumsystem.Exceptforteachingpurpose,invertedpendulumsystemofhighordertimes,instability,multivariableandnonlinearcharacteristicsandstrongcouplingmademanymoderncontroltheoryresearchersregarditasresearchobject.
Googolinvertedpendulumsystemistheresearchobjectinthistopic,bybuildingSimulinknonlinearmodelanditslinearization,thencompareditwithlinearmodelapproximatedinmathematicsmethod.Designdeterminedparametersandstablesystemwiththerootlocusmethod,andappliedtothepracticalcontrol,obtainedthesatisfyingcontroleffectofthecontrollerabouttheangleofthependulum.FinallythesimulationsinbothlinearandnonlinearmodelswereperformedinMATLAB/SIMULINK.Thisthesisencircledthesingleinvertedpendulumsystem,andreviewsresearchstatusofinvertedpendulumsystemathomeandabroad.Byimplementingthestabilitycontrolofinvertedpendulum,andmasterthebasicideasofcontrolsystemdesign.
KeyWords
InvertedpendulumMATLAB/SimulinRootlocusmethodcontrollerofangleofpendulumlinearization
一、绪论
(一)课题研究的背景及意义
倒立摆的最初研究始于上世纪50年代,由美国麻省理工学院(MIT)的控制论专家根据火箭发射助推器的原理设计而来,随着研究的深入和实际问题的推动而不断发展至今,已发展出了三级摆和四级摆。
这些研究成果具有重要的工程前景,在控制等领域中发挥了巨大的作用。
作为研究控制理论的一种非常典型的实验装置,倒立摆系统具有形象直观、结构简单、成本低廉、构件组成参数和形状易于改变的特点。
倒立摆是多种技术、多个领域的有机结合,包括机器人技术、控制理论技术、计算机控制技术等。
很多抽象的控制概念,如控制系统的稳定性、系统的可控性、系统收敛速度和抗干扰能力等,都可通过倒立摆系统直观形象的表现出来。
倒立摆控制系统本身又是一个多变量、高阶次、强耦合的非线性自然不稳定系统系统,在自动控制领域中,倒立摆仿真或者实物控制实验,已成为检验一种新的控制理论是否有效的试金石,同时也是产生一种新的控制方法所必须依据的基础实验平台。
(二)倒立摆系统简介
1.倒立摆系统组成
倒立摆系统包括倒立摆本体、电控箱、光电码盘反馈元件、以及由运动控制卡和计算机构成的控制平台等几大部分,其中电控箱由伺服驱动器和伺服电机组成。
如图1-1
图1-1
电机轴和摆杆的位置信息分别通过光电码盘1和2反馈给伺服驱动器与运动控制卡,构成了一个闭环系统。
计算机则利用中断(中断周期为0.006s)从运动控制卡中实时读取出位置数据并计算电机的速率、控制量。
控制量通过运动控制卡转换为控制伺服驱动器的信号,使得电机通过伺服驱动器的驱动产生运动,从而保持摆杆的平衡。
2.倒立摆的控制目标及控制原理[1]
倒立摆的控制问题就是使摆杆尽快地达到一个平衡位置,并且使之没有大的振荡和过大的角度和速度。
当摆杆到达期望的位置后,系统能克服随机扰动而保持稳定的位置。
直线倒立摆控制的目的是,小车和摆组成的系统在受到干扰后,小车处于轨道的中心位置,摆杆将保持垂直位置不倒。
控制原理是用一种强有力的控制方法对小车的速度作适当的控制,从而使摆杆倒置稳定与小车正上方,开始工作时,首先小车按摆杆的自由震荡频率摆动,摆杆随之大幅摆动,经过几次摆动后,摆杆能自动直立起来。
4.倒立摆系统研究现状[2][3]
倒立摆的研究可归结为以下两大问题:
一是如何使倒立摆快速从初始位置到竖直位置的起摆控制;二是如何达到在平衡点处的稳定控制问题。
目前,倒立摆的控制方法可以分为线性控制、智能控制和预测控制三大类。
(三)本论文研究的主要内容
1.本论文以直线一级倒立摆为研究对象,建立数学模型,并以线性化后的状态空间方程为模型,用根轨迹法设计控制器,通过调节摆杆的角度,使当扰动为单位阶跃作用时,摆杆能稳定,当稳定时摆杆角度小于等于0.08rad,调整时间小于等于3s,然后利用Matlab中的Simulink进行仿真。
2.对于非线性模型,在Simulink中搭建非线性模型,并利用Simulink中的线性化分析工具进行线性化处理,得到线性化后的状态空间模型。
然后在Simulink中的非线性模型中添加摆杆角度的控制器,并对其进行仿真。
二、MATLAB/SIMULINK工具箱简介[5][8]
(一)Matlab系统简介
MATLAB是由MATrix和LABoratory两单词的前三个字母组合而成.Matlab系统由Matlab开发环境、Matlab数学函数库、Matlab语言、Matlab图形处理系统和Matlab应用程序接口(API)五大部分构成。
自上世纪70年代发展以来,经过多年的补充完善以及数个版本的升级换代,逐渐发展为了集图形交互、通用科学计算、程序语言设计和系统控制于一体的庞大软件。
在以商品形式出现后的短短几年时间里,MATLAB就以其很好的开放性和运行的可靠性,使原来在控制领域的封闭式的软件纷纷淘汰。
20世纪90年代,MATLAB就已成为了国际控制界内公认的标准计算软件,在数值计算方面MATLAB超过了30多个数学类科技应用软件,独占鳌头。
(二)Simulink及ControlSystemToolbox简介
1.Simulink
Simulink是MATLAB的一种可视化的仿真工具,它是实现动态系统建模和仿真的一个软件包,是一种基于MATLAB的框图设计环境,被广泛应用于线性系统、非线性系统、数字控制及数字信号处理的建模和仿真中。
它与MATLAB最大的区别在于它与用户交互接口是基于Windows的模型化图形输入的,从而使得用户把更多的精力投入到系统模型的构建而非语言的编程上。
Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。
2.ControlSystemToolbox(控制系统工具箱)
Matlab工具箱大致有30多个,可以分为两类:
功能型工具箱和领域型工具箱,控制系统工具箱是专业性很强的领域型工具箱的一种,用于完成一般控制系统工程设计,提供了功能强大的图形化用户界面的设计工具LTIViewer,用户可在图形化界面中同时通过图表得知一个或数个系统的变化,即使用者可在图形化界面中分析系统的时域特性和频域特性。
控制系统工具箱还提供了能够迅速完成补偿设计的图形化设计工具——SISO设计工具,可以帮助用户以图形化的方式来调整系统的增益值、分析设计系统的零极点、分析校正器,同时可以观察闭环响应与稳定裕量等。
三、根轨迹设计方法及其在控制系统中的应用[9][18][19]
(一)根轨迹方法简介
1948年,伊文斯(W·R·EVANS)提出了直接由系统的开环传递函数确定系统闭环特征根的图解法,即工程上广泛使用的根轨迹法。
利用这一方法可以分析系统的性能,确定系统应有的结构和参数,也可用于校正装置的综合,根轨迹法的基础是系统的传递函数,这一方法仅适用于线性系统。
根轨迹法是一种图解方法,它是古典控制理论中对系统进行分析和综合的基本方法之一。
它描述的是系统某个参数(通常指增益)从零变化到无穷大时的闭环极点的位置变化。
由于根轨迹图直观地描述了系统特征方程的根(即系统的闭环极点)在s平面上的分布,因此,用根轨迹法分析自动控制系统十分方便,特别是对于高阶系统和多回路系统,应用根轨迹法比用其他方法更为方便,因此在工程实践中获得了广泛应用。
(二)控制系统的根轨迹分析方法[18]
控制系统的根轨迹分析方法,是首先根据系统的结构和参数绘制出闭环系统的根轨迹图,然后再根轨迹图上分析系统的稳定性、计算系统的动态性能和稳态性能。
在根轨迹图上可以进行反馈系统的综合或校正。
1.控制系统的设计问题
根据给定的被控对象和自动控制的技术要求,进行控制器设计,使控制器与被控对象组成的系统能较好地完成自动控制任务。
设计问题要求设计整个控制器(包括设备选型、可靠性、经济性等实际问题)。
2.控制系统的校正问题[19]
所谓校正,就是在系统中加入一些其参数可以根据需要而改变的机构或装置,使系统整个特性发生变化,从而满足给定的各项性能指标。
这一附加装置称为校正装置。
加入校正装置后使未校正系统的缺陷得到补偿,这就是校正作用。
常用的校正方式有串联校正、反馈校正、前馈校正和复合校正4种。
本文我们所涉及的是反馈校正。
(1)超前校正网络
无源超前校正网络的传递函数可写为
其中a>1,故超前网络的负实零点总是位于其负实极点之右,起到微分作用,a的值选的越大,则超前网络的微分作用越强。
(2)滞后校正网络
无源滞后校正网络的传递函数可写为
其中b<1,故滞后网络的负实极点总是位于其负实零点之右,起到积分作用。
(三)根轨迹法在控制系统中的应用[18]
根轨迹法校正的特征是基于闭环系统具有一对主导闭环极点,并且,零点和附加的极点会影响响应特性,在系统中加入校正装置,相当于增加了新的开环零极点,这些零极点将使校正后的闭环根轨迹,向有利于改善系统性能的方向改变,系统闭环零极点重新布置,从而满足闭环系统性能的要求。
1.开环零点对根轨迹的影响
(1)改变了实轴上根轨迹的分布。
(2)改变了根轨迹渐近线的条数、与实轴的交点的坐标及夹角的大小。
(3)使系统的根轨迹向左偏移。
提高了系统的稳定度,有利于改善系统的动态性能。
开环负实零点离虚轴越近,这种作用越大。
(4)开环零点和极点重合或相近时,二者构成开环偶极子。
开环偶极子中的零点和极点对根轨迹的影响可以忽略不计。
通过加入开环零点构成开环偶极子的方法可抵消有损系统性能的极点对系统产生不利的影响。
2.开环极点对根轨迹的影响
(1)改变了实轴上根轨迹的分布;
(2)改变了根轨迹的渐近线的条数、与实轴的交点的坐标及夹角的大小;
(3)使系统的根轨迹向右偏移。
降低了系统的稳定度,有损于系统的动态性能,使得系统响应的快速性变差。
开环负实极点离虚轴越近,这种作用越大。
当系统的性能指标是以最大超调量、上升时间、调整时间、阻尼比以及希望的闭环阻尼比、闭环极点无阻尼震荡频率等表示时,采用根轨迹法进行校正比较方便,在设计系统时,如果需要对增益以外的参数进行调整,则必须通过引入适当的校正装置来改变原来的零极点。
四、直线一级倒立摆模型的线性化[10][11]
对于倒立摆系统,由于其本身是自然不稳定的系统,实验建模存在一定的困难。
但是经过小心的假设忽略掉一些次要的因素后,倒立摆系统就是一个典型的运动的刚体系统,可以在惯性坐标系内应用经典力学理论建立系统的动力学方程。
下面是通过牛顿-欧拉方法建立的直线型一级倒立摆系统的数学模型。
由于状态反馈要求的被控系统是一个线性系统,而倒立摆系统本身却是一个非线性系统,因而用状态反馈控制倒立摆系统时,首先要做的是将这个非线性的系统近似为线性系统。
本文用两种方法进行了线性化,
1.在摆角
=0附近将其非线性数学模型线性化;
2.采用Simulink搭建非线性仿真模型,并将其进行了线性化。
(一)参量的假设以及系统内部各相关参数的假设
1.参量的假设
M小车质量
m摆杆质量
b小车摩擦系数
l摆杆转动轴心到杆质心的长度
I摆杆惯量
F加在小车上的力
g重力加速度
x小车的位置
摆杆与垂直向上方向的夹角
摆杆与垂直向下方向的夹角(初始位置为竖直向下)
2.系统内部各相关参数的假设
M小车质量1.096kg
m摆杆质量0.109kg
b小车摩擦系数0.1N/m/sec
l摆杆转动轴心到杆质心的长度0.25m
I摆杆惯量0.0034kg*m*m。
由牛顿-欧拉方法可知倒立摆系统的非线性模型为:
(二)在摆角
=0附近将其非线性数学模型线性化
方程中
,当
与1(单位为弧度)相比很小时,可进行近似处理:
,
,
,用符号u代替被控对象的输入量F,将上三等式带入
,得到近似的线性模型如下:
从而得到倒立摆的传递函数模型为
其中
状态空间模型为
其中,
1.利用线性化后的传递函数模型在Matlab中求解摆杆角度控制器的传递函数
前面我们已经获得了倒立摆系统开环的传递函数,小车的推力作为输入(单位阶跃),倒立摆系统摆杆的角度作为输出,则被控对象的传递函数为
其中令
则
给系统施加一个单位阶跃扰动,输出量为摆杆角度时,系统框图如4-1所示:
图4-1
一般情况下,输入r(s)=0,系统框图可变换成如图4-2所示:
图4-2
其中,Gs是单位阶跃输入到摆杆角度输出的传递函数,反馈环节的Cs则是所要设计的摆杆角度的控制器。
2.线性系统传递函数的Matlab描述
在Matlab中,通过求解状态方程中的系数矩阵来求得系统的传递函数。
以下是输入为单位阶跃干扰,输出为摆杆角度的系统传递函数的m-file
%直线一级倒立摆的传递函数
M=1.096;
m=0.109;
b=0.1;
l=0.25;
I=0.0034;
g=9.8;
p=(I*(M+m)+M*m*l^2);
A=[0100;
0-(I+m*(l^2))*b/p(m^2)*g*(l^2)/p0;
0001;
0-m*l*b/pm*g*l*(M+m)/p0];
B=[0;(I+m*l^2)/p;0;m*l/p];
C=[1000;0010];
D=[0;0];
Gz=ss(A,B,C,D)
Gc=tf(Gz)
Gs=zpk(Gz(2,1))
%------end---------
执行上面文件,可以依次得到系统的状态空间表达式、系统的传递函数,以及零极点增益模型如下:
状态空间表达式
a=
x1x2x3x4
x10100
x20-0.088320.62930
x30001
x40-0.235727.830
b=
u1
x10
x20.8832
x30
x42.357
c=
x1x2x3x4
y11000
y20010
d=
u1
y10
y20
Continuous-timemodel.
传递函数表达式
Transferfunctionfrominputtooutput...
0.8832s^2-23.09
#1:
---------------------------------------
s^4+0.08832s^3-27.83s^2-2.309s
2.357s+1.012e-016
#2:
-----------------------------------
s^3+0.08832s^2-27.83s-2.309
零极点增益表达式
Zero/pole/gain:
2.3566s
-------------------------------
(s-5.273)(s+5.278)(s+0.08299)
(三)采用Simulink搭建非线性仿真模型,并将其进行了线性化
1.非线性模型
将其整理化简,如下式:
2.搭建仿真模型,如图4-3
其中,
x小车位置;
x’小车速度;
θ摆杆角度;
θ’摆杆角速度;
图4-3
双击增益模块,打开FunctionBlockParameters,如图4-4所示,并计算出非线性模型的各个增益,
K1=0.8298755186721992
K2=0.1
K3=0.02725
K4=97.9192166462668299
K5=0.267105
图4-4
3.在Simulink中进行线性化,采用MatlabR2010a:
(1)设置线性化点:
在要设置的线上右键:
LinearizationPoint,选择InputPoint,outputPoint。
分别设置单位阶跃为InputPoint,小车位置和摆杆角度为outputPoint。
(2)打开Tools|ControlDesign—LinearAnalysis.
(3)在ControlandEstimationToolManager窗口中,打开DefaultOperatingPoint,设置simu/Integer3的稳态值为pi,即摆杆最终为竖直状态。
(4)选择LinearizationTask,单击左下角的LinearizeModel。
(5)选择Model,可以看到线性化后的结果,如下:
其中,x1,x2,x3,x4分别表示小车位置、小车速度、摆杆角度、摆杆角速度。
LinearizationResult:
- ToplottheresponseofthisresultclickonthenodelabeledCustomViews.
- ToexporttheresultclickontheExportToWorkspacebuttonbelow.
a =
x1 x2 x3 x4
x1 0 1 0 0
x2 0 -0.08831 0.6294 0
x3 0 0 0 1
x4 0 -0.2356 27.83 0
b =
u1
x1 0
x2 0.8832
x3 0
x4 2.357
c =
x1 x2 x3 x4
y1 1 0 0 0
y2 0 0 1 0
d =
u1
y1 0
y2 0
Continuous-time model.
StateNames:
x1-Integrator1
x2-Integrator2
x3-Integrator3
x4-Integrator4
InputChannelNames:
u1-F
OutputChannelNames:
y1-x
y2-θ
(6)Simulink线性化验证
由前面可知,倒立摆系统的状态空间模型的表达式为
a=
x1x2x3x4
x10100
x20-0.088320.62930
x30001
x40-0.235727.830
b=
u1
x10
x20.8832
x30
x42.357
c=
x1x2x3x4
y11000
y20010
d=
u1
y10
y20
由此,由于Simulink方正时各个增益的计算过程存在误差,所以最终的结果会出现上面的微小误差。
五、基于线性模型的根轨迹法控制器设计与调节[4][6][12]][13][14]
本章用根轨迹法设计控制器,对直线一级倒立摆系统的摆杆角度进行控制,使得当扰动为单位阶跃作用时,摆杆稳定时,角度小于等于0.08rad,调整时间小于等于3s。
首先,由第四章可以得到系统的开环传递函数;其次,根据开环传递函数设计控制器,用SISOTOOL进行根轨迹分析,绘制单位阶跃响应曲线来检