玩转Matlab-Simscape(初级)- 02 -对单摆模型进行仿真

**

玩转Matlab-Simscape(初级)- 02 - 对单摆模型进行仿真

**

目录

    • [玩转Matlab-Simscape(初级)- 02 - 对单摆模型进行仿真](#玩转Matlab-Simscape(初级)- 02 - 对单摆模型进行仿真)
  • 前言
  • 一、一级简单倒立摆
  • 二、建模过程
  • [三、 从SW中导入3D模型到Simscape Multibody](#三、 从SW中导入3D模型到Simscape Multibody)
    • [3.1 在SW中建立3D装配模型](#3.1 在SW中建立3D装配模型)
    • [3.2 将上述3D模型通过Simscape Multibody Link插件导出](#3.2 将上述3D模型通过Simscape Multibody Link插件导出)
    • [3.3 从Matlab中导入3D模型](#3.3 从Matlab中导入3D模型)
    • [3.4 对模型进行预处理](#3.4 对模型进行预处理)
    • [3.5 运行仿真](#3.5 运行仿真)
  • 总结

前言

在产品开发中,多体动力学控制仿真是一种常见方法,本文从初学者的角度一点点解开应用Maltab simscape对多体进行仿真的面纱。写这篇博文是为后续做旋翼无人机的多体系统仿真打基础。

本文用两种方法对一个简单的倒立摆进行建模仿真。目的是对比和掌握通过SW软件建立复杂模型,并将其导入simscape中进行控制系统仿真分析的方法。

欢迎各位小伙伴关注、赞赞、留言和收藏。


一、一级简单倒立摆

一级倒立摆(钟摆)是最简单的机械系统。由两部分构成:摆杆和固定座,二者通过一个铰链关节联结。结构如下图所示。

二、建模过程

2.1 建模

  • 在Matlab命令窗口中,输入 smnew,打开Simscape Multibody 模型模板;
  • 删除"Rigid Transform "、"Simulink-PS Converter "、"PS-Simulink Converter "、"Scope"这些本例中不用的模块;
  • 将文中玩转Matlab-Simscape(初级)- 01 - 从一个简单模型开始学习之旅自定义的连杆模型添加到该例中;
  • 添加一个铰链关节模块;
    在Simulink Library中 Simscape→Multibody→Joints→Revolute Joint可以找到该铰链关节模块。
    【关于"Revolute Joint "模块:表示作用于两个框架之间的回转关节。该关节具有一个旋转自由度,由一个回转原语表示。该关节限制了两个框架原点重合,并且基础框架和跟随框架的z轴也必须重合,同时允许跟随框架的x轴和y轴围绕z轴旋转。在"属性"下的可展开节点中,指定关节原语的状态、驱动方式、感知能力及内部机械特性。应用这些设置后,块将显示相应的物理信号端口。端口B和F分别为表示基础框架和跟随框架的框架端口。关节的方向由跟随框架相对于基础框架的相对运动来定义。】

    双击"Brick Solid"模块,定义如下参数。

  • 将各模块联结,如下图所示。

2.2指定重力

为了能让杆在重力作用下运动,设置重力加速度矢量沿Y轴向下,双击"Mechanism Configuration "模块进行配置如下。

2.3 设置摆的起始位置

双击"Revolute Joint"模块,设置摆杆的初始角度位置(这里设置为0度)

2.4 求解器配置

MODELING 选项卡中点击Model Settings 进行求解器参数设置:求解器选择ode15s,最大步长设置为0.01。

2.5运行模型

一级简单摆模型

2.6保存模型

将模型保存,后续继续使用。

三、 从SW中导入3D模型到Simscape Multibody

3.1 在SW中建立3D装配模型

在SW中创建一个由连杆和基座构成的简单摆3D模型,如下图所示。

3.2 将上述3D模型通过Simscape Multibody Link插件导出

将装配体模型导出,并自定义命名为"Mylink_SW.xml "

3.3 从Matlab中导入3D模型

在Matlab命令窗中输入smimport('Mylink_SW.xml'),打开模型如图所示。

smimport('Mylink_SW.xml')

3.4 对模型进行预处理

更新模型,如图所示,发现摆杆与座的初始角度跟第一种方法不一致,这里需要做些调整才可以。此外,一般还需要调整模型的坐标系,重力场才能进行仿真。由于这个模型比较简单,所以仅调整铰链关节的初始角度就可以。

3.5 运行仿真

仿真结果如图所示。

一级简单摆模型-SW


总结

以上就是今天分享的关于Matlab simscape 的基础内容,简单分享了在Simscape中搭建一级简单摆模型,同时用另一种方法从SW创建3D模型,并将其调入Matlab供分析用。重点掌握第二种方法,为将来深入学习和研究复杂装配体的建模和控制仿真打下基础。欢迎各位小伙伴关注、赞赞、留言和收藏。

相关推荐
IT猿手9 小时前
基于控制障碍函数的多无人机编队动态避障控制方法研究,MATLAB代码
开发语言·matlab·无人机·openclaw·多无人机动态避障路径规划·无人机编队
Evand J14 小时前
【MATLAB复现RRT(快速随机树)算法】用于二维平面上的无人车路径规划与避障,含性能分析与可视化
算法·matlab·平面·无人车·rrt·避障
s090713614 小时前
【声纳成像】基于滑动子孔径与加权拼接的条带式多子阵SAS连续成像(MATLAB仿真)
开发语言·算法·matlab·合成孔径声呐·后向投影算法·条带拼接
IT猿手17 小时前
基于 ZOH 离散化与增量 PID 的四旋翼无人机轨迹跟踪控制研究,MATLAB代码
开发语言·算法·matlab·无人机·动态路径规划·openclaw
IT猿手17 小时前
基于控制障碍函数(Control Barrier Function, CBF)的无人机编队三维动态避障路径规划,MATLAB代码
开发语言·matlab·无人机·动态路径规划·无人机编队
SugarFreeOixi17 小时前
MATLAB绘图风格记录NP类型
python·matlab·numpy
IT猿手17 小时前
基于 CBF 的多无人机编队动态避障路径规划研究,无人机及障碍物数量可以自定义修改,MATLAB代码
开发语言·matlab·无人机·动态路径规划
IT猿手19 小时前
基于强化学习Q-learning算法的无人机三维路径规划算法原理与实现,MATLAB代码
算法·matlab·无人机·路径规划·动态路径规划
ghie909021 小时前
拉普拉斯金字塔图像融合MATLAB仿真程序
人工智能·计算机视觉·matlab
IT猿手1 天前
基于动态三维环境下的Q-Learning算法无人机自主避障路径规划研究,MATLAB代码
算法·matlab·无人机·动态路径规划·多无人机动态避障路径规划