simulink的SimMechanics和adams

来源:互联网 发布:吾爱源码解压密码 编辑:程序博客网 时间:2024/05/22 04:29
本文转自http://www.ilovematlab.cn/thread-44911-1-1.html###  表示感谢
动力学分析的软件很多,有一些事集成在CAD软件里面的,比如说我们的两个“小助手”喜欢使用的PRO/E中的机构模块,我个人经常使用的solidworks平台上的cosmosmotion,还有就是动力学分析的大哥级人物ADAMS和非常专业的集成在simulink平台上的SimMechanics

       在我参加数学建模培训的时候,我第一次打开了Matlabdemos看到了四杆机构的仿真,之后我就踏上了SimMechanics的学习之路。换句话说我开始了机械动力学分析之路。可以说SimMechanics的资料少之又少,市面上可以买到一本操作的书,如Matlab/simulink应用实例仿真与高效算法开发,清华大学出版社出版,只有短短的一章讲到SimMechanics,很遗憾作者很可能是学控制的,所以除了翻译的帮助文档其实没有把SimMechanics的操作和原理说清楚,但是还是建议大家购买这本书,因为里面还有其他的东西啊。

差不多在这个暑假没有开始的时候我开始使用adams,因为有了SimMechanics基础,所以我就学的非常快,一开始觉得adams的可视化界面真的让人很心动,那还要SimMechanics干什么啊,快点换成ADAMS,建模简单,分析结果快速,但是学学就有不同的想法了,不是说ADAMS不好,可以说每个软件都有自己的特点,所以软件与软件之间应该不是对立,而应该是合作

比较一下SimMechanicsbody模块和ADAMS和建模方法
在操作性上上面,SimMechanics毫无疑问是完败,ADAMS的建模模块比SimMechanics要好很多,我也没有用过xml文件导入到SimMechanics之中,所以我个人觉得比如在admas里面做最简单的四杆机构的仿真,ADAMS要明显比SimMechanics快,我的一个小助手学了SimMechanics,对着书调了两天,我告诉他书上的是错了,她就一个一个该啊,非常非常的痛苦,前一天学ADAMS的时候,不到一个小时。即使应为这个该死的body模块,有那么多的参数要选择了,什么坐标系的变化,什么坐标系的平移啊,什么坐标系的旋转啊。
只要选错一个参数,那么很有可能就不能看到最后的仿真的结果。
       那么是不是ADAMSSimMechanics高出一筹呢?其实答案不然。

我一直被问为什么要坐标系的变化,为什么研究透了坐标系变化就可以掌握机构的动力学分析呢,其实坐标系计算机仿真的精华所在啊。如果大家细心一点的话,在ADAMS建模的时候,比如创建一个连杆,就会生成一个给定刹参数的连杆很好看,但是这个是OPENGL的假象而已,其实ADAMS生成了三个坐标系,在前后的marker上各有一个,在cm上有一个,三个坐标系加上质量和转动惯量就组成了这个杆,仔细观察这个杆的坐标系建立可以发现,三个坐标系都是通过世界坐标系的旋转平移变化得到的,两端的markerx轴的方向一致,是杆长的方向。而cm的坐标系也是这样变化的来的。我想markercmSimMechanicsbody的对应关系就不用多说了,CSCG。可以发现在ADAMS里面,为了建模和计算的方便,ADAMS自动创建了local坐标系,这样是不是可以给我们一点一点启示,我收到很多人关于SimMechanics问题邮件,很多人都是使用的世界坐标系,实际上这样是很不方便的,我曾在这个论坛里面发表过body设置的帖子,当时我还没有使用过ADAMS,我自己想出来这种坐标系建立的方法,我觉得很骄傲。

这样动力学仿真的实质也就出来了,你看到的杆的运动实际上时假象,真正的情况只是坐标系的变化,定义运动副也只是限定了坐标系的关系吧了,所以SimMechanics更重实质,ADAMS更重操作。

在说说ADAMSSimMechanics建模和运算速度的问题

这个有连个方面的含义,第一是建好的模型的运算速度,还有一个事建模的速度。ADAMS的运算速度比较快一点,第一admas采用的是固定步长的方法,第二,ADAMS求解非线性方程组的能力要比SimMechanics好一点。SimMechanics主要是采用的变步长的方法,看似精确实际上消耗了很多的资源。前面提到SimMechanicsbody模块不好,但是建模的速度上面倒不见得比ADAMS慢,ADAMS本生的建模能力也不是很强,所以要从通用的cad模型里面导入,看似很方便实际上一点也不方便,说说要一个转动副,但是设计一个转动副容易吗,一下子会出来很多个尺寸,搞到最后都想把机械结构设计好了,加上机构还要装配,不要小瞧装配了啊,要是机构复杂一点,想要搞到理想的初始位置很困难。这样的时间远远要超过SimMechanics以参数来代替的建模方法,但是SimMechanics中需要计算坐标系的变化关系,初期的脑细胞会死的比较多一点。

所以我个人认为,初期的SimMechanics可以再只有方案的时候建立模型,如果cad模型成熟了,admas是很好的选择。

还有一点SimMechanics里面可以做控制,我做过最简单的,但是还是控制方面的基础一般,还没有深入研究,希望和大家一起进步。
最后说一句,我暑假的时候写了一篇基于SimMechanics分析并联机器人的文章,是我的处子作,如果发表的话,把源码贴上来大家一起分享。
0 0