主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

slreportgen.finder.SignalFinder 类

命名空间: slreportgen.finder
超类: mlreportgen.finder.Finder

查找模型或模块使用的信号

自 R2021a 起

描述

使用 slreportgen.finder.SignalFinder 类的对象来查找模型或模块使用的信号。

信号是动态系统的输出,由 Simulink® 图中模块和图本身表示。为了找到系统内的独特信号,信号查找器会搜索模块输出端口。当搜索一个模块或子系统时,结果表示该模块或子系统的输出端口,以及输出信号输入到该模块或子系统的块的输出端口。当搜索模型时,结果表示模型 Inport 块的输出端口以及连接到模型 Outport 块的模块输出端口。

slreportgen.finder.SignalFinder 类是 handle 类。

类属性

HandleCompatible
true

有关类属性的信息,请参阅类属性

创建对象

描述

finder = slreportgen.finder.SignalFinder(container) 创建一个 SignalFinder 对象,并将 Container属性设置为 container 指定的模型或模块。使用 SignalFinder 属性来:

  • 将搜索限制在找到的信号类型内,例如输入、输出或内部信号。

  • 指定在模型中搜索的级别数。

使用 SignalFinder 方法执行搜索。

注意

此查找器提供了以下选项来获取搜索结果:

  • 要将搜索结果作为数组返回,请使用 find 方法。将结果直接添加到报告中或在 for 循环中处理结果。

  • 要逐个迭代结果,请在 while 循环中使用 hasNextnext 方法。

这两个选项在性能上都没有优势。

示例

finder = slreportgen.finder.SignalFinder(Name=Value) 使用名称-值参量设置 SignalFinder 对象属性。您可以按任意顺序指定多个名称-值参量。

属性

全部展开

用于搜索信号的模型或模块,指定为以下值之一:

  • 包含模型或模块名称的字符向量或字符串标量

是否查找用作容器模型或模块的输入数据的信号,指定为 truefalse。如果 Container 是一个模型,则输入信号结果代表模型顶层中任何 Inport 模块的输出端口。如果 Container 是一个模块,则输入信号结果表示输入到容器模块输入端口的块的输出端口。

是否查找容器模型或模块的信号,指定为 truefalse。如果 Container 是一个模型,则输出信号结果代表输入到模型顶层的 Outport 模块的模块的输出端口。如果 Container 是一个模块,则输出信号结果代表该模块的输出端口。

是否查找模块控制信号,指定为 truefalse。此属性仅当 Container 是具有控制端口的模块(例如 SubsystemModel 模块)时才适用。控制信号控制模块的执行。控制信号结果表示馈入模块控制端口的块的输出端口,例如启用、触发或重置端口。如果 Container 是一个模型,则任何控制模型中模块执行的信号都会被报告为内部信号。

是否查找内部信号,指定为 truefalse。内部信号不用作模型或子系统的输入、输出或控制信号。此属性仅当 Container 是模型或子系统时才适用。内部信号结果代表系统中所有模块的输出端口,除了 Inport 模块的输出端口和馈入 Outport 模块的输出端口。

是否查找虚拟模块输出的信号,指定为 truefalse

如果此属性为 true,信号结果可以表示虚拟模块的端口,例如虚拟 Subsystem 模块。

如果此属性为 false,则信号结果仅表示非虚拟模块的输出端口。输入和控制信号被跟踪到输出信号的非虚拟模块。如果 Container 属性指定的模型或模块是虚拟的,则模型或模块的输出端口将被跟踪到它们的非虚拟源。

是否查找没有名称的信号,指定为 true false

在模型或子系统中搜索内部信号的级别数,指定为以下值之一:

  • 1 - 仅搜索第一级(顶层)。

  • 0 - 仅搜索与模型或模块的端口相关的信号。

  • 大于一的整数 n - 搜索指定的级别数。结果按从一级(顶部)到 n 级的顺序排序。

  • Inf - 搜索所有级别。

请参阅 IncludeInternalSignals

查找器结果的排序方法,指定为下列值之一:

描述
"depth"按在模型层次结构中的深度对结果进行排序。排序列表中的第一个结果属于层次结构中最高的对象。例如,一个模型及其子系统按以下顺序排序: myModelmyModel/subsystem1myModel/subsystem1/nestedSubststem
"alphabetical"按名称的字母顺序对结果进行排序。
"systemAlpha"按父系统名称的字母顺序对结果进行排序。

要查找的输出端口的属性,指定为名称-值参量的元胞数组。查找器仅返回具有指定属性和指定值的输出端口。

示例: {"CompiledPortDataType","int8"}

属性:

GetAccess
公共
SetAccess
公共

数据类型: cell

方法

全部展开

示例

全部折叠

使用 slreportgen.finder.SignalFinder 对象创建包含有关模型中信号的信息的报告。设置查找器属性,以便排除没有名称的信号并包含内部信号。

导入 MATLAB 报告 API 和 Simulink 查找器 API 命名空间,这样您就不必使用长而完全限定的类名。

import mlreportgen.report.*
import slreportgen.finder.*

创建 Simulink 报告。

rpt = slreportgen.report.Report("MyReport","pdf");

为信号信息创建一个章节。

chapter = Chapter();
chapter.Title = "Named Signals";

加载 vdp 模型。

model_name = "vdp";
load_system(model_name);

创建信号查找器并设置属性以排除没有名称的信号并包括内部信号。

finder = SignalFinder(model_name);
finder.IncludeUnnamedSignals = false;
finder.IncludeInternalSignals = true;

找到信号并将结果添加到章节中。

results = find(finder);
append(chapter,results);

将章节添加到报告中。

append(rpt,chapter);

关闭并查看报告。

close(rpt);
rptview(rpt);

版本历史记录

在 R2021a 中推出