(强烈推荐)基于matlab的倒立摆模糊控制_毕业论文报告

智能控制理论及应用课程设计报告

题目:基于matlab的倒立摆模糊控制

院系:西北民族大学电气工程学院

专业班级:10级自动化(3)班

学生姓名:蔡余敏

指导教师:刁晨

2013.10

基于MATLAB的倒立摆模糊控制

作者:蔡余敏指导老师:刁晨

摘要:倒立摆的控制问题就是使摆杆尽快地达到一个平衡位置,并且使之没有大的振荡和过大的角度和速度。当摆杆到达期望的位置后,系统能克服随机扰动而保持稳定的位置。本文主要针对较为简单的单级倒立摆控制系统而进行的设计分析。通过建立微分方程模型,求出相关参数,设计出对应的模糊控制器,并运用MATLAB软件进行系统模型的软件仿真,从而达到预定控制效果。目前,一级倒立摆的研究成果应用于火箭发射推进器和控制卫星的飞行状态等航空航天领域。

关键词:单级倒立摆;微分方程;模糊控制;MATLAB仿真

1背景分析

倒立摆控制系统是一个复杂的、不稳定的、非线性系统,是进行控制理论教学及开展各种控制实验的理想实验平台。对倒立摆系统的研究能有效的反映控制中的许多典型问题:如非线性问题、鲁棒性问题、镇定问题、随动问题以及跟踪问题等。通过对倒立摆的控制,用来检验新的控制方法是否有较强的处理非线性和不稳定性问题的能力。同时,其控制方法在军工、航天、机器人和一般工业过程领域中都有着广泛的用途,如机器人行走过程中的平衡控制、火箭发射中的垂直度控制和卫星飞行中的姿态控制等。

正是由于倒立摆系统的特殊性,许多不同领域的专家学者在检验新提出理论的正确性和实际可行性时,都将倒立摆系统作为实验测试平台。再将经过测试后的控制理论和控制方法应用到更为广泛的领域中去。现代控制理论已经在工业生产过程、军事科学、航空航天等许多方面都取得了成功的应用。例如极

小值原理可以用来解决某些最优控制问题;利用卡尔曼滤波器可以对具有有色噪声的系统进行状态估计;预测控制理论可以对大滞后过程进行有效的控制。但是它们都有一个基本的要求:需要建立被控对象的精确数学模型。

随着科学技术的迅猛发展,各个领域对自动控制控制精度、响应速度、系统稳定性与适应能力的要求越来越高,所研究的系统也日益复杂多变。然而由于一系列的原因,诸如被控对象或过程的非线性、时变性、多参数间的强烈耦合、较大的随机干扰、过程机理错综复杂、各种不确定性以及现场测量手段不完善等,难以建立被控对象的精确模型。虽然常规自适应控制技术可以解决一些问题,但范围是有限的。对于像二级倒立摆这样的非线性、多参数、强耦合的被控对象,使用传统控制理论难以达到良好的控制性能。而模糊控制理论能够克服这些困难,达到实际设计要求。

所以说,对倒立摆系统控制理论的研究不仅具有理论研究价值,也具有相当的实际工程应用价值。

2提出控制问题

倒立摆控制问题是展示智能控制方法由于传统控制方法的

典型范例。一级倒立摆的背景源于火箭发射助推器;二级倒立摆于双足机器人控制有关。这里只讨论一级倒立摆的控制问题。

有一个倒立摆控制系统如图2.1所示。

图2.1 倒立摆控制系统

它由小车和倒立摆构成,小车在控制器的作用下,沿滑轨在水平方向运动,使倒立摆在垂直平面内稳定。

倒立摆的控制问题就是使摆杆尽快地达到一个平衡位置,并且使之没有大的振荡和过大的角度和速度。当摆杆到达期望的位置后,系统能克服随机扰动而保持稳定的位置。

倒立摆系统的输入为小车的位移(即位置)和摆杆的倾斜角度期望值,计算机在每一个采样周期中采集来自传感器的小

车与摆杆的实际位置信号,与期望值进行比较后,通过控制算法得到控制量,再经数模转换驱动直流电机实现倒立摆的实时控制。直流电机通过皮带带动小车在固定的轨道上运动,摆杆的一端安装在小车上,能以此点为轴心使摆杆能在垂直的平面上自由地摆动。作用力平行于铁轨的方向作用于小车,使杆绕小车上的轴在竖直平面内旋转,小车沿着水平铁轨运动。当没有作用力时,摆杆处于垂直的稳定的平衡位置(竖直向下)。为了使杆子摆动或者达到竖直向上的稳定,需要给小车一个控制力,使其在轨道上被往前或朝后拉动。

3建立控制模型

首先假设:

①摆杆为刚体;

②忽略摆杆与支点之间的摩擦;

③忽略小车与导轨之间的摩擦。

一级倒立摆系统可抽象成小车与匀质杆组成的系统,假设:M为小车的质量;m为摆杆质量;为摆杆转动轴心到杆质心的长度;I为摆杆惯量;U为加在小车上的力;为小车位置;θ为摆杆与垂直向上方向的夹角。应用Newton第二定律的方法可得到

系统方向的运动方程为

()21'

'Ma Ma F ma G m F x x x +===

()()()()1-3cos sin sin 222222

22??????+??? ??-++=++=dt d dt d ml dt x d m M l dt

d m dt x d m M θθθθθ

规定逆时针方向的力矩为正,以摆与小车的连接点为原点,列出摆的力矩方程:考虑到摆的惯性力矩,求得系统的运动方程为(未考虑摆旋转的摩擦阻力矩)

()

2-3cos sin 343

4sin cos 2222222222θθθρθθθdt x d g dt d l ml m J mgl l dt

