Simscape物理建模步骤

为了介绍构建和仿真物理模型的步骤,这里以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.mzph.cn/web/44153.shtml

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

相关文章

李彦宏所说的卷应用到底是什么?

李彦宏在2024世界人工智能大会上的发言强调了一个重要的观点,那就是在AI时代,技术的应用比技术本身更为关键。他所提出的“卷应用”而非“卷模型”,实际上是在呼吁业界关注AI技术的实际落地和价值创造,而不是单纯地在模型精度或规…

案例|LabVIEW连接S7-1200PLC

附带: 写了好的参考文章: 通讯测试工具和博图仿真机的连接教程【内含图文完整过程软件使用】 解决博图V15 V16 V17 V18等高版本和低版本在同款PLC上不兼容的问题 目录 前言一、准备条件二、步骤1. HslCommunicationDemo问题1:连接失败?问题…

Lingo学习(二)——线性规划基础、矩阵工厂

一、线性规划基础 (一)方法 ① 一个线性规划中只含一个目标函数。(两个以上是多目标线性规划,Lingo无法直接解) ② 求目标函数的最大值或最小值分别用max …或min …来表示。 ③ 以!开头,以;结束的语句是注释语句; ④ 线性规划和非线性规划的本质…

01、Kerberos安全认证之原理及搭建命令使用学习笔记

文章目录 前言一、Kerberos原理1.1、数据安全防护(kerberos所属的层次)1.2、Kerberos介绍1.3、Kerberos名词介绍1.4、Kerberos术语1.5、Kerberos认证流程1.5.1、Kerberos流程图1.5.2、第一次通信:客户端与AS1.5.3、第二次通信:客户…

60、基于浅层神经网络的数据拟合(matlab)

1、基于浅层神经网络的数据拟合的简介、原理以及matlab实现 1)内容说明 基于浅层神经网络的数据拟合是一种常见的机器学习方法,用于通过输入数据来拟合一个非线性函数。这种方法通常包括一个输入层、一个或多个隐藏层和一个输出层。神经网络通过学习权…

广电日志分析系统

需求 广电集团中有若干个系统都产生日志信息,目前大约分布与70到80台服务器中,分别是windows与Linux操作系统。需要将服务器上产生的日志文件利用我们的技术进行解析 设计 每个日志工作站负责30-50个服务器的日志解析工作。可以根据实际需求进行设置&…

ENSP实现防火墙区域策略与用户管理

目录 实验拓扑与要求​编辑 交换机与防火墙接口的配置 交换机: 创建vlan 接口配置 防火墙配置及接口配置 防火墙IP地址配置 云配置​编辑​编辑​编辑 在浏览器上使用https协议登陆防火墙,并操作 访问网址:https://192.168.100.1:844…

51单片机嵌入式开发:9、 STC89C52RC 操作LCD1602技巧

STC89C52RC 操作LCD1602技巧 1 代码工程2 LCD1602使用2.1 LCD1602字库2.2 巧妙使用sprintf2.3 光标显示2.4 写固定长度的字符2.5 所以引入固定长度写入方式: 3 LCD1602操作总结 1 代码工程 承接上文,在原有工程基础上,新建关于lcd1602的c和h…

11-《风信子》

风信子 风信子(学名:Hyacinthus orientalis L.):是多年草本球根类植物,鳞茎卵形,有膜质外皮,皮膜颜色与花色成正相关,未开花时形如大蒜,原产地中海沿岸及小亚细亚一带&am…

C++基础(二)

目录 1.类和对象 1.1类的定义 1.2访问限定符 1.3类域 2.实例化 2.1实例化概念 2.2对象大小 3.this指针 4.类的默认成员函数 4.1构造函数 4.2析构函数 4.5运算符重载 1.类和对象 1.1类的定义 类的定义格式 class为定义类的关键字,Stack为类的名字&…

7月11日学习打卡,数据结构栈

大家好呀,本博客目的在于记录暑假学习打卡,后续会整理成一个专栏,主要打算在暑假学习完数据结构,因此会发一些相关的数据结构实现的博客和一些刷的题,个人学习使用,也希望大家多多支持,有不足之…

dataX入门

下载dataX https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202308/datax.tar.gz 然后 下载后解压至本地某个目录,进入bin目录,即可运行同步作业: $ cd {YOUR_DATAX_HOME}/bin $ python datax.py {YOUR_JOB.json} 要求你有python…

怎样在 C 语言中进行类型转换?

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会! 📙C 语言百万年薪修炼课程 通俗易懂,深入浅出,匠心打磨,死磕细节,6年迭代,看过的人都说好。 文章目…

kafka发送消息流程

配置props.put(ProducerConfig.PARTITIONER_CLASS_CONFIG, RoundRobinPartitioner.class); public Map<String,Object> producerConfigs(){Map<String,Object> props new HashMap<>();props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,bootstrapServers…

在表格中把tab换成enter键------ivx

为了方便用户输入&#xff0c;把tab键替换成enter回车 方法如下&#xff1a; 添加一个fx函数 document.addEventListener(‘keydown’, function(event) { if (event.key ‘Enter’ && !event.shiftKey) { event.preventDefault(); var focusableElements document.q…

【C++BFS】690. 员工的重要性

本文涉及知识点 CBFS算法 LeetCode690. 员工的重要性 你有一个保存员工信息的数据结构&#xff0c;它包含了员工唯一的 id &#xff0c;重要度和直系下属的 id 。 给定一个员工数组 employees&#xff0c;其中&#xff1a; employees[i].id 是第 i 个员工的 ID。 employees[…

软件架构之嵌入式系统设计(2)

软件架构之嵌入式系统设计&#xff08;2&#xff09; 12.4 嵌入式网络系统12.4.1 现场总线网12.4.2 家庭信息网11.4.3 无线数据通信网12.4.4 嵌入式 Internet 12.5 嵌入式数据库管理系统12.5.1 使用环境的特点12.5.2 系统组成与关键技术 12.6 实时系统与嵌入式操作系统12.6.1 嵌…

Linux 忘记root密码,通过单用户模式修改

银河麒麟桌面操作系统 V10&#xff08;sp1&#xff09;”忘记用户密码&#xff0c;需要修改用户密码所写&#xff0c;可用于 X86 架构和 arm 架构。 2. 选择第一项&#xff0c;在上图界面按“e”键进行编辑修改。 3. 在以 linux 开头这行的行末&#xff0c;添加“init/bin/bas…

SSE(Server-Send-Event)服务端推送数据技术

SSE&#xff08;Server-Send-Event&#xff09;服务端推送数据技术 大家是否遇到过服务端需要主动传输数据到客户端的情况&#xff0c;目前有三种解决方案。 客户端轮询更新数据。服务端与客户端建立 Socket 连接双向通信服务端与客户建立 SSE 连接单向通信 几种方案的比较&…

Nginx上配置多个网站

一、需求描述 我们只有一台安装了Nginx的服务器,但是我们需要实现在这台服务器上部署多个网站,用以对外提供服务。 二、Nginx上配置多个网站分析 一般网站的格式为:【http://ip地址:端口号/URI】(比如:http://192.168.3.201:80),IP地址也可用域名表示;那么要实现在Nginx…