玩转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供分析用。重点掌握第二种方法,为将来深入学习和研究复杂装配体的建模和控制仿真打下基础。欢迎各位小伙伴关注、赞赞、留言和收藏。

相关推荐
Evand J1 天前
组合导航的MATLAB例程,二维平面上的CKF滤波,融合IMU和GNSS数据,仿真,观测为X和Y轴的坐标,附代码下载链接
开发语言·matlab·平面·imu·组合导航
CappuccinoRose1 天前
MATLAB学习文档(二十三)
matlab·信息可视化·数据挖掘·数据分析
民乐团扒谱机1 天前
【微实验】激光测径系列(四)关于硬件上的一些实验
计算机视觉·matlab·激光测径
MATLAB代码顾问2 天前
MATLAB计算标准径流指数(Standard Runoff Index,SRI)
数据结构·算法·matlab
listhi5203 天前
基于MATLAB的高斯混合模型(GMM)实现
开发语言·matlab
Ohpaopaopao3 天前
4准则下,2可加模糊测度满足单调性和有界性约束。假设没有任何其他先验信息,基于Marichal熵最大的目标,求解莫比乌斯参数。
matlab
可编程芯片开发3 天前
基于YALMIP和CPLEX工具箱的多时段配电网重构算法matlab仿真
matlab·yalmip·cplex·配电网重构·多时段
民乐团扒谱机3 天前
PCA 主成分分析:数据世界的 “旅行清单整理师”—— 从 30 维杂乱到 2 维清晰的诗意降维
大数据·数学建模·matlab·pca·主成分分析·数据处理·降维
不枯石4 天前
Matlab通过GUI实现点云的随机一致性(RANSAC)配准
开发语言·图像处理·算法·计算机视觉·matlab
牛马的人生4 天前
MATLAB模块库入门:提升你的工程分析效率
开发语言·其他·matlab