创建简单模型

您可以使用 Simulink® 对系统建模,然后仿真该系统的动态行为。Simulink 允许您创建模块图,图中的各个连接模块代表系统的各个部分,信号代表这些模块之间的输入/输出关系。Simulink 的主要功能是对系统各个组件随时间流逝的行为变化进行仿真。简单来讲就是:采用一个时钟,按时间确定各个模块的仿真顺序,并在仿真过程中依次将在上一个模块图中计算得出的输出传播到下一个模块,直至最后一个模块。假设有一个打开加热器的开关。在每个时间步中,Simulink 必须计算开关的输出,将该输出传播到加热器,然后计算热量输出。

通常,组件的输入对其输出的影响不是瞬时的。例如,打开加热器不会导致温度立即发生变化。该动作为微分方程提供输入,历史温度(一个状态)也是一个输入因子。当模块图的仿真需要求解微分或差分方程时,Simulink 使用内存和数值求解器来计算时间步的状态值。

Simulink 处理三类数据:

  • 信号 - 在仿真期间计算的模块输入和输出

  • 状态 - 在仿真期间中计算的代表模块动态的内部值

  • 参数 - 影响模块行为的值,由用户控制

在每个时间步,Simulink 都计算信号和状态的新值。相比之下,您可以在编译模型时指定参数,并且可以在仿真运行时偶尔更改它们。

模型概述

本教程中创建简单模型所使用的基本方法也适用于创建更复杂的模型。此示例仿真的是在踩下加速踏板后简化的汽车运动。

Simulink 模块是定义模块输入和模块输出之间数学关系的模型元素。要创建这个简单模型,您需要四个 Simulink 模块。

模块名称 模块目的 模型目的
Pulse Generator 为模型生成输入信号 模拟加速踏板
Gain 将输入信号乘以一个因子 模拟踩下加速踏板对汽车加速所造成的影响
Integrator, Second-Order 对输入信号执行二次积分 根据加速度计算汽车位置
Outport 将信号指定为模型的输出 将位置指定为模型的输出

此模型的仿真过程是将一个简短的脉冲信号积分两次,形成一个斜坡信号,然后将结果显示在一个示波器窗口中。输入脉冲表示踩下汽车的加速踏板,输出斜坡表示与起点的距离增加。

打开新模型

使用 Simulink Editor 构建模型。

  1. 启动 MATLAB®。从 MATLAB 工具条上,点击 Simulink 按钮 

  2. 点击 Blank Model 模板。

    Simulink Editor 打开。

  3. 从 File 菜单中,选择 Save as。在 File name 文本框中,输入您的模型的名称,例如 simple_model。点击 Save。模型使用文件扩展名 .slx 进行保存。

打开 Simulink Library Browser

Simulink 在 Library Browser 中提供了一系列按功能分类的模块库。下面是大多数工作流常用的一些模块库:

  • Continuous - 连续状态系统的构建模块

  • Discrete - 离散状态系统的构建模块

  • Math Operations - 实现代数和逻辑方程的模块

  • Sinks - 存储并显示所连接信号的模块

  • Sources - 生成模型的驱动信号值的模块

  1. 从 Simulink Editor 工具栏上,点击 Library Browser 按钮 

  2. 将 Library Browser 设置为始终在其他桌面窗口前端。在 Library Browser 工具栏中,选择 Stay on top 按钮 

要浏览模块库,请从左窗格中选择一个 MathWorks® 产品,然后选择一个功能区。要搜索所有可用的模块库,请输入搜索词。

例如,查找 Pulse Generator 模块。在浏览器工具栏的搜索框中输入 pulse,然后按 Enter 键。Simulink 将在模块库中搜索名称或说明中包含 pulse 的模块,然后显示这些模块。

获取模块的详细信息。右键点击某个模块,然后选择 Help for the Pulse Generator block。Help 浏览器随即打开并显示该模块的参考页。

模块通常有几个参数。您可以通过双击该模块来访问所有参数。

将模块添加到模型

要开始构建模型,请浏览库并添加模块。

  1. 从 Sources 库中,将 Pulse Generator 模块拖到 Simulink Editor 中。您的模型中将出现 Pulse Generator 模块的副本,还有一个文本框用于输入 Amplitude 参数的值。输入 1

    参数值在整个仿真过程中保持不变。

  2. 使用相同的方法将以下模块添加到模型中。

    模块 参数
    Gain Simulink/Math Operations

    Gain: 2

    Integrator, Second Order Simulink/Continuous

    Initial condition: 0

    Outport Simulink/Sinks

    Port number:1

    通过右键点击并拖动一个现有 Outport 模块,添加第二个 Outport 模块。

    现在您的模型应该具有所需的全部模块了。

  3. 通过点击并拖动每个模块来按如下方式排列模块。要调整模块大小,请点击并拖动一个角。

连接模块

通过在输出端口和输入端口之间创建线条来连接模块。

  1. 点击 Pulse Generator 模块右侧的输出端口。

    该输出端口和所有可供连接的输入端口都将突出显示。

  2. 点击 Gain 模块的输入端口。

    Simulink 用线条连接模块,并用箭头表示信号流的方向。

  3. 将 Gain block 的输出端口连接到 Integrator, Second Order 模块的输入端口。

  4. 将 Integrator, Second Order 模块的两个输出连接到两个 Outport 模块。

  5. 保存模型。选择 File > Save 并为模型指定一个文件名。

您的模型搭建完成。

添加信号查看器

要查看结果,请将第一个输出连接到一个 Signal Viewer。

通过右键点击信号来访问上下文菜单。选择 Create & Connect Viewer > Simulink > Scope。这会在信号上创建查看器图标并打开查看器显示屏。

