概述
经验之谈:如何顺利实现adams和simulink的联合仿真?
论坛中有关adams和simulink联合仿真的帖子不少,部分是成功者的经验,多数是初学者的疑惑。怎么安装和找到control模块,怎么在control中生成必需的中间文件,为什么仿真会失败?本人也曾对这些问题困惑过,经过一番摸索,积累了一点经验,愿与大家商讨。
对于第一个问题,我想就不必多说了。对于第二个问题可以参考郑建荣的ADAMS虚拟样机技术入门与提高第十三章机电一体化系统仿真部分,书中有两个问题需要注意:(1)书中介绍的ADAMS版本好像是10.0的,对于使用12.0的有一些差异:在Plant Export设置中无法直接选择输入输出变量control_torque、azimuth_position、rotor_velocity,它们分别由专门的宏tmp_MDI_PINPUT和tmp_MDI_POUTPUT表示。(2)天线仰角的方位角似乎应该是elevation_position,而不是azimuth_position,后者是天线支撑的转角。其它按文中所述步骤进行,File Prefix栏可随便写,不必一定用ant_test,最后在ADAMS的当前目录下生成四个文件:
ant_test.cmd
ant_test.adm
ant_test.acf
ant_test.m
第三个问题基本上是由于没有正确设置路径,找不到所需的文件造成的:~),这也说明了control模块在设计时没有很好地考虑健壮性问题。具体来说simulink在开始仿真时要找到以下这些文件:
1。上述生成的文件,主要是ant_test.m和ant_test.cmd,ant_test.m用于在simulink中对control模块环境和一些参数进行初始化,它必须在仿真前执行;ant_test.cmd是天线模型定义文件,由于这里ADAMS是作为simulink创建的一个子进程而被启动的,它所需的模型文件名由simulink的调用参数传过来的,所以simulink要能够定位ant_test.cmd(我一开始把它放到adams当前目录下,频频失败)。
2。adams_plant.dll,它其实就是adams_sub的核心,ADAMS提供一个S函数,用于adams和simulink联合仿真的调度和通讯,如果simulink找不到它,则仿真就不能进行。adams_plant.dll位于ADAMS12controls下。
解决方法是在simulink中设置好上述文件所在的路径,但一个更方便的方法是把它们都拷到matlab的当前工作目录下,一般是MATLAB6p1work。经过以上设置,应该不会再出现仿真失败的对话框了吧。另外,如果因为一些原因仿真失败,需重启matlab,否则的话因为一些运行库的错误信息还保留在系统中,即便改正了错误仿真也会失败,只有重新启动初始化这些库。
我用的是adams12和matlab6.1,以前流传它们之间存在不兼容的问题,其实都是上述原因造成的,不存在版本兼容的问题,adams和matlab都是成功的商业软件,在发布前经过了大量的测试,如果不兼容他们不会置若罔闻,现在好像还没有他们的官方声明吧。
有个小小请求,在做RTW的时候需要用到adams_plant.obj,谁能找到提供给俺,则感激不尽,如果有其源代码则更好了,这可是真正开启adams和simulink联合仿真的金钥匙啊!
非常感谢"wxd"的总结,但愿这也是以后更进一步讨论ADAMS 和MATLAB 联合仿真的开始,本人对ADAMS 和MATLAB 都只是刚入门,特别是在两者联合仿真过程中困惑许久,慢慢摸索,曾经也得到过各位的指点,今日见'wxd'大师的激情和热心,小弟来结合自己和wxd大师的小结,说说自己的一点点体会,期待更多的高手来指点迷津 。
确实,大部分的失败是由于没有正确设置工作路径而造成的,我想既然是针对一个项目进行仿真,那干脆为自己的项目建立一个文件夹,使ADAMS和MATLAB的工作区都相同,如发现有时仿真不成,可把adams_plant.dll也事先拷贝到同一文件夹里,这样方便又不会出大错。
另外,对于还不大熟悉MATLAB的来说,在重仿时最好重ADAMS里重新导入MATLAB,并且必须在MATLAB里重新运行(很多时候MATLAB原来产生的变量被替换了),而不能只是简单的重新运行MATLAAB里建立 的SIMULINK模型。
总的来说,我感觉两者的联合仿真,困难之处不在于两者的接口问题,更关键的是我们所建立的机械系统的数学模型能否正确的建立,这将直接影响我们能否实现预想的控制目的,因为之所以要联合MATLAB,就是因为系统里各个量关系不好确定,要是容易确定的直接用ADAMS 里的函数等也可以控制了,对吧?所以要想更顺利的实现两者联合仿真的成功率,也需要对模型有准确的把握,不知道各位能否就机械方面较常见的系统归纳一下它们的数学模型,结合ADAMS实现更好的控制。
最后期待各位的参与,共同进步!
最后
以上就是飞快钢笔为你收集整理的MATLAB和Adams哪个需要先装,如何顺利实现adams和simulink的联合仿真?的全部内容,希望文章能够帮你解决MATLAB和Adams哪个需要先装,如何顺利实现adams和simulink的联合仿真?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复