x d m dt d J -==∑=-= 由式(3-1)和式(3-2)可得

()()()()

33cos sin cos 34cos 2sin 21sin 222222222-+-??? ??+=+-+????????+??? ??-=m M dt d ml dt d ml F dt x d m M ml l m M F dt d ml g dt d θθθθθθθθθθ

4设计模糊控制器

4.1确定输入输出变量

以摆角θ、摆角角速度、小车位移、速度为状态变量。将这些状态变量作为控制器输入量,以作用在小车的力F 作为模糊控制器输出量。所以分别在四个输入变量的空间建立相应的隶属度函数。

图4.1 四输入变量单级倒立摆

以下分别在MATLAB的仿真图中来说明情况。

确定摆角θ的论域 [-0.3 ,0.3],将其划分为两个语言变量“大”和“小”,隶属度函数如图 4.2;摆角角速度的论域[-1 ,1],划分两个语言变量为“快”和“慢”;隶属度函数如图4.3;小车位移的论域 [-3,3],划分两个语言变量为“远”和“近”;隶属度函数如图4.4;速度的论域 [-3,3],划分两

个语言变量为“快”和“慢”;隶属度函数如图4.5;输出变量的论域为[ -10,10],如图4.6。

图4.2 摆角θ的隶属度函数

图4.3 摆角角速度的隶属度函数

图4.4 位移的隶属度函数

图4.5 速度的隶属度函数

图4.6 输出变量

4.2 设计模糊规则库

这里选取T-S的控制器,控制器根据这4个输入变量,综合得出作用于小车的控制信号。

然后,列出每种输入所对应的输出量的模糊规则,共计设置了16条规则:

1. If (in1 is in1mf1) and (in2 is in2mf1) and (in3 is in3mf1)

and (in4 is in4mf1) then (out is mf1) (1)

? 2. If (in1 is in1mf1) and (in2 is in2mf1) and (in3 is in3mf1) and (in4 is in4mf2) then (out is mf2) (1)

? 3. If (in1 is in1mf1) and (in2 is in2mf1) and (in3 is in3mf2) and (in4 is in4mf1) then (out is mf3) (1)

? 4. If (in1 is in1mf1) and (in2 is in2mf1) and (in3 is in3mf2) and (in4 is in4mf2) then (out is mf4) (1)

? 5. If (in1 is in1mf1) and (in2 is in2mf2) and (in3 is in3mf1) and (in4 is in4mf1) then (out is mf5) (1)

? 6. If (in1 is in1mf1) and (in2 is in2mf2) and (in3 is in3mf1) and (in4 is in4mf2) then (out is mf6) (1)

?7. If (in1 is in1mf1) and (in2 is in2mf2) and (in3 is in3mf2) and (in4 is in4mf1) then (out is mf7) (1)

?8. If (in1 is in1mf1) and (in2 is in2mf2) and (in3 is in3mf2) and (in4 is in4mf2) then (out is mf8) (1)

?9. If (in1 is in1mf2) and (in2 is in2mf1) and (in3 is in3mf1) and (in4 is in4mf1) then (out is mf9) (1)

?10. If (in1 is in1mf2) and (in2 is in2mf1) and (in3 is in3mf1) and (in4 is in4mf2) then (out is mf10) (1)

?11. If (in1 is in1mf2) and (in2 is in2mf1) and (in3 is in3mf2) and (in4 is in4mf1) then (out is mf11) (1)

?12. If (in1 is in1mf2) and (in2 is in2mf1) and (in3 is in3mf2) and (in4 is in4mf2) then (out is mf12) (1)

?13. If (in1 is in1mf2) and (in2 is in2mf2) and (in3 is in3mf1) and (in4 is in4mf1) then (out is mf13) (1)

?14. If (in1 is in1mf2) and (in2 is in2mf2) and (in3 is in3mf1) and (in4 is in4mf2) then (out is mf14) (1)

?15. If (in1 is in1mf2) and (in2 is in2mf2) and (in3 is in3mf2) and (in4 is in4mf1) then (out is mf15) (1)

?16. If (in1 is in1mf2) and (in2 is in2mf2) and (in3 is in3mf2) and (in4 is in4mf2) then (out is mf16) (1)

其中,in1mf1和in1mf2表示角θ是“大”和“小”,in2mf1和in2mf2表示角速度是“快”和“慢”,in3mf1和in3mf2表示位移的“远”和“近”、in4mf1和in4mf2表示速度是“快”和“慢”。

在多输入多输出的模糊逻辑系统中,常可能会有很多规则,并且这些规则的前提部分和结论部分也可以由许多语句组成。前面介绍的IF.THEN规则只是最简单的形式,是最基本的模

糊系统单元。对于复杂的模糊逻辑系统,如果满足“输出一输入解耦的,各输入间、输出间分别是独立的”,就可以用连接词“and”、“or”和“also”连接的一系列简单的模糊规则组成的模糊规则库来表示。其中,“and”和“or”用来连接同一规则的多个输入或多个输出,“also”用来连接多条不同的模糊规则。

模糊推理的规则通常来源于专家的知识,对于多输入多输出系统,其规则库可以看成由n个子规则库所组成,每一个子规则库由n个多输入单输出规则所组成,而且每个子规则库是相互独立的,因此通常只要考虑一个多输入单输出规则库的模糊推理问题,分别求出每一个单输出,组合起来就是最终结果。然后将上述实施规则录入到MATLAB仿真结构中,具体如下图4.7所示。

图4.7 模糊规则

录入结束后要对所指定的输入输出规则进行保存,以便在具体的仿真过程中实现调用,保存的文件扩展名为单级倒立摆

Caymi.fis。

相关文档
最新文档