请问大家关于simulink与adams联合仿真的一些问题:
我建立一个6连杆的机械臂(包含移动关节与旋转关节)的Simulink-Adams联合仿真。我已完成关节力和力矩曲线的建立。
adams_sub的模块为:输入为6个关节力/力矩,输出为末端位置xyz。
Adams_sub的输入端“torque”,在simulink建立的torque输入模块函数,能与在adams中后处理的数据集曲线一致。输出端的位置position,是直接在adams建立状态变量:varval()来取得末端位置。
在Adams中进行8秒的仿真,得到position的xyz。x的范围:23002400;y的范围:-30000-10000;z的范围:-20~80:附图(position-x)
在“torque”同样的函数曲线情况下,simulink中adams_sub模块得到position的x:附图(end-x)
起始点确实与adams后处理数据集一样(即上图),但“一会儿”就超标了。(xyz方向都是,这里只放了x)
接着我做了一个简单小测试test:一个方块给予力force移动,一个杠杆给予力矩旋转: (附图test)
同样方法,对于各物体加力force和力矩torque函数,simulink建立的力/力矩模块,仍能与adams通过motion驱动得到的力/力矩函数曲线一致。
对于左边施加力force的方块,adams数据集中的Y方向位置曲线,能与simulink中adams_sub输出的Y方向位置曲线一致:(附图:test-方块-position-y、test-方块-end-y)
问题:对于右边施加力矩torque的连杆,adams数据集中的XY方向位置曲线,与simulink中adams_sub输出的XY方向位置曲线不一致,也是“初始值”相同,但“一会儿”就不相同了。(附图:test-连杆-position-x、test-连杆-end-x)
(xy方向都是,这里只放了x,z一直为0)