前言
`本人研究生期间正在做机器人轨迹跟踪方向,希望能通过使用Simscape Multibody来做机械臂轨迹跟踪,并用PID或其他方法对机械臂轨迹误差进行修正,因此根据官方文件自学Simscape Multibody,对文档进行翻译,删减,保留本人操作过程来记录学习过程。但由于本人水平有限,文章可能某些地方存在问题,请各位评论指正。
一、创建单摆模型
1.教程概述
钟摆是最简单的机械系统。 该系统包含两个刚体,一个连杆和一个固定枢轴,通过转动关节连接。 在本教程中,将使用上一篇单连杆模型创建的自定义模块对钟摆进行建模和仿真。 Revolute Joint 模块提供连杆和世界坐标系之间的旋转自由度。
2.构建模型
1.在MATLAB命令行输入smnew。打开Simscape Multibody模块库和具有常用模块的模板。
2. 删除Simulink-PS Converter, PS-Simulink Converter, Scope,和 Rigid Transform模块。
3. 将单连杆模型中创建的子系统拖动到该模型中,命名为Simple Link。
4. 在 Simscape >Multibody > Joints库中找到Revolute Joint模块并将其拖动到模型中。
5. 按照下图的方式连接这些模块。当您指定关节状态目标、规定关节驱动输入或感知关节动态变量时,Revolute Joint的接口方向就变得很重要,切换接口连接会影响模型组装和仿真。
6. 在Solid对话框中,指定以下参数,将模块命名为Base。
3.指定重力
Revolute Joint使用基坐标系和从动坐标系的公共Z轴作为关节旋转轴。为了确保钟摆在重力的作用下发生振荡,改变重力矢量,使其不再与Z轴对齐。在Mechanism Configuration对话框中,将Uniform Gravity > Gravity参数设置为[0 -9.81 0]。
4.设置单摆起始位置
使用 Revolute Joint对话框中的 State Targets菜单来指定所需的关节角度。选择StateTargets > Specify Position Target,在value输入所需的关节角度。value为0对应于水平钟摆的起始位置。
5.求解器配置
- 在Simulink编辑器菜单栏中,选择Simulation > Model Configuration Parameters.
- 在Solver选项卡中,将解算器参数设置为ode15s (stiff/NDF),该求解器是物理模型的推荐选择。
- 在Solver details > Max step size中将最大步长设置为0.01,然后单击“OK”。较小的步长提高了仿真的精度,但也会增加仿真时长,因此需根据模型折衷选取。
6.模型仿真
-
在Simulink编辑器菜单栏中,选择Simulation > Update diagram,打开Mechanics Explorer浏览器查看模型3D视图。
-
在Mechanics Explorer工具栏中,检查 View convention参数是否设置为Y up (XY Front),保证重力在屏幕上垂直对齐。设置完一定要选择一个标准视图按钮(前视,左视等),来刷新Mechanics Explorer的显示。通过单击Save explorer configuration to model button按钮来保存可视化设置。
-
模型仿真。在Simulink编辑器菜单栏选择Simulation > Run,生成在重力作用下钟摆物理模型的动画。
7.保存模型
将模型保存名为simple_pendulum的文件夹中。在下一篇如何分析一个单摆中重用此模型。