adams与matlab联合仿真例子(正确没商量)
- 格式:doc
- 大小:466.57 KB
- 文档页数:13
Matlab与adams联合仿真实例本实例以matlab为外部控制程序,使用PID算法控制偏心杆的摆动,使偏心杆平衡到指定位置。
1.在adams/view中建立偏心杆模型图1 偏心杆模型1)新建模型如图所示,将Units设置为MMKS。
设置自己的Working Directory,这里设置为C:\adams\exercise。
点击OK按钮。
图2 新建模型对话框2)创建连杆设置连杆参数为Length=400,Width=20,Depth=20,创建如图所示的连杆。
图3 创建连杆3)创建转动幅在连杆质心MARKER点处创建转动幅,旋转副的参数设置为1Location和Normal To grid将连杆与大地相连。
图4 创建转动幅4)创建球体球体选项设置为Add to part,半径设置为20,单击连杆右侧Marker点,将球体添加到连杆上图5 创建球体5)创建单分量力矩单击Forces>Create a Torque(Single Component)Applied Forces,设置为Space Fixed,Normal to Grid,将Characteristic设置为Constant,勾选Torque并输入0,单击连杆,再点击连杆左侧的Marker点,在连杆上创建一个单分量力矩。
图6 创建单分量力矩2.模型参数设置1)创建状态变量图7 新建状态变量点击图上所示得按钮,弹出创建状态变量对话框,创建输入状态变量Torque,将Name 修改为.MODEL_1.Torque。
图8 新建输入状态变量Torque再分别创建状态变量Angel和Velocity(后面所设计控制系统为角度PID控制,反馈变量为Angel,Velocity为Angel对时间求导,不需要变量Velocity,这里设置Velocity是为了展示多个变量的创建)。
设置Angel的函数AZ(MARKER_3,MARKER_4)*180/PI,Velocity 的函数为WZ(MARKER_3,MARKER_4)*180/PI。
Adams与Matlab联合仿真例子作者寄语:这个文件是基于李增刚《adams入门详解与实例》一书中,Adams与Matlab联合仿真的例子,以及一个名为《2013版ADAMS与Matlab联合仿真(绝对正确版)》的pdf文件上修改来,为了方便起见,用了一些复制、粘贴,所以中间的一些过程会和这两个文件有所重合,不要惊讶,也不要吐槽。
做这个例子的目的,是站在一个普通学习者的角度,介绍联合仿真,和众多学习adams的人共勉。
我的结论是:以上两个例子中的结果并不矛盾,都是正确的,基本上看了我的例子后,他们的也就懂了。
李增刚/uxjACUp7U7Hzf 第236页开始。
《2013版ADAMS与Matlab联合仿真(绝对正确版)》/aeab70fe360cba1aa911da00.html1、知识储备以上两个例子都用到了PID控制(比例(proportion)、积分(integral)、微分(derivative)控制器)比例就是对误差乘以一个系数积分就是对误差积分然后再乘以一个系数微分是对误差求导注意我的模型,上面是角速度Angle velocity,下面是角度angle,这里的积分是对angle进行积分,导致上面两个例子的不同也就在这,这个地方尤其要注意,不要上下搞反了。
表示的是对angle乘以一个系数,这里选了1,为比例调节,即P调节。
就是对angle的积分,(就是累加的意思),即I调节,然后乘以了系数1。
因为输出的是角速度,角速度就是angle的微分的,所以不用做什么操作,后面乘以了一个系数1。
然后这三个相加起来作为反馈调节,所以用了这个模块,这个表示累减。
将角度值送到Matlab的workspace工作空间,这个表示把时间送到workspace中去,因为角度这里是角度与时间的函数。
注意:这些模块不是必要模块,我只是为了做对比而加上去的,去掉不会对仿真产生影响,但是如果要加的话这两个模块缺一不可。
1.建立一个简单的模型MODEL_Co_Simulation,创建一个构件PART_2,创建一个转动约束JOINT_1,给转动约束一个驱动MOTION_12.创建两个变量VARIABLE_PART2_CMx和变量VARIABLE_motion1创建变量如下:命名好名字点击OK则生成两个变量如图:3.然后在变量variable_part1中填写函数DX(PART_2.cm)这个函数用来测量构件PART_2质心点cm的X坐标;变量variable_motion1不做任何改变;在MOTION_1 中填入VARVAL(VARIABLE_motion1),variable_motion1将作为ADAMS的输入变量,MATLAB传递给ADAMS的数据,通过变量variable_motion1传递给MOTION_1。
4.在adams中点击Plugins——Controls——Plant Export,进行adams控制模块设置窗口点击Plant Export后出现如下界面然后对图中标记的地方进行修改同理操作右侧空白选中VARIABLE_Part1_CMx,然后如下图注意修改Target Software为MATLAB,显示这样的界面后点击OK,此时在模型的工程目录下会生成如下几个文件这样ADAMS中的操作就已经完成打开MATLAB,在MATLAB中输入工程目录下生成的文件的文件名如Control_Plant_3,回车MATLAB如下然后输入adams_sys回车,打开如下的一个窗口新建一个Simulink空白文档把ADAMS_sub拖进新的文档双节adams_sub如图双击MSC_Software如图设置2中的0.005为ADAMS仿真步长,1中的batch可以自己试着设置一下设置Simulink的仿真步长,Simulink的仿真步长一定要和ADAMS中的仿真步长一致点击绿色按钮开始仿真,adams_sub就是ADAMS在Simulink中的模型,输入motion为正弦信号,输出为part2质心的X坐标值。
7.1ADAMS/Controls使用实例本实例以MATLAB作为外部控制程序,以偏心连杆模型为例,讲解ADAMS与MA TLAB的联合仿真过程。
主要包括创建机械系统模型、模型参数设置、建立MA TLAB控制模型以及结果后处理四个步骤。
机械模型建立、模型参数设置这两步为了导出一个可在MA TLAB软件Simulink 中使用的模块,这个模块包含了所建立ADAMS模型的信息参数,并有输入输出接口。
利用这个模块在MALTAB中建立控制系统,就可以控制ADAMS模型,在仿真结束后,可以直接在MATLAB 中得到所需的数据结果进行后处理。
偏心连杆的形心与大地以铰链相连,连杆可以绕着铰链转动。
连杆右端连接有一个小球,由于小球的存在,使整个机构的质心与形心不重合,若在连杆左端没有力矩作用,连杆将做顺时针运动。
本例通过测量连杆运动的角速度、角度,对左端力矩的大小进行不断控制,最终使连杆相对平衡,即其角速度为零。
图7-22偏心连杆模型以下将详细介绍联合仿真的详细步骤。
通过本实例的学习,能够详细了解ADAMS软件与MA TLAB联合控制的使用方法。
7.2.1 创建机械系统模型1、设置单位启动ADAMS/View,选择新模型,在模型名输入MODEL_1。
选择菜单栏【Settings】→【Units】命令,设置模型物理量单位,将单位设置成MMKS,长度和力的单位设置成毫米和牛顿,如图7-23所示:图7-23设置模型物理量单位2、创建连杆单击几何工具包中的连杆按钮,将连杆参数设置为Length=400,Width=20,Depth=20,然后在图形区水平拖动鼠标,创建一个连杆,如图7-24。
图7-24创建连杆3、创建旋转副单击运动副工具包中的旋转副按钮,将旋转副的参数设置为1 Location和Normal to gird,单击连杆质心处的Marker点,将连杆和大地关联起来,如图7-25所示。
图7-25创建旋转副4、创建球体单击几何工具包中的球体按钮,将球体的选项设置为Add to Part,半径设置为20,然后在图形区单击连杆,再单击连杆右侧处的Marker点,将球体加入到连杆上,如图7-26所示。
7.1机械夹紧机构建模使用实例机械系统建模实例将创建一种机械夹紧机构模型,是阿波罗登月计划中用于夹紧登月舱和宇宙飞船的十二个夹紧机构之一。
夹紧机构包括:摇臂(Pivot)、手柄(Handle)、锁钩(Hook)、连杆(Slider)和固定块(ground Block)等物体。
夹紧机构的工作原理是:如图7-1所示,在夹紧机构手柄(Handle)处施加一个作用力,驱动机构运动,使其锁钩(Hook)处产生十倍于作用力的夹紧力,用于夹紧登月舱和宇宙飞船。
夹紧机构的设计要求是:至少产生800N的夹紧力;施加在手柄上的力应不大于80N;释放手柄的力应最小;在振动环境中夹紧机构应安全可靠。
手柄Handle锁钩Hook图7-1 夹紧机构三维模型图以下将从创建几何构件、添加约束、添加载荷及结果后处理等几个方面详细介绍机械夹紧机构模型的建立。
通过本实例的学习,能够详细了解ADAMS软件设计流程及使用方法。
7.1.1创建几何构件1、创建新模型本实例将使用ADAMS/View的零件库、约束库和力库创建夹紧机构模型。
首先打开ADAMS/View,选择“Create a new model”,模型名称(Model Name):Latch,点击OK,创建新模型完毕。
其它设置如图7-2所示:图7-2 创建新模型2、设置工作环境选择菜单栏【Settings】→【Units】命令,设置模型物理量单位,如图7-3所示:图7-3设置模型物理量单位选择菜单栏【Settings】→【Working Grid】命令,设置工作网格,如图7-4所示:图7-4设置工作网格3、创建设计点设计点是几何构件形状设计和位置定位的参考点。
本实例将通过设计点列表编辑器创建几何构件模型所需要的全部设计点。
选择并点击几何模型库(Geometric Modeling)中的点(Point),下拉菜单选择(Add to Ground)、(Don’t Attach),并单击Point Table列表编辑器,创建并生成Point_1、Point_2等六个设计点,如图7-5、图7-6所示:图7-5设计点列表编辑器图7-6创建设计点4、创建摇臂(Pivot)选择并点击几何模型库(Geometric Modeling)中的平板(Plate),设置平板厚度值(Thickness)为1,圆角半径(Radius)为1,用鼠标左键选择设计点:Point_1、Point_2、Point_3,按鼠标右键完成摇臂(Pivot)的创建,将其重新命名(Rename)为Pivot,如图7-7所示:图7-7创建摇臂5、创建手柄(Handle)选择并点击几何模型库(Geometric Modeling)中的连杆(Link),用鼠标左键选择设计点:Point_3和Point_4,完成手柄(Handle)的创建,将其重新命名(Rename)为Handle,如图7-8所示:图7-8创建手柄6、创建锁钩(Hook)选择并点击几何模型库(Geometric Modeling)中的拉伸体(Extrusion),选择“New Part”和“Clsoed”,拉伸体长度(Lengh)设为1,用鼠标左键选择表7-1所示的11个位置,按鼠标右键完成锁钩的创建,将其重新命名(Rename)为Hook,如图7-9示:表7-1锁钩节点坐标图7-9创建锁钩7、创建连杆(Slider)选择并点击几何模型库(Geometric Modeling)中的连杆(Link),用鼠标左键选择设计点:Point_5和Point_6,完成连杆(Slider)的创建,将其重新命名(Rename)为Slider,如图7-10所示:图7-10创建连杆8、创建固定块(Ground Block)选择并点击几何模型库(Geometric Modeling)中的长方体(Box),选择“On Ground”,使其与大地(Ground)固结在一起,按下图创建固定体用鼠标左键选择设计点:Point_5和Point_6,完成连杆(Slider)的创建,将其重新命名(Rename)为Slider,如图7-11所示:图7-11创建固定块7.1.2添加约束1、添加旋转约束副选择并点击约束库(Joints)中的旋转副(Revolute Joints);选择“1 Location”(一个位置),“Normal To Grid”(垂直于工作网络),用鼠标左键选择Point_1,创建摇臂和大地的约束副;选择“2 Bodies - 1 Location”(两个物体一个位置),“Normal To Grid”(垂直于工作网络),选择摇臂和锁钩两个物体,左键选择Point_2,创建摇臂和锁钩的约束副;同理选择摇臂和手柄,位置为Point_3,手柄和连杆,位置为Point_5,创建摇臂和手柄、手柄和连杆的旋转约束副。
Adams与Matlab联合仿真例子作者寄语:这个文件是基于李增刚《adams入门详解与实例》一书中,Adams与Matlab联合仿真的例子,以及一个名为《2013版ADAMS与Matlab联合仿真(绝对正确版)》的pdf文件上修改来,为了方便起见,用了一些复制、粘贴,所以中间的一些过程会和这两个文件有所重合,不要惊讶,也不要吐槽。
做这个例子的目的,是站在一个普通学习者的角度,介绍联合仿真,和众多学习adams的人共勉。
我的结论是:以上两个例子中的结果并不矛盾,都是正确的,基本上看了我的例子后,他们的也就懂了。
李增刚第236页开始。
《2013版ADAMS与Matlab联合仿真(绝对正确版)》1、知识储备以上两个例子都用到了PID控制(比例(proportion)、积分(integral)、微分(derivative)控制器)比例就是对误差乘以一个系数积分就是对误差积分然后再乘以一个系数微分是对误差求导注意我的模型,上面是角速度Angle velocity,下面是角度angle,这里的积分是对angle进行积分,导致上面两个例子的不同也就在这,这个地方尤其要注意,不要上下搞反了。
表示的是对angle乘以一个系数,这里选了1,为比例调节,即P调节。
就是对angle的积分,(就是累加的意思),即I调节,然后乘以了系数1。
因为输出的是角速度,角速度就是angle的微分的,所以不用做什么操作,后面乘以了一个系数1。
然后这三个相加起来作为反馈调节,所以用了这个模块,这个表示累减。
将角度值送到Matlab的workspace工作空间,这个表示把时间送到workspace中去,因为角度这里是角度与时间的函数。
注意:这些模块不是必要模块,我只是为了做对比而加上去的,去掉不会对仿真产生影响,但是如果要加的话这两个模块缺一不可。
我的软件是adams2012与Matlab 7.12.0(R2011a)。
现在进入正题1、设置单位启动ADAMS/View,选择新模型,在模型名输入link。
Matlab与adams联合仿真实例本实例以matlab为外部控制程序,使用PID算法控制偏心杆的摆动,使偏心杆平衡到指定位置。
1.在adams/view中建立偏心杆模型图1 偏心杆模型1)新建模型如图所示,将Units设置为MMKS。
设置自己的Working Directory,这里设置为C:\adams\exercise。
点击OK按钮。
图2 新建模型对话框2)创建连杆设置连杆参数为Length=400,Width=20,Depth=20,创建如图所示的连杆。
图3 创建连杆3)创建转动幅在连杆质心MARKER点处创建转动幅,旋转副的参数设置为1Location和Normal To grid将连杆与大地相连。
图4 创建转动幅4)创建球体球体选项设置为Add to part,半径设置为20,单击连杆右侧Marker点,将球体添加到连杆上图5 创建球体5)创建单分量力矩单击Forces>Create a Torque(Single Component)Applied Forces,设置为Space Fixed,Normal to Grid,将Characteristic设置为Constant,勾选Torque并输入0,单击连杆,再点击连杆左侧的Marker点,在连杆上创建一个单分量力矩。
图6 创建单分量力矩2.模型参数设置1)创建状态变量图7 新建状态变量点击图上所示得按钮,弹出创建状态变量对话框,创建输入状态变量Torque,将Name 修改为.MODEL_1.Torque。
图8 新建输入状态变量Torque再分别创建状态变量Angel和Velocity(后面所设计控制系统为角度PID控制,反馈变量为Angel,Velocity为Angel对时间求导,不需要变量Velocity,这里设置Velocity是为了展示多个变量的创建)。
设置Angel的函数AZ(MARKER_3,MARKER_4)*180/PI,Velocity的函数为WZ(MARKER_3,MARKER_4)*180/PI。
MATLAB和ADAMS联合仿真实现一种位置控制系统0.预先操作01 在D盘根目录下新建文件夹Model,路径中无空格、无中文字符,模型统一存放处。
1.ADAMS中建模过程1.1启动ADMAS双击桌面图标:或从“开始”中选择启动:1.2进入ADMAS界面。
1.3设置工作目录。
选择菜单栏File\Select Directory,弹出浏览文件夹对话框,选择D:\Model文件夹。
1.4弹出主工具栏。
选择菜单栏\View\Toolbox andToolbars,勾选Tool Settings中Main Toolbar,弹出工具栏。
1.5ADAMS中按F4调出位置/坐标显示。
1.6设置重力加速度。
选择菜单栏\Setting\Gravity,设置重力加速度,此时弹出Error对话框。
选择“Create Model”,并起名为“Qiu1”,点击“OK”再次选择菜单栏\Setting\Gravity,设置重力加速度:勾选Gravity前方框,点击-Y*,如下图示,点击“OK”。
1.7设置单位。
选择菜单栏\Setting\Units,设置单位,此时弹出“UnitsSettings”对话框,点击“MKS”按钮,各单位符号如右图示,点击“OK”。
1.8建立半径10cm的球,放置在点(0,0,0)上。
“右键”点击主工具栏第一排第二个符号-刚体:连杆,弹出扩展工具符号,选择第二排第一个符号-刚体:球,勾选Radius前方框,则此球半径为10.0cm。
1.9建立球与大地之间移动副。
“右键”点击主工具栏第二排第二个符号-连接:旋转副,弹出扩展工具符号,选择第二排第一个符号-连接:移动副。
该移动副属性为2个构件,1个作用点。
鼠标动作顺序为:1.左键点击“ground”一次,选取大地为第一个构件;2.左键点击球体一次,选取球为第二个构件;3.右键在球心位置点击一次,弹出Select对话框,左键双击“PART_2.cm”;4.右键在球心位置点击一次,弹出Select对话框,左键双击“PART_2.cm.Y”。
基于ADAMS与MATLAB的倒立摆联合仿真实验5篇第一篇:基于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与Matlab联合仿真例子作者寄语:这个文件是基于李增刚《adams入门详解与实例》一书中,Adams与Matlab联合仿真的例子,以及一个名为《2013版ADAMS与Matlab联合仿真(绝对正确版)》的pdf文件上修改来,为了方便起见,用了一些复制、粘贴,所以中间的一些过程会和这两个文件有所重合,不要惊讶,也不要吐槽。
做这个例子的目的,是站在一个普通学习者的角度,介绍联合仿真,和众多学习adams的人共勉。
我的结论是:以上两个例子中的结果并不矛盾,都是正确的,基本上看了我的例子后,他们的也就懂了。
李增刚/s/uxjACUp7U7Hzf 第236页开始。
《2013版ADAMS与Matlab联合仿真(绝对正确版)》/view/aeab70fe360cba1aa911da00.html1、知识储备以上两个例子都用到了PID控制(比例(proportion)、积分(integral)、微分(derivative)控制器)比例就是对误差乘以一个系数积分就是对误差积分然后再乘以一个系数微分是对误差求导注意我的模型,上面是角速度Angle velocity,下面是角度angle,这里的积分是对angle进行积分,导致上面两个例子的不同也就在这,这个地方尤其要注意,不要上下搞反了。
表示的是对angle乘以一个系数,这里选了1,为比例调节,即P调节。
就是对angle的积分,(就是累加的意思),即I调节,然后乘以了系数1。
因为输出的是角速度,角速度就是angle的微分的,所以不用做什么操作,后面乘以了一个系数1。
然后这三个相加起来作为反馈调节,所以用了这个模块,这个表示累减。
将角度值送到Matlab的workspace工作空间,这个表示把时间送到workspace中去,因为角度这里是角度与时间的函数。
注意:这些模块不是必要模块,我只是为了做对比而加上去的,去掉不会对仿真产生影响,但是如果要加的话这两个模块缺一不可。
我的软件是adams2012与Matlab 7.12.0(R2011a)。
现在进入正题1、设置单位启动ADAMS/View,选择新模型,在模型名输入link。
选择菜单栏【Settings】→【Units】命令,设置模型物理量单位,将单位设置成MMKS,长度和力的单位设置成毫米和牛顿。
2、创建连杆单击几何工具包中的连杆按钮,将连杆参数设置为Length=400,Width=20,Depth=20,然后左键选中原点,在图形区水平拖动鼠标,创建一个连杆。
3、创建旋转副单击运动副工具包中的旋转副按钮,将旋转副的参数设置为1 Location和Normal to gird,单击连杆质心处的Marker点,将连杆和大地关联起来。
4、创建球体单击几何工具包中的球体按钮,将球体的选项设置为Add to Part,半径设置为20,然后在图形区单击连杆,再单击连杆右侧处的Marker点,将球体加入到连杆上,如下图所示。
此时连杆的质心产生了移动。
5、创建单分量力矩单击载荷工具包中的单分量力矩按钮,将单分量力矩的选项设置为Space Fixed和Normal to Grid,将Characteristic设置为Constant,勾选Torque并输入0,然后在图形区单击连杆,再单击连杆左侧的Marker点,在连杆上创建一个单分量力矩,如下图所示。
6、创建输入状态变量老版本单击菜单【Build】→【System Elements】→【State Variable】→【New】,弹出下图所示的创建状态变量对话框,将Name输入框改成Torque。
单击Ok后,创建Torque变量。
7、将状态变量与模型关联在图形区双击单分量力矩的图标,打开编辑对话框,如下图所示,在Function输入框中输入V ARV AL(.link.Torque) ,这里V ARV AL()是一个ADAMS函数,它返回变量.link.Torque 的值。
通过函数把状态变量Torque与力矩关联起来,力矩取值将来自于状态变量Torque。
8、指定状态变量Torque为输入变量点击图上的按钮创建输入变量(就是这个量由matlab输入控制),老版本单击菜单【Build】→【Controls Toolkit】→【Plant Input】后,弹出定义控制输入对话框,如下图所示。
将Plant Input Name 输入框改成.link.PINPUT_Torque,在Variable Name输入框中,用鼠标右键快捷菜单输入状态变量Torque,单击OK按钮。
9、创建输出状态变量老版本单击菜单【Build】→【System Elements】→【State Variable】→【New】,弹出创建状态变量对话框。
将Name输入框修改成Angle,在F(time,…)=输入框中输入表达式AZ(MARKER_3,MARKER_4)*180/PI,单击Apply按钮创建状态变量Angle作为第一个输出变量,然后将Name修改成Velocity,在F(time,…)=输入框中输入表达式WZ(MARKER_3,MARKER_4)*180/PI,如图7-31所示。
其中AZ()函数返回绕Z轴旋转的转角,这里代表连杆相对于转轴的转角,WZ()函数返回绕Z轴旋转的角速度,这里代表连杆的角速。
MARKER_3在连杆cm上,MARKER_4在连杆cm处的地上。
参考下面的图吧,全懂了。
10、指定状态变量angle、Velocity为输出变量老版本单击菜单【Build】→【Controls Tookit】→【Plant Output】后,弹出创建控制输出对话框,如下图所示。
将Plant Output Name输入框修改成.link..POUTPUT_control。
在Variable Name 输入框中,用鼠标右键快捷菜单输入状态变量Velocity和.link.Angle,单击OK按钮。
11、导出控制参数如果还没有加载ADAMS/Controls模块,单击菜单【Tools】→【Plugin Manager】,在弹出的插件管理对话框中选择ADAMS/Controls模块,并单击OK按钮,之后出现一个新的菜单Controls。
单击菜单【Controls】→【Plant Export】,弹出导出控制参数对话框。
在File Prefix 输入框中输入control_pid,在Plant Input输入框中用鼠标右键快捷菜单输入Torque,(或者点击from pinput按钮,选中之前创建的Torque输入),在Plant Output输入框中用鼠标右键快捷菜单输入Velocity,.link.Angle,(或者点击from pout put按钮,选中之前创建的输出)将Control package选择为MATLAB,Type选择为non_linear,Initial Static Analysis选择NO,ADAMS/Solver Choice选择为Fortran。
单击file—select directiory,选定工作路径(我在桌面上创建了一个名为adams的文件),单击OK按钮后,在adams文件中将生成control_pid.m、control_pid.cmd、control_pid.adm这3个文件。
12、导出ADAMS模型在MATLAB里的模块启动MATLAB ,先将MA TLAB的工作目录指向ADAMS的工作目录,方法是单击工作栏中Current Direction后的按钮,弹出选择路径对话框,选中桌面上的adams文件即可。
在MA TLAB命令窗口的>>提示符下,输入control_pid,也就是control_pid.m的文件名,Matlab的主界面会出现如下的文字。
然后在>>提示符下输入命令adams_sys ,该命令是ADAMS与MATLAB的接口命令。
在输入adams_sys命令后,弹出一个新的窗口,该窗口是MA TLAB/Simulink的选择窗口,其中S-Function方框表示ADAMS模型的非线性模型,即进行动力学计算的模型,State-Space 表示ADAMS模型的线性化模型,在ADAMS_sub包含有非线性方程,也包含许多有用的变量,我们选用如图所示的模块。
13、建立控制方案在MA TLAB/Simulink选择窗口中,单击菜单【File】→【New】→【Model】后,弹出一个新的窗口,单击工具栏中的保存按钮,将新窗口存盘为control_pid_1.mdl(不能与.m 文件同名),将ADAMS_sub方框拖拽到control_pid_1.mdl窗口中,并参考下图完成控制系统的搭建,也可采用其他的控制方案,注意图中的四个,要进行设置,可双击这个模块,将这里选中,四个都要设置。
14、设置MATLAB与ADAMS之间的数据交换参数在control_model.mdl 窗口中双击ADAMS_sub方框,在弹出的新的窗口中双击MSCSDoftware,弹出数据交换参数设置对话框,将Interprocess设置为PIPE(DDE) ,如果不是在一台计算机上,选择TCP/IP,将Communication Interval输入框中输入0.05(这是可以的),表示每隔0.05s在MA TLAB和ADAMS之间进行一次数据交换,若仿真过慢,可以适当改大该参数,将Simulation Mode设置为continuous,Animation mode设置成interactive,表示交互式计算,在计算过程中会自动启动ADAMS/View,以便观察仿真动画,如果设置成batch,则用批处理的形式,看不到仿真动画,其他使用默认设置即可。
15、仿真设置和仿真计算。
单击窗口中菜单【Simulation】→【Simulation Parameters】,弹出仿真设置对话框,在Solver 页中将Start time设置为0,将Stop time设置为20,将Type设置为Variable-step,其他使用默认选项,单击OK按钮。
最后单击开始按钮,开始仿真。
(若出现错误,重启MATLAB 即可。
每次启动MA TLAB都需要选择路径到包含control_pid.m、control_pid.cmd、control_pid.adm的文件夹,并输入control_pid(.m文件名)和adams_sys(ADAMS与MA TLAB 的接口命令))。
16、结果后处理结果后处理也就是看图像,这里我提供三种看图像的方法。
(1)用示波器显示。
在MATLAB示波器中,可以得到角度和力矩的曲线。
得到的Velocity 变量曲线和Torque变量曲线分别如下图所示。