Simscape物理建模步骤

news2025/4/6 2:04:21

为了介绍构建和仿真物理模型的步骤,这里以simulink自带示例模型Mass-Spring-Damper with Controller为例,下图为建立好的模型。

详细物理建模和仿真分析步骤如下:

步骤 1:使用 ssc_new 创建新模型

使用 ssc_new 是开始构建 Simscape™ 模型的最佳方式。使用该函数有助于确保为模型使用推荐的默认设置。当您使用 ssc_new 时,它会自动:

  • 创建一个新的 Simscape 模型,模型画布上已有必需和常用的模块
  • 选择推荐的求解器和容差设置
  • 为整个模型启用数据记录

在 MATLAB® 命令行窗口中,键入:

ssc_new

新创建的无名称模型的默认求解器设置为 VariableStepAuto,该模型包含一个 Solver Configuration 模块、一个 Simulink-PS Converter 模块以及一个连接到 Scope 模块的 PS-Simulink Converter 模块。

模型窗口底部的资源部分提供了指向相关模块库和文档主题的链接。

步骤 2:组装物理网络

要对您的系统进行建模,需要从 Simscape 库向模型中添加模块,然后将这些模块连接到物理网络。在您创建的原理图中,连接模块的线条表示您正在建模的实际系统中组件之间存在的物理连接。换言之,Simscape 图模拟的是物理系统布局。

构造网络时,添加域特定的参考模块非常重要,例如 Electrical Reference、Mechanical Translational Reference 等。

  1. 打开 Simscape > Foundation Library > Mechanical > Translational Elements 库。
  2. 将 Mass、Translational Spring、Translational Damper 和 Mechanical Translational Reference 模块拖动到模型窗口中。
  3. 将 Translational Spring、Translational Damper 和 Mass 模块连接到 Mechanical Translational Reference 模块,如下图所示。要旋转某个模块,请选择该模块,然后按 Ctrl+R

要调整模型的视觉呈现,请简化 Spring 和 Damper 模块的名称,如图所示。要使 Mass 模块的名称与 Spring 和 Damper 同时显示,请右键点击 Mass 模块,然后从上下文菜单中选择格式 > 显示模块名称 > 打开

步骤 3:调整模块参数和变量目标

Simscape 模块表示具有模块参数和变量默认初始值的通用组件。您可以根据您的应用程序调整这些值或与制造商数据表相匹配。

要查看和修改模块变量的模块参数值和初始目标,请双击模块以打开其对话框。使用 Settings 选项卡。

对于大多数 Simscape 模块,模块对话框包含与模块属性检查器相同的信息和布局。默认情况下,在属性检查器中更改值会立即应用新值。为了更好地进行控制,建议您清除模块对话框右上角的自动应用复选框,以启用重置应用按钮。这在处理复杂模块时特别有用,因为您可以一次更改多个参数。更改参数值以匹配制造商数据表,查看整个集,然后点击应用。清除自动应用复选框后,该复选框将在 MATLAB 会话期间保持清除状态。

要查看模块的描述,请点击模块对话框中的 Description 选项卡。该选项卡还包含 Source code 链接。点击该链接可在 MATLAB 编辑器中打开此模块的 Simscape 源文件。

如果模块没有可以设置的参数或变量目标,则模块对话框没有 Settings 选项卡,只有 Description 选项卡。

要查看模块的文档,请点击模块对话框右上角的问号  按钮。

在此模型中,您将调整用于控制质量、弹簧刚度和阻尼系数的参数。您还将通过调整相应的变量目标来指定质量的初始速度。

  1. 双击 Spring 模块。清除自动应用复选框。将 Spring rate 设置为 400 N/m,然后点击应用

  1. 双击 Damper 模块。将 Damping coefficient 设置为 100 N/(m/s)

  1. 双击 Mass 模块。将 Mass 设置为 3.6 kg

  1. 要指定所需的质量速度初始值,请在 Initial Targets 部分中展开 Velocity。该变量的 Priority 已指定为 “High”,这意味着求解器在计算初始条件以确定仿真起点时将尝试完全满足该初始值。选中 Velocity 复选框。在 Value 字段中,键入 10,然后点击应用

步骤 4:添加信源

