第一篇:基于ADAMS与MATLAB的倒立摆联合仿真实验
基于ADAMS与MATLAB的倒立摆联合仿真实验
一、实验目的
在传统的机电一体化研究设计过程中,机械工程师和控制工程师虽然在共同设计开发一个系统,但是他们各自都需要建立自己的模型,然后分别采用不同的分析软件,对机械系统和控制系统进行独立的设计、调试和试验,最后进行机械系统和控制系统各自的物理样机联合调试,如果发现问题又要回到各自的模型中分别修改,然后再联合调试,显然这种方式费时费力。
基于多领域的建模与联合仿真技术很好的解决了这个问题,为机械和控制系统进行联合分析提供了一种全新的设计方法。机械工程师和控制工程师就可以享有同一个样机模型,进行设计、调试和试验,可以利用虚拟样机对机械系统和控制系统进行反复联合调试,直到获得满意的设计效果,然后进行物理样机的建造和调试。
ADAMS与MATLAB是机械系统仿真和控制系统仿真领域应用较为广泛的软件,其中ADAMS为用户提供了强大的建模、仿真环境,使用户能够对各种机械系统进行建模、仿真和分析,具有十分强大的运动学和动力学分析功能;而MATLAB具有强大的计算功能、极高的编程效率及模块化的建模方式,因此,把ADAMS与MATLAB联合起来仿真,可以充分将两者的优势相结合,将机械系统仿真分析同控制系统设计有机结合起来,实现机电一体化的联合分析。
本实验以倒立摆为例,进行ADAMS与MATLAB的联合仿真,对倒立摆的运动性能和运动规律进行分析。
二、实验方法
软件环境:MD ADAMS R3,MATLAB R2009b 2.1 建立倒立摆的动力学模型
启动ADAMS/View模块弹出如图1所示对话框,建立小车及摆杆模型。首先选择“Create a new model”选项,创建一个新的模型,将该文件保存在相应的文件夹下,本实验将结果保存在E:daolibai_adams文件夹下,将文件名取为“daolibai_adams”,其余选项保持默认。注意,在ADAMS中路径名和文件名最好采用英文字符,否则有可能在运行的过程中出现意想不到的错误。
图1 启动ADAMS/View模块
进入ADAMS/View界面后,需要对相关参数进行设置。选择菜单栏中的“Settings→Working Grid”选项,弹出如图2所示的对话框,设置网格的大小。将“Spacing”设置为X:10mm,Y:10mm,其余参数保持默认。在“Settings”选项中还可以设置图标的大小,单位等等参数,在本实验中这些参数都保持默认即可。
图2 设置网格的大小
与此同时,单击菜单栏“View”选项下的“Coordinate Window”(或者按下键盘上的F4按钮),如图3所示。可随时在窗口中观察鼠标的当前空间坐标位置,方便我们进行建模。
图3 打开鼠标当前空间位置观察窗口
右键点击ADAMS建模工具箱中的图标,选择工具Box,在视图中(0,0,0)处建一个长、宽、高分别为30cm,20cm,20cm的长方体代替小车模型,如图4所示。
图4 长方体尺寸设置
图5 在视图中建立的长方体前视图
长方体建立完毕后,需要进一步在视图中调整其位置。在当前视角下,点击工具箱中的图标,进入如图6所示的界面。在Distance选项中输入15cm,选择长方体,然后点击向左的箭头,小车模型即向左平移15cm。单击工具箱中的按钮,即可返回工具箱主界面。点击图标,切换到右视角视图,再次运用按钮,在Distance选项中输入10cm,选择长方体,然后点击向右的箭头,将小车模型向右平移10cm,如图7所示。
图6 将小车模型向左平移15cm
图7 将小车模型向右平移10cm
小车模型位置修改完毕后,右键点击小车模型,选择Rename,将模型的名称修改为xiaoche,如图8所示。与此同时,在右键菜单中选择Modify,将小车的质量修改为0.5KG,其修改方法如图9所示。
图8 修改模型名称
图9 修改小车模型的质量
至此,小车模型及参数设置完毕,接下来建立摆杆的模型。在建模工具箱中选择(Cylinder)工具建立摆杆模型,其参数设置如图10所示。
图10 摆杆参数的设置
摆杆参数设置完毕后,沿小车垂直向上的方向建立该圆柱体,建好后单击右键修改其特性参数,将部件名称修改为baigan,将摆杆质量修改为0.2kg,转动惯量修改为0.006kg·㎡。建好后,运用工具箱中的顺时针旋转5°,建完后的模型如图11所示。
工具,将摆杆绕端点
图11 倒立摆模型前视图与三维视图
倒立摆的三维模型建立好后,我们需要为模型添加相应的运动副和运动。小车与地面用平移副约束,右键单击图标,在弹出菜单中选择工具,添加方式选择2 Bod-1 Loc方式,分别选择小车和大地,在小车质心处添加水平方向的平移约束副,如图12。
图12 在小车与大地之间添加移动副
摆杆与小车之间存在旋转运动,故需要在小车与摆杆之间添加一个转动副。单击工具中的图标,添加方式选择2 Bod-1 Loc方式,分别选择摆杆和小车,在摆杆与小车的铰接处建立旋转副,如图13所示。
图13 在摆杆与小车之间建立旋转副JOINT_2
倒立摆模型的约束添加完毕之后,我们可以对模型进行运动测试。点击工具,进入运动仿真测试对话框,设置仿真时间为1秒,步长为1000,如图14所示。
图14 运动仿真参数设置
点击按钮开始运动仿真测试,可以看到小车沿着水平方向作直线运动,摆杆绕着铰接点作旋转运动。
2.2 定义倒立摆机械系统的输入输出变量
1)定义输入变量
本实验中需要在ADAMS中定义一个状态变量接收控制小车运动的水平力。选择Build菜单下的System Elements创建一个名为controlforce的状态变量,如图15所示。
图15 创建输入状态变量
由图15可以看出F(time,„)后面输入栏中的数值为0,表示该控制力的数值将从控制软件的输出获得。
给小车定义一个水平力,单击ADAMS工具箱中的工具,选择Body Moving的建模方式,一次选择小车质心作为力的作用点,选择水平向右作为其加载方向(如图16),这样该水平力将一直随着小车的移动而移动。
图16 为小车添加水平方向作用力
上述过程完成以后,右键单击该水平力,选择Modify,将其函数值定义为VARVAL(.daolibai_adams.controlforce),以实时从状态变量controlforce中接收力的数值,如图17。
图17 函数值的定义
2)定义输出变量
定义输出变量的方法与定义输入变量的方法相同,定义ADAMS状态变量以输出动力学模型的运动状态至控制软件,本实验就是要输出摆杆的摆角。选择Build菜单下的System Elements创建一个名为rotateangle的状态变量,选择摆杆的上端点和小车的铰接点出的MARKER点为摆杆绕Z轴旋转运动的参考点,如图18所示。
图18 定义输出变量
其中,在F(time,„)后面的文本输入栏输入摆杆摆角表达式AZ(MARKER_11,MARKER_12),AZ函数用来测量绕Z轴旋转的角度,本实验中即表示摆杆绕着Z轴旋转的角度。利用ADAMS工具箱中的工具,在摆杆的上端点创建一个测点MARKER_11,在小车上创建测点MARKER_12,此点为小车与摆杆的铰接点。设置完毕后单击OK按钮保存设置。3)将状态变量指定为输入/输出变量
上述状态变量定义完成之后,还需要将定义好的状态变量指定为输入或输出变量。
指定状态变量controlforce为输入变量。单击主菜单Build→Data Elements→Plant→Plant Input→New后,弹出输入变量定义对话框,如图19所示。将Variable Name栏中输入controlforce,然后单击OK按钮即完成设置。
图19 输入变量定义对话框
指定状态变量rotateangle为输入变量。单击主菜单Build→Data Elements→Plant→Plant Output→New后,弹出输入变量定义对话框,如图20所示。将Variable Name栏中输入rotateangle,然后单击OK按钮即完成设置。
图20 输出变量定义对话框 4)导出ADAMS模型
通过以上工作,已经在ADAMS机械系统模型中定义了同控制系统交互的相关状态变量和函数,接下来需要利用ADAMS/Controls模块将这些状态变量定义为输入输出信号,并将相关信息导出,以便和其他控制程序连接。
单击Controls菜单下的Plant Export子菜单,弹出如图21所示的设置窗口。将输出文件名修改为test123;在输入信号定义栏中,单击From Input按钮后,弹出数据库浏览窗口,选择定义的PINPUT_1为输入项,双击后,定义的状态变量controlforce将自动出现在输入信号一栏中,同理,输出信号的设置方法同上。目标控制软件下拉菜单可以根据需要选取,本实验目标软件选为MATLAB,其他选项保持默认。单击OK按钮,ADAMS将导出*.m文件,同时产生调用ADAMS/Solver的cmd文件和*.adm的ADAMS模型文件。
图21 ADAMS变量导出设置 上述过程完成后,MATLAB已经可以读取ADAMS模型的相关信息了。
2.3 在MATLAB/Simulink中导入ADAMS模型
1)变量的导入
启动MATLAB后,在命令窗口中输入导出的ADAMS模型名称test123,在MATLAB窗口将出现如下信息:
>> clear all >> test123 ans = 26-Jun-2013 08:53:34 %%% INFO : ADAMS plant actuators names : 1 controlforce %%% INFO : ADAMS plant sensors names : 1 rotateangle 在MATLAB命令提示符下输入who命令,显示文件中定义的变量列表,在MATLAB命令窗口中返回如下结果:
Your variables are: ADAMS_cwd ADAMS_mode ADAMS_solver_type arch ADAMS_exec ADAMS_outputs ADAMS_static flag ADAMS_host ADAMS_pinput ADAMS_sysdir machine ADAMS_init ADAMS_poutput ADAMS_uy_ids temp_str ADAMS_inputs ADAMS_prefix ans topdir 可以选择以上显示的任何一个变量名,检验变量,例如,如果输入ADAMS_outputs,则MATLAB将显示在ADAMS中定义的输出变量:
ADAMS_outputs = Rotateangle 注意:ADAMS导出的文件必须置于MATLAB工作目录下,即ADAMS与MATLAB共用同一个工作目录,否则上述过程不能进行。与此同时,还要把ADAMS/win32文件夹下的“adams_plant.mexw32”及ADAMS/Controls/win32/文件夹下的“plant.lib”放在ADMAS与MATLAB的共用工作目录下。这两个文件是adams_sub模块的核心。ADAMS提供一个S函数,用于ADAMS和simulink联合仿真的调度和通信,如果simulink找不到它,联合仿真就不能进行。2)ADAMS模块的导入
在MATLAB命令窗口中输入“adams_sys”命令,即可导入ADAMS模块,如图22所示。
图22 adams_sys模块
3)仿真参数的设置
点击图22中的adams_sys模块,即可进入adams_sub模块,如图23所示。
图23 adams_sub模块 点击图23中的MSC.Software模块,弹出如图24所示的对话框,在对话框中设置如下参数:
图24 仿真参数的设置
将联合仿真的通信间隔Communication Interval选项设置为0.001,该选项定义了ADAMS与MATLAB/Simulink交换数据的通信间隔,调整该参数将控制联合仿真的速度,并影响计算的速度。
将simulation mode选项设置为continuous,即连续仿真模式。其余参数保持默认,单击OK按钮,保存参数设置。3)联合仿真分析
在MATLAB/Simulink中建立如下控制框图(图25),设置仿真时间为5s。
图25 联合仿真控制框图
点击start命令,开始进行联合仿真,几秒钟后,将弹出一个DOS窗口,显示ADAMS在联合仿真分析中的各种数据。联合仿真结束后,仿真结果既可以在MATLAB/Simulink中查看,也可以在ADAMS后处理器中查看。图26和图27分别为Simulink模型中示波器输出的摆杆摆角随时间变换曲线和输入力矩随时间变化曲线。
图26 摆杆摆角随时间变化曲线 图27 输入力矩随时间变化曲线
一、实验结果
由图26和图27可以看出,摆杆的摆角在输入力矩的作用下,转角由0逐渐增大,当到达最大摆角(5°)时,保持不变。
第二篇:基于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、建立输入和输出状态变量。建立三个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 export New controls plant一栏中填入inverted_pendulum,file prefix同理。输入和输出信号选择刚才建立的两个变量。Target 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_sys
2、MATLAB控制方法设计。
在这里我们采用双闭环的PID控制方法,一路是角度控制,一路是位移控制。
首先给倒立摆系统一个扰动,这里用阶跃信号实现(持续时间0.1秒,幅值为1),使系统不稳定,然后通过角度和位移反馈控制系统,达到稳态。摆杆角度给定值设定为0度,位移给定值设为0,分别与模型输出的实际角度和实际位移进行比对,差值输入到PID中进行反馈控制,控制的结果输入到force接口,实现系统的控制。建立的模块图如下:
图5.3 MATLAB/SIMULINK的倒立摆PID控制模块图
3、动态仿真。先确定PID参数(PID参数设置下一章会讲到)。然后设置adams sub模块参数,将animation mode改为interactive,communication interval设为0.005。最后将仿真时间设为10秒,开始仿真。仿真时会打开ADAMS软件,动画演示倒立摆的平衡控制过程。
图5.4联合仿真时调用的ADAMS界面 六、一级倒立摆的PID控制策略
1、一级倒立摆的角度控制
前面我们提到了对一级倒立摆的控制目标有摆角和滑块位移,下面先对角度控制的PID参数进行设置,然后再加上位移控制环。
首先使用PI调节,调节比例参数使系统出现震荡,然后加上积分环节进行微调,最后取Kp=20,Ki=0.1,系统的摆角响应曲线如下:
10.80.60.40.20-0.2-0.4-0.6-0.800.511.522.533.544.55图6.1 采用PI控制方案的角度响应曲线 从输出曲线可以看出,尽管PI的控制作用总是趋于消除稳态误差,但由于积分环节的缺陷而延缓了响应速度,所以不能及时地将超调遏制住,控制效果也就不怎么好了。
基于上述问题,可以加入微分环节(相当于加入了角速度反馈),参数设置为Kp=20,Ki=0.1,Kd=3。进行动态仿真后,得到的角度响应曲线如下。
0.035
0.030.0250.020.0150.010.0050-0.00500.511.522.533.544.55图6.2 采用PID控制方案的角度响应曲线
可以看到加入微分环节后,系统的动态特性得到了很大的改善,系统受到0.1s的扰动后,在0.6s左右就达到了稳态,而且稳态精度也大大提高。
但是由于角度有稳态误差的存在,所以不加位置反馈控制的话,滑块会一直向一个方向偏移,如图6.4所示为滑块的位移曲线。
-4x 10420-2-4-611.051.11.15图6.3 采用PID控制方案后角度的稳态误差
500-50-100-150-200-250-300
00.511.522.533.544.55图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。经过仿真后,得到的摆杆摆角和滑块位移的响应曲线如下
0.030.020.010-0.01-0.02-0.03012345678910图6.5 双回路PID控制的角度响应曲线(L=500mm)
50-5-10-***910图6.6 双回路PID控制的位移响应曲线(L=500mm)
双回路控制的平衡时间比单独的角度控制要长,但是在2s左右也基本达到了平衡,控制效果很好。
3、一级倒立摆摆杆长度参数对控制策略的影响
之前我们建立的一级倒立摆模型的摆杆长度是L=500mm,下面将摆杆长度设为L=250mm,分析上面PID的控制策略对该系统动态响应的影响。
使用PRO/E对一级倒立摆重新建模,将摆杆长度设为250mm,然后将模型导入到ADAMS中,完成系统力学定义后导入MATLAB进行仿真。
系统的控制策略仍采用双回路的PID控制。这里将上一节得到的角度和位移PID参数输入到此模型,观察其动态响应与之前的模型有何不同。
经过联合仿真,得到的角度和位移响应曲线如下
0.0150.010.0050-0.005-0.01012345678910图6.7双回路PID控制的角度响应曲线(L=250mm)
420-2-4-6-8
012345678910图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时,如果将FROM MARKER 和TO MARKER位置搞反的话,后面输出的角度值可能为负,后面的PID参数也随之改变。
4、使用PID调节,发现如果时间足够长的话,倒立摆不能保持位置上的稳定,滑块也会越走越远,直到脱离轨道。这是因为使用PID控制角度时,总会有微小的稳态误差,这个误差最终会导致位置上的不平衡。
5、本文PID参数的确定采用的是试凑法,即通过控制经验和多次系统调试来确定参数,往往比较繁琐,难以达到期望的精度。而且双回路控制比单回路控制的难度更大。这种情况下可以采用极点配置法或扩充临界比例法等。
参考文献
1、范成建等(2006).虚拟样机软件MSC.ADAMS应用与提高.北京市, 机械工业出版社.2、贾长治,殷军辉(2010).MD ADAMS虚拟样机从入门到精通.北京市, 机械工业出版社.3、姜学军(2009).计算机控制技术.北京市,清华大学出版社.4、应再恩,平雪良.(2012).“基于ADAMS和MATLAB的双回路PID控制倒立摆联合仿真.” 机械传动(08): 64-67.5、杨世勇,徐莉苹.(2007).“单级倒立摆的PID控制研究.” 控制工程(S1): 23-24+53.6、肖力龙(2007).直线一级倒立摆起摆与稳摆控制研究及控制系统设计, 中南大学.硕士: 77.
第三篇:基于一阶倒立摆的matlab仿真实验
成都理工大学工程技术学院 基于一阶倒立摆的matlab仿真实验
实验人员:-------
-------学
号:--------
---------
实验日期:20150618 摘要
本文主要研究的是一级倒立摆的控制问题,并对其参数进行了优化。倒立摆是典型的快速、多变量、非线性、强耦合、自然不稳定系统。由于在实际中有很多这样的系统,因此对它的研究在理论上和方法论上均有深远的意义。本文首先简单的介绍了一下倒立摆以及倒立摆的控制方法,并对其参数优化算法做了分类介绍。然后,介绍了本文选用的优化参数的状态空间极点的配置和PID控制。接着建立了一级倒立摆的数学模型,并求出其状态空间描述。本文着重讲述的是利用状态空间中极点配置实现方法。最后,用Simulink对系统进行了仿真,得出在实际控制中是两种比较好的控制方法。
Abstract
This paper mainly studies the level of the inverted pendulum control problem, and its parameters are optimized.Inverted pendulum is a typical rapid, multi-variable, nonlinear, strong coupling, natural unstable system.In practice, however, because there are a lot of such a system, so the study of it in theory and methodology have profound significance.This article first introduced the inverted pendulum, and simple of the inverted pendulum control method, made a classification and the parameter optimization algorithm is introduced.And then, introduced in this paper, choose the optimization of the parameters of state space pole configuration and PID control.Then set up the level of the mathematical model of inverted pendulum, and find out the state space description.This paper focuses on the pole assignment method is the use of state space.Finally, the system are simulated using Simulink, it is concluded that in the actual control is two good control method.This paper mainly studies the level of the inverted pendulum control problem, and its parameters are optimized.Inverted pendulum is a typical rapid, multi-variable, nonlinear, strong coupling, natural unstable system.In practice, however, because there are a lot of such a system, so the study of it in theory and methodology have profound significance.This article first introduced the inverted pendulum, and simple of the inverted pendulum control method, made a classification and the parameter optimization algorithm is introduced.And then, introduced in this paper, choose the optimization of the parameters of state space pole configuration and PID control.Then set up the level of the mathematical model of inverted pendulum, and find out the state space description.This paper focuses on the pole assignment method is the use of state space.Finally, the system are simulated using Simulink, it is concluded that in the actual control is two good control method.目 录 引言..................................................4 1.1 倒立摆介绍以及应用.........................................4 1.2 倒立摆的控制方法...........................................5
2单级倒立摆数学模型的建立...............................6 2.1传递函数...................................................8 2.2状态空间方程...............................................9
3系统Matlab 仿真和开环响应.............................11 4 系统设计.............................................15 4.1极点配置与控制器的设计....................................15 4.2系统仿真:................................................16 4.3仿真结果..................................................17 4.4根据传递函数设计第二种控制方法-----PID串级控制............18
5结 论
...............................................19引言
1.1 倒立摆介绍以及应用
倒立摆控制系统是一个复杂的、不稳定的、非线性系统,是进行控制理论教学及开展各种控制实验的理想实验平台。对倒立摆系统的研究能有效的反映控制中的许多典型问题:如非线性问题、鲁棒性问题、镇定问题、随动问题以及跟踪问题等。通过对倒立摆的控制,用来检验新的控制方法是否有较强的处理非线性和不稳定性问题的能力。
通过对它的研究不仅可以解决控制中的理论和技术实现问题,还能将控制理论涉及的主要基础学科:力学,数学和计算机科学进行有机的综合应用。其控制方法和思路无论对理论或实际的过程控制都有很好的启迪,是检验各种控制理论和方法的有效的“试金石”。倒立摆的研究不仅有其深刻的理论意义,还有重要的工程背景。在多种控制理论与方法的研究与应用中,特别是在工程实践中,也存在一种可行性的实验问题,使其理论与方法得到有效检验,倒立摆就能为此提供一个从理论通往实践的桥梁,目前,对倒立摆的研究已经引起国内外学者的广泛关注,是控制领域研究的热门课题之一。
倒立摆不仅仅是一种优秀的教学实验仪器,同时也是进行控制理论研究的理想实验平台。由于倒立摆系统本身具有的高阶次、不稳定、多变量、非线性和强耦合特性,许多现代控制理论的研究人员一直将它视为典型的研究对象,不断从中发掘出新的控制策略和控制方法,相关的科研成果在航天科技和机器人学方面获得了广阔的应用。二十世纪九十年代以来,更加复杂多种形式的倒立摆系统成为控制理论研究领域的热点,每年在专业杂志上都有大量的优秀论文出现。因此,倒立摆系统在控制理论研究中是一种较为理想的实验装置。
倒立摆主要应用在以下几个方面:(1)机器人的站立与行走类似于双倒立摆系统,尽管第一台机器人在美国问世至今已有三 十年的历史,机器人的关键技术--机器人的行走控制至今仍未能很好解决。(2)在火箭等飞行器的飞行过程中,为了保持其正确的姿态,要不断进行实时控制。
(3)通信卫星在预先计算好的轨道和确定的位置上运行的同时,要保持其稳定的姿态,使卫星天线一直指向地球,使它的太阳能电池板一直指向太阳。(4)侦察卫星中摄像机的轻微抖动会对摄像的图像质量产生很大的影响,为了提高摄像的质量,必须能自动地保持伺服云台的稳定,消除震动。
(5)为防止单级火箭在拐弯时断裂而诞生的柔性火箭(多级火箭),其飞行姿态的控制也可
以用多级倒立摆系统进行研究。
由于倒立摆系统与双足机器人、火箭飞行控制和各类伺服云台稳定有很大相似性,因此对倒立摆控制机理的研究具有重要的理论和实践意义。
1.2 倒立摆的控制方法
倒立摆有多种控制方法。对倒立摆这样的一个典型被控对象进行研究,无论在理论上和方法上都具有重要意义。不仅由于其级数增加而产生的控制难度是对人类控制能力的有力挑战,更重要的是实现其控制稳定的过程中不断发现新的控制方法,探索新的控制理论,并进而将新的控制方法应用到更广泛的受控对象中。当前,倒立摆的控制方法可分为以下几类 :
(1)线性理论控制方法
将倒立摆系统的非线性模型进行近似线性化处理,获得系统在平衡点附近的线性化模型,然后再利用各种线性系统控制器设计方法,得到期望的控制器。PID控制、状态反馈控制、能量控制]、LQR控制算法是其典型代表。
(2)预测控制和变结构控制方法
预测控制:是一种优化控制方法,强调的是模型的功能而不是结构。变结构控制:是一种非连续控制,可将控制对象从任意位置控制到滑动曲面上仍然保持系统的稳定性和鲁棒性,但是系统存在颤抖。预测控制、变结构控制和自适应控制在理论上有较好的控制效果,但由于控制方法复杂,成本也高,不易在快速变化的系统上实时实现
2单级倒立摆数学模型的建立
在忽略了空气流动,各种摩擦之后,可将倒立摆系统抽象成小车和匀质杆组成的系统,如下图1所示
图1 单级倒立摆模型示意图
那我们在本实验中定义如下变量:
M
小车质量
(本实验系统
1.096 Kg)m
摆杆质量
(本实验系统
0.109 Kg)b
小车摩擦系数(本实验系统
0.1 N/m/sec)l
摆杆转动轴心到杆质心的长度(0.25 m)I
摆杆惯量
(0.0034 kg*m*m)F
加在小车上的力
x
小车位置
φ
摆杆与垂直向上方向的夹角 θ
摆杆与垂直向下方向的夹角(考虑到摆杆初始位置为竖直向下)下面我们对这个系统作一下受力分析。下图2是系统中小车和摆杆的受力分析图。其中,N和P为小车与摆杆相互作用力的水平和垂直方向的分量。
注意:在实际倒立摆系统中检测和执行装置的正负方向已经完全确定,因而矢量方向定义如图,图示方向为矢量正方向。
图2 倒立摆模型受力分析
分析小车水平方向所受的合力,可以得到等式:
应用Newton方法来建立系统的动力学方程过程如下:
分析小车水平方向所受的合力,可以得到以下方程:
FbxN Mx由摆杆水平方向的受力进行分析可以得到下面等式:
Nmd2dt2
(xlsin)
2sinmlcosmlx即 Nm
把这个等式代入上式中,就得到系统的第一个运动方程:
cosml2sinFbxml(Mm)x(1)
为了推出系统的第二个运动方程,我们对摆杆垂直方向上的合力进行分析,可以得到下面方程:
d2Pmgm2(lcos)dtsinml2cos即:Pmgml
力矩平衡方程如下:
PlsinNlcosI
注意:此方程中力矩的方向,由于,coscos,sinsin,故等式前面有负号。
21ImlN3P合并这两个方程,约去和,由得到第二个运动方程:
43mglsinmlcosml2x(2)
设(是摆杆与垂直向上方向之间的夹角),假设与1(单位是
d()20sin,dtcos1,弧度)相比很小,即《1,则可以进行近似处理:。用u来代表被控对象的输入力F,线性化后两个运动方程如下:
4gx3lubxmlx(Mm)(3)
2.1传递函数
对方程组(3)进行拉普拉斯变换,得到
422l(s)sg(s)X(s)s3(Mm)X(s)s2bX(s)sml(s)s2U(s)(4)
注意:推导传递函数时假设初始条件为0。
由于输出为角度,求解方程组(4)的第一个方程,可以得到
4gX(s)[l2](s)3s
把上式代入方程组(4)的第二个方程,得到
(Iml2)g(Iml2)g2(Mm)(s)sb2(s)sml(s)s2U(s)ssmlml
整理后得到传递函数:
ml2sqs443(s)U(s)bml2qs3(Mm)mgl2bmglssqq
22q[(Mm)(Iml)(ml)] 其中
2.2状态空间方程
系统状态空间方程为
AXBuXyCXDu
,x方程组(3)对解代数方程,得到解如下: xx4b3mg4xxu(4Mm)(4Mm)(4Mm)3b3g(Mm)3xu(4Mm)l(4Mm)l(4Mm)l
整理后得到系统状态空间方程:
10x4b0(4Mm)x003b0(4Mm)l03mg(4Mm)03g(Mm)(4Mm)l00x40x(4Mm)u1030(4Mm)l
xx1000x0y0u0010
带入参数可得系统的状态空间方程:
0x100-0.08831670.629317x0000-0.23565527.82850x0x0.883160u1002.35655 xx1000x0y0u0010 3系统Matlab 仿真和开环响应
系统开环稳定性分析
num=[2.35655 0 0];den=[1 0.088167-27.9169-2.30942];sys=tf(num,den)[z,p,k]=tf2zp(num,den);step(sys)%阶跃响应曲线: grid on
阶跃响应曲线
rlocus(sys)%根轨迹
根轨迹
bode(sys)%波特图
[A,B,C,D]=tf2ss(num,den);Q=ctrb(A,B)rank(Q)%系统能控性分析
Q =
1.0000-0.0882 27.9247 0 1.0000-0.0882 0 0 1.0000
ans = 3
由得到的rank(Q)的值可知,原系统的能控性矩阵为3,所以我们可知原系统是不能控的。m=obsv(A,C)rank(m)m = 2.3565 0 0-0.2078 65.7876 5.4423 65.8059-0.3580-0.4798
ans = 3 由得到的rank(m)的值可知,原系统的能观性矩阵为3,所以我们可知原系统是能观的。eig(A)ans =
5.2810-5.2864-0.0827
由eig(A)的值可知系统是不稳定的。4 系统设计
4.1极点配置与控制器的设计
采用极点配置法设计多输出的倒立摆系统的控制方案。可以用完全状态反馈来解决,控制摆杆和小车的位置。
设计状态反馈阵时,要使系统的极点设计成两个主导极点和两个非主导极点,用二阶系统的分析方法确定参数。
根据系统性能要求: 最大超调量10%,调节时间为 1s
-运用超调量计算公式:% 得到0.707wn5.66
1-2 t3
sn P2=-4-4.33j 得到两个主导极点为:P1=-4+4.33j P4=-20 选取两个非主导极点:P3=-20 根据MATLAB求取状态增益矩阵,程序如下: a=[0 1 0 0 0-0.0883167 0.629317 0 0 0 0 1 0-0.23655 27.8285 0];b=[0 0.883167 0 2.35655];p=[-4+4.33j-6-4.33j-20-20];k=acker(a,b,p)k =
-740.4267-247.3685 646.9576 113.8866
4.2系统仿真:
根据状态空间表达式建立一阶倒立摆SimuLink仿真图,如下:
4.3仿真结果
系统仿真图(位置,速度,角度,角速度)
根轨迹
4.4根据传递函数设计第二种控制方法-----PID串级控制
PID控制器系统框图:
经过几次参数调试得出Kp=300,Ki=200,Kd=20满足性能要求,其仿真图形如下:
5结 论
本次设计主要通过PID串级控制和状态空间极点配置的方法对直线一级倒立摆进行校正,通过此次课程,掌握MATLAB的基本使用方法。在课程设计过程中,培养了团队协作能力,刻苦钻研以及编程能力,为今后的学习工作打下了良好的基础。经过这次课程,是我受益匪浅。
第一、学会了如何运用自己所学的知识结合实践
第二、硬件最然需要不断尝试,但不是盲目的调试,而是需要有理论作为指导,指明调整的方向,这样设计系统就会事半功倍。第三、Matlab等工具软件的使用也大大提高了设计系统的速度。这些都是试验中珍贵的收获。
最后再一次感谢老师的耐心讲解与精心的教诲,让我渡过难关,顺利完成实验。
第四篇:线性系统倒立摆实验
直线倒立摆控制及一级正摆位移和角度控制
一、实验目的
(1)在Matlab Simulink环境下实现控制伺服电机;(2)完成直线倒立摆建模、仿真与分析;
(3)通过控制器设计使倒立摆系统稳定运行(摆角保持零度附近):
二、实验内容及要求
(1)状态空间极点配置控制实验(一组极点为书上指定,任选另一组,但保证控制效果要好于前者)具体记录要求:在稳定后(先截一张图),叠加一扰动(仅角度扰动),记录消除扰动的过程(再截一张图),同时记录你所选择的期望极点组。
(2)线性二次最优控制LQR 控制实验(R,Q选择为书上指定,任选另一组,但保证控制效果要好于前者)具体记录要求:在稳定后(先截一张图),叠加一扰动(仅角度扰动),记录消除扰动的过程(再截一张图),同时记录你所选择的R,Q取值。(3)一级正摆位移和角度控制
借助于正摆实验平台,构思、设计控制策略和控制算法,并编程实现,通过实验设备将物体快速、准确地运输到指定的位置,且在吊运的整个过程(起吊,运输,到达目的地)保持较小的摆动角。要求:系统启动后,在当前位置给正摆施加一角度扰动,当平衡(摆角为零)后,让小车直线运行30厘米,并快速保证平衡(摆角为零)。
三、实验过程
1.实验方法
(1)Matlab Simulink仿真环境下精确控制电机
在MATLAB Simulink仿真环境中,建立模型,然后进行仿真并分析结果。(2)直线倒立摆建模、仿真与分析
利用牛顿力学进行受力分析,然后建立直线一级倒立摆系统的数学模型;进行仿真分析。(3)状态空间极点配置控制实验
进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开“Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment PolesExperiments”中的“Poles Control M File1”。
图1 直线一级倒立摆状态空间极点配置实时控制模块(程序)
(4)线性二次最优控制LQR 控制实验
打开直线一级倒立摆 LQR 实时控制模块,(进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开“Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment LQRExperiments”中的“LQR Control Demo”)。
图2 直线一级倒立摆 LQR 控制实时控制模块(程序)
(5)一级正摆位移和角度控制
(进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开 “ Inverted PendulumLinear Inverted PendulumLinear 1-Stage PendulumExperiment LQR Control Experiments”中的“LQR Control Simulink”)
图3 直线一级顺摆 LQR 实时控制模块(程序)
2.实验装置
观察下图我们我们可知直线单级倒立摆控制系统硬件包括计算机、I/O接口设备、伺服电机系统、倒立摆本体和光电码盘反馈测量元件等几大部件,它们正好组成了一个闭环系统。
图4 一级倒立摆实验硬件结构图
对于倒立摆本体而言,可以根据光电码盘的反馈通过换算获得小车的位移,小车的速度信号可以通过差分法得到。摆杆的角度由光电码盘检测并直接反馈到I/O设备,速度信号可以通过差分法得到。计算机从I/O设备中实时读取数据,确定控制策略(实际上是电机的输出力矩),并发送给I/O设备,I/O设备产生相应的控制量,交与伺服驱动器处理,然后使电机转动,带动小车运动,保持摆杆平衡。
图5是一个经典的倒立摆装置图形。小车由6V的直流电机通过齿轮和齿条机构来驱动。小车可以沿导轨做往复运动。小车位移通过一个额外的与电机齿轮啮合的齿轮测得。小车上面通过轴关节安装一个摆杆,摆杆可以绕轴做旋转运动。系统的参数可以改变以使用户能够研究运动特性变化的影响,同时结合系统详尽的参数说明和建模过程,我们能够方便地设计自己的控制系统。
图5 一级倒立摆实验装置图
上面的倒立摆控制实验仪器,包括:摆杆机构、滑块导轨机构基座,其特征在于:其蜗杆通过轴承固定于基座上,与之啮合的涡轮扇的轴通过轴承固定于动座下边,大皮带轮轴一端联接电机,另一端电位计由支座固定于动座上并电机共轴,大皮带轮与2个小皮带轮通过皮带连结,并通过轴承固定于动座之上;滑块固定联接于皮带轮之间的皮带上,同时滑块与动座固定的导轨动配合;摆杆机构通过下摆支座与滑块绞接;控制箱连电位计,电机。
四、实验结果
(1)状态空间极点配置控制实验 K=-34.8233-17.4150
69.4100
12.4717
我们首先打开电源,输入一组实验指导书上指定的极点-10,-10,223.2,223.2 后得到如下提所示的图。
图6 直线一级倒立摆参数修改前稳定时的仿真结果图
我们选择的一组期望的闭环极点是:μ1=-8,μ2=-8,μ3=-2+2*sqrt(3)*i,μ4=-2-2*sqrt(3)*i得到的反馈增益阵为:K=[-34.8299,-17.4150,69.4100,12.4717]
图7 直线一级倒立摆参数修改后扰动时的仿真结果图
添加一扰动后,系统的输出图像如下图所示,该扰动在0.5秒时加到系统中,上升时间为Tr=2s,最大超调量为0.635%,系统在4.5秒后回到最大误差的5%范围内,所以系统调节时间Ts=4s。
系统稳定时的输出图像如下图所示,系统稳定时的输出图像如下图所示,从图中可以看出此时系统的位置Pos稳态误差为0.06,角度Angle稳态误差为-3.16。
添加一扰动后,系统的输出图像如下图所示,该扰动在0.5秒时加到系统中,上升时间为Tr=2s,最大超调量为0.633%,系统在4.5秒后回到最大误差的5%范围内,所以系统调节时间Ts=4s。
实验提高:
1.实验目的
系统启动后,在当前位置给正摆施加一角度扰动,当平衡(摆角近似为零,需要有程序自动判断,不能只用停止若干秒)后,让小车直线运行40厘米,并快速保证平衡(摆角为零).2.实验原理
为了实现上述实验目的,我们使用LQR控制器,对其进行配置Q11=1500,Q33=700,R=5。K=17.3205,得到K=17.3205 8.6802-11.5153-0.5016,因为在上述过程中要求指定位置的快速稳定,并且在移动过程要保持最小角。用一个SWITCH开关来控制选择输入位置,具体的设计图如下图所示:
3.实验结果
实验结果如下图所示
运行1.5秒后,让最大值为0.4的斜坡信号接入,得到Qmax=17.1°,小车能很快的移到指定位置。(3)实验结果分析
极点配置的实验,输入参数后从起摆到稳定时间适中,稳态后震荡比LQR大,但振荡频率要小。对于LQR控制实验的结果与预期基本相符,当我们输入更大参数时,摆杆起摆后到达平衡所需时间会变短,但是左右位移会变大,稳定后的摆角震荡的幅度会变小,这些变化与我们对实验的实验预期较吻合,这是因为Q是误差的权矩阵,Q增大证明指标更看重误差,于是会用相对大的能量来使静态误差更快的减小,于是过渡时间变小,超调变大,稳态误差变小。对于一级正摆位移和角度控制实验,我们小组提出了多种方法,最终选择了如上图所示的方法,基本实现了要求,选择角度变化最大值越小,则稳定所需要的时间就越大,经过多次试验,我们选择了如上图所示的一组参数。
第五篇:amesim与matlab联合仿真步骤(自己总结)(精)
Amesim 与 matlab 联合仿真参数设置 实验软件平台
Matlab2009a , amesimR8a , VC6.0 企业版(英文版 步骤: 1 将 VC++中 的 “vcvar32.bat” 文 件 从 Microsoft Visual C++目录(通常是.Microsoft Visual StudioVC98Bin 中拷 贝至 AMESim 目录下。设置环境变量:我的电脑〉环境变 量。设置 AMESim 环境变量:变量名 AME ,值为其安装路 径如安装在 C 盘中则值为 C:+amesim 安装路径。设置 Matlab 环境变量:变量名 MATLAB 值为 D:MATLAB,此 处我安装的 matlab 在 D 盘根目录下。确认在系统环境变量 PATH 中包含系统安装目录 C:WINDOWSsystem32 3 在 Matlab 的目录列表里加上 AMESim 与 Matlab 接口文 件所在的目录 %AME%matlabamesim。File-〉 Set Path-〉 Add Folder 加 上 需 要 联 合 仿 真 的 amesim 文 件 目 录 和 C:AMEsimmatlabamesim(注 意 R8A 版 本 是
将 %AME%scriptingmatlabamesim 设置到 MATLAB 路径中 加入 matlab 默认路径中 将联合仿真的许可证文件 licnese.dat 拷贝到 AMESim 安 装目录下的 licnesing 文件夹中 确认是否在 AMESim 中选择 VC 作为编译器。具体操作 在 AMESim-〉 Opions-> AMESim Preferences->Compilation/Parameters中。.在 MATLAB 命令窗口中输入命令 Mex-setup ,选择 VC 作为编译器
注意点: 1, Vc 建议安装企业版而且是英文的,其第一次打开安装 文件安装并不完全,重启动以后再次点安装文件,会出现于 第一次安装文件不同的界面,就说明没有安装完全
2, Matlab 的安装目录和 amesim 的安装目录都不能在中文 路径下,而去文件夹的名称不能有空格
3, 联合仿真设置成功的标志 : 可以运行 amesim-〉 HELP-〉 GET AMESIM DEMO-〉 interface-〉 amesimsimulink 下的范例
4, 如果运行的现实找不到 matlab bin 则说明系统环境变 量中没有设置 matlab 路径,设置方法见上面,再重启电脑, 再次用 amesim 打开范例并到参数模式下, 运行 TOOLS-〉 Start matlab ,系统会调用 matlab 程序,再在打开的 matlab 中找 到与 amesim 中打开的文件同目录且同名的.mdl 文件,在 matlab 中运行仿真, 如果没有错误则在 amesim 中进入仿真 模式打开相应的元件就可
以看到曲线(注意在 amesim 中不用运行仿真 如果上面设置成功下面不用看 下面给出 amesim4.0 版本设置方法
为了实现二者的联合仿真,需要在 Windows2000 或更高级 操作系统下安装 Visual C++ 6.0,AMESim4.2以上版本与 MATLAB6.1上版本(含 Simulink 1.将 VC++中 的 “vcvar32.bat” 文 件 从 Microsoft Visual C++目录(通常是.Microsoft Visual StudioVC98Bin 中拷 贝至 AMESim 目录下。
2.环境变量确认: 1, 选择“ 控制面板-系统” 或者在“ 我的电脑” 图标上 点右键,选择“ 属性”;
2, 在弹出的“ 系统属性” 窗口中选择“ 高级” 页,选择 “ 环境变量”;
3, 在弹出的“ 环境变量” 窗口中找到环境变量“ AME ” , 它的值就是你所安装 AMESim 的路径,选中改环境变量;4, 点击“ 确认” 按键,该变量就会加到系统中;5, 如上 法确认环境变量 “ MATLAB", 该 值 为你所安装 的 MATLAB 的路径 3.确认是否在 AMESim 中选择 VC 作为编译器。具体操作 在 AMESim-〉 Opions-> AMESim Preferences->Compilation/Parameters中。
4.在 MATLAB 命令窗口中使用 Mex – setup , 选择 VC 作为 编译器。5.在 Matlab 的目录列表里加上 AMESim 与 Matlab 接口文 件所在的
目录 %AME%matlabamesim,其中 %AME% 是 AMESim 的 安 装 目 录 , 如 果 安 装 在 C:AMEsim , 则 就 加 上 C:AMEsimmatlabamesim。
6.The name of the S-Function is the name of the system with an ‘_’ added.7.The input of the interface block in AMESim has its ports in reverse order compared with Simulink.(注意 : 这里的模块的输入口是指在 matlab 中显示 的输入口,而且在 matlab 中的输出口和 simulink 中的接口 是对应的.可以参考帮助文件,里面有详细的提示 8.Remember to change from Parameters to Run mode in AMESim before running the simulation in Simulink or to use File->Write aux.files.注意 : 如果上面的设置还是不成功 , 甚至运行 Amesim 中自带的范例
也会出错 , 那可能是你的软件本身就有问题 , 可以下载一个补 丁就能解决.