将信号配置为测试点
什么是测试点?
测试点是指在模型中使用 Floating Scope 模块时,Simulink® 保证能够观测到的一种信号。Simulink 允许您将模型中的任何信号指定为测试点。
指定为测试点的信号会在模型优化时被排除,这种模型优化包括信号存储重用(请参阅信号存储重用 (Simulink Coder))和模块简化(请参阅Implement logic signals as Boolean data (vs. double))。这些优化会使信号呈现为不能访问,因此在仿真期间无法观测到这些信号。
指定为测试点的信号不会使代数环最小化,即使尽量减少出现代数环处于选中状态也是如此(有关代数环的详细信息,请参阅代数环概念)。
测试点的主要应用场合是使用 Simulink Coder™ 基于模型生成代码时。有关在代码生成上下文中使用测试点的详细信息,请参阅生成的代码中测试点的外观 (Simulink Coder)。
将信号标记为测试点对使用 Dataset
记录格式的信号记录不产生任何影响。有关信号记录的信息,请参阅使用信号记录保存信号数据。
使用以下方法之一将信号指定为测试点:
打开信号的信号属性对话框并选中记录和可访问性部分中的测试点。
使用模型数据编辑器进行批量配置,还可以配置大型模型或子系统层次结构中难以定位的信号。在信号选项卡上,将更改视图下拉列表设置为仪器,并使用测试点列。有关详细信息,请参阅模型数据编辑器。
要将 Stateflow® 图中的数据配置为测试点,请参阅Monitor Test Points in Stateflow Charts (Stateflow)。
要以编程方式将信号配置为测试点,请执行以下操作:
获取模块端口的句柄。
portHandles = get_param('myModel/myBlock','portHandles');
portHandles
是一个结构体。每个字段存储一个模块端口的句柄。提取创建目标信号线的输出端口的句柄。
outportHandle = portHandles.Outport;
将端口参数
TestPoint
设置为'on'
。set_param(outportHandle,'TestPoint','on')
显示测试点指示符
默认情况下,Simulink 在启用了信号属性 > 测试点选项的每个信号上显示一个指示符。例如,在以下模型中信号 s2
和 s3
是测试点:
注意
Simulink 不会在通过 Simulink.Signal
对象指定为测试点的信号上显示指示符,因为这样的指定对于图形化模型来说是外部指定。
还可以对作为测试点的信号进行日志记录。有关信号记录的信息,请参阅使用信号记录保存信号数据。指示符的外观会发生变化以指示还为其启用了日志记录的信号。
要打开或关闭测试点指示符的显示,请在 Simulink 编辑器中,在调试选项卡上,选择叠加信息 > 记录和测试点以启用或禁用该选项。