ADAMS2005版View下李军整车模型建模经验总结
大多数初学者都会从李军的《ADAMS实例教程》开始学起,我也不例外。但李军在书中使用的是2003版的adams,而我们大多数开始使用2005版的,中间存在着一些差异,而就是这些差异导致了我们很多初学者不能建模成功。我也经历了这些过程,经过不断的探索,在Simwe论坛各网友的帮助下成功地独立建成整车模型,并能正常运行。下面就建模过程中存在的问题总结一下:
1.反复修改约束。建模过程中容易出现约束问题了,因为它考虑的因素较多,其中方向最容易出错。因此,在仿真时若出现关于约束的出错信息时,建议将约束删掉重新添加;
2.轮胎的添加。Adams2005版的轮胎和路面的添加最容易出现问题,因为05版的添加界面和2003版有较大差异。首先将轮胎文件mdi_fiala01.tir(注意是.tir,而不是李军书中的.tpf,因为要添加的是fiala轮胎而不是UA轮胎,在安装路径:\MSC.Software\MSC.ADAMS\2005r2\achassis\examples\tir下)和路面文件mdi_2d_flat.rdf(在安装路径:\MSC.Software\MSC.ADAMS\2005r2\achassis\examples\rdf下)拷贝到你的工作目录下。然后在左边工具栏中点选力元“Special Force:Tire”,填入轮胎质量和转动惯量(同李军书),在“Tire Property File”中添加工作目录下轮胎文件的工作路径(注意路径中不能有汉字),然后在Location后输入添加轮胎所在悬架处的Maker点坐标,如(-1335.0, 375.0, 825.0),最后在Road空栏处点击右建,选择“vpg_road/create”进入路面添加界面。
3.路面的添加。在此界面,“Part”选择Ground,“Property File”后添加工作目录中路面文件的路径(路径中不能有汉字),在“Location”中填写(0,0,0)坐标,但若没有修改轮胎文件中的轮胎半径,添加成功后,车轮和路面之间存在一定距离,因此我把此坐标改为(0.0, 85.0, 0.0),具体多少根据个人轮胎半径大小而异。最后Eular Angle为(0.0, 270.0, 0.0),如果改为(0.0,0.0,0.0)就是将路面反转,仿真时小车会掉下来(请在仿真时及时修改)。逐次点击OK后轮胎和路面就建立成功了。当然你可以根据个人情况修改轮胎和路面文件的具体参数,这里就不太细述。
4.轮胎和车体之间的约束。这个问题在李军的书中没有提到,但若不添加约束,会导致仿真开始时轮胎和车身脱离。常用方法是在车轮和悬架之间添加旋转副(Revolute Joint),选择“1 location”和“Normal To Grid”,注意要保证旋转副的旋转方向和车轮转动方向一致。
5.轮胎旋转力矩的添加。为了能使小车动起来,需要在两后轮胎上添加力矩。具体方法是:首先点选工具箱中的力元Torque Force,再选择轮胎为主动物体,Left_RCA为受动物体(以左后轮胎为例),接下来选择Right_RCA_MARKER_89为主动点,Ground_Left_RCA_outer为受动点。(总之,要保证部件要一个选Tire,一个选RCA,Marker点一个选Ground上的点,一个选RCA上的点,道理很简单:把力矩添加在同一部件上是起不到作用的。)
6.最后在仿真之前,最好修改一下误差才能保证仿真顺利进行:Settings/Solver/Dynamics/将Error改为0.1或更高。
7.这些都是经验之谈,如有错误之处还请多多见谅,还有问题请在后面留言。欢迎网友补充。
ADAMS/View 和ADAMS/Car的基础操作和心得
1、如何永久改变ADAMS的启动路径?
在ADAMS启动后,每次更改路径很费时,我们习惯将自己的文件存在某一文件夹下;事实上,在Adams的快捷方式上右击鼠标,选属性,再在起始位置上输入你想要得路径就可以了。
2、如何将回放过程保存为AVI格式的电影文件,以便在其他场合使用?
点击plotting(或F8)进入postprocessor ,右键--load ANIMATION,点击"play"开始仿真,点击"record"开始录制动画。
3、a/car Template Builder.为什么我看不见这个菜单选项??
答:需要改一下的!在你的系统盘下去面。例如我的C:\Documents and Settings\rickytang(rickytang为我的用户名)下面有一个.acar文件,用记事本打开,然后将 ! Desired user mode (standard/expert) ENVIRONMENT MDI_ACAR_USERMODE standard 改为:! Desired user mode (standard/expert) ENVIRONMENT MDI_ACAR_USERMODE expert 再启动car就可以看见选项了! 进入car后按F9或者在tools下面选第一项就可以在模板与标准界面之间切换!
4、关于communicator communicator的出现是由于car是分块建模(子系统)为基础,而communicator告诉ADAMS软件子系统之间如何连接,所以communicator的名字要完全一样才行,而且对于某一特定的子系统而言,有多少与外部系统、testrig的连接就需要有多少个communicator。 suspension parameter代表悬架特性反映,可参考公用模板中_trailing_arm.tpl和_multi_link.tpl。communicator表示数据传递的。纵臂、螺旋弹簧、减震器有一端是外部连接,需要建立mount,然后会自动产生输入communicator. 输出communicator一般有以下8个:(它主要是把数据传递给轮胎的) co[lr]_camber_angle co[lr]_suspension_mount co[lr]_suspension_upright co[lr]_toe_angle co[lr]_tripot_to_differential co[lr]_wheel_center cos_driveline_active cos_suspension_parameters_ARRAY 可参考公用模板中的悬架模型来建立。
5、test-rig是做什么用的??
CAR中共有两种试验台(TEST_RIG),一种是MDI_SUSPENSION_TESTRIG,另一种是MDI_SDI_TESTRIG,前者用于悬架仿真,后者用于整车仿真,试验台是通过COMMUNICATOR与其它子系统链接的,请仔细阅读有关COMMUNICATOR的帮助。
6、ADAMS和MATLAB联合仿真经验谈
论坛中有关adams和simulink联合仿真的帖子不少,部分是成功者的经验,多数是初学者的疑惑。怎么安装和找到control模块,怎么在control中生成必需的中间文件,为什么仿真会失败?本人也曾对这些问题困惑过,经过一番摸索,积累了一点经验,愿与大家商讨。 对于第一个问题,control是adams的一个可以选择是否加载的模块,可通过tools下拉菜单中的plugin选择是否显示在菜单栏中我想就不必多说了。
对于第二个问题可以参考郑建荣的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位于\ADAMS12\controls下。 解决方法是在simulink中设置好上述文件所在的路径,但一个更方便的方法是把它们都拷到matlab的当前工作目录下,一般是\MATLAB6p1\work。
经过以上设置,应该不会再出现仿真失败的对话框了吧。另外,如果因为一些原因仿真失败,需重启matlab,否则的话因为一些运行库的错误信息还保留在系统中,即便改正了错误仿真也会失败,只有重新启动初始化这些库。
我用的是adams12和matlab6.1,以前流传它们之间存在不兼容的问题,其实都是上述原因造成的,不存在版本兼容的问题,adams和matlab都是成功的商业软件,在发布前经过了大量的测试,如果不兼容他们不会置若罔闻,现在好像还没有他们的官方声明吧。
确实,大部分的失败是由于没有正确设置工作路径而造成的,我想既然是针对一个项目进行仿真,那干脆为自己的项目建立一个文件夹,使ADAMS和MATLAB的工作区都相同,如发现有时仿真不成,可把adams_plant.dll也事先拷贝到同一文件夹里,这样方便又不会出大错。
另外,对于还不大熟悉MATLAB的来说,在重仿时最好重ADAMS里重新导入MATLAB,并且必须在MATLAB里重新运行(很多时候MATLAB原来产生的变量被替换了),而不能只是简单的重新运行MATLAAB里建立 的SIMULINK模型。
总的来说,我感觉两者的联合仿真,困难之处不在于两者的接口问题,更关键的是我们所建立的机械系统的数学模型能否正确的建立,这将直接影响我们能否实现预想的控制目的,因为之所以要联合MATLAB,就是因为系统里各个量关系不好确定,要是容易确定的直接用ADAMS 里的函数等也可以控制了,对吧?所以要想更顺利的实现两者联合仿真的成功率,也需要对模型有准确的把握,不知道各位能否就机械方面较常见的系统归纳一下它们的数学模型,结合ADAMS实现更好的控制。
7、关于转动问题,如何判断转动副的方向?
初学时,对转动副的运动容易糊涂,下面以图说明。 图1,构件4固定在地面上,在构件1和构件2上加了一个转动副。
1) 转动副中构件绕轴转动的方向,符合右手法则,其中First body 绕Second body 转动;
2) 图一中,构件1为first body,构件2为Second Body,则构件1相对于构件2逆时针转动,图2为转动后某时刻的图像;
3) 若修改转动副,构件2为first body,构件1为Second Body,则构件2相对于构件1逆时针转动,图3为转动后某时刻的图像,与2)恰相反;
4) 有趣的是,假设转动副加在构件1与4上,构件4为first body,构件1为Second Body,则构件4应该相对于构件1逆时针转动,但由于构件4固定在地面上,无法运动,由相对运动可知,此时运动等价于构件1相对于构件4顺时针转动,事实如此,图4为转动后某时刻的图像。
8、关于路普
路谱是高度保密的东西,我们可以找一个已经有的轮胎特性文件,*.tpf文件,然后在稍微修改一下, 安装目录下 12.0\solver\tire_dat 里有轮胎文件。
9、运动学仿真后,如何测量驱动力矩或者其他的物理量?
我们在做机器人运动规划时,往往根据规划给出各个关节的运动轨迹,进行运动学分析,如果要查看实现该运动各个关节需要加的驱动力矩,可以右键单击相应的motion,然后在下拉菜单选择measure,在出现的界面里面选择Torque,点ok就出来力矩曲线了,其他物理量类同。
10、Marker点与Pointer点区别
Marker:具有方向性, 大部分情況都是伴随物件自动产生的,而 Point不具有方向性, 都是用户自己建立的;Marker点可以用来定义构件的几何形状和方向,定义约束与运动的方向等,而Point点常用来作为参数化的参考点,若构件与参考点相连,当修改参考点的位置时,其所关联的物体也会一起移动或改变。
11、如何在ADAMS下由数据生成样条曲线?
在tools->command navigator....->Data element->create->spring line 后,会出現一个输入window窗口,选择numerical将xyz数值copy到xyz各自的表格上.......
12、对ADAMS/CONTROLS的总结:
1) 应用ADAMS/VIEW建立被控系统的ADAMS模型;
2) 对建立好的模型增加主动力;
3) 在模型中增加输入和输出状态变量,即输入函数;(现在这一部分还是不懂)
4) 在ADAMS/VIEW中通过tool/plug in项将ADAMS/CONTROLS控制模块LOAD;
5) 在controls项对plant export进行设置;
6) 点击ok即可在目录上生成控制仿真所需的文件;
7) 启动MATLAB,将路径设为adams所生成的文件所在目录上;
8) 在matlab的命令窗口输入生成的adams模型生成的m文件名称,将此m文件调进当前工作空间中;
9) 在MATLAB的命令窗口输入adams_sys,将生成adams模型的simulink仿真模型;
10) 建立控制系统得simulink模型;
11) 这样就可以对系统进行仿真;
12) 在matlab绘制仿真曲线;
13、ADAMS/VIEW中输入、输出状态变量的设定方法:
1) 在build/system elements/state variable/new建立系统的状态变量,其函数根据函数编辑器进行编辑,不同类型的变量选择不同的表达式。
14、 ADAMS/VIEW中的输入函数的指定方法:
输入函数是指从输入状态变量取值的时间函数。 只需在所建立的模型中在需要进行控制的部件施加一定的力或力矩,然后对其进行函数化:其函数的自变量为所指定的输入状态变量。这样所建立的模型就是受输入控制的系统。
15、 在设计输入函数时,当输入函数表达的为力,而其自变量为其它的量,则通过指定adams函数来定义这一输入量。
16、 现在还有两个问题没有解决:
力与运动是什么关系,在ADAMS------MATLAB/SIMULINK仿真过程中需要设定的参数:PLANT EXPORT及SIMULINK仿真模块的ADAMS--SUB参数。
17、力与驱动的关系:
驱动包括直线驱动和旋转驱动,他们配合约束副使用。驱动就是指使所定义的约束副的运动按照所设定的驱动方程运动;而力指在模型中某一构件上所施加的力,其运动方向及速度要根据力的函数决定。如,在建立汽车模型时,地面的垂直不平度可以取为上下运动的驱动;而驱动轮的转动通常要通过输入其的力矩定义。在进行ADAMS-SIMULINK联合仿真时,需要将通过simulink控制模块决定的运动构件的驱动去掉,增加一力或力矩,其为系统设定的输入状态变量的函数。
18、 增加驱动就已经知道构件的运动形式,而增加力则不能具体确定构建的运动形式。
19、可以设定所研究车辆的轮胎模型(编制轮胎模型文件及道路输入文件),参考e/安装文件/adams帮助文档/tire
20、Car模块中的标准用户和超级用户间的差别:
Expert user 可以建立和修改模版,适于有经验的高级用户
Standard user只是用于设计人员和检测人员,要进行仿真必须在这个环境下进行。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删