探索模型层次结构
Simulink® 模型可以组织成具有层次结构的组件。在分层模型中,您可以选择查看整体系统,或沿模型层次结构向下导航以逐级深入模型细节。
查看模型层次结构
要开始,请打开 smart_braking
模型。
在模型中:
当踩下油门踏板时,汽车移动。
接近传感器将测量车辆和障碍物之间的距离。
警报系统基于该接近度生成警报。
警报系统自动控制刹车以防止碰撞。
当您构建模型时,您可以将模块连接起来,以对表示系统动态的复杂组件进行建模。在此模型中,Vehicle、Proximity sensor 和 Alert system 都是包含多个模块的复杂组件,它们都存在于一个子系统层次结构中。要查看子系统的内容,请双击该子系统。
要查看完整模型层次结构的表示,请打开模型浏览器。
垂直展开模型窗口,直到在 Simulink 编辑器的左下角可以看到“隐藏/显示模型浏览器”按钮。
点击“隐藏/显示模型浏览器”按钮。
模型浏览器显示,您在顶层查看的所有子系统都有自己的子系统。展开每个子系统节点以查看它包含的子系统。您可以在模型浏览器中导航层次结构。例如,展开 Proximity sensor 节点,然后选择 Sensor model 子系统。
地址栏会显示您正在查看哪个子系统。要在单独的窗口中打开子系统,请右键点击该子系统,然后选择在新窗口中打开。
子系统上的每个输入端口或输出端口在子系统内都有对应的 Inport 或 Outport 模块。这些模块表示子系统与父系统之间的数据传输。当一个系统包含多个输入或输出端口时,Inport 或 Outport 模块上的数字表示该端口在子系统接口上的位置。
查看信号属性
Simulink 中的信号线表示从模块到模块的数据传输。信号具有与其在模型中的函数对应的属性:
维度 - 标量、向量或矩阵
数据类型 - 字符串、双精度、无符号整数等
采样时间 - 信号产生更新值的固定时间间隔(对于连续采样,则为
0
)
要显示一个模型中所有信号的数据类型,请在调试选项卡的叠加信息下,点击基本数据类型。
模型将在信号线旁显示数据类型。大多数信号均为双精度,只有名为 Alert system
的子系统的输出例外。双击子系统进行调查。
此子系统中的数据类型标签显示,数据类型在名为 Alert device
的子系统中发生改变。双击子系统进行调查。
Alert device 组件将信号 Alert index
从双精度转换为整数。您可以在源头设置数据类型,也可以使用 Signal Attributes 库中的 Data Type Conversion 模块。双精度(默认数据类型)提供最佳数值精度,是所有模块都支持的数据类型。双精度数据类型占用的内存和计算能力也最多。要对内存和计算能力有限的嵌入式系统建模,可使用其他数值数据类型。
要显示采样时间,请在调试选项卡的叠加信息下,点击“采样时间”部分的颜色。模型会更新以将模型中的各个采样时间显示为不同颜色,并显示图例。
具有连续动态的模块或信号显示为黑色。具有连续采样时间的信号会根据求解器的要求频繁更新以满足指定的容差值。
保持不变的模块或信号显示为品红色。它们在仿真过程中保持不变。
以最低固定时间间隔更新的离散模块或信号显示为红色。具有离散采样时间的信号会以固定间隔更新。如果模型中包含具有不同固定采样时间的组件,则每个离散采样时间显示为不同的颜色。
同时包含离散和连续信号的多速率子系统显示为黄色。
跟踪信号
此模型有常量输入和离散输出。要确定采样方案从哪里发生改变,可以通过其信源模块跟踪各个模块的输出信号。
要打开模型浏览器,请垂直展开模型窗口,直到“隐藏/显示模型浏览器”按钮
出现在 Simulink 编辑器的左下角。然后,点击“隐藏/显示模型浏览器”按钮。
要开始跟踪输出信号的源,请选择该信号。然后,在信号选项卡中,点击跟踪到源
。
Simulink 编辑器进入信号跟踪模式。在信号跟踪模式下,模型画布变为灰色而不是白色,以帮助突出跟踪的路径。
提示面板显示在信号跟踪模式下可以采取的操作的提示,以及对应于每项操作的键盘快捷方式。要最小化该提示面板,请按键盘上的 ? 键。如果您要还原该提示面板,请按再次键盘上的 ?。
要继续跟踪输出信号的源,请按向左箭头键。
持续按向左箭头键以跟踪输出信号的源,直到到达名为
Alert logic
的子系统内的 Subtract 模块。当您到达信号路径中的 Subtract 模块时,您必须选择一条路径来继续跟踪,因为 Subtract 模块有两个输入端口。软件以蓝色突出显示下一个要跟踪的段,以指示所选路径。默认情况下,选择第一个输入端口进行持续跟踪。通过按向下箭头键选择负输入端口的路径。要找到离散化的源,请继续按向左箭头并注意每个端口名称的颜色,它反映端口的采样时间。
Sensor model 子系统中的 Zero-Order Hold 模块将信号从连续转换为离散。