收藏 分销(赏)

adams与matlab联合仿真例子(正确没商量)doc资料.doc

上传人:精*** 文档编号:4015525 上传时间:2024-07-25 格式:DOC 页数:15 大小:460KB
下载 相关 举报
adams与matlab联合仿真例子(正确没商量)doc资料.doc_第1页
第1页 / 共15页
adams与matlab联合仿真例子(正确没商量)doc资料.doc_第2页
第2页 / 共15页
adams与matlab联合仿真例子(正确没商量)doc资料.doc_第3页
第3页 / 共15页
adams与matlab联合仿真例子(正确没商量)doc资料.doc_第4页
第4页 / 共15页
adams与matlab联合仿真例子(正确没商量)doc资料.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、adams与matlab联合仿真例子(正确没商量)精品文档Adams与Matlab联合仿真例子作者寄语:这个文件是基于李增刚adams入门详解与实例一书中,Adams与Matlab联合仿真的例子,以及一个名为2013版ADAMS与Matlab联合仿真(绝对正确版)的pdf文件上修改来,为了方便起见,用了一些复制、粘贴,所以中间的一些过程会和这两个文件有所重合,不要惊讶,也不要吐槽。做这个例子的目的,是站在一个普通学习者的角度,介绍联合仿真,和众多学习adams的人共勉。我的结论是:以上两个例子中的结果并不矛盾,都是正确的,基本上看了我的例子后,他们的也就懂了。 李增刚 第236页开始。2013

2、版ADAMS与Matlab联合仿真(绝对正确版)1、 知识储备以上两个例子都用到了PID控制(比例(proportion)、积分(integral)、微分(derivative)控制器)比例就是对误差乘以一个系数积分就是对误差积分然后再乘以一个系数微分是对误差求导注意我的模型,上面是角速度Angle velocity,下面是角度angle,这里的积分是对angle进行积分,导致上面两个例子的不同也就在这,这个地方尤其要注意,不要上下搞反了。表示的是对angle乘以一个系数,这里选了1,为比例调节,即P调节。就是对angle的积分,(就是累加的意思),即I调节,然后乘以了系数1。因为输出的是角速

3、度,角速度就是angle的微分的,所以不用做什么操作,后面乘以了一个系数1。然后这三个相加起来作为反馈调节,所以用了这个模块,这个表示累减。将角度值送到Matlab的workspace工作空间,这个表示把时间送到workspace中去,因为角度这里是角度与时间的函数。注意:这些模块不是必要模块,我只是为了做对比而加上去的,去掉不会对仿真产生影响,但是如果要加的话这两个模块缺一不可。我的软件是adams2012与Matlab 7.12.0(R2011a)。现在进入正题1、设置单位启动ADAMS/View,选择新模型,在模型名输入link。选择菜单栏【Settings】【Units】命令,设置模型

4、物理量单位,将单位设置成MMKS,长度和力的单位设置成毫米和牛顿。2、 创建连杆单击几何工具包中的连杆按钮,将连杆参数设置为Length=400,Width=20,Depth=20,然后左键选中原点,在图形区水平拖动鼠标,创建一个连杆。3、 创建旋转副单击运动副工具包中的旋转副按钮,将旋转副的参数设置为1 Location和Normal to gird,单击连杆质心处的Marker点,将连杆和大地关联起来。4、创建球体单击几何工具包中的球体按钮,将球体的选项设置为Add to Part,半径设置为20,然后在图形区单击连杆,再单击连杆右侧处的Marker点,将球体加入到连杆上,如下图所示。此时

5、连杆的质心产生了移动。5、创建单分量力矩单击载荷工具包中的单分量力矩按钮,将单分量力矩的选项设置为Space Fixed和Normal to Grid,将Characteristic设置为Constant,勾选Torque并输入0,然后在图形区单击连杆,再单击连杆左侧的Marker点,在连杆上创建一个单分量力矩,如下图所示。6、 创建输入状态变量老版本单击菜单【Build】【System Elements】【State Variable】【New】,弹出下图所示的创建状态变量对话框,将Name输入框改成Torque。单击Ok后,创建Torque变量。7、将状态变量与模型关联在图形区双击单分量力

6、矩的图标,打开编辑对话框,如下图所示,在Function输入框中输入VARVAL(.link.Torque) ,这里VARVAL( )是 一 个ADAMS函数,它返回变量.link.Torque的值。通过函数把状态变量Torque与力矩关联起来,力矩取值将来自于状态变量Torque。8、 指定状态变量Torque为输入变量点击图上的按钮创建输入变量(就是这个量由matlab输入控制),老版本单击菜单【Build】【Controls Toolkit】【Plant Input】后,弹出定义控制输入对话框,如下图所示。将Plant Input Name 输入框改成.link.PINPUT_Torqu

7、e,在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所示。其中

8、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.Angl

9、e,单击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输入框中用鼠标右键快捷菜单输入Vel