您可以使用输入信号驱动 Simscape 模型。使用这种方法,您可以表示作用于系统的物理效应,例如力、电压或压力。您还可以指定流经系统的其他量,例如电流、质量流量和热通量。您可以通过使用 Simscape 信源模块向物理网络添加信号输入连接。

要添加作用于质量的力的表示,请使用 Ideal Force Source 模块。

  1. 打开 Simscape > Foundation Library > Mechanical > Mechanical Sources 库。
  2. 将 Ideal Force Source 模块添加到示意图中。简化模块名称,如图所示。
  3. 为了反映原始原理图中显示的力的正确方向,请翻转模块方向。选择 Force Source 模块后,在 Simulink® 工具条的格式选项卡上,在排列下,点击上下翻转
  4. 复制 Mechanical Translational Reference 模块,方法是右键点击该模块并将其拖动到新位置。然后使用与 Force Source 模块相同的方法翻转新模块的方向。
  5. 将 Force Source 模块的端口 C 连接到这第二个 Mechanical Translational Reference 模块,将端口 R 连接到 Mass 模块,如下图所示。

将物理网络连接到 Simulink 源后,代表作用力曲线的输入信号将通过端口 S 提供(请参阅步骤 6:使用接口模块连接到 Simulink)。端口 S 处的正信号将指定从端口 C 作用到端口 R 的力。

步骤 5:添加传感器

您可以测量物理网络中的量,并在模型中的其他位置使用它们。这些量的一些常见用途包括控制算法的反馈、对其行为依赖于其他物理量的物理组件(如温度相关电阻)进行建模,或者只是在仿真过程中查看结果。

您可以使用传感器模块测量这些量,根据测量值对传感器进行串联或并联。要测量由 Through 变量定义的量(如电流、流量、力),请串联传感器。要测量由 Across 变量定义的量(如电压、压力、速度),请并联传感器。

要测量弹簧形变,请将 Ideal Translational Motion Sensor 模块与弹簧并联。

  1. 打开 Simscape > Foundation Library > Mechanical > Mechanical Sensors 库。
  2. 将 Ideal Translational Motion Sensor 模块添加到示意图中。
  3. 要旋转该模块,请选择该模块,然后按 Ctrl+R
  4. 如下图所示连接该模块。简化模块名称,如图所示。

步骤 6:使用接口模块连接到 Simulink

Simscape 网络中的方程是同时求解的,而 Simulink 模块是按顺序求值的。接口模块(如 Simulink-PS Converter 和 PS-Simulink Converter)用于处理这两种建模约定之间的边界。当 Simulink 信号在 Simscape 网络中指定量时,或者在将 Simscape 量传递给 Simulink 以进行控制设计或实现其他目的时,您需要使用接口模块。每次将 Simulink 模块连接到 Simscape 物理网络时,都必须使用适当的转换器模块。

下面您要将物理网络连接到由常规 Simulink 模块构建的控制器。首先,准备要连接到 Simulink 信号的物理网络:

  1. 删除 Scope 模块。

虽然您可以使用示波器查看仿真结果,但这些示波器会使模块图变得更加混乱。查看和分析仿真结果的一种更有效方法是使用 Simscape 结果资源管理器,如步骤 8:查看仿真结果中所述。

  1. 将 Simulink-PS Converter 模块的物理信号输出端口连接到 Force Source 模块的端口 S。
  2. 将 Motion Sensor 模块的输出端口 P 连接到 PS-Simulink Converter 模块的物理信号输入端口。
  3. 将 Solver Configuration 模块连接到电路并隐藏转换器模块名称。示意图现在如下所示。

然后,构建并连接控制器:

  1. 打开 Simulink > Sources 库,然后将 Pulse Generator 模块拖到模型中。将模块名称更改为 Position Command。设置模块参数,如图所示。

  1. 打开 Simulink > Math Operations 库,然后将 Sum 模块拖到模型中。在符号列表中,将第二个加号替换为减号,如图所示。

  1. 打开 Simulink > Continuous 库,然后将 PID Controller 模块拖到模型中。设置比例(P)积分(I) 和微分(D) 参数值,如图所示。

  1. 连接模块,如下面的示意图所示。

控制 Simulink 信号进入 Simulink-PS Converter 模块的输入端口,在那里转换为驱动 Ideal Force Source 模块的力分布的物理信号。

用于测量弹簧形变的 Ideal Translational Motion Sensor 模块的输出端口 P 连接到 PS-Simulink Converter 模块。该模块用于将物理信号转换为控制器的反馈 Simulink 信号。

