网络收集的adams+simulink仿真错误及解决方案_第1页
网络收集的adams+simulink仿真错误及解决方案_第2页
网络收集的adams+simulink仿真错误及解决方案_第3页
网络收集的adams+simulink仿真错误及解决方案_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、如何顺利实现adams和simulink的联合仿真?经验之谈:如何顺利实现adams和simulink的联合仿真?论坛中有关adams和simulink联合仿真的帖子不少,部分是成功者的经验,多数是初学者的疑惑。怎么安装和找到control模块,怎么在control中生成必需的中间文件,为什么仿真会失败?本人也曾对这些问题困惑过,经过一番摸索,积累了一点经验,愿与大家商讨。对于第一个问题,我想就不必多说了。对于第二个问题可以参考郑建荣的ADAMS虚拟样机技术入门与提高第十三章机电一体化系统仿真部分,书中有两个问题需要注意:(1)书中介绍的ADAMS版本好像是10.0的,对于使用12.0的有一些

2、差异:在PlantExport设置中无法直接选择输入输出变量control_torque、azimuth_position、rotor_velocity,它们分别由专门的宏tmp_MDI_PINPUT和tmp_MDI_POUTPUT表示。(2)天线仰角的方位角似乎应该是elevation_position,而不是azimuth_position,后者是天线支撑的转角。其它按文中所述步骤进行,FilePrefix栏可随便写,不必一定用ant_test,最后在ADAMS的当前目录下生成四个文件:ant_test.cmdant_test.admant_test.acfant_test.m第三个问题基

3、本上是由于没有正确设置路径,找不到所需的文件造成的:),这也说明了control模块在设计时没有很好地考虑健壮性问题。具体来说simulink在开始仿真时要找到以下这些文件:1。上述生成的文件,主要是ant_test.m和ant_test.cmd,ant_test.m用于在simulink中对control模块环境和一些参数进行初始化,它必须在仿真前执行;ant_test.cmd是天线模型定义文件,由于这里ADAMS是作为simulink创建的一个子进程而被启动的,它所需的模型文件名由simulink的调用参数传过来的,所以simulink要能够定位ant_test.cmd(我一开始把它放到a

4、dams当前目录下,频频失败)。2。adams_plant.dll,它其实就是adams_sub的核心,ADAMS提供一个S函数,用于adams和simulink联合仿真的调度和通讯,如果simulink找不到它,则仿真就不能进行。adams_plant.dll位于ADAMS12controls下。解决方法是在simulink中设置好上述文件所在的路径,但一个更方便的方法是把它们都拷到matlab的当前工作目录下,一般是MATLAB6p1work。经过以上设置,应该不会再出现仿真失败的对话框了吧。另外,如果因为一些原因仿真失败,需重启matlab,否则的话因为一些运行库的错误信息还保留在系统中

5、,即便改正了错误仿真也会失败,只有重新启动初始化这些库。我用的是adams12和matlab6.1,以前流传它们之间存在不兼容的问题,其实都是上述原因造成的,不存在版本兼容的问题,adams和matlab都是成功的商业软件,在发布前经过了大量的测试,如果不兼容他们不会置若罔闻,现在好像还没有他们的官方声明吧。有个小小请求,在做RTW的时候需要用到adams_plant.obj,谁能找到提供给俺,则感激不尽,如果有其源代码则更好了,这可是真正开启adams和simulink联合仿真的金钥匙啊!非常感谢"wxd"的总结,但愿这也是以后更进一步讨论ADAMS和MATLAB联合仿真

6、的开始,本人对ADAMS和MATLAB都只是刚入门,特别是在两者联合仿真过程中困惑许久,慢慢摸索,曾经也得到过各位的指点,今日见'wxd'大师的激情和热心,小弟来结合自己和wxd大师的小结说说自己的一点点体会,期待更多的高手来指点迷津。确实,大部分的失败是由于没有正确设置工作路径而造成的,我想既然是针对一个项目进行仿真,那干脆为自己的项目建立一个文件夹,使ADAMS和MATLAB的工作区都相同,如发现有时仿真不成,可把adams_plant.dll也事先拷贝到同一文件夹里,这样方便又不会出大错。另外,对于还不大熟悉MATLAB的来说,在重仿时最好重ADAMS里重新导入MATLA

7、B,并且必须在MATLAB里重新运行(很多时候MATLAB原来产生的变量被替换了),而不能只是简单的重新运行MATLAAB里建立的SIMULINK模型。总的来说,我感觉两者的联合仿真,困难之处不在于两者的接口问题,更关键的是我们所建立的机械系统的数学模型能否正确的建立,这将直接影响我们能否实现预想的控制目的,因为之所以要联合MATLAB,就是因为系统里各个量关系不好确定,要是容易确定的直接用ADAMS里的函数等也可以控制了,对吧?所以要想更顺利的实现两者联合仿真的成功率,也需要对模型有准确的把握,不知道各位能否就机械方面较常见的系统归纳一下它们的数学模型,结合ADAMS实现更好的控制。最后期待

