基于matlab的倒立摆模糊控制课程设计报告.docx
- 文档编号:23709872
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:22
- 大小:908.33KB
基于matlab的倒立摆模糊控制课程设计报告.docx
《基于matlab的倒立摆模糊控制课程设计报告.docx》由会员分享,可在线阅读,更多相关《基于matlab的倒立摆模糊控制课程设计报告.docx(22页珍藏版)》请在冰豆网上搜索。
基于matlab的倒立摆模糊控制课程设计报告
智能控制理论及应用课程设计报告
题目:
基于matlab的倒立摆模糊控制
院系:
西北民族大学电气工程学院
专业班级:
10级自动化(3)班
学生:
蔡余敏
学号:
P101813455
指导教师:
刁晨
2013.10
基于MATLAB的倒立摆模糊控制
作者:
蔡余敏指导老师:
刁晨
摘要:
倒立摆的控制问题就是使摆杆尽快地达到一个平衡位置,并且使之没有大的振荡和过大的角度和速度。
当摆杆到达期望的位置后,系统能克服随机扰动而保持稳定的位置。
本文主要针对较为简单的单级倒立摆控制系统而进行的设计分析。
通过建立微分方程模型,求出相关参数,设计出对应的模糊控制器,并运用MATLAB软件进行系统模型的软件仿真,从而达到预定控制效果。
目前,一级倒立摆的研究成果应用于火箭发射推进器和控制卫星的飞行状态等航空航天领域。
关键词:
单级倒立摆;微分方程;模糊控制;MATLAB仿真
1背景分析
倒立摆控制系统是一个复杂的、不稳定的、非线性系统,是进行控制理论教学及开展各种控制实验的理想实验平台。
对倒立摆系统的研究能有效的反映控制中的许多典型问题:
如非线性问题、鲁棒性问题、镇定问题、随动问题以及跟踪问题等。
通过对倒立摆的控制,用来检验新的控制方法是否有较强的处理非线性和不稳定性问题的能力。
同时,其控制方法在军工、航天、机器人和一般工业过程领域中都有着广泛的用途,如机器人行走过程中的平衡控制、火箭发射中的垂直度控制和卫星飞行中的姿态控制等。
正是由于倒立摆系统的特殊性,许多不同领域的专家学者在检验新提出理论的正确性和实际可行性时,都将倒立摆系统作为实验测试平台。
再将经过测试后的控制理论和控制方法应用到更为广泛的领域中去。
现代控制理论已经在工业生产过程、军事科学、航空航天等许多方面都取得了成功的应用。
例如极小值原理可以用来解决某些最优控制问题;利用卡尔曼滤波器可以对具有有色噪声的系统进行状态估计;预测控制理论可以对大滞后过程进行有效的控制。
但是它们都有一个基本的要求:
需要建立被控对象的精确数学模型。
随着科学技术的迅猛发展,各个领域对自动控制控制精度、响应速度、系统稳定性与适应能力的要求越来越高,所研究的系统也日益复杂多变。
然而由于一系列的原因,诸如被控对象或过程的非线性、时变性、多参数间的强烈耦合、较大的随机干扰、过程机理错综复杂、各种不确定性以及现场测量手段不完善等,难以建立被控对象的精确模型。
虽然常规自适应控制技术可以解决一些问题,但围是有限的。
对于像二级倒立摆这样的非线性、多参数、强耦合的被控对象,使用传统控制理论难以达到良好的控制性能。
而模糊控制理论能够克服这些困难,达到实际设计要求。
所以说,对倒立摆系统控制理论的研究不仅具有理论研究价值,也具有相当的实际工程应用价值。
2提出控制问题
倒立摆控制问题是展示智能控制方法由于传统控制方法的典型例。
一级倒立摆的背景源于火箭发射助推器;二级倒立摆于双足机器人控制有关。
这里只讨论一级倒立摆的控制问题。
有一个倒立摆控制系统如图2.1所示。
图2.1倒立摆控制系统
它由小车和倒立摆构成,小车在控制器的作用下,沿滑轨在水平方向运动,使倒立摆在垂直平面稳定。
倒立摆的控制问题就是使摆杆尽快地达到一个平衡位置,并且使之没有大的振荡和过大的角度和速度。
当摆杆到达期望的位置后,系统能克服随机扰动而保持稳定的位置。
倒立摆系统的输入为小车的位移(即位置)和摆杆的倾斜角度期望值,计算机在每一个采样周期中采集来自传感器的小车与摆杆的实际位置信号,与期望值进行比较后,通过控制算法得到控制量,再经数模转换驱动直流电机实现倒立摆的实时控制。
直流电机通过皮带带动小车在固定的轨道上运动,摆杆的一端安装在小车上,能以此点为轴心使摆杆能在垂直的平面上自由地摆动。
作用力平行于铁轨的方向作用于小车,使杆绕小车上的轴在竖直平面旋转,小车沿着水平铁轨运动。
当没有作用力时,摆杆处于垂直的稳定的平衡位置(竖直向下)。
为了使杆子摆动或者达到竖直向上的稳定,需要给小车一个控制力,使其在轨道上被往前或朝后拉动。
3建立控制模型
首先假设:
①摆杆为刚体;
②忽略摆杆与支点之间的摩擦;
③忽略小车与导轨之间的摩擦。
一级倒立摆系统可抽象成小车与匀质杆组成的系统,假设:
M为小车的质量;m为摆杆质量;
为摆杆转动轴心到杆质心的长度;I为摆杆惯量;U为加在小车上的力;
为小车位置;θ为摆杆与垂直向上方向的夹角。
应用Newton第二定律的方法可得到系统
方向的运动方程为
规定逆时针方向的力矩为正,以摆与小车的连接点为原点,列出摆的力矩方程:
考虑到摆的惯性力矩,求得系统的运动方程为(未考虑摆旋转的摩擦阻力矩)
由式(3-1)和式(3-2)可得
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(in1isin1mf1)and(in2isin2mf1)and(in3isin3mf1)and(in4isin4mf1)then(outismf1)
(1)
∙2.If(in1isin1mf1)and(in2isin2mf1)and(in3isin3mf1)and(in4isin4mf2)then(outismf2)
(1)
∙3.If(in1isin1mf1)and(in2isin2mf1)and(in3isin3mf2)and(in4isin4mf1)then(outismf3)
(1)
∙4.If(in1isin1mf1)and(in2isin2mf1)and(in3isin3mf2)and(in4isin4mf2)then(outismf4)
(1)
∙5.If(in1isin1mf1)and(in2isin2mf2)and(in3isin3mf1)and(in4isin4mf1)then(outismf5)
(1)
∙6.If(in1isin1mf1)and(in2isin2mf2)and(in3isin3mf1)and(in4isin4mf2)then(outismf6)
(1)
∙7.If(in1isin1mf1)and(in2isin2mf2)and(in3isin3mf2)and(in4isin4mf1)then(outismf7)
(1)
∙8.If(in1isin1mf1)and(in2isin2mf2)and(in3isin3mf2)and(in4isin4mf2)then(outismf8)
(1)
∙9.If(in1isin1mf2)and(in2isin2mf1)and(in3isin3mf1)and(in4isin4mf1)then(outismf9)
(1)
∙10.If(in1isin1mf2)and(in2isin2mf1)and(in3isin3mf1)and(in4isin4mf2)then(outismf10)
(1)
∙11.If(in1isin1mf2)and(in2isin2mf1)and(in3isin3mf2)and(in4isin4mf1)then(outismf11)
(1)
∙12.If(in1isin1mf2)and(in2isin2mf1)and(in3isin3mf2)and(in4isin4mf2)then(outismf12)
(1)
∙13.If(in1isin1mf2)and(in2isin2mf2)and(in3isin3mf1)and(in4isin4mf1)then(outismf13)
(1)
∙14.If(in1isin1mf2)and(in2isin2mf2)and(in3isin3mf1)and(in4isin4mf2)then(outismf14)
(1)
∙15.If(in1isin1mf2)and(in2isin2mf2)and(in3isin3mf2)and(in4isin4mf1)then(outismf15)
(1)
∙16.If(in1isin1mf2)and(in2isin2mf2)and(in3isin3mf2)and(in4isin4mf2)then(outismf16)
(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。
图4.8模糊推理规则通过view直观显示图
此外,在建立起具体的模糊推理规则以后,可以通过view功能来得到规则的直观显示,这些图形可以帮助更好的理解建立的模糊推理规则。
如图4.8所示。
设置完后保存为单级倒立摆Caymi.fis文件。
对应的源代码如下:
[System]
Name='单级倒立摆Caymi'
Type='sugeno'
Version=2.0
NumInputs=4
NumOutputs=1
NumRules=16
AndMethod='prod'
OrMethod='probor'
ImpMethod='prod'
AggMethod='sum'
DefuzzMethod='wtaver'
[Input1]
Name='in1'
Range=[-0.30.3]
NumMFs=2
MF1='in1mf1':
'gbellmf',[0.32.5-0.3]
MF2='in1mf2':
'gbellmf',[0.32.50.3]
[Input2]
Name='in2'
Range=[-11]
NumMFs=2
MF1='in2mf1':
'gbellmf',[12.5-1]
MF2='in2mf2':
'gbellmf',[12.51]
[Input3]
Name='in3'
Range=[-33]
NumMFs=2
MF1='in3mf1':
'gbellmf',[32.5-3]
MF2='in3mf2':
'gbellmf',[32.53]
[Input4]
Name='in4'
Range=[-33]
NumMFs=2
MF1='in4mf1':
'gbellmf',[32.5-3]
MF2='in4mf2':
'gbellmf',[32.53]
[Output1]
Name='out'
Range=[01]
NumMFs=16
MF1='mf1':
'constant',[0]
MF2='mf2':
'constant',[0.125]
MF3='mf3':
'constant',[0.25]
MF4='mf4':
'constant',[0.375]
MF5='mf5':
'constant',[0.5]
MF6='mf6':
'constant',[0.625]
MF7='mf7':
'constant',[0.75]
MF8='mf8':
'constant',[0.875]
MF9='mf9':
'constant',[1]
MF10='mf10':
'constant',[0]
MF11='mf11':
'constant',[0.6667]
MF12='mf12':
'constant',[0.3333]
MF13='mf13':
'constant',[0.5]
MF14='mf14':
'constant',[0.6667]
MF15='mf15':
'constant',[0.3333]
MF16='mf16':
'constant',[1]
[Rules]
1111,1
(1):
1
1112,2
(1):
1
1121,3
(1):
1
1122,4
(1):
1
1211,5
(1):
1
1212,6
(1):
1
1221,7
(1):
1
1222,8
(1):
1
2111,9
(1):
1
2112,10
(1):
1
2121,11
(1):
1
2122,12
(1):
1
2211,13
(1):
1
2212,14
(1):
1
2221,15
(1):
1
2222,16
(1):
1
根据控制器和倒立摆模型的分析,通过MATLAB可以得到单级倒立摆控制系统的结构如图所示。
图4.9单级倒立摆控制系统的结构
5根据控制模型,分析动稳态特性
根据控制器和倒立摆模型得出图4.9所示的单级倒立摆控制系统的结构后,设置不同的隶属度函数,分别对上述过程进行仿真,得到不同情况下的线速度和角位移的变化情况,说明选取不同的隶属度函数曲线在控制效果上有着明显的差异,其中系统默认的隶属度函数是较好的控制方法。
通过不断调试,达到最佳状态,在MATLAB中进行仿真,设定方波为跟踪的期望信号,得到结果如图5.1所示。
图5-2所示为仿真运行时的图形用户界面。
图5.1小车对方波期望值的跟踪情况
图5.2仿真运行时的图形用户界面
从以上的图5.1可知,绿色规则的方波期望值代表小车位置的期望,红色不规则的近似方波为小车的实际位置。
从以上的图5.2可知,绿色的三角形为小车位置的期望,红色的方块为小车的实际位置,黄色的粗斜线为摆杆实际位置。
图5.3小车在不同时刻跟随情况
从以上的图5.3的四个不同情况可知,当小车的实际位置和期望位置相距最远时,跟踪误差达到最大值;而当小车的实际位置和期望位置相距最近时,跟踪误差达趋于零;尤其是在小车的实际位置和期望位置重合,并且摆杆垂直时,跟踪误差为零。
图5.3所示不同时刻小车和摆杆的运动轨迹图。
图5.3不同时刻小车和摆杆的运动轨迹
6分析数据,得出结论
通过以上仿真实践的过程可以看出,对于倒立摆一类的包含非线性以及不稳定因素的控制系统模型,采用模糊控制的方法具有很强的适应性以及理想的控制效果,在此基础上,选用恰当的隶属度函数也是实现优化控制的重要条件。
倒立摆系统的输入为小车的位移(即位置)和摆杆的倾斜角度期望值,计算机在每一个采样周期中采集来自传感器的小车与摆杆的实际位置信号,与期望值进行比较后,通过控制算法得到控制量,再经数模转换驱动直流电机实现倒立摆的实时控制。
直流电机通过皮带带动小车在固定的轨道上运动,摆杆的一端安装在小车上,能以此点为轴心使摆杆能在垂直的平面上自由地摆动。
作用力平行于铁轨的方向作用于小车,使杆绕小车上的轴在竖直平面旋转,小车沿着水平铁轨运动。
当没有作用力时,摆杆处于垂直的稳定的平衡位置(竖直向下)。
为了使杆子摆动或者达到竖直向上的稳定,需要给小车一个控制力,使其在轨道上被往前或朝后拉动。
总结
在实际应用中,由于模型往往具有更多的复杂因素以及一些不可预测的干扰因素,所以有时需要简历更复杂的模糊控制方案以及更加精确的隶属度函数,有时也需要采用神经网络的算法结构来解决这样的实际问题,这些方法互相配合从而形成了较为完备的智能控制方案系统。
倒立摆的控制问题就是使摆杆尽快地达到一个平衡位置,并且使之没有大的振荡和过大的角度和速度。
当摆杆到达期望的位置后,系统能克服随机扰动而保持稳定的位置。
参考文献
[1]力群.《智能控制理论及应用》.:
机械工业,2007
[2]慧颖.《MATLABR2007基础教程》.:
清华大学,2008
[3]嗣瀛,高立群.《现代控制理论》.:
清华大学,2006
[4]洪兴.《工程模糊数学方法及应用》.:
科学技术,1991
[5]胡寿松.《自动控制原理简明教程》.:
科学,2008
[6]王立兴.《模糊系统与模糊控制教程》.:
清华大学,2003
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 matlab 倒立 模糊 控制 课程设计 报告