本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

导航模型

Simulink® 模型采用层次结构,所以您可以按照自上而下和自下而上的方式构建模型。您可以先查看整体系统,然后逐级向下深入查看模型的细节。这样可以了解模型的组织方式以及各部件的交互方式。

要开始导航,请打开 smart_braking 模型。在 MATLAB® 命令行窗口中,输入

open_system(fullfile(matlabroot,...
'help', 'toolbox', 'simulink', 'examples', 'smart_braking'))

此模型包含以下组件和数据流:

  • 当踩下油门踏板时,汽车移动。

  • 接近传感器测量它与障碍物之间的距离。

  • 警报系统基于该接近度生成警报。

  • 警报系统自动控制刹车以免撞到障碍物。

导航模型层次结构

您可以将模块连接起来,以对复杂组件进行建模。在此模型中,Vehicle、Proximity sensor 和 Alert system 都是包含多个模块的复杂组件,并且都存在于一个子系统层次结构中。要查看其内容,请双击任意一个子系统:

要查看完整的树,请点击模型窗口左下角的 Hide/Show Model Browser 按钮

Model Browser 显示,您在顶层查看的所有子系统也都有自己的子系统。点击 > 图标以查看子系统。您可以在 Model Browser 中导航层次结构。例如,点击 Sensor model 子系统:

注意该子系统在 Model Browser 中突出显示。地址栏也会显示您正在查看哪个子系统。要在单独的窗口中打开子系统,请右键点击子系统名称,然后选择 Open In New Window

子系统上的每个输入端口或输出端口在子系统内都有对应的 Inport 模块或 Outport 模块。这些模块表示子系统与父系统之间的数据传输。如果有多个输入端口或输出端口,模块上的数字会指出它连接的是子系统上的哪个端口。

查看信号属性

Simulink 中的信号线表示从模块到模块的数据传输。这些信号具有对模型功能至关重要的属性:

  • 大小:标量、向量或矩阵

  • 数据类型:字符串、双精度、无符号整数等

  • 采样时间:信号产生更新值的固定时间间隔,或者连续采样

要显示模型上所有信号的数据类型,请选择 Display > Signals & Ports > Port Data Types

模型将同时显示数据类型和信号类型。可以看到,大多数信号均为双精度,只有 Alert 子系统的输出例外。双击此子系统以调查原因:

此子系统中的标签显示,数据类型在 Alert device 子系统中发生改变,双击此子系统进行调查:

上图显示 Alert device 组件将警报索引信号从双精度转换为整数。您可以在源头设置数据类型,也可以使用 Signal Attributes 库中的 Data Type Conversion 模块。双精度数据类型(默认值)提供最佳数值精度,是所有模块都支持的数据类型。它使用的内存和计算能力也是最多的。其他数值数据类型用于对内存和计算能力有限的典型嵌入式系统进行建模。

要显示采样时间,请选择 Display > Sample Time > Colors。这样将更新模型,用不同的颜色显示不同的采样时间,还会显示图例:

  • 具有连续动态的模块或信号显示为黑色。它们根据 Simulink 的需要进行更新,以使计算尽可能接近真实情况。

  • 保持不变的模块或信号显示为品红色。它们在仿真过程中保持不变。

  • 以最低固定时间间隔更新的离散模块或信号显示为红色:它们只按照固定的时间间隔进行更新。如果模型中包含具有不同固定采样时间的组件,则每个采样时间显示为不同的颜色。

  • 包含连续和离散组件的子系统显示为黄色:它们是混合系统。

跟踪信号

此模型有一个常量信源和一个离散输出。要确定采样方案从哪里发生改变,可以跟踪各个模块的输出信号:

  1. 打开 Model Browser:点击 Hide/Show Model Browser 按钮

  2. 突出显示输出信号的信源:右键点击信号,然后选择 Highlight Signal to Source

    这将使编辑器进入突出显示模式。点击编辑器以继续。确保编辑器周围有一个蓝框。

  3. 要继续跟踪信号以追溯其信源,请按向左箭头键。

  4. 继续跟踪信号以追溯其信源,直到到达 Alert logic 子系统。您会看到 Subtract 模块有两个输入。按向下箭头键,从 Inport 上选择信号路径。

  5. 要查找离散信源,请一直按左箭头,并留意反映采样时间的端口名称的颜色。

您会发现是 Sensor model 子系统中的 Zero-Order Hold 模块从连续转变为离散。