前言:
在前一节中导入CAD机械臂模型,需要完成如何运动;先按照matlab官网教程走以下例程。
1、在 MATLAB 命令提示符下, 输入smdoc_double_pendulum
。打开一个双摆作为演示
2、From the Simscape > Multibody > Joints library, drag a 6-DOF Joint block and connect it as shown in the figure. (规定运动输入)
拖入6-DOF,并如如下布局连接。
修改6-DOF参数,Y Prismatic Primitive (Py) > Actuation > Motion------Provided by Input,Z Prismatic Primitive (Pz) > Actuation > Motion----Provided by Input。如下点击应用,OK.
3、拖入Simulink-PS Converter和Signal Builder并如下图连接。信号生成器块提供运动输入作为仿真信号。仿真 PS 转换器块将仿真信号转换为与Simscape Multibody™块兼容的 Simscape™物理信号。
4、打开连接到6自由度连接块的端口的信号生成器块的对话框。指定此信号时, 将遵循机械手端帧的方形轨迹的时变 Y 坐标。
5、打开连接到6–DOF 接头块端口 pz 的信号生成器块的对话框。指定此信号时, 将遵循机械手端坐标的正方形轨迹的时变 Z 坐标。
6、在仿真 PS 转换器块的对话框中, 指定输入信号单位和筛选设置。Simscape多体要求您指定二阶筛选或提供弹道坐标的前两次导数。
参数 | 价值 |
---|---|
单位>输入信号单元 | cm |
输入处理>筛选和衍生工具 | Filter input |
输入处理>输入筛选顺序 | Second-order filtering |
输入处理>输入筛选时间常量 (以秒为单位) | 0.1 |
在两个旋转连接块的对话框中, 设置以下驱动和传感参数。
参数 | 设置 |
---|---|
驱动>扭矩 | Automatically Computed |
传感>驱动扭矩 | 选择 |
Simscape多体要求具有运动输入的联合原始自由度的个数与自动计算的联合驱动力和扭矩相等。如果模型不符合此条件, 则模拟将失败并出现错误
将这些块拖到模型中。
图书馆 | 块 | 数量 |
---|---|---|
Simscape >实用程序 | PS-仿真转换器 | 2 |
仿真>接收器 | 到工作区 | 2 |
PS-仿真转换器块将物理信号输出转换为与其他仿真块兼容的仿真信号。
在两个到工作区块对话框中, 输入变量名t1
和t2
.
连接图中所示的块。
尝试运行模拟。通过选择模拟>运行, 可以在 "仿真编辑器" 菜单栏中执行此项功能。仿真失败, 并由模型中存在的闭合运动回路产生误差。Simscape多体要求此循环包含至少一个不带运动输入的连接块或自动计算的驱动力或扭矩。
再次运行模拟。力学资源管理器打开, 动态3维显示两条连杆。
( 以上出现错误,参考网址修改后还是不对,按错误指示将Revolute Joint的驱动---力矩---不选--如下图,以解决不模拟运动的问题。但这样就没了力矩的获得过程,后续分析也不能进行。。。。)
9、Run the simulation once again(点击run)
10、小结
由于出现的问题没有解决,对在时变下关节的驱动力矩没有进行进一步分析。可能在过程中出现不当的错误设置,懒得找了~~//
但目的稍微达到了,对关节部分施加驱动信号。形如--------Y Prismatic Primitive (Py) > Actuation > Motion------Provided by Input。
参考网站:https://ww2.mathworks.cn/help/releases/R2018a/physmod/sm/ug/prescribe-joint-motion-in-planar-manipulator-model.html
https://ww2.mathworks.cn/help/physmod/sm/ug/urdf-import.html#bvmu662-1
https://ww2.mathworks.cn/help/physmod/sm/ug/cad-translation.html
https://ww2.mathworks.cn/help/physmod/sm/ug/export-a-model-from-onshape-software.html
https://ww2.mathworks.cn/help/physmod/sm/ug/import-a-urdf-model.html