基于adams和matlab的一级倒立摆联合仿真
- 格式:doc
- 大小:777.50 KB
- 文档页数:32
基于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、建立输入和输出状态变量。
建立三个system elements,包括输入变量(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.13 SFORCE_1与force关联7、创建输出文件。
这一步我们要创建一个可以输入到MATLAB的文件。
(1)首先要创建输入和输出元素,选择build—-data elements---plant---plant input,设置输入文件名和变量名。
输出元素同理。
图4.14 创建plant input图4.15 创建plant output(2)打开controls---plant exportNew controls plant一栏中填入inverted_pendulum,file prefix同理。
输入和输出信号选择刚才建立的两个变量。
T arget software选择MATLAB。
其他选项默认。
点击OK即可。
这样就会有相关的文件在我们最初设置的保存路径中生成。
图4.16 设置ADAMS和MATLAB接口图4.17 ADAMS输出文件这一步完成之后就完成了ADAMS里的建模。
下图为倒立摆的完成模型。
图4.18 ADAMS的倒立摆最终模型五、ADAMS和MATLAB/SIMULINK的联合仿真完成ADAMS建模之后,我们将输出的文件导入到MATLAB里进行仿真。
使用ADAMS和MATLAB/SIMULINK的联合仿真有一个好处,即不用对物理模型进行分析,再建立传递函数。
ADAMS导出的模型直接包含其所有的力学特性,更加方便进行相关控制。
联合仿真的步骤:1、将MATLAB的当前文件夹设为ADAMS的文件夹,然后在命令窗口输入inverted_pendulum(即ADAMS输出的文件名),会导入倒立摆的参数和变量。
最后输入adams_sys指令,会弹出一个SIMULINK的仿真窗口,我们可以在里面添加控制模块进行倒立摆仿真。
图5.1 MATLAB导入ADAMS文件命令图5.2 生成的adams_sys2、MATLAB控制方法设计。