基于ADAMS与MATLAB的倒立摆联合仿真实验

2024-06-10

基于ADAMS与MATLAB的倒立摆联合仿真实验(精选4篇)

篇1:基于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°)时,保持不变。

篇2:基于ADAMS与MATLAB的倒立摆联合仿真实验

目录

一、倒立摆简介

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参数的确定采用的是试凑法,即通过控制经验和多次系统调试来确定参数,往往比较繁琐,难以达到期望的精度。而且双回路控制比单回路控制的难度更大。这种情况下可以采用极点配置法或扩充临界比例法等。

参考文献

篇3:基于ADAMS与MATLAB的倒立摆联合仿真实验

关键词:一阶倒立摆,双闭环,模糊控制,仿真

0 引言

近代机械控制系统中,如飞机安全着陆、火箭发射中的垂直度控制、卫星飞行中的姿态控制、行走机器人步行控制及海上钻井平台的稳定控制等,都存在类似于倒立摆的稳定控制问题。早在20世纪60年代人们就开始了对倒置系统的研究,1966年Sehaefer和Cannon应用Bang-bang控制理论,将一个曲轴稳定于倒置装置。从70年代起,日本、美国的一些从事控制理论研究的专家学者就开始了倒立摆系统的控制稳定性的研究。我国学者从80年代初也开始了倒立摆系统的控制研究。作为被控对象的倒立摆系统是非线性、强耦合、多变量和自然不稳定的系统,是检验各种控制理论的理想模型。在控制过程中,倒立摆系统能有效地反映诸如稳定性、鲁棒性、随动性以及跟踪等许多控制中的关键问题。本文结合一阶倒立摆系统的特点,采用机理法建立其数学模型,并且采用Matlab软件进行仿真验证。

1 一阶倒立摆系统数学模型

对于倒立摆系统,由于其本身是自不稳定的系统,实验建模存在一定的困难。但是经过假设忽略掉一些次要的因素后,倒立摆系统就是一个典型的运动的刚体系统,可以在惯性坐标系内应用经典力学理论建立系统的动力学方程。下面我们采用其中的牛顿·欧拉方法建立直线型一阶倒立摆系统的数学模型。

微分方程的推导:在忽略了空气阻力和各种摩擦之后,可将直线一阶倒立摆系统抽象成小车和匀质杆组成的系统,如图一所示。

假设:小车质量m0;摆杆质量m;小车摩擦系数b;摆杆转动轴心到杆质心的长度l;摆杆惯量J;加在小车上的力F;小车位置x;偏角摆杆θ。

若取m0=0.6kg;m=0.085kg;b=0.1N/m·s-1;l=0.42m;J=0.0034kg*m2;T=0.005s(采样频率)。

摆杆绕其重心的转动方程为:

摆杆重心的水平运动可描述为:

摆杆重心在垂直方向上的运动可描述为:

小车水平方向运动可描述为:

由式(2)和式(4)得到:

由式(1)、式(2)和式(3)得:

整理式(5)和式(6)得:

若只考虑θ0=0在其工作点附近(0*<θ<10)的细微变化,这时可近似认为, ,cosθ=1,由此得到的简化近似模型为:

3 模型验证

上述数学模型系经机理建模得出,但其准确性还需运用一定的理论与方法加以验证,保证以其为基础的仿真实验的有效性。本文所进行的模型验证实验的结果是依据经验来判定的,其正确的结果是“正确模型”所应具备的“必要性质”。

3.1 模型封装

在Matlab的Simulink图形仿真环境下进行模型验证实验。利用Simulink压缩子系统功能,可将模型验证原理图如图二进行封装,得到简化模型的封装图三。

3.2 仿真结果

执行程序的结果如图四、五所示,在0.1N的冲击力作用下,摆杆倒下(由零逐步增大),小车位置逐渐增加,结果符合实验设计,可认为该“一阶倒立摆系统”的数学模型是有效的。该简化近似模型在一定条件下可以表述原系统模型的性质。

4 结束语

采用机理建模的方法,通过对系统模型的简化,得到了一阶直线倒立摆系统的微分方程数学模型。对于所建立的数学模型采用Matlab软件进行仿真验证,验证结果表明,所建立一阶倒立摆的模型真实有效,对于工程控制中倒立摆问题的稳定性研究有着重大意义。

参考文献

[1]孙增圻,等.智能控制理论与技术[M].北京:清华大学出版社,2005.

[2]严雪莉,江汉红.单级倒立摆控制方法的仿真对比研究[J].测控技术,2005,24(07):37-39.

[3]欧阳黎明.MATLAB控制系统设计[M].北京:国防工业出版社,2001.

篇4:基于ADAMS与MATLAB的倒立摆联合仿真实验

关键词:一阶模型 机器人 仿真

中图分类号:TP242文献标识码:A文章编号:1674-098X(2014)07(c)-0068-01

系统仿真是根据被研究的真实系统的数学模型研究系统性能的一门学科,现在尤指利用计算机去研究数学模型行为的方法。计算机仿真的基本内容包括系统、模型、算法、计算机程序设计与仿真结果显示、分析与验证等环节。本文选用NI提供的NI Simulation Module软件模块构建机器人实时系统仿真,实时对数据进行采集,使得不需要编写任何程序直接把控制模型的输出信号引出作用在真实系统。