要比较输入和反馈信号,请将它们连接到信号查看器:

  1. 右键点击从 Pulse Generator 模块传递到 Sum 模块的 Simulink 信号。从上下文菜单中,选择 Create & Connect Viewer > Simulink > Scope
  2. 然后,右键点击从 PS-Simulink Converter 模块传递到 Sum 模块的 Simulink 信号。从上下文菜单中,选择 Connect To Viewer > Scope

步骤 7:仿真模型

您可以通过点击 Simulink 工具条(位于模型窗口顶部)或波形查看器工具栏中的“运行”按钮  来运行仿真。Simscape 求解器会对模型进行求值,计算初始条件,然后运行仿真。

要运行仿真,请点击 Simulink 工具条中的 

波形查看器会显示输入信号和反馈信号的叠加图。

步骤 8:查看仿真结果

通过 Simscape 结果资源管理器,您可以使用数据记录功能查看和分析仿真数据。例如,您可以比较两个仿真运行,以分析质量变化如何影响弹簧形变。

  1. 右键点击 Spring 模块。
  2. 从上下文菜单中,选择 Simscape > View simulation data > simlog

注意:simlog 是记录变量的默认名称。如果使用工作区变量名称模型配置参数更改变量名称,则上下文菜单会将该名称列为与模块关联的记录变量。

此时将打开 Simscape 结果资源管理器窗口,左窗格中突出显示与 Spring 模块对应的节点。右窗格显示与该模块关联的三个变量的仿真数据图。

  1. 在 Spring 节点下,选择节点 x。右窗格显示随时间绘制的弹簧形变数据。

  1. 双击 Mass 模块。将质量设置为 7.2 kg
  2. 运行仿真。
  3. 要重新加载记录的数据,请点击位于 Simscape 结果资源管理器窗口工具栏中的导入数据按钮。在显示记录变量名称的弹出窗口中,点击确定

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1919793.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux系统操作/基本命令/vim/权限修改/用户建立

Linux的目录结构: 一:在Linux系统中,路径之间的层级关系,使用:/来表示 注意:1、开头的/表示根目录 2、后面的/表示层级关系 二:在windows系统中,路径之间的层级关系,使用:\来表示 注意:1、D:表示…

职业本科计算机网络实训室

一、职业本科计算机网络实训室建设的背景 随着数字化时代的深入发展,计算机网络技术已经渗透到社会的每一个角落,成为推动社会进步的重要力量。在《中华人民共和国国民经济和社会发展第十四个五年规划和2035年远景目标纲要》中,建设数字中国…

2972.力扣每日一题7/11 Java(击败100%)

博客主页:音符犹如代码系列专栏:算法练习关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 目录 解题思路 解题方法 时间复杂度 空间复杂度 Code 解题思路 该问…

vscode编译环境配置-c++

1. 支持跳转 安装c/c扩展 安装后即可支持跳转

Elasticsearch:介绍 retrievers - 搜索一切事物

作者:来自 Elastic Jeff Vestal, Jack Conradson 在 8.14 中,Elastic 在 Elasticsearch 中引入了一项名为 “retrievers - 检索器” 的新搜索功能。继续阅读以了解它们的简单性和效率,以及它们如何增强你的搜索操作。 检索器是 Elasticsearc…

还不懂 OOM ?详解内存溢出与内存泄漏区别!

内存溢出与内存泄漏 1. 内存溢出(Out Of Memory,OOM) 概念: 内存溢出是指程序在运行过程中,尝试申请的内存超过了系统所能提供的最大内存限制,并且垃圾收集器也无法提供更多的内存,导致程序无…

深入浅出Ansiable

目录 Ansible的起源 Ansible的发展史 Ansible的功能 Ansible的特性 Ansible的架构 Ansible的注意事项 Ansible入门 Ansible的安装 Ansible配置文件 配置文件解析 inventory主机配置清单 Ansible相关工具 Ansible的常用模块 Command模块 shell模块 Script模块 C…

Windows 电脑查看 WiFi 密码的方法都有哪些?

从设置面板中查看 当你使用的是笔记本电脑并且连接 WiFi 之后可以在设置面板中查看 WiFi 密码,首先打开设置界面,然后点击网络和 Internet,找到 WiFi 之后点击进入,然后点击管理已知网络。 然后点击已经连接好的无线网络。 进入之…