您可以随时通过双击该图标打开查看器。

运行仿真

定义配置参数后,即可进行模型仿真。

  1. 在模型窗口上,通过更改工具栏上的值来设置仿真停止时间。

    默认停止时间 10.0 适合此模型。此时间值没有单位。Simulink 中的时间单位取决于方程的构造方式。此示例对简化的汽车运动进行为时 10 秒的仿真。

  2. 要运行仿真,请点击 Run 仿真按钮 

仿真运行并在查看器上生成输出。

关注公众号: MATLAB基于模型的设计 (ID:xaxymaker) ,每天推送MATLAB学习最常见的问题,每天进步一点点,业精于勤荒于嬉

打开微信扫一扫哦!

simulink创建简单模型的更多相关文章

  1. 简单Elixir游戏服设计-创建玩家模型

    删除model.ex 创建玩家模型 player.ex, 简单化,只有唯一标识,昵称,金币,够用了. 选择 map 代表数据,是为了扩展数据结构,方便增加功能.struct也是可以的. add_num ...

  2. Fixflow引擎解析(三)(模型) - 创建EMF模型来读写XML文件

    Fixflow引擎解析(四)(模型) - 通过EMF扩展BPMN2.0元素 Fixflow引擎解析(三)(模型) - 创建EMF模型来读写XML文件 Fixflow引擎解析(二)(模型) - BPMN ...

  3. 【ASP.NET Web API教程】2.3.2 创建域模型

    原文:[ASP.NET Web API教程]2.3.2 创建域模型 Part 2: Creating the Domain Models 第2部分:创建域模型 本文引自:http://www.asp. ...

  4. django初探-创建简单的博客系统

    django第一步 1. django安装 pip install django print(django.get_version()) 查看django版本 2. 创建项目 打开cmd,进入指定目录 ...

  5. django初探-创建简单的博客系统(一)

    django第一步 1. django安装 pip install django print(django.get_version()) 查看django版本 2. 创建项目 打开cmd,进入指定目录 ...

  6. Knockout v3.4.0 中文版教程-2-监控-通过监控创建视图模型(上)

    2. 监控 1.通过监控创建视图模型 1. 监控 Knockout是基于以下三个核心特性: 监控和依赖跟踪 声明式绑定 模板 在本节,你将第一次了解这三个特性,在这之前,我们先来了解以下MVVM模式和 ...

  7. Django 小实例S1 简易学生选课管理系统 9 创建课程模型(model)

    Django 小实例S1 简易学生选课管理系统 第9节--创建课程模型(model) 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 对于课程模块, ...

  8. Django 小实例S1 简易学生选课管理系统 3 创建用户模型(model)

    Django 小实例S1 简易学生选课管理系统 第3节--创建用户模型(model) 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 本文涉及到的新 ...

  9. [.NET] WebApi 生成帮助文档及顺便自动创建简单的测试工具

    ==========最终的效果图========== ==========下面开始干活:生成帮助文档========== 一.创建 WebApi 项目 二.找到 HelpPageConfig.cs 并 ...

随机推荐

  1. VSCode Python开发环境配置

    目录 准备工作 VSCode初步 用户界面 快捷键 安装扩展 配置文件与内置终端设置 高级调试配置 小结 参考 博客:blog.shinelee.me | 博客园 | CSDN 准备工作 安装anac ...

  2. EIGRP 基础实验

    一.环境准备 1. 软件:GNS3 2. 路由:c7200 二.实验操作 实验要求: 1.掌握EIGRP 的基本配置 2.掌握EIGRP 的通配符掩配置方法 3.掌握EIGRP 的自动汇总特性,理解E ...

  3. 面试官,你再问我 Bit Operation 试试?

    在面试环节中,面试官很喜欢问一些特别的题目,这些题目有着特殊的解法,如果回答的巧妙往往能在面试中加分. 在这些题目中,位操作(Bit Operation)就是极具魅力的一种.今天,吴师兄就来分享 Le ...

  4. DOM-based XSS Test Cases

    Case 23 - DOM Injection via URL parameter (by server + client) https://brutelogic.com.br/dom/dom.php ...

  5. ABP项目依赖图,根据自已生在的Demo项目分析而得

    根据自已生在的Demo项目分析而得 在线学习代码库:https://github.com/AtwindYu/ABPStudy

  6. Hive的原理

    阅读目录 一.Hive内部表和外部表 1.Hive的create创建表的时候,选择的创建方式: - create table - create external table 2.特点: ● 在导入数据 ...

  7. netdom remove 错误:netdom remove

    自己用错了命令,直接将加入域的计算机使用dsrm删除了,本来应该使用netdom remove的,结果在域控制器上使用netdom remove错误,在客户端上登录时一样提示:netdom remov ...

  8. Java使用Try with resources自动关闭资源

    Try-with-resources Try-with-resources是Java7中一个新的异常处理机制,它能够很容易地关闭在try-catch语句块中使用的资源. 利用Try-Catch-Fin ...

  9. 解决 React-Native mac 运行报错 error Failed to build iOS project. We ran "xcodebuild" command but it exited with error code 65. To debug build logs further, consider building your app with Xcode.app, by ope

    React-Native 开发的项目,Android 方面没有任何问题,IOS 就是无法跑起来,报错信息如下: mac 10.14.4 xcode 10.2.1 error Failed to bui ...

  10. Identity Server 4 - Hybrid Flow - Claims

    前一篇 Identity Server 4 - Hybrid Flow - MVC客户端身份验证: https://www.cnblogs.com/cgzl/p/9253667.html Claims ...