基于adams和matlab的一级倒立摆联合仿真.docx
《基于adams和matlab的一级倒立摆联合仿真.docx》由会员分享,可在线阅读,更多相关《基于adams和matlab的一级倒立摆联合仿真.docx(24页珍藏版)》请在冰豆网上搜索。
基于adams和matlab的一级倒立摆联合仿真
基于PRO/E,ADAMS和MATLAB/SIMULINK的双回路PID控制一级倒立摆联合仿真
一、倒立摆简介
1、概述
2、倒立摆分类
3、倒立摆控制方法
二、联合仿真流程
三、基于PRO/E的一级倒立摆三维建模
四、基于ADAMS的一级倒立摆模型设计
五、ADAMS和MATLAB/SIMULINK的联合仿真
六、一级倒立摆的双回路PID控制策略
1、一级倒立摆的角度控制
2、一级倒立摆的双闭环控制
3、一级倒立摆摆杆长度参数对控制策略的影响
七、问题总结
参考文献
一、倒立摆简介
1、概述
倒立摆控制系统是一个复杂的、不稳定的、非线性系统,是进行控制理论教学及开展各种控制实验的理想实验平台。
对倒立摆系统的研究能有效的反映控制中的许多典型问题:
如非线性问题、鲁棒性问题、镇定问题、随动问题以及跟踪问题等。
通过对倒立摆的控制,用来检验新的控制方法是否有较强的处理非线性和不稳定性问题的能力。
同时,其控制方法在军工、航天、机器人和一般工业过程领域中都有着广泛的用途,如机器人行走过程中的平衡控制、火箭发射中的垂直度控制和卫星飞行中的姿态控制等。
倒立摆系统按摆杆数量的不同,可分为一级,二级,三级倒立摆等,多级摆的摆杆之间属于自由连接(即无电动机或其他驱动设备)。
倒立摆的控制问题就是使摆杆尽快地达到一个平衡位置,并且使之没有大的振荡和过大的角度和速度。
当摆杆到达期望的位置后,系统能克服随机扰动而保持稳定的位置。
图1.1一级倒立摆
2、倒立摆分类
(1)直线型倒立摆
它是最常见倒立摆系统,也称车摆装置,根据目前的研究它又分为1,2,3,4级车摆,典型结构图如图11.2所示,图中以三级车摆为例,它是由可以沿直线导轨运动的小车以及一端固定于小车之上的匀质长杆组成的系统,小车可以通过转动装置由力矩电机、步进电机、直流电机或者交流伺服电机驱动,车的导轨一般有固定的行程,因而小车的运动围都是受到限制的。
图1.2直线型倒立摆
(2)环型倒立摆
环型倒立摆也称摆杆式倒立摆,如图1.3所示,图中以二级为例,一般是由水平放置的摆杆和连在其端接的自由倒摆组成,原理上也可以看成是车摆的轨道为圆轨情况,摆杆是通过传动电机带动旋转的。
此摆设计好了可以摆脱普通车摆的行程限制,但是同时带来了一个新的非线性因素:
离心力作用。
图1.3环形倒立摆
(3)旋转式倒立摆
环型摆也叫旋转式倒立摆,但是这里的旋转式倒立摆不同于第二种的环型摆,它的摆杆(旋臂)是在竖直平面旋转的,而环型摆摆杆是在水平面旋转的,如图1.4所示。
图中倒立摆系统是单级旋转倒立摆,将摆杆安装在与电机转轴相连的旋臂上,通过电机带动旋臂的转动来控制倒摆的倒立,整个系统复杂,不稳定。
图1.4单级旋转式倒立摆
(4)复合倒立摆系列
复合倒立摆为一类新型倒立摆,由运动本体和摆杆组件组成,其运动本体可以很方便的调整成三种模式,一是
(2)中所述的环形倒立摆,还可以把本体翻转90度,连杆竖直向下和竖直向上组成托摆和顶摆两种形式的倒立摆。
3、倒立摆控制方法
控制器设计是倒立摆系统的核心容,因为倒立摆是一个绝对不稳定的系统,为了实现倒立摆稳定性控制并且可以承受一定的干扰,需要给系统设计控制器,目前典型的控制器设计理论有:
a.PID控制。
通过机理分析建立动力学模型,使用状态空间理论推导出非线性模型,并在平衡点处进行线性化得到系统的状态方程和输出方程,从而设计出PID控制器实现控制。
b.状态反馈控制。
使用状态空间理论推导出状态方程和输出方程,应用状态反馈实现控制"如珊中等应用状态反馈和Kalman滤波相结合的方法,对二级倒立摆平衡系统进行控制。
c.利用云模型实现对倒立摆的控制。
用云模型构成语言值,用语言值构成规则,形成一种定性的推理机制。
d.模糊控制。
模糊控制是采用模糊化,模糊推理,解模糊运算等的模糊控制方法。
其主要工作是模糊控制器的设计。
现以倒立摆控制来简单说明模糊控制器设计的一般方法。
以摆杆的倾角和速度作为输入变量"可以将倾角描述成:
向左倾角大;中;小;向右倾角小;中;大。
速度描述成:
倒得非常快;快;慢;静止;升得慢;快;非常决。
它们都可以用模糊语言变量来表示用类似的模糊集合可以对控制小车运动的输出进行定义。
接着定义某些隶属函数,这个安排隶属度的过程就是对变量实现模糊化的过程"接着是建立一系列的模糊规则,如:
如果摆杆向左倾斜大并倒的非常快,那么向左作快运动;如果摆杆向左倾斜大并升的慢,那么向左作慢运动,等等。
最后,模糊输出被分解成可以加到小车上的确切的驱动电压,这个过程为解模糊判决。
此外,还有对倒立摆的双闭环模糊控制方案。
e.神经网络控制。
神经网络能够任意充分地逼近复杂的非线性关系,它能够学习和适应严重不确定性系统的动态特性,所有定量或定性的信息按等势分布储存与网络的神经元,有很强的鲁棒性和容错性,也可将Q学习算法和BP神经网络有效结合,实现状态未离散化的倒立摆的无模型学习控制。
以及振强等为解决模糊神经网络在控制多变量系统时的规则组合爆炸问题,提出用状态变量合成模糊神经网络控制倒立摆。
f.自适应控制。
主要为倒立摆设计各种自适应控制器。
上述控制算法大都针对倒立摆工作在平衡点的稳定控制"本论文设计的控制器首先是能实现倒立摆的起摆,在摆起到平衡位置附近时再切换至稳定控制。
二、联合仿真流程
本文以一级倒立摆为研究对象,建立的倒立摆由轨道,滑块,摆杆和转轴组成,滑块在轨道上做往复的直线运动,摆杆绕滑块做转动。
具体的联合仿真流程如下:
1、在PRO/E软件里建立上述各个零件的三维模型,然后进行装配。
装配后的组件另存为x_t文件,输入到ADAMS里。
2、将PRO/E的生成的三维模型导入ADAMS中,在ADAMS中定义各零件的质量,施加固定副、移动副和转动副,然后建立输入和输出的状态变量(输入为作用在滑块上的水平力,输出为滑块的位移和摆杆相对于竖直方向的角度),最后将生成的adm文件导出到MATLAB。
3、将ADAMS生成的倒立摆模型导入MATLAB,建立控制模型(采用PID双闭环的控制方法),设置好参数之后进行联合仿真。
三、基于PRO/E的一级倒立摆三维建模
1、在PRO/E中建立一级倒立摆的三维模型,摆杆的初始位置为竖直方向。
2、在组装零件时需要注意,为了保证倒立摆模型导入ADAMS里面之后位置正确(即摆杆摆动平面为X-Y平面),需要使导轨安装的长度方向沿组件默认坐标轴的x轴方向,其中心与组件坐标轴中心重合。
3、建立倒立摆之后,保存副本,选择x_t文件格式保存。
图3.1一级倒立摆的PRO/E模型
四、基于ADAMS的一级倒立摆模型设计
1、将PRO/E生成的x_t文件导入ADAMS中,选择file-import,文件类型选择x_t,找到PRO/E的文件导入。
导入的文件如下图所示,可以看到,摆杆的运动平面在x-y平面,轨道的质心与ADAMS的默认坐标轴原点重合。
图4.1导入ADAMS的倒立摆三维模型
2、设置文件的保存路径。
为了避免PRO/E文件导入和MATLAB程序运行失败,我们将ADAMS的保存路径设在根目录下,文件名为英文字符,PRO/E的所有文件放入此目录下。
3、将导入的PART2,PART3,PART4和PART5分别命名为guidao,huakuai,baigan和zhou。
然后定义各零件质量,材料选择steel.
4、添加约束。
这里需要添加的约束有三个:
(1)ground和guidao之间的固定副,用来固定轨道。
图4.2固定副定义界面
图4.3固定副
(2)huakuai和baigan之间的转动副,保证摆杆相对滑块作转动。
图4.4转动副定义界面
图4.5转动副
(3)guidao和huakuai之间的移动副,保证滑块沿轨道作水平运动。
图4.6移动副定义界面
图4.7移动副
5、定义作用力。
初始力作用在滑块上,方向选择与摆杆偏移方向一致。
图4.8滑块上的水平作用力
6、建立输入和输出状态变量。
建立三个systemelements,包括输入变量(force),输出变量(angle,position)。
(1)Force的参数设为零,由MATLAB输入。
图4.9定义状态变量force
(2)Angle为摆杆距离竖直方向的角度,使用AZ函数测量。
选取的参考点为摆杆上的MARKER_16和滑块上的MARKER_17。
图4.10定义状态变量angle
(3)Position为滑块质心到全局坐标原点的距离。
位移的测量值使用DZ函数。
需要注意的是,由于轨道在PRO/E中的坐标轴与ADAMS的默认坐标系不一致,所以要修改MARKER_20以保持和滑块的质心坐标一致。
修改方式见下图的orientation参数栏。
图4.11定义状态变量position
图4.12MARKER点定义界面
(4)完成状态变量的设置后,需要将force与上面建立的作用力SFORCE_1关联,使用函数VARVAL。
图4.13SFORCE_1与force关联
7、创建输出文件。
这一步我们要创建一个可以输入到MATLAB的文件。
(1)首先要创建输入和输出元素,选择build—-dataelements---plant---plantinput,设置输入文件名和变量名。
输出元素同理。
图4.14创建plantinput
图4.15创建plantoutput
(2)打开controls---plantexport
Newcontrolsplant一栏中填入inverted_pendulum,fileprefix同理。
输入和输出信号选择刚才建立的两个变量。
Targetsoftware选择MATLAB。
其他选项默认。
点击OK即可。
这样就会有相关的文件在我们最初设置的保存路径中生成。
图4.16设置ADAMS和MATLAB接口
图4.17ADAMS输出文件
这一步完成之后就完成了ADAMS里的建模。
下图为倒立摆的完成模型。
图4.18ADAMS的倒立摆最终模型
五、ADAMS和MATLAB/SIMULINK的联合仿真
完成ADAMS建模之后,我们将输出的文件导入到MATLAB里进行仿真。
使用ADAMS和MATLAB/SIMULINK的联合仿真有一个好处,即不用对物理模型进行分析,再建立传递函数。
ADAMS导出的模型直接包含其所有的力学特性,更加方便进行相关控制。
联合仿真的步骤:
1、将MATLAB的当前文件夹设为ADAMS的文件夹,然后在命令窗口输入inverted_pendulum(即ADAMS输出的文件名),会导入倒立摆的参数和变量。
最后输入adams_sys指令,会弹出一个SIMULINK的仿真窗口,我们可以在里面添加控制模块进行倒立摆仿真。
图5.1MATLAB导入ADAMS文件命令
图5.2生成的adams_sys
2、MATLAB控制方法设计。
在这里我们采用双闭环的PID控制方法,一路是角度控制,一路是位移控制。
首先给倒立摆系统一个扰动,这里用阶跃信号实现(持续时间0.1秒,幅值为1),使系统不稳定,然后通过角度和位移反馈控制系统,达到稳态。
摆杆角度给定值设定为0度,位移给定值设为0,分别与模型输出的实际角度和实际位移进行比对,差值输入到PID中进行反馈控制,控制的结果输入到force接口,实现系统的控制。
建立的模块图如下:
图5.3MATLAB/SIMULINK的倒立摆PID控制模块图
3、动态仿真。
先确定PID参数(PID参数设置下一章会讲到)。
然后设置adamssub模块参数,将animationmode改为interactive,communicationinterval设为0.005。
最后将仿真时间设为10秒,开始仿真。
仿真时会打开ADAMS软件,动画演示倒立摆的平衡控制过程。
图5.4联合仿真时调用的ADAMS界面
六、一级倒立摆的PID控制策略
1、一级倒立摆的角度控制
前面我们提到了对一级倒立摆的控制目标有摆角和滑块位移,下面先对角度控制的PID参数进行设置,然后再加上位移控制环。
首先使用PI调节,调节比例参数使系统出现震荡,然后加上积分环节进行微调,最后取Kp=20,Ki=0.1,系统的摆角响应曲线如下:
图6.1采用PI控制方案的角度响应曲线
从输出曲线可以看出,尽管PI的控制作用总是趋于消除稳态误差,但由于积分环节的缺陷而延缓了响应速度,所以不能及时地将超调遏制住,控制效果也就不怎么好了。
基于上述问题,可以加入微分环节(相当于加入了角速度反馈),参数设置为Kp=20,Ki=0.1,Kd=3。
进行动态仿真后,得到的角度响应曲线如下。
图6.2采用PID控制方案的角度响应曲线
可以看到加入微分环节后,系统的动态特性得到了很大的改善,系统受到0.1s的扰动后,在0.6s左右就达到了稳态,而且稳态精度也大大提高。
但是由于角度有稳态误差的存在,所以不加位置反馈控制的话,滑块会一直向一个方向偏移,如图6.4所示为滑块的位移曲线。
图6.3采用PID控制方案后角度的稳态误差
图6.4采用PID控制方案的位移响应曲线
2、一级倒立摆的双闭环控制
在角度反馈的基础上,加入位置反馈。
由于两路反馈并不是相互独立的,所以单单设置位移的PID参数必定会影响到角度的反馈。
所以这里PID参数的设置思想是,先调好角度反馈,然后根据角度的稳态误差设定位移的PID参数,使两路的反馈可以将这一稳态误差抵消,最后微调两路的参数优化控制效果。
经过调试,确定角度反馈的PID参数为Kp=40,Ki=0.02,Kd=10;位移反馈的PID参数为Kp=-0.04,Ki=-0.01,Kd=-0.02。
经过仿真后,得到的摆杆摆角和滑块位移的响应曲线如下
图6.5双回路PID控制的角度响应曲线(L=500mm)
图6.6双回路PID控制的位移响应曲线(L=500mm)
双回路控制的平衡时间比单独的角度控制要长,但是在2s左右也基本达到了平衡,控制效果很好。
3、一级倒立摆摆杆长度参数对控制策略的影响
之前我们建立的一级倒立摆模型的摆杆长度是L=500mm,下面将摆杆长度设为L=250mm,分析上面PID的控制策略对该系统动态响应的影响。
使用PRO/E对一级倒立摆重新建模,将摆杆长度设为250mm,然后将模型导入到ADAMS中,完成系统力学定义后导入MATLAB进行仿真。
系统的控制策略仍采用双回路的PID控制。
这里将上一节得到的角度和位移PID参数输入到此模型,观察其动态响应与之前的模型有何不同。
经过联合仿真,得到的角度和位移响应曲线如下
图6.7双回路PID控制的角度响应曲线(L=250mm)
图6.8双回路PID控制的位移响应曲线(L=250mm)
分析:
角度响应:
L=500模型的超调量和二次超调量分别为0.025和0.02,平衡时间大概为2.5s;L=250模型的超调量和二次超调量分别为0.015和0.008,平衡时间为4.5s。
位移响应:
L=500模型的超调量和二次超调量分别为7和13,平衡时间为6s;L=250模型的超调量和二次超调量分别为2和7,平衡时间为8s。
可以看出来,L=250模型要比L=500模型容易稳定,即在受到相同的扰动状况下,使用较小的PID参数就可以达到平衡。
七、问题总结
本文利用PRO/E、ADAMS和MATLAB软件成功地对一级倒立摆控制系统进行了仿真分析.在仿真过程中不需要推导机械系统的复杂微分方程,直接用ADAMS建立的虚拟模型进行分析,大大方便了建模过程.而且通过ADAMS软件建立的虚拟模型能更好地接近实际物理模型,与那些近似线性化的简易数学模型相比,这为我们以后的物理样机试验提供了更为可靠的依据。
在联合仿真过程中,遇到了一些问题:
1、PRO/E导入ADAMS会有模型位置放错的情况,这个时候需要保证两个软件里设定的坐标轴一致。
2、对于各零件的MARKER点局部坐标和ADAMS全局坐标不一样情况,需要修改orientation,否则会出现测量错误的情况。
3、在使用角度测量函数AZ和DZ时,如果将FROMMARKER和TOMARKER位置搞反的话,后面输出的角度值可能为负,后面的PID参数也随之改变。
4、使用PID调节,发现如果时间足够长的话,倒立摆不能保持位置上的稳定,滑块也会越走越远,直到脱离轨道。
这是因为使用PID控制角度时,总会有微小的稳态误差,这个误差最终会导致位置上的不平衡。
5、本文PID参数的确定采用的是试凑法,即通过控制经验和多次系统调试来确定参数,往往比较繁琐,难以达到期望的精度。
而且双回路控制比单回路控制的难度更大。
这种情况下可以采用极点配置法或扩充临界比例法等。
参考文献
1、成建等(2006).虚拟样机软件MSC.ADAMS应用与提高.市,机械工业.
2、贾,殷军辉(2010).MDADAMS虚拟样机从入门到精通.市,机械工业.
3、学军(2009).计算机控制技术.市,清华大学.
4、应再恩,平雪良.(2012)."基于ADAMS和MATLAB的双回路PID控制倒立摆联合仿真."机械传动(08):
64-67.
5、世勇,徐莉苹.(2007)."单级倒立摆的PID控制研究."控制工程(S1):
23-24+53.
6、肖力龙(2007).直线一级倒立摆起摆与稳摆控制研究及控制系统设计,中南大学.硕士:
77.