显示端口值以进行简单调试
对于信号携带数据的许多模块,Simulink® 可在仿真过程中和仿真之后在模块图上以端口值标签(类似于工具提示)的形式显示信号值(模块输出)。当 Simulink 运行模块输出方法时,端口值标签将显示模块输出值。此模型显示 Constant 和 Math 模块上端口的端口值标签,输出值为 1 和 4.04。
如果端口值标签显示为空,则表示当前端口值不可用。例如,在仿真过程中暂停仿真时,启用连续模块上端口值标签的显示并不会在标签上显示任何值。
如果尚未进行模型仿真,端口值标签也会显示为空。因为不进行模型仿真,模块输出方法就不会运行。
当您进行仿真时,如果您将鼠标指针悬停在 Simulink 在仿真过程中优化的模块(如虚拟子系统模块)上或者启用标签显示,模型将显示文本 optimized。
在对模型进行交互式调试的过程中,显示端口值数据提示很有用。例如,下图显示了一个房屋的热模型输出。
这些结果表明该模型存在问题,因为:
所有温度下的供热成本都为 0。
室内温度与环境温度几乎完全相同。
在这种情况下,以交互方式对模型中的模块进行调试有助于找出错误。端口值标签提供模型中每个模块的输出信息。因此,在此示例中,如果您使用仿真步进器向前步进,您可以看到 Heater 子系统在每个时间步的输出均为 0。
要了解详细信息,您可以为 Heater 子系统内的模块启用端口值标签。使用仿真步进器,如果您再次向前步进以显示值,您会看到 HeatGain 模块有问题。输出一直保持为 0。
这种方法可以帮助您找出问题。
为了简化调试,您可以在仿真过程中打开和关闭端口值标签。除了为调试提供有用信息外,显示端口值还可以帮助您在仿真过程中监视信号值。但是,这些标签不会保存到模型中。
对于非数值数据显示,Simulink 使用以下值:
消息说明action信号执行的是执行子系统。
fcn-call信号是一个函数调用信号,例如,Function Call Generator 的输出。
ground信号来自 Ground 模块。
not a data signal信号不包含有效数据,例如,信号来自被注释掉的模块。
在某些情况下:
端口值显示可能无法获取值信号,或者
信号值无法简单地显示
在这种情况下,Simulink 将使用以下值:
消息说明...信号维度超过 Simulink 可以显示的最大元素数。有关详细信息,请参阅 显示模型的端口值。
(无信息)没有足够的可用仿真数据。向前步进或按 play 以获取更多数据。
click to add signals您已经在总线上启用端口值标签,但未选择要显示的信号。点击标签以选择总线信号。
inaccessibleSimulink 无法获取端口值。有关示例,请参阅信号存储区重用。
[m*n]这是一个非向量信号。Simulink 无法显示矩阵的实际值,而是显示矩阵维度。
no data yet以下情况下将显示此消息:
仿真数据不可用。开始仿真以查看值。
如果模型中包含子系统(例如,使能子系统)和模型引用,而它们在仿真过程中不执行。
not used由于优化,Simulink 无法获取信号值。
removed由于模块减少,Simulink 无法获取信号值。
optimized由于优化,Simulink 无法获取信号值。在 Normal 模式下,启用了 Conditional input branch execution 的模块会显示此消息。有关详细信息,请参阅条件执行子系统概述。
unavailable没有足够的可用仿真数据。例如,请参阅仿真步进器。
注意
您可以通过将信号指定为测试点,强制值标签显示信号值。可以使用 Properties 对话框执行此操作。