创建简单模型
您可以使用 Simulink® 对系统建模,然后仿真该系统的动态行为。Simulink 允许您创建模块图,图中的各个连接模块代表系统的各个部分,信号代表这些模块之间的输入/输出关系。Simulink 的主要功能是对系统各个组件随时间流逝的行为变化进行仿真。简单来讲就是:采用一个时钟,按时间确定各个模块的仿真顺序,并在仿真过程中依次将在上一个模块图中计算得出的输出传播到下一个模块,直至最后一个模块。假设有一个打开加热器的开关。在每个时间步中,Simulink 必须计算开关的输出,将该输出传播到加热器,然后计算热量输出。
通常,组件的输入对其输出的影响不是瞬时的。例如,打开加热器不会导致温度立即发生变化。该动作为微分方程提供输入,历史温度(一个状态)也是一个输入因子。当模块图的仿真需要求解微分或差分方程时,Simulink 使用内存和数值求解器来计算时间步的状态值。
Simulink 处理三类数据:
-
信号 - 在仿真期间计算的模块输入和输出
-
状态 - 在仿真期间中计算的代表模块动态的内部值
-
参数 - 影响模块行为的值,由用户控制
在每个时间步,Simulink 都计算信号和状态的新值。相比之下,您可以在编译模型时指定参数,并且可以在仿真运行时偶尔更改它们。
模型概述
本教程中创建简单模型所使用的基本方法也适用于创建更复杂的模型。此示例仿真的是在踩下加速踏板后简化的汽车运动。
Simulink 模块是定义模块输入和模块输出之间数学关系的模型元素。要创建这个简单模型,您需要四个 Simulink 模块。
模块名称 | 模块目的 | 模型目的 |
---|---|---|
Pulse Generator | 为模型生成输入信号 | 模拟加速踏板 |
Gain | 将输入信号乘以一个因子 | 模拟踩下加速踏板对汽车加速所造成的影响 |
Integrator, Second-Order | 对输入信号执行二次积分 | 根据加速度计算汽车位置 |
Outport | 将信号指定为模型的输出 | 将位置指定为模型的输出 |
此模型的仿真过程是将一个简短的脉冲信号积分两次,形成一个斜坡信号,然后将结果显示在一个示波器窗口中。输入脉冲表示踩下汽车的加速踏板,输出斜坡表示与起点的距离增加。
打开新模型
使用 Simulink Editor 构建模型。
-
启动 MATLAB®。从 MATLAB 工具条上,点击 Simulink 按钮 。
-
点击 Blank Model 模板。
Simulink Editor 打开。
-
从 File 菜单中,选择 Save as。在 File name 文本框中,输入您的模型的名称,例如
simple_model
。点击
打开 Simulink Library Browser
Simulink 在 Library Browser 中提供了一系列按功能分类的模块库。下面是大多数工作流常用的一些模块库:
-
Continuous - 连续状态系统的构建模块
-
Discrete - 离散状态系统的构建模块
-
Math Operations - 实现代数和逻辑方程的模块
-
Sinks - 存储并显示所连接信号的模块
-
Sources - 生成模型的驱动信号值的模块
-
从 Simulink Editor 工具栏上,点击 Library Browser 按钮 。
-
将 Library Browser 设置为始终在其他桌面窗口前端。在 Library Browser 工具栏中,选择 Stay on top 按钮 。
要浏览模块库,请从左窗格中选择一个 MathWorks® 产品,然后选择一个功能区。要搜索所有可用的模块库,请输入搜索词。
例如,查找 Pulse Generator 模块。在浏览器工具栏的搜索框中输入 pulse
,然后按 Enter 键。Simulink 将在模块库中搜索名称或说明中包含 pulse
的模块,然后显示这些模块。
获取模块的详细信息。右键点击某个模块,然后选择
模块通常有几个参数。您可以通过双击该模块来访问所有参数。
将模块添加到模型
要开始构建模型,请浏览库并添加模块。
-
从 Sources 库中,将 Pulse Generator 模块拖到 Simulink Editor 中。您的模型中将出现 Pulse Generator 模块的副本,还有一个文本框用于输入 Amplitude 参数的值。输入
1
。参数值在整个仿真过程中保持不变。
-
使用相同的方法将以下模块添加到模型中。
模块 库 参数 Gain
Simulink/Math Operations
Gain:
2
Integrator, Second Order
Simulink/Continuous
Initial condition:
0
Outport
Simulink/Sinks
Port number:1
通过右键点击并拖动一个现有 Outport 模块,添加第二个 Outport 模块。
现在您的模型应该具有所需的全部模块了。
-
通过点击并拖动每个模块来按如下方式排列模块。要调整模块大小,请点击并拖动一个角。
连接模块
通过在输出端口和输入端口之间创建线条来连接模块。
-
点击 Pulse Generator 模块右侧的输出端口。
该输出端口和所有可供连接的输入端口都将突出显示。
-
点击 Gain 模块的输入端口。
Simulink 用线条连接模块,并用箭头表示信号流的方向。
-
将 Gain block 的输出端口连接到 Integrator, Second Order 模块的输入端口。
-
将 Integrator, Second Order 模块的两个输出连接到两个 Outport 模块。
-
保存模型。选择
您的模型搭建完成。
添加信号查看器
要查看结果,请将第一个输出连接到一个 Signal Viewer。
通过右键点击信号来访问上下文菜单。选择
您可以随时通过双击该图标打开查看器。
运行仿真
定义配置参数后,即可进行模型仿真。
-
在模型窗口上,通过更改工具栏上的值来设置仿真停止时间。
默认停止时间
10.0
适合此模型。此时间值没有单位。Simulink 中的时间单位取决于方程的构造方式。此示例对简化的汽车运动进行为时 10 秒的仿真。 -
要运行仿真,请点击
仿真运行并在查看器上生成输出。
关注公众号: MATLAB基于模型的设计 (ID:xaxymaker) ,每天推送MATLAB学习最常见的问题,每天进步一点点,业精于勤荒于嬉。
打开微信扫一扫哦!