1、目录摘要:I一、引言1二、设计目的1三、设计要求1四、设计原理1五、设计步骤11.一阶倒立摆建.22.模糊控制器的置.33.系统的simulink仿真.8 六、结论10七、参考文献.11八、致谢. 12- 2 - 摘要:通过对单级倒立摆的双闭环的控制数学模型的分析,采用模糊控制理论对倒立摆的控制系统进行计算机仿真。其中,内环控制倒立摆的角度,外环控制倒立摆的位置。在Matlab环境下的仿真步骤包括:定义隶属度函数及模糊控制规则集,解模糊。结果表明,摆杆角度和小车位置的控制过程均具有良好的动态性能和稳态性能。关键词:倒立摆;模糊逻辑控制;计算机仿真;MatlabApplication of Do
2、uble ClosedLoop Fuzzy Controller in Single Inverted PendulumJIA Rongcong,W ANG Huayi(School of Control Science Engineering,Shandong University,Jinan 25006 1,China)Abstract:Through analyzing the double closedloop control mathematical model of single inverted pendulumthe fuzzycontrol theory was adopte
3、d to carry out computer Simulation for inverted pendulumThe inner loop regulated the angle ofpendulumwhile the outer 1oop controlled the position of inverted pendulumThe simulation steps in the environment ofMatlab include defining membership funotionsestablishing fuzzy control rules sets and defuzz
4、ificationThe Simulationresults showed the control process of pendulum angle and cart position had good dynamic performance and stabilityKeywords:Inverted pendulum:Fuzzy logic control:Computer Simulation:Matlab2一、引言倒立摆是典型的快速、多变量、非线性、绝对不稳定系统。早在20世纪50年代,麻省理工学院 (MIT)的控制论专家就根据火箭发射助推器原理设计出一阶倒立摆实验设备,此后其控制方
5、法和思路在军工、航天、机器人领域和一般工业过程中都有着广泛的用途,如机器人行走过程中的平衡控制、火箭发射中的垂直度控制、卫星发射架的稳定控制、飞机安全着陆、化工过程控制以及日常生活中所见的任何重心在上、支点在下的控制问题等,均涉及到“立摆问题”。事实上,人们一直在试图寻找不同的控制方法来实现对倒立摆的控制,以便检查或说明该方法对严重非线性和绝对不稳定系统的控制能力。MATLAB是美国MathWorks软件公司于1984年推出的一种用于科学计算的高性能语言。它集数值计算、图形图像显示以及编程于一体,是常用的控制系统分析与设计工具。1990年,Math Works软件公司为MATLAB提供了新的控
6、制系统图形化模型输入与仿真工具Simulink。这是MAT-LAB的一个扩展软件模块。该模块提供了一个建模、分析与仿真等多种物理与数学问题软件环境,并为图形用户界面提供了动态系统的结构方块图模型,从而使用户可以既快又方便地对系统进行建模、仿真 而不必写任何代码程序。因此,该工具很快就在控制工程界获得了广泛的认可,并使仿真软件进入了系统模型的图形组态阶段。本文讨论了基于MATLAB的一阶倒立摆双闭环PID控制系统的建模与仿真,并整定出最优控制参数二、设计目的 倒立摆是一个非线性、不稳定系统,经常作为研究比较不同控制方法的典型例子。设计一个倒立摆的控制系统,使倒立摆这样一个不稳定的被控对象通过引入
7、适当的控制策略使之成为一个能够满足各种性能指标的稳定系统。三、设计要求 倒立摆的设计要求是使摆杆尽快地达到一个平衡位置,并且使之没有大的振荡和过大的角度和速度。当摆杆到达期望的位置后,系统能克服随机扰动而保持稳定的位置。实验参数自己选定,但要合理符合实际情况,控制方式为双双闭环模糊控制,并利用 MATLAB进行仿真,并用simulink对相应的模块进行仿真。四、 设计原理 倒立摆控制系统的工作原理是:由轴角编码器测得小车的位置和摆杆相对垂直方向的角度,作为系统的两个输出量被反馈至控制计算机。计算机根据一定的控制算法,计算出空置量,并转化为相应的电压信号提供给驱动电路,以驱动直流力矩电机的运动,
8、从而通过牵引机构带动小车的移动来控制摆杆和保持平衡。五、设计步骤首先画出一阶倒立摆控制系统的原理方框图 一阶倒立摆控制系统示意图 1.一阶倒立摆建模在忽略了空气流动阻力,以及各种摩擦之后,可将倒立摆系统抽象成小车和匀质杆组成的系统,如下图所示,其中: M:小车质量 m:为摆杆质量 J:为摆杆惯量 F:加在小车上的力 x:小车位置 :摆杆与垂直向上方向的夹角 l :摆杆转动轴心到杆质心的长度 根据牛顿运动定律以及刚体运动规律,可知:(1) 摆杆绕其重心的转动方程为 (2) 摆杆重心的运动方程为得(3)小车水平方向上的运动为联列上述4个方程,可以得出一阶倒立精确气模型:式中J为摆杆的转动惯量:若只
9、考虑在其工作点附近0=0附近()的细微变化,则可以近似认为: 若取小车质量M=1kg,摆杆质量m=1kg,摆杆长度2 l =0.6m,重力加速度取g=,则可以得一阶倒立摆简化模型: 拉氏变换 即 G1(s)= ; G2(s)= 由系统的传递函数可得系统动态结构图如下图所示:系统动态结构图由系统的动态结构图可得系统的状态方程模型。设系统的状态方程为:X=则有系统状态方程X= + F=AX+BF输出方程Y=CXD=由此可见,通过对系统模型的简化,得到了一阶直线倒立摆系统的微分方程、传递函数、状态方程三种线性定常的数学模型,这位下面的系统设计奠定了基础。2.模糊控制器的设计(1)隶属度函数的定义 由
10、模糊控制理论可知,在进行模糊控制算法的设计之前必须将系统精确量的输入输出转换成对应的语言值,即必须首先确定各个输入输出量的论域及隶属函数。论域的确定可通过对实物装置的测量(如倒立摆的摆角范围和小车位移范围)、实验辨识或者通过经验知识确定(角速度和线速度范围)。对于隶属函数像是的选择,为了简化运算、缩短控制周期,对输入、输出变量隶属函数均采用较为简单的形式即三角形或梯形隶属函数。经过这样的定以后系统的模糊化和解模糊过程将变得十分简单。各变量隶属函数的具体定义如下图所示: /rad x/m /rad /m F/N u/rad 内环隶属函数 外环隶属函数 (2)模糊控制规则 模糊控制规则是模糊控制器
11、的核心,它是将操作者的实践经验加以总结,而得到的一条条模糊条件语句的集合。在一阶倒立摆双闭环模糊控制系统中,内、外环控制器的输入量均为偏差及其对应的偏差变化率,输出为空置量。在这种情况下,可以借助经验公式设计控制规则:将五个模糊子集nb,ns,z,ps,pb分别用数值-2,-1,0,1,2代换,则结论的数字大约两个前件数值代数和的一半。依此经验公式选定控制规则的初值,再经实验调整,即可得到系统内外环的模糊控制规则集,按照上述方法得到的一阶倒立摆系统双闭环模型内外环模糊控制器的具体规则如下表:内环模糊控制规则Fnbnszpspb2nbnszpspbnbnsnbnsznbnbnszpsnbnszp
12、spbnszpspbpbzpspbpbpb外环模糊控制规则u1nbnszpspb1nbnszpspbnbnsnbnsznbnbnszpsnbnszpspbnszpspbpbzpspbpbpb模糊控制器在MATLAB模糊逻辑工具箱里的的设置如下图以上五个图为内环模糊控制器的参数设置以上五个图为外环模糊控制器的参数设置3. 系统的simulink仿真系统仿真模型包含倒立摆模型包含倒立摆模型(inverted pendulum)、内外环模糊控制器(Fuzzy Logic Controller、)、差分模块(difference)、增益模块(K)、数据文本输入模块(仿真数据输出到文本mohu.mat)
13、。仿真模型如下图:系统仿真模型差分模块diference的内部结构为1) 考虑仿真时间问题采用微分计算系统过程的计算将变得很大,特别是在系统的暂态过程中,有可能出现某一瞬时的微分量很大导致微分计算困难。2) 考虑与实物实验的一致性。在实物平台上由于采用离散的控制器(计算机、DSP等),实际系统的变量变化率求取同样是采用差分的办法。差分模块子系统(difference)中采用的零阶采样保时器(Zero-Order Hold)起到了将离散输出量“连续化”的作用。3) 建立模糊逻辑系统 利用前述的模糊控制理论的知识,分别建立系统内外环模糊控制系统,并将它们分别命名,如“fuzzy”和“fuzzy1”
14、,再分别双击Simulink系统仿真模型中的内外环模糊控制器模块,在弹出的对话框中分别键入两个系统的名称。这样就建立MATLAB模糊逻辑系统与Simulink系统仿真模型之间的联系,继而可运行Simulink仿真。4) 利用仿真数据文本绘制仿真曲线 运行Simulink仿真结束后,仿真结果被保存到仿真数据文本mohu.mat中,可在MATLAB中建立一个m文件调用该数据文件绘制仿真结果曲线。以下是m文件,编写程序如下:t=signals(1,:);q=signals(2,:);x=signals(3,:);figure(1)hf=liload mohu.matne(t,q(:);grid on
15、xlabel(时间(s)ylabel(摆角(rad)axis(0 25 -0.02 0.16)axet=axes(Position,get(gca,Position),. XAxisLocation,bottom,. YAxisLocation,right,Color,None,. XColor,k,YColor,k);ht=line (t, x,color,r,parent, axet);ylabel(位置(m)axis (0 25 -0.02 0.16)title( theta(t) and x(t) Response to a step input)gtext(leftarrow x(t
16、),gtext(theta(t)downarrow)5)仿真结果图 利用仿真数据文本mohu.mdt中的数据,可以绘制如图7-2-1的仿真结果曲线。仿真实验结果6) 实验分析:对仿真模型参数设置, 倒立摆模型的A,B,C,D为前面计算得到的结果:差分模块采样时间为10ms,所以Unit Delay与Zero-Order Hold的采样时间都设置为0.01即0.01s=10ms,差分模块内的增益设置为100;增益模块的增益设置K=0.4,输出信号是阶跃信号,采样时间与采样频率有关,而,也影响了阶跃响应的峰值时间、超调量等,K值的设定就很关键。六、结论1、以单级直线倒立摆为控制对象,设计了双闭环模
17、糊控制方案。该方案将多变量系统的模糊控制问题转化为2个传统的二维模糊控制器的设计问题,降低设计难度,得到较高控制精度。仿真结果表明设计方案的正确性和有效性。2、通过实验了解了一阶倒立摆是的非线性、不确定性、不稳定系统和约束限制,同时倒立摆也是经常作为研究比较不同控制方法的典型例子。3、对一阶倒立摆控制系统的研究使我了解到倒立摆还有二阶倒立摆、三阶倒立摆,甚至四阶倒立摆,同时还涉及到起摆的问题!增加了了倒立摆研究的兴趣!4、在建立的一阶倒立摆控制系统忽略了许多因素,做了一些简化处理,即建立的只是一阶倒立摆控制系统的简化模型。当摆杆的质量和摆长超过一定范围,系统会失效,所以该系统有待改进!5、做作
18、业的过程中发现有很多内容还不太熟练,以后的多多联系,同时发现MATLAB的功能确实很强大,很有用,一定得学好才行!七、参考文献【1】丛爽,张冬军,魏衔单级倒立摆三种控制方法的对比研究 系统工程与电子技术,2001,266(11):47 49【2张乃尧基于神经网络的模糊自适应控制研究综述【A】首都高校第三届自动控制学术报告会论文集c】1994173一l76【3】黄忠霖控制系统MATLAB计算及仿真【M】北京:国防工业出版社,2001【4】李士勇模期控制、神经控制和智能控制论M哈尔滨,哈尔滨工业大学出版杜1996【5】闻新,等模糊逻辑工具箱的分析与应用M北京,科学出版社2000【6】张晓华控制系统数字仿真与CAD【M】哈尔滨,机械工业出版社2005.八、致谢在完成论文之际,我真心地感谢在设计之中给予我帮助的秦建波老师,在这学期的学习中,覃老师以严谨的治学态度跟我们一起学习控制系统数字仿真与CAD这门课程,教会我把以前学过的知识运用到系统仿真中来,通过一个学期的学习,我对matlab的运用有了一定的理解。在此向老师表示诚挚的谢意和深深的敬意!在论文的完成过程中,一些同学也给了我一定的帮助,在此也谢谢他们!11