8、各位的参与,共同进步!adams和simulink联合仿真经典发文庆祝一下ADAMS/contro中的例子ball_beam通过联合仿真,个人觉得这个例子比天线的例子更加直观,更容易理解adams和simulink的联合仿真精髓。小球在一脉冲力的作用下沿着横梁滚动,此时梁的两端受力不平衡,梁的一段倾斜,为了使得小球不掉下横梁,在横梁上施加一个绕Z轴的力矩,横梁达到一定的角度之后逆向转动,然后小球就在这个作用力矩的控制下来回滚动而不掉下横梁!其中控制力矩在整个过程中是个动态变化的,力矩TorqueIn是通过位移Position和横梁转角BeamAngle确定,这个是在simulink中通过框图完

9、成的。首先我申明一下我用的是adams2003和matlab6.5以下我说明一下我的操作步骤:1、把control中的ballbeam文件copy到另外一个文件夹下,同时设置adams和matlab的默认路径即为ball_beam文件夹,这样可以省略很多不必要的麻烦!2、用aview打开ball_beam.cmd文件,先试试仿真一下,可以看到小球会在脉冲的作用下滚动,仿真时间最好大于8s3、载入control模块,点击tools|pluginmanager在control框选定。4、点击control|plantexport在fileprefix下输入你的文件名,这个可以随便的,我输入的是my

10、ball,在plantinput点击右键点击guess选定tmpMDIPINPUT,在tmpMDIPINPUT中就是输入力矩TorqueIn,只有一个输入参数;同样在plantoutput中点击右键guess选定tmpMDIPOUTPUT,这是模型的输出变量横梁转角BeamAngle和小球与横梁中心轴的距离position。controlpackage选才?matlab,type是nonlinear,初始化分析选择no,然后按ok!此时m文件已经生成了!5、打开matalb,设置你的工作路径在ball_beam文件夹上,键入myball,马上有%INFO:ADAMSplantactuators

11、names1Torque_In%INFO:ADAMSplantsensorsnames:1Beam_Angle2Position出现6、再键入adams_sys弹出一个控制框图,这时可以新建一个mdl文件,将adams_sub拖入你新建的mdl框图中,其实再这里有一个偷懒的办法,就是在matlab中打开ballbeam.mdl文件,然后把他的那个adams_sub用你的刚产生的这个代替,然后另存为my_ball.mdl!7、设置仿真参数,在你刚建立的myball.mdl框图上的simulationparameter里设置一下stoptime为10s,步长为ode15s。然后双击adams_su

12、b打开adams_pant,再双击adams_pant弹出一个设置框图,在animationmode这一栏中选择interactive这是交互的,如果选择batch的话在联合仿真中看不到adams模型的运行情况(个人这样理解的:)!最后保存一下!8、开始联合仿真startsimulation,就会出现asolver,弹出dos文件,这个不管他,然后adams模型中的小球开始运动,估计会比较慢,最后会出现小球在横梁上运动而不掉下横梁!这是我在做这个模型的过程中的一些东东,写的比较杂,呵呵!如果大家觉得好的话可以顶一下,希望能给那些在adams和simulink联合仿真而徘徊的xdjm一点启示就行

13、了!note:这个例子是adams/cotrol自带的,可以在example中找到!关于下述错误,我找到一个解决方法ErrorreportedbyS-function'adamsplant'in'myball/adamssub/ADAMSPlant/S-Function':errorinstartupCouldnotconnecttoADAMSserver编辑myball.m文件,将第24行ADAMS_sysdir=strcat(topdir,'');替换为第29行ADAMS_sysdir=''依各人配置不同,具体路径有所区别改完

14、之后保存即可adams与simulink联合仿真错误归纳在建立adams与matlab的连接时,要导出adams模型,点击controls/plantexport命令,创建输入输出变量,并生成三个文件,为aa.maa.cmd和aa.adm文件。(.m文件保存输入输出信息,.cmd文件为命令文件,.adm为数据文件)其中aa为fileprefix框中的内容,即导出模型的文件名。在matlab下输入adams_sys,创建系统控制模型。联合仿真常见错误归纳1、将,文件夹中的adams_plant.dll文件和,下的plant.lib文件也Copy到matlab的工作目录下。2、前一次的仿真出错,虽

15、然修改了matlab模块,但matlab工作空间内的信息没有修改。解决办法是在matlab命令行中键入:clearall回车XXX.m回车adams_sys回车从而,重新打开模块。3、还有检查一下adams界面中,建立控制卞靠块的controlplant的adamshost是否为本机名。4、检查m文件中路径"”与“/”的错误,这是系统自动生成文件时的bug,只有手动修改。5、如果有上网的客户端认证软件建议在仿真之前把它关掉,因为经常出现ADAMS的server不能开启的情况,关掉认证软件后,就能执行了。一般一些校园网上网时比较容易用这些客户端认证软件,比如华为的。6、把ADAMS的工

16、作路径直接设置到MATLAB的work文件夹中,避免路径出错7、修改.m文件中的flag=08、有时由于参数不正确等原因,仿真会失败,比如提示如下错误:ErrorreportedbyS-function'adams_plant'in'GCdd/adams_sub/ADAMSPlant/S-Function':ADAMSoutputuationfailureattime0.695000。此时需要仔细检查,设定合理的参数,这种错误比较难查,需要对模型准确的把握和对提示信息的理解;有时DOS界面一闪就消失了,如果想要查看界面提示信息,只需再进行一次错误的仿真即可调出DOS界面。9、将Matlab关掉重新启动(对于一些错误有效,比如aerrorinstartupCould

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论