快速导入mysql百万用户数据

1. 前言 随着互联网的发展,大数据已经是很普遍的一个现象,已不再是零几年时的神话。数据资源意为着就是信息资源,很好的使用起来说是财富资源一点也不夸张.所以无论当下是小的还是大的互联网公司都会遇到大数的情况。只不过不同的业务逻辑需求与使用情况不一样罢了。 大数据我…

git为文件添加可执行权限

查看文件权限 git ls-files --stage .\SecretFinder.py100644 表示文件的所有者有读取和写入权限 添加可执行权限 git update-index --chmod x .\SecretFinder.py再次查看文件权限 git ls-files --stage .\SecretFinder.py100755 表示文件的所有者有读取、写入和执行权限

安卓逆向经典案例——XX优品(uniapp)

uni-app逆向 uniapp的目录结构 有一个io文件夹,下面有dcloud uniapp UniApp 可以用于开发 H5 应用,但它不仅仅局限于 H5 应用。UniApp 的特点包括: 1. 跨平台:可以一套代码同时生成适用于多个平台(如 iOS、Android、…

STM32杂交版(HAL库、音乐盒、闹钟、点阵屏、温湿度)

一、设计描述 本设计精心构建了一个以STM32MP157A高性能单片机为核心控制单元的综合性嵌入式系统。该系统巧妙融合了蜂鸣器、数码管显示器、点阵屏、温湿度传感器、LED指示灯以及按键等多种外设模块,形成了一个功能丰富、操作便捷的杂交版智能设备。通过串口…

Linux C语言基础 day9

目录 思维导图 学习目标: 学习内容: 1. 值传递与地址传递(非常重要) 1.1 值传递 1.2 地址传递 2. 递归函数 2.1 递归的概念 2.2 递归条件 2.3 递归思想 3. 指针 3.1 指针相关概念 3.2 指针变量的定义 3.2.1. 定义格…

初识MVVM分层思想——05

1.MVVM是什么? M :model(模型/数据) V : view(试图) VM :ViewModel (试图模型) : VM 是MVVM 中的核心部分。(它起到一个核心的非常重要的作用&…

mac下mysql无法登陆的问题

用如下命令登录出现错误。 sudo mysql.server start解决方案 使用如下命令登录 sudo /usr/local/MySQL/support-files/mysql.server start

【C++基础】初识C++(1)

目录 一、认识C 1.1 C 相关概念 1.2 C的发展 1.3 C的关键字 1.4 第一个程序 二、命名空间 2.1 namespace的定义 2.2 命名空间的使用 三、C输入和输出 四、缺省函数 五、函数重载 一、认识C 1.1 C 相关概念 1983年,Bjarne Stroustrup在C语⾔的基础上…

Python 视频的色彩转换

这篇教学会介绍使用OpenCV 的cvtcolor() 方法,将视频的色彩模型从RGB 转换为灰阶、HLS、HSV...等。 因为程式中的OpenCV 会需要使用镜头或GPU,所以请使用本机环境( 参考:使用Python 虚拟环境) 或使用Anaconda Jupyter 进行实作( 参考&#x…

BMS电池管理系统 — 1 什么是BMS

目录 1 储能系统组成 1.1 储能电池结构 1.2 储能集装箱组成 2 BMS系统组成 3 BMS功能 3.1 SOC荷电状态估计 3.2 SOH估计 3.3 主动均衡与被动均衡 3.4 电池热管理 4 BMS架构 4.1 集中式BMS 4.2 分布式BMS 参考论文 1 储能系统组成 1.1 储能电池结构 电芯&#xf…

docker(六)--创建镜像

六、创建镜像 1.创建镜像两种方式 方式1: 更新镜像 docker commit 方式2:构建镜像 docker build 2.更新镜像 1)用法 docker commit -m“描述信息” -a作者 容器id或者容器名 镜像名:tag 2)步骤 ①根据镜像运行容器 ②进入容…

PHP将两张图片合成一张图片代码实例(源代码)

使用PHP将两张图片合成一张图片可以通过GD库来实现。下面是一个示例代码,展示如何将两张图片合成一张图片: 加载两张图片。获取每张图片的宽度和高度。创建一个新的空白图片,其宽度是两张图片宽度的和,高度是两张图片中较大的高度…