1 近似模型—倒立摆系统

倒立摆系统的控制问题一直是自动控制理论研究中的一个典型问题。控制的目标是通过给机器人底座施加一个力u(控制量),使机器人停留在预定的位置,并使竖起的支杆不倒下,即不超过一个预定好的垂直偏离角范围。该次设计使用的倒立摆硬件是固高公司生产的GIP-100-L一阶倒立摆系统。

其中,计算机与运动控制卡的部分采用了NI的PXI控制器及其运动控制卡系统,即固高上层运动控制部分被替换为NI的运动控制产品,下层系统不变。整个系统包括计算机、运动控制卡、伺服机构、倒立摆本体和光电码盘几大部分,组成了一个闭环系统。光电码盘1将机器人的位移、速度信号反馈给伺服驱动器和运动控制卡,摆杆的位置、速度信号由光电码盘2反馈回运动控制卡。

在该文中,将应用牛顿一欧拉法对倒立摆进行数学建模。得到一阶倒立摆动力学非线性方程组后,在=0附近对以上方程组进行线性化处理,其中,可以得到式(1):

2 倒立摆非线性系统数学模型建立

非线性是指不具有线性叠加的性质,在现实系统中,大多数系统都是非线性的,NI的Simulation Module工具套件除了本身提供的非线性工具(比如过冲、摩擦、死区、量化、延迟、变化率限制等非线性模型)之外,还可以通过NI的公式节点来编辑非线性数学模型,得到系统的非线性微分方程表示,比如三角函数、指数函数、幂函数等等。

根据NI建议的,本次设计倒立摆的线性模型采用Simulation 自带的自控理论函数仿真,采用公式节点辅助Simulation Module提供的標准积分器来实现。根据公式(1)的倒立摆非线性系统模型,采用公式节点辅助标准积分器实现。

其中M表示机器人质量,m表示倒立摆摆杆质量,g表示重力加速度,L表示摆杆杆长,u表示控制力大小,b表示滑动摩擦系数,f表示转动摩擦系数,J表示摆杆转动惯量。dda表示角度相对于时间的二阶导数,da是角度的一阶导数,a表示角度,ddx表示位移相对于时间的二阶导数(即加速度),dx表示位移相对于时间的一阶倒数(即速度),x表示机器人的位移。其中a、da、x、dx为非线性系统类似于自控理论中状态空间表示的状态变量,u表示系统输入,并且对于上述的四个状态,系统的初始值可以设定。

以上就是直接采用倒立摆非线性微分方程所建立数学模型的仿真,通过仿真发现,采用非线性模型对系统仿真更接近于系统的真实特性,如果采用线性模型(即对倒立摆模型线性化后所使用的状态空间表示方程),系统将完全看不出在平衡位置震荡的曲线。

3 机器人建模仿真

目前大部分仿真系统内只提供线性控制器,所得到的分析曲线也是在倒立摆为线性的情况下的结果,所以并不能比较真实全面地表现该控制器对真实系统(非线性系统)作用时倒立摆真正的表现,使用了NI Simulation Module就可以把所设计的线性控制器直接对非线性被控对象进行仿真,用于观测结果。

对于机器人伺服系统控制器为五个输入,一个输出,五个输入分别表示倒立摆对象的四个状态(即角度、角速度、位移、速度)和位移参考输入,输出为控制器对倒立摆机器人所施加的力,把此控制器用于系统仿真,必先得到该控制器的离散LTI模型。

上式就是控制器状态空间LTI模型,该模型的输出显示在程序框图左侧中间的部分,在左侧底部,该控制器模型被保存为文件,用于在本章仿真中直接从文件中调出,仿真使用。从该模型中明确看出,v(k)表示积分状态,x(k)为被控对象输入的四个状态和委员参考输入,y为控制器的输出,其中被设计的参数、分别显示在输出方程中。

w仿真结果的两个控制开关分别表示了所用的控制器类型以及被控对象倒立摆线性、非线性模型。其中右边曲线表示在t=0时参考输入为-1.4,在t=3时参考输入为0.0052时的响应曲线,其中红色曲线表示倒立摆摆杆角度,蓝色曲线表示机器人位置,可见对于本文所设计控制器应用于非线性被控对象还是完全可以达到预期目地的。但是,由于所设计的控制器是在被控对象为线性近似的情况下完成的,当参考输入的变化量突然变大时,系统将发生不稳定。由此可见,现代控制理论的设计思想用于实际情况还是具有一定得局限性的。从仿真结果来看,大约参考输入突然变化2以上时,系统将发生崩溃。

4 结语

本次设计的主要任务即是控制系统设计,对系统进行数学建模,通过真实信号的激励、响应,对模型进行修正。之后选择控制器结构并获取相应的参数,并对控制系的性能进行分析。本文完成了大部分的控制系统开发工作,但是仍有部分工作还在研究阶段,该文只是整个开发过程中一个阶段性总结,以希望科研继往开来。

参考文献

[1]孙灵芳,孔辉,刘长国,等.倒立摆系统及研究现状[J].机床与液压,2012(7).

[2]杨世勇,徐莉苹,王培进.单级倒立摆的PID控制研究[J].控制工程,2012(S1).

上一篇:思想汇报《张思德》有感下一篇:林教头风雪山神庙.doc(练习)