Matlab及adams联合仿真 仿真结果动画的保存及后处理

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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。(MARKER_3为连杆上的点,MARKER_4为地面上固定的点)AZ(MARKER_i,MARKER_j)表示MARKER_i绕MARKER_j的Z轴旋转的角度,WZ表示MARKER_i绕MARKER_j的Z轴旋转的角速度。

图9 新建输出状态变量Angel、Velocity

2)将输入状态变量Torque与模型关联

双击单分量力矩图标,弹出Modify Torque对话框,修改Function为VARVAL(.MODEL_1.Torque),VARVAL是用于返回Torque的值。

图10 将输入状态变量Torque与模型关联

3)指定输入输出变量

点击,右键单击Variable Name右边的文本框,如图所示选择Torque。

图11 指定输入变量

图12 指定输入变量Torque

点击,分别两次右键单击Variable Name右边的文本框,分别选择Angel和Velocity。

图13 指定输出变量

图14 指定输出变量为Angel、Velocity

4)导出控制参数

点击Plugins>Controls>Plant_Export。

图15 导出控制参数

点击From Pinput,选择PINPUT_1。

图16 设置输入输出参数

同样的方法,点击From Poutput选择POUTPUT_1。将Target Software设置为MATLAB。File Prefix设置为controls_PID,其他按照默认设置不做改动。

图17 导出控制参数对话框

3.建立MATLAB控制模型

1)导出ADAMS模型在MATLAB中的模块

启动MATLAB,先将MATLAB的工作目录指向ADAMS的工作目录,方法是修改当前的工作目录为之前在ADAMS中新建模型时的工作目录,这里是C:\adams。点击浏览文件夹选择文件夹C:\adams。在命令窗口提示符》下输入Controls_PID,也就是Controls_PID.m 的文件名,再在命令提示符》下输入adams_sys,弹出一个新窗口,这个窗口是MATLAB/Simulink的选择窗口其中S-Function方框表示ADAMS模型的非线性模型,即进行动力学计算的模型,State-Space表示ADAMS模型的线性化模型,在ADSMA_sub中包含有非线性方程,也包含许多有用的变量。

图18 导出ADAMS在MATLAB中的模块

图19 ADAMS在MATLAB中的模块

2)建立控制方案

在MATLAB/Simulink选择窗口中,单击菜单file>new>model或直接单击新建模型按钮,

弹出新的Simulink窗口,单击工具栏中的保存按钮,将新窗口存盘为control_model.mdl(不能与.m文件同名)。将ADAMS_sub 方框拖拽到control_model窗口中,并搭建如图所示控制系统,此控制系统采用角度PID控制对偏心杆的角度进行控制。也可以采用其他的控制方案。

图20 Simulink中PID控制图

3)设置MATLAB与ADAMS之间的数据交换参数

在control_model窗口中双击ADAMS_sub方框,在弹出的新的窗口中双击MSC Software,弹出数据交换参数设置对话框,将Adams Solver type设置为Fortran(如果设置为C++,ADAMS的构件不会运动,看不到动画效果。),将Interprocess设置为PIDE(DDE),如果不是在一台计算机上,选择TCP/IP,Animation mode设置成interactive,表示交互式计算,在计算过程中会自动启动ADAMS/View,以便观察仿真动画,如果设置成batch,则用批处理的形式,看不到仿真动画,将Simulation Mode设置为continuous,将Communication Interval输入框中输入0.005,表示每隔0.005s在MATLAB和ADAMS之间进行一次数据交换,若仿真过慢,可以适当改大该参数,其他使用默认设置即可。

图21 数据交换参数设置对话框

4)仿真设置和仿真计算

单击窗口中菜单Simulation>Model Configuration Parameters,将Stop Time设置为20。Type设置为Variable-step,其他使用默认选项,单击0K按钮。单击开始按钮,

相关文档
最新文档