0
点赞
收藏
分享

微信扫一扫

Simscape Multibody入门指南4-单摆模型仿真分析

Alex富贵 2022-04-26 阅读 143
matlab

文章目录


一、单摆模型的仿真分析

上一篇我们已经创建了单摆模型,本篇文章记录如何对单摆模型进行运动仿真和分析,得到其转动的角度和角速度曲线。

1.教程概述

本篇文章通过将各种力和力矩添加到单摆模型中,然后使用具有运动感知的模块分析单摆的动态响应。最终结果是一组时域相位图,其中一个用于力和扭矩的每种组合。 将Simscape Multibody 运动输出作为参数,可以使用 MATLAB 命令创建这些图。
在已经创建单摆模型基础上, 通过向该模型添加力和扭矩,可以逐步将单摆从无阻尼变为阻尼驱动。 施加的力和力矩包括:

  1. 重力(Fg)—作用于每个刚体上与其质量成正比的力,根据加速度向量g指定的力。可以使用 Mechanism Configuration模块指定此向量。
  2. 关节阻尼(Fb)——单摆和关节固定装置之间的内部扭矩,您可以根据线性阻尼系数进行参数化。 可以使用将单摆连接到固定装置的 Revolute Joint 模块指定此参数。
  3. 驱动力矩 (FA) - 单摆和关节固定装置之间的驱动力矩,直接将其指定为 Simscape 物理信号。 可以使用将单摆连接到固定装置的 Revolute Joint 模块指定此信号。

2.感应单摆运动

  1. 打开创建好的simple_pendulum单摆模型

  2. 在Revolute Joint对话框中Sensing栏选择下面变量:
    Position(位置)、Velocity(速度)
    该模块公开了两个额外的物理信号端口,记为 q 和 w,它们输出单摆相对于世界坐标系的角位置和速度。

  3. 将下列模块拖动到模型中。使用它们将关节的位置和速度输出到MATLAB的基础工作空间。

模块数量
Simscape > UtilitiesPS-Simulink Converter2
Simulink > SinksTo Workspace2
  1. 将 To Workspace 模块对话框中的变量名称参数更改为 q 和 w。 这些变量可以轻松识别 To Workspace 模块在模拟过程中输出的关节变量 — 位置(Revolute Joint 模块端口 q)和速度( Revolute Joint 模块端口 w)。
  2. 如图所示连接模块。 确保变量名称为 q 的 To Workspace 模块通过 PS-Simulink Converter 模块连接到 Revolute Joint 模块端口 q,并且变量名称为 w 的 To Workspace 模块连接到 Revolute Joint 模块端口 w。
    在这里插入图片描述
  3. 将模型命名为simple_pendulum_analysis并保存。

3.无阻尼单摆

  1. 仿真运行。 选择 Simulation > Run 在 Simscape Multibody Editor 菜单栏中执行此操作。 Mechanics Explorer 打开时会显示单摆模型的3D动画。

  2. 绘制关节位置和速度,在MATLAB命令行下输入以下代码:

    figure;   %打开图窗
    hold on;
    plot(q);  %绘制单摆角度
    plot(w);  %绘制单摆角速度
    

曲线如下图所示:
在这里插入图片描述
3. 绘制相对于角度的关节角速度,在 MATLAB 命令行下输入以下代码。

figure;
plot(q.data,w.data);

该图是相对于0度为起始位置对应的关节相位图(角度-角速度)。
在这里插入图片描述
尝试使用不同的起始角度来仿真该模型。在Revolute Joint对话框的State Targets>Specify Position Target>Value处更改起始角度。下图显示了起始角分别为-80°、-40°、0、40°、80°的复合相位图。
在这里插入图片描述

4.有阻尼单摆

  1. 在 Revolute Joint 对话框中,将 Internal Mechanics > Damping 设置为 8e-5 (N*m)/(deg/s)。 阻尼系数导致运动过程中的能量消耗,导致单摆振幅逐渐衰减。

  2. 确保将 State Targets > Position > Value 初始角度位置设置为 0 。

  3. 仿真运行。

  4. 绘制关节位置和速度,在MATLAB命令行下输入以下代码:

    figure;   
    hold on;
    plot(q);
    plot(w);
    

下图显示,由于阻尼,单摆振荡会随时间衰减。 在更大的阻尼值下,单摆变得过阻尼,并且振荡完全消失。
在这里插入图片描述
5 . 绘制联合相位图。在 MATLAB 命令行下输入以下代码:

figure;
plot(q.data, w.data);

在这里插入图片描述
将起始角分别设置为 -240°、-180°、-120°、-60°、0 和 60 °。
在这里插入图片描述

5.有阻尼驱动单摆

  1. 在 Revolute Joint 对话框中,将 Actuation > Torque 设置为由 Input 提供。
  2. 将这些模块拖动到模型中。
模块
Simscape > UtilitiesSimulink-PS Converter
Simulink > SourcesSine Wave

Sine Wave提供周期力矩输入。Simulink-PS Converter 模块将 Simulink 信号转换为Simscape 物理信号。

  1. 按照下图连接模块:
    在这里插入图片描述

  2. 在Sine Wave对话框中,将振幅设置为0.06。

  3. 在 Revolute Joint 块对话框中,确保将 State Targets > Position >Value 设置为 0 。

  4. 仿真运行。

  5. 绘制关节位置和速度,在MATLAB命令行下输入以下代码:

      figure;   
      hold on;
      plot(q);
      plot(w);
    

在这里插入图片描述

  1. 绘制联合相位图。在 MATLAB 命令行下输入以下代码:

    figure;
    plot(q.data, w.data);
    

在这里插入图片描述

举报

相关推荐

0 条评论