Adams六关节机械臂与Matlab/Simulink的联合仿真(上)
前言:一直对于六关节机械臂与simulink的联合仿真很感兴趣,但网上关于实际模型的机械臂联合仿真的资料很少,更别说六关节的联合仿真了,所以断断续续地经历了很久才做出,期间踩过不少的坑,实属不易,现将整个仿真过程记录与此,与大家分享。
第一步. 从SolidWorks中导入模型到adams
Solidworks另存为.xmt_txt格式,adams导入此文件,导入的时候坐标系选择局部坐标系,导入的机械臂模型如下

第二步 简化模型并添加运动副

注:需要注意的是,转动副一定要添加正确,不要与其他部件产生碰撞,一定要是严格绕着转轴转动。
另外可以直接使用布尔操作,省去建立末端执行器固定副的繁琐操作。
第三步 创建adams输入输出变量
在模型建立好之后,我们现在建立adams和simulink之间的接口变量,这里指的是输入输出变量。
输入变量是指Matlab传给adams的变量(这里指关节力矩)
输出变量是指自己要测量的变量(这里指各个关节角和关节角度)
1 建立输入变量 即关节力矩
点击adams中的单元->x 建立状态变量
因为这里的力矩值是输入变量,所以设置为0,依次建立好6个力矩变量torque1 - torque6
2 建立输出变量 即角度和角速度的状态变量

这里先将F表达式设置为0,后面再修改表达式。

6个关节角变量的建立和6个关节角度变量的建立

依次建立好12个状态变量angle1 - angle6 ,angular_velocity1 - angular_velocity6,此时他们的F表达式均暂时设置为0。
第四步 创建角度和角速度的测量
-
1 创建旋转关节的测量,我的旋转关节是revolute1 - revolute6, 特性选择Ax/Ay/Az投影旋转,分量选择旋转轴z轴,验证是否选择正确的方法是,加上旋转驱动后,测量单元是否随着变化。
-
2 如图所示,这里我选择驱动10d*time , 仿真时间4s,可以看到测量单元正确的测量出了旋转角度。
-
3 类似的,可以建立起所有的旋转关节的角度和角速度的测量,角速度这里选择相对角速度,分量绕z轴,验证方法雷同。
12组测量单位的建立
注:测量单位要选择正确,不然后面得到的数据会不正确,选择好了之后均要一一验证
第五步 建立好变量与测量之间的联系
- 将角度与对应的测量单位进行关联:

- 关节角速度与测量单元进行关联:

- 关节驱动MOTION与torque关节力矩进行关联,MOTION表达式F如下:

类似地,建立好6个角度变量和角度测量的关联,6个角速度变量和角速度测量的关联、以及6个关节力矩的关联。至此,adams里的基本工作我们就完成了,没有的问题的话我们就可以建立联合仿真了。