直线一级倒立摆系统建模Word格式.docx
《直线一级倒立摆系统建模Word格式.docx》由会员分享,可在线阅读,更多相关《直线一级倒立摆系统建模Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
由于在实际中有很多这样的系统,因此对它的研究在理论上和方法论上均有深远的意义。
本文首先简单的介绍了一下倒立摆以及倒立摆的控制方法,并对其参数优化算法做了分类介绍。
然后,介绍了本文选用的优化参数的算法遗传算法的基本理论和操作方法。
接着建立了一级倒立摆的数学模型,并求出其状态空间描述。
本文着重讲述的是利用遗传算法来对PID的参数进行优化的实现方法。
最后,用Simulink对系统进行了仿真,得出遗传算法在实际控制中是一种较为理想的PID参数优化方法的结论。
关键词:
PID控制器;
一级倒立摆;
仿真
第一章概述
1.1倒立摆介绍以及应用
倒立摆控制系统是一个复杂的、不稳定的、非线性系统,是进行控制理论教学及开展各种控制实验的理想实验平台。
对倒立摆系统的研究能有效的反映控制中的许多典型问题:
如非线性问题、鲁棒性问题、镇定问题、随动问题以及跟踪问题等。
通过对倒立摆的控制,用来检验新的控制方法是否有较强的处理非线性和不稳定性问题的能力。
倒立摆主要应用在以下几个方面:
(1)机器人的站立与行走类似于双倒立摆系统,尽管第一台机器人在美国问世至今已有三
十年的历史,机器人的关键技术--机器人的行走控制至今仍未能很好解决。
(2)在火箭等飞行器的飞行过程中,为了保持其正确的姿态,要不断进行实时控制。
(3)通信卫星在预先计算好的轨道和确定的位置上运行的同时,要保持其稳定的姿态,使卫星天线一直指向地球,使它的太阳能电池板一直指向太阳。
(4)侦察卫星中摄像机的轻微抖动会对摄像的图像质量产生很大的影响,为了提高摄像的质量,必须能自动地保持伺服云台的稳定,消除震动。
(5)为防止单级火箭在拐弯时断裂而诞生的柔性火箭(多级火箭),其飞行姿态的控制也可以用多级倒立摆系统进行研究。
由于倒立摆系统与双足机器人、火箭飞行控制和各类伺服云台稳定有很大相似性,因此对倒立摆控制机理的研究具有重要的理论和实践意义。
1.2倒立摆的控制方法
倒立摆有多种控制方法[1]。
对倒立摆这样的一个典型被控对象进行研究,无论在理论上和方法上都具有重要意义。
不仅由于其级数增加而产生的控制难度是对人类控制能力的有力挑战,更重要的是实现其控制稳定的过程中不断发现新的控制方法,探索新的控制理论,并进而将新的控制方法应用到更广泛的受控对象中。
当前,倒立摆的控制方法可分为以下几类:
(1)线性理论控制方法
将倒立摆系统的非线性模型进行近似线性化处理,获得系统在平衡点附近的线性化模型,然后再利用各种线性系统控制器设计方法,得到期望的控制器。
PID控制、状态反馈控制、能量控制[2]、LQR控制算法是其典型代表。
(2)预测控制和变结构控制方法
预测控制:
是一种优化控制方法,强调的是模型的功能而不是结构。
变结构控制:
是一种非连续控制,可将控制对象从任意位置控制到滑动曲面上仍然保持系统的稳定性和鲁棒性,但是系统存在颤抖。
预测控制、变结构控制和自适应控制在理论上有较好的控制效果,但由于控制方法复杂,成本也高,不易在快速变化的系统上实时实现。
第二章一级倒立摆的模型
2.1一级倒立摆的物理模型
倒立摆的物理构成可以表述为:
光滑的导轨,可以在导轨上自由移动的小车,和一个质量块的摆杆。
它们的铰接方式决定了它们在竖直平面内运动。
水平方向的驱动力
使小车根据摆角的变化而在导轨上运动,从而达到倒立摆系统的平衡。
该系统的被控变量分别为:
为摆杆偏离垂直方向的角度,
为小车相对参考点(导轨的最左端位置)的相对位移。
摆杆的中心坐标为(
)。
实际上,倒立摆系统要保持竖直方向的稳定状态,前提是摆杆与竖直方向所成的角度必须在一定的范围之内。
一般情况下,要求不得小于5
。
2.2一级倒立摆的数学模型
利用牛顿力学方法建立直线型一级倒立摆系统的数学模型。
为简化系统,我们在建模时忽略了空气阻力和各种摩擦,并认为摆杆为刚体。
在忽略了空气阻力和各种摩擦之后,可将直线一级倒立摆系统抽象成小车和匀质杆组成的系统,如图2.1所示。
图2.1直线一级倒立摆的物理模型
我们不妨做以下假设:
M小车质量
m摆杆质量
b小车摩擦系数
l摆杆转动轴心到杆质心的长度
I摆杆惯量
φ摆杆与垂直向上方向的夹角
θ摆杆与垂直向下方向的夹角(考虑到摆杆初始位置为竖直向下)
倒立摆系统数学模型的建立基于以下假设:
1.摆杆及小车都是刚体。
2.皮带轮与皮带之间无相对滑动,传动皮带无伸长现象。
3.小车的驱动力与直流放大器的输入成正比,而且无滞后,忽略交流伺服电机电枢组中的电感。
4.实验过程中的库仑摩擦、各种动摩擦等所有摩擦力足够小,在建模过程中可忽略不计。
对摆杆进行受力分析,建立一级倒立摆系统的数学模型。
对摆杆的受力分解如图2.2所示。
图中
为摆杆与竖直方向的夹角。
为小车对摆杆的水平分力,
为小车对摆杆的竖直分力。
图2.2对摆杆的受力分析
水平方向的方程为:
(2.1)
竖直方向的方程为:
(2.2)
将两个方程合并:
(2.3)
当摆杆与垂直向上方向之间的夹角相比很小时,则可以进行如下处理:
为了得到控制理论的习惯表达,即u为一般控制量,用u代表控制量的输入力F,线性化得到数学模型方程为:
(2.4)
(2.5)
将(2.4),(2.5)进行拉普拉斯变化为:
(2.6)
整理后得以u为输入量,以摆杆摆角为输出量的传递函数,将上式整理得:
(2.7)
其中
由现代控制理论可知,控制系统的状态空间方程为:
(2.8)
方程组对
解代数方程,得如下状态空间方程:
(2.9)
(2.10)
以小车加速度作为输入的系统状态方程,设摆杆长为0.25m,设
,
则有:
(2.11)
(2.12)
第三章直线一级倒立摆PID控制器系统仿真研究
3.1PID控制器的设计
本文采用的方法是在得到被控对象有效模型的基础上,通过评价MATLAB仿真控制系统的性能指标对控制器参数进行优化的。
由于一级倒立摆是一个多输入多输出的多变量系统,而PID是一个单输入单输出的控制器,所以这里用两个PID控制器分别对一级倒立摆的两个变量进行控制。
这两个变量分别是小车的位移,一级摆的角度。
由于应用遗传算法来整定PID参数其中有一个步骤是在利用遗传算法对PID参数的比例系数Kp、积分系数Ki和微分系数Kd进行搜索时,可先根据经验粗略地选择一个搜索范围,然后可利用搜索结果缩小搜索范围再进行搜索,直至获得一个较合适的搜索范围和
为止。
3.2一级倒立摆系统的Simulink模型及系统仿真
3.2.1MATLAB及Simulink
MATLAB是美国MathWorks公司出品的商业数学软件[9],用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
而Simulink是MATLAB最重要的组件之一[10],它提供一个动态系统建模、仿真和综合分析的集成环境。
在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。
Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。
同时有大量的第三方软件和硬件可应用于或被要求应用于Simulink。
3.2.2一级倒立摆系统的Simulink的模型
这两个变量分别是小车的位移和一级摆的角度。
3.2.3PID控制分析
由前面的讨论已知实际系统的物理模型:
对于倒立摆系统输出量为摆杆的角度,它的平衡位置为垂直向上的情况。
系统控制结构框图如图2-28,图中KD(s)是控制器传递函数,G(s)是被控对象传递函数。
图3.1PID控制结构框图
此次实验只考虑控制摆杆的角度,小车的位置是不受控的,即摆杆角度的单闭环控制,立起摆杆后,会发现小车向一个方向运动直到碰到限位信号。
那么要使倒立摆稳定在固定位置,还需要增加对电机位置的闭环控制,这就形成了摆杆角度和电机位置的双闭环控制。
立摆后表现为电机在固定位置左右移动控制摆杆不倒。
3.2.4PID控制参数整定及Simulink仿真实验
我们采用以下的方法进行设定。
由系统的实际模型:
在MATLABSimulink下对系统进行仿真。
图3.2直线一级倒立摆PID控制仿真模型
其中“PIDController”为封装(Mask)后的PID控制器,如下图:
图3.3PID控制器
先设置PID控制器为P控制器,令
,得到以下仿真结果:
图3.4摆杆角度响应曲线
从图3.5中可以看出,控制曲线不收敛,因此增大控制量,
得到以下仿真结果:
图2-33改变控制量后摆杆角度响应曲线
从图中可以看出,闭环控制系统持续振荡,周期约为0.8s。
为消除系统的振荡,增加微分控制参数
,令
图2-34增加微分控制参数后摆杆角度响应曲线
第四章设计总结
本次设计是对fuzzy-pid控制器的双容水箱液位控制系统系统的仿真,通过对相应控制系统的设计、分析及仿真,来不断地对控制系统参数进行整定和修改,最终使系统达到稳定状态。
经过这一周的Matlab课程设计,让我认识到了Matlab在各个领域的重要性,同时也对Matlab这门学科有了更深入地了解。
这次课程设计使自己学到了很多知识,更进一步地加深了自己对Matlab/Simulink软件的认识与了解。
除此之外,还学到了很多在书本上所没有学到的知识,并且提高了自己查阅资料、分析问题、解决问题的能力,也使自己对控制系统仿真的整体性有了一定的了解。
我觉得想要学好MATLAB是不容易的,这是一件需要持之以恒的事,必须要坚持不懈的学习,还需要敢于开口向别人请教,更需要我们勤于思考,勤于记忆,勤于动手。
程序设计是实践性和操作性很强的事情,需要我们亲自动手。
因此,我们应该经常自己动手实际操作设计程序,熟悉MATLAB的操作,这对提高我们的操作能力非常有效。
我的课程设计能够顺利完成,首先要感谢学校和老师能给予我们这次课程设计的机会。
其次要感谢我的指导老师梁老师,在设计的过程当中梁老师给予了我热情的帮助和悉心的指导,在此我要向她说声谢谢。
通过这次理论与实际结合的学习,加深了我对专业知识的学习,更重要的是锻炼了我的能力,这次设计在不断的复习、学习中度过,使我受益匪浅,也使我对Matlab的运用有了进一步的了解和掌握,也为今后的学习生活和工作打下良好的基础。
参考文献
[1]李国勇,控制系统数字仿真与CAD[M],北京:
电子工业出版社,2003,9
[2]王丹力,MATLAB控制系统设计仿真应用[M],北京:
中国电力出版社,2007,9
[3]薛定宇,控制系统仿真与计算机辅助设计[M],北京:
机械工业出版社,2005,1
[4]金以慧,过程控制[M],北京:
清华大学出版社,2003,6
[5]刘金琨.先进PID控制及其MATLAB仿真[M].北京:
电子工业出版社,2003,
[6]薛定宇.控制系统计算机辅助设计—MATLAB语言及应用[M].北京:
清华大学出版社,1996
[7]易继锴.智能控制技术[M].北京:
北京工业大学出版社,2003.
[8]李国勇.控制系统数字仿真与CAD[M].北京:
电子工业出版社,2011.
[9]邵裕森.过程控制及仪表[M].上海:
上海交通大学出版社,1995.
[10]金以慧.过程控制[M].北京:
清华大学出版社,2003.
[11]刘文定.过程控制系统的Matlab仿真[M].北京:
机械工业出版社,2009.
[12]徐金明.MATLAB实用教程[M].北京:
清华大学出版社,2005.