10、ocity,.link.Angle,(或者点击from pout put按钮,选中之前创建的输出)将Control package选择为MATLAB,Type选择为non_linear,Initial Static Analysis选择NO,ADAMS/Solver Choice选择为Fortran。单击fileselect directiory,选定工作路径(我在桌面上创建了一个名为adams的文件),单击OK按钮后,在adams文件中将生成control_pid.m、 control_pid.cmd、control_pid.adm这3个文件。12、导出ADAMS模型在MATLAB里的模块启

11、动MATLAB ,先将MATLAB的工作目录指向ADAMS的工作目录,方法是单击工作栏中Current Direction后的 按钮,弹出选择路径对话框,选中桌面上的adams文件即可。在MATLAB命令窗口的提示符下,输入control_pid,也就是control_pid.m的文件名,Matlab的主界面会出现如下的文字。然后在提示符下输入命令adams_sys ,该命令是ADAMS与MATLAB的接口命令。在输入adams_sys命令后,弹出一个新的窗口,该窗口是MATLAB/Simulink的选择窗口,其中S-Function方框表示ADAMS模型的非线性模型,即进行动力学计算的模型,

12、State-Space表示ADAMS模型的线性化模型,在ADAMS_sub包含有非线性方程,也包含许多有用的变量,我们选用如图所示的模块。13、建立控制方案在MATLAB/Simulink选择窗口中,单击菜单【File】【New】【Model】后,弹出一个新的窗口,单击工具栏中的保存按钮,将新窗口存盘为control_pid_1.mdl(不能与.m 文件同名),将ADAMS_sub方框拖拽到control_pid_1.mdl窗口中,并参考下图完成控制系统的搭建,也可采用其他的控制方案,注意图中的四个,要进行设置,可双击这个模块,将这里选中,四个都要设置。14、 设置MATLAB与ADAMS之间

13、的数据交换参数在control_model.mdl 窗 口 中 双 击ADAMS_sub方 框,在 弹 出 的 新 的 窗 口 中 双 击MSCSDoftware,弹出数据交换参数设置对话框,将Interprocess设置为PIPE(DDE) ,如果不是在一台计算机上,选择TCP/IP,将Communication Interval输入框中输入0.05(这是可以的),表示每隔0.05s在MATLAB和ADAMS之间进行一次数据交换,若仿真过慢,可以适当改大该参数,将Simulation Mode设置为continuous,Animation mode设置成interactive,表示交互式计算

14、,在计算过程中会自动启动ADAMS/View,以便观察仿真动画,如果设置成batch,则用批处理的形式,看不到仿真动画,其他使用默认设置即可。15、仿真设置和仿真计算。单击窗口中菜单【Simulation】【Simulation Parameters】,弹出仿真设置对话框,在Solver页中将Start time设置为0, 将Stop time设置为20, 将Type设置为Variable-step,其他使用默认选项,单击OK按钮。最后单击开始按钮,开始仿真。(若出现错误,重启MATLAB即可。每次启动MATLAB都需要选择路径到包含control_pid.m、 control_pid.cmd

15、、control_pid.adm的文件夹,并输入control_pid(.m文件名)和adams_sys(ADAMS与MATLAB的接口命令)。16、结果后处理结果后处理也就是看图像,这里我提供三种看图像的方法。(1) 用示波器显示。在MATLAB示波器中,可以得到角度和力矩的曲线。得到的Velocity变量曲线和Torque变量曲线分别如下图所示。此模型初始受重力作用,产生转动,通过控制力矩的大小,最终角速度为零,模型达到平衡。 (2) 在Matlab主界面画出图像。仿真完成后,在我们的workspace中会生成的一些数,这是,在起作用,在Matlab的主工作界面输入 plot(time,A

16、ngle,b-);的语句按enter键,会出现以下angle的图像,这和上面angle的图像是一样的。同理,输入plot(time,Angle_velocity,b-);的语句按enter键,会出现以下Angle_velocity的图像,Torque也是一样的,不再画出。 (3) 用adams/postprocessor画出图像。回到ADAMS/View,进入到后处理界面。点击file-import-command file,对窗口作如下修改,最后点击Ok。此时就可以看Torque、Angle、velocity的图像了,以上所有的图像与李增刚adams入门详解与实例一书中是一样的,这是在三个模

17、块中设置为1时得到的结果。 Torque AngleVelocity下面将三个模块中设置为10,进行仿真。第一种方法,得到的图像。 第二种方法得到的图像,依次为Angle,Angle_velocity,Torque。 第三种方法得到的图像,依次为Torque,Angle,Angle_velocity,。以上所有的图像与2013版ADAMS与Matlab联合仿真(绝对正确版)的pdf文件是一样的。作者结语:用了2个半小时书写了以上文档,我是先仿真的结果,再去写过程,其中难免有些遗漏或小错误,但结果是对的。如有疑问可以qq联系我,加我qq时请说明来意,我的邮箱1124069678。 我本来还想写一个有关adams/car与Matlab的联合仿真例子,今天太累了,下次吧。我是谭涛,就读于长沙理工大学,写于2014/4/6。收集于网络,如有侵权请联系管理员删除

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服