创建简单模型

您可以使用 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. for in 和 for of 的区别

    1.for...in 循环:只能获得对象的键名,不能获得键值 for...of 循环:允许遍历获得键值 var arr = ['red', 'green', 'blue'] for(let item ...

  2. C#处理json实战

    昨天看到技术群中发了一个查询天气的api,http://www.sojson.com/open/api/weather/json.shtml?city=南昌 点进去看,发现服务器传回来一个天气信息的j ...

  3. 全网首发! Odoo 订单分解执行及供应链管理免费开源解决方案

    引言 前一篇介绍了佛山王朝家具的案例背景.佛山王朝家具公司在全国有30多家门店,三个生产工厂.王朝家具有六大痛点问题: 订单迫切需要实现电子化管理及在线签名 总部分单工作量大,供应链效率低 配送和售后 ...

  4. Alpha阶段Scrum Meeting合集(江山代有才人秃队)

    Day URL 第一天 第1篇Scrum冲刺博客 第二天 第2篇Scrum冲刺博客 第三天 第3篇Scrum冲刺博客 第四天 第4篇Scrum冲刺博客 第五天 第5篇Scrum冲刺博客 第六天 第6篇 ...

  5. python3 文件操作练习 r+ w+ a+ 的理解

    突然来一句:“慨然有经略四方之志” 文件操作三部曲:1.先用open打开 2.再写关闭  3.再回到中间写操作     为啥要刚打开就关闭 那是很容易望,所以先写上... 基本格式 f = open( ...

  6. 1 小时 SQL 极速入门(三)——分析函数

    1 小时 SQL 极速入门 前面两篇我们从 SQL 的最基础语法讲起,到表联结多表查询. 大家可以点击链接查看 1 小时 SQL 极速入门(一) 1 小时 SQL 极速入门(二) 今天我们讲一些在做报 ...

  7. Mysql事务开启方式(客户端+java手动+Spring Boot)

    一:概念 作为单个逻辑单元执行一系列操作,要么完全执行,要么完全不执行.举例 我们需要向数据库插入3条数据(我们希望这三条数据要么全部插入成功,要么全部失败), 比如第一条数据插入成功,插入第二条数据 ...

  8. 使用 Moq 测试.NET Core 应用 -- Mock 行为

    第一篇文章, 关于Mock的概念介绍: https://www.cnblogs.com/cgzl/p/9294431.html 第二篇文章, 关于方法Mock的介绍: https://www.cnbl ...

  9. Navicat 导出sql问题

    楼主最近碰到一个问题: 使用Navicat建立数据模型的时候使用导出sql功能导出的sql脚本放在sqlserver中执行失败,表创建成功了,但是我在Navicat中写的表注释和字段注释都没有成功, ...

  10. Java~时间戳小知识

    大叔对java时间戳使用的总结 Java里的Date对象有方法setTime,主要是将一个时间戳转成一个日期对象,而这个时间戳的标准是unix标准,即当前时间与1970/1/1相差的毫秒数,记得是毫秒 ...