Main Content

signalbuilder

(不推荐)创建和访问 Signal Builder 模块

不推荐使用 signalbuilder 函数。请改用 Signal Editor。有关为什么应迁移模型的详细信息,请参阅Migrate from Signal Builder Block to Signal Editor Block

说明

[time,data] = signalbuilder(block) 返回 Signal Builder 模块 block 的时间和数据。

示例

[time,data,signames] = signalbuilder(block) 返回信号名称 signames 以及时间和数据。

[time,data,signames,groupnames] = signalbuilder(block) 返回信号名称 signames、组名称 groupnames 以及时间和数据。

block = signalbuilder(path,'create',time,data)path 上新建一个包含指定时间和数据的 Signal Builder 模块。信号名称和组名称是默认值。

示例

block = signalbuilder(path,'create',time,data,signames,groupnames)path 上新建一个包含指定时间和数据、信号名称和组名称的 Signal Builder 模块。

示例

block = signalbuilder(path,'create',time,data,signames,groupnames,vis) 创建新的 Signal Builder 模块,并根据矩阵 vis 的值设置每个组中的可见信号。

block = signalbuilder(path,'create',time,data,signames,groupnames,vis,pos) 创建一个新的 Signal Builder 模块,并将模块位置设置为 pos

如果您创建的信号小于显示范围或者不是从 0 开始,Signal Builder 模块将会外插未定义的信号数据。它通过保持最终值来完成此操作。

block = signalbuilder(path,'create',time,data,signames,groupnames,vis,pos,{openui openmodel}) 创建一个新的 Signal Builder 模块,并打开或隐形加载模型和 Signal Builder 模块窗口。

blk = signalbuilder(blk,'appendgroup',time,data,signames,groupnames) 将包含 signames 的新组 (groupnames) 追加到 Signal Builder 模块 blocktimedata 参量必须与现有模块具有相同的信号数量。

示例

signalbuilder(block,'appendgroup',ds) 追加一个数据集。

signalbuilder(block,'appendgroup',[ds1 ...dsN]) 追加 N 个数据集。

signalbuilder(block,'appendsignal',time,data,signames)Signal Builder 模块 block 中的所有信号组追加新信号。您可以向所有组中追加相同的信号,也可以向不同的组中追加不同的信号。不管追加什么信号,向所有组中追加的信号数量必须相同。可以向模块中的所有组中追加信号,但不能只向其中一部分组中追加信号。相应地,可以为一个组提供 timedata 参量(向所有组中追加相同的信息),或者为不同的组提供不同的 timedata 参量。

示例

signalbuilder(block,'showsignal',signal,group) 使对 Signal Builder 模块隐藏的 signals 可见。默认情况下,当前活动组中的信号在创建时可见。

signalbuilder(block,'hidesignal',signal, group) 使信号 signalSignal Builder 模块隐藏。默认情况下,所有信号在创建时都是可见的。

示例

[time,data] = signalbuilder(block,'get',signal,group) 获取指定信号和组的时间和数据值。

ds = signalbuilder(block,'get',group) 为一个请求的 Signal Builder 组获取一个或多个数据集。rN 个请求的 Signal Builder 组获取 N 个数据集。

[ds, …dsN] = signalbuilder(block,'get',group)N 个请求的 Signal Builder 组获取 N 个数据集。

signalbuilder(block,'set',signal,group,time,data) 为指定的信号和组设置时间和数据值。使用 timedata 的空值可以删除组和信号。要删除一个信号组,还必须在同一个命令中删除该组中的所有信号。

示例

signalbuilder(block,'set',group,ds) 为请求的 Signal Builder 组设置一个数据集。指定空数据集将删除在 group 中指定的组。

示例

signalbuilder(block,'set',group,[ds1 ...dsN])N 个请求的组设置 N 个数据集。

index = signalbuilder(block,'activegroup') 获取活动组的索引。

[index, activeGroupLabel] = signalbuilder(block,'activegroup') 获取活动组的标签值。

signalbuilder(block,'activegroup',index) 将活动组设置为索引活动组。

signalbuilder(block,'annotategroup') 控制 Signal Builder 模块的封装上当前组名称的显示。'annotategroup' 采用以下值之一:

  • 'on' - 显示当前组名称

  • 'off' - 隐藏当前组名称

signalbuilder(block,'print',config,printArgs) 打印当前活动信号组或由 config 指定的信号组。使用 config 自定义信号组的打印外观。

figh = signalbuilder(block,'print',config,'figure') 打印当前活动信号组或由 config 指定给新隐藏的图窗句柄 figh 的信号组。

示例

全部折叠

在新模型编辑器窗口中创建 Signal Builder 模块。

block = signalbuilder([], 'create', [0 5], {[2 2];[0 2]});

从此模块中获取 Signal Builder 数据。

[time, data, signames, groupnames] = signalbuilder(block)
time =

  2×1 cell array

    {1×2 double}
    {1×2 double}

data =

  2×1 cell array

    {1×2 double}
    {1×2 double}

signames =

  1×2 cell array

    {'Signal 1'}    {'Signal 2'}

groupnames =

  1×1 cell array

    {'Group 1'}

Signal Builder 模块在一个组中包含两个信号。更改组中的第二个信号。

signalbuilder(block, 'set', 2, 1, [0 5], [2 0]);

要使用信号名称和组名称进行同样的更改:

signalbuilder(block, 'set', 'Signal 2', 'Group 1', [0 5], [2 0])

创建包含两个信号组的 Signal Builder 模块,并删除其中一个信号组。

block = signalbuilder([], 'create', [0 2], {[0 1],[1 0]});

Signal Builder 模块有两个组,每个组包含一个信号。

要删除第二个组,还要删除其中的信号。

signalbuilder(block, 'set', 1, 2, [], [])

创建一个包含两个组的 Signal Builder 模块,每个组包含三个信号。

block = signalbuilder([], 'create', [0 1], ...
         {[0 0],[1 1];[1 0],[0 1];[1 1],[0 0]});

在新模型编辑器窗口中创建 Signal Builder 模块。

block = signalbuilder([],'create',{[0 10],[0 20]},{[6 -6],...
[2 5]});

Signal Builder 模块有两个组。每个组包含一个信号。

向现有模块中追加一个新信号组。

block = signalbuilder(block,'appendgroup',[0 30],[10 -10]);

向所有组中追加一个新信号 sig3

signalbuilder(block,'appendsignal',[0 30],[0 10],'sig3');

在新模型编辑器窗口中创建 Signal Builder 模块。

time = [0 1];
data = {[0 0],[1 1];[1 0],[0 1];[1 1],[0 0]};
block = signalbuilder([], 'create', time, data);

Signal Builder 模块有两个组。每个组包含三个信号。

删除第二个组。要删除信号组,还要删除组中的所有信号。

signalbuilder(block, 'set',[1,2,3],'Group 2',[]);

在新模型编辑器窗口中创建 Signal Builder 模块并隐藏信号。

block = signalbuilder([], 'create', [0 5], {[2 2];[0 2]});

Signal Builder 模块有一个包含两个信号的组。

隐藏信号 Signal 1

signalbuilder(block,'hidesignal','Signal 1', 'Group 1')

Signal 1Signal Builder 模块中不再可见。

使 Signal 1 再次可见。

signalbuilder(block,'showsignal','Signal 1', 'Group 1')

在新的模型编辑器窗口中创建两个 Signal Builder 模块。

block = signalbuilder([], 'create', [0 5], {[2 2];[0 2]});
block1 = signalbuilder('untitled/Signal Builder1', 'create', [1 2], {[1 2];[0 10]});

block 的组 1 获取一个数据集。

ds=signalbuilder(block,'get',1);

block1 的组 1 获取一个数据集。

ds1=signalbuilder(block1,'get',1);

block 的组 1 的数据集设置为 ds1

signalbuilder(block,'set',1,ds1);

block 的组 1 的原始数据集 (ds) 追加到 block

signalbuilder(block,'appendgroup',ds);

要在 block 中创建第三个组,请将 ds1 追加到 block 中组的末尾。

signalbuilder(block,'appendgroup',ds1);

输入参数

全部折叠

Signal Builder 模块句柄或名称。如果为此参量指定 [],则该模块的路径为 'untitled/Signal Builder'

示例: 'untitled/Signal Builder'

示例: block_handle = gcbh

数据类型: char | string

根据模块配置指定 time 格式。

如果 data 是元胞数组,time 是向量,则对于 data 的每个元素,time 值会重复。timedata 中的每个向量必须具有相同的长度,并且至少有两个元素。如果 time 是元胞数组,则一列中的所有元素必须具有相同的初始值和最终值。

配置

时间格式

1 个信号,1 个组

断点的行向量。

> 1 个信号,1 个组

列元胞向量,其中每个元素对应于一个单独的信号,且包含点的行向量。

1 个信号,> 1 个组

行元胞向量,其中每个元素对应于一个单独的组,且包含点的行向量。

> 1 个信号,> 1 个组

元胞矩阵,其中每个元素 (i, j) 对应于信号 i 和组 j。

依存关系

如果对现有模块调用 signalbuilder,则 time 参量的信号数量必须与现有模块的信号数量相同。

数据类型: double

根据模块配置指定 data 格式。

如果 data 是元胞数组,time 是向量,则对于 data 的每个元素,time 值会重复。timedata 中的每个向量必须具有相同的长度,并且至少有两个元素。如果 time 是元胞数组,则一列中的所有元素必须具有相同的初始值和最终值。

配置

时间/数据格式

1 个信号,1 个组

断点的行向量。

> 1 个信号,1 个组

列元胞向量,其中每个元素对应于一个单独的信号,且包含点的行向量。

1 个信号,> 1 个组

行元胞向量,其中每个元素对应于一个单独的组,且包含点的行向量。

> 1 个信号,> 1 个组

元胞矩阵,其中每个元素 (i, j) 对应于信号 i 和组 j。

数据类型: double

包含在模块封装上显示信号组信息的指令的配置结构体。在打印之前,请通过上述一个或多个字段设置该结构体。

字段描述示例值
groupIndex

标量,指定要打印的信号组的索引

2
timeRange

二元素向量,指定要打印的时间范围(不得超过模块的时间范围)

[3 6]
visibleSignals

向量,指定要打印的信号的索引

[1 2]
yLimits

元胞数组,指定每个信号的 y 轴的范围

{[-1 1],
[0 1]}

extent

以下形式的二元素向量:

[width, height]

指定要打印信号的区域的大小(以像素为单位)

[500 300]
showTitle

逻辑值,指定是否打印标题;true (1) 表示打印标题

false

例如,要使用配置结构体 configstruct 打印第 2 组,请按如下所示设置该结构体。不需要指定任何其他字段。

configstruct.groupIndex=1

示例: configstruct

数据类型: char | string

创建新 Signal Builder 模块。

数据类型: char | string

信号名称,指定为 ' '{}、字符向量或字符向量元胞数组。

如果您指定值 ' '{},此函数将对新组使用现有信号名称。

数据类型: char | string

组名称,指定为字符向量或字符向量元胞数组。

数据类型: char | string

模块路径,指定为完整模块路径。要使用名称 Signal Builder 在新模型 untitled 中创建一个 Signal Builder 模块,请指定 []

数据类型: char | string

信号可见性,指定为矩阵。Signal Builder 模块根据矩阵 vis 的值显示每个组中的信号。此矩阵必须与元胞数组 data 具有相同的大小。创建的 Signal Builder 模块中不能所有信号都不可见。例如,如果您将所有信号的 vis 参数都设置为 0,第一个信号仍然可见。

数据类型: double

模型中的模块位置,指定为 [x y right bottom]。

数据类型: double

在使用 signalbuilder 函数创建 Signal Builder 模块后打开 Signal Builder 模块对话框,指定为 01

数据类型: double

在使用 signalbuilder 函数创建模型后打开模型,指定为以下项之一:

  • 0 - 加载模型,但不打开它。

  • 1 - 打开模型。

数据类型: double

将新信号追加到 Signal Builder 模块中的所有信号组。您可以向所有组中追加相同的信号,也可以向不同的组中追加不同的信号。不管追加什么信号,向所有组中追加的信号数量必须相同。将信号追加到模块中的所有组。您不能将信号追加到组的子集。

数据类型: char | string

添加新信号组,其时间和信号元素的数量与 Signal Builder 模块中的现有信号组的元素数量相同。

对于 showsignalhidesignal 方法,如果您不指定 group 参量的值,signalbuilder 会将操作应用于所有信号和组。

数据类型: char

基于输入参量设置值。

  • timedata - 返回时间和数据值。

  • ds - 返回 Simulink.SimulationData.Dataset 对象。

数据类型: char

基于输出参量获取值。

  • [time, data] - 返回时间和数据值。

  • [ds, ...dsN] - 返回 Simulink.SimulationData.Dataset 对象。

数据类型: char | string

使信号组中的一个或多个信号可见。如果没有指定组,则所有信号和组均可见。

数据类型: char | string

隐藏信号组中的一个或多个信号。如果没有指定组,则所有信号和组都将隐藏。

数据类型: char

时间序列元素数据集,指定为 Simulink.SimulationData.Dataset 对象。

数据类型: double

一个或多个由时间序列元素组成的数据集,指定为 Simulink.SimulationData.Dataset 对象。

示例: [ds1 ds2 ds3]

数据类型: double

信号,指定为信号名称、标量索引或信号索引数组。

数据类型: char | double | string

信号组,指定为组名称、标量索引或组索引数组。

数据类型: char | double | string

活动信号组索引。

数据类型: double

获取当前活动信号组。

数据类型: char | string

Signal Builder 模块封装上显示活动信号组名称:

  • 'on' - 在模块封装上显示活动信号组名称。

  • 'off' - 不在模块封装上显示活动信号组名称。

数据类型: char | string

打印信号组。

数据类型: char | string

配置打印选项(请参阅 print)。

要打印 Signal Builder 模块的全部内容,请指定 []

数据类型: char | string

创建一个包含 Signal Builder 模块内容的图窗。

数据类型: char | double | string

输出参量

全部折叠

Signal Builder 模块的时间,以行向量、列元胞向量、行元胞向量或元胞矩阵形式返回。对于 Signal Builder 模块,时间是 x 坐标。

time 以不同格式返回,具体取决于模块配置。

配置

时间格式

1 个信号,1 个组

断点的行向量。

> 1 个信号,1 个组

列元胞向量,其中每个元素对应于一个单独的信号,且包含点的行向量。

1 个信号,> 1 个组

行元胞向量,其中每个元素对应于一个单独的组,且包含点的行向量。

> 1 个信号,> 1 个组

元胞矩阵,其中每个元素 (i, j) 对应于信号 i 和组 j。

Signal Builder 模块的数据,以一维数组形式返回。对于 Signal Builder 模块,时间是 y 坐标。

data 采用不同格式,具体取决于模块配置。

配置

数据格式

1 个信号,1 个组

断点的行向量。

> 1 个信号,1 个组

列元胞向量,其中每个元素对应于一个单独的信号,且包含点的行向量。

1 个信号,> 1 个组

行元胞向量,其中每个元素对应于一个单独的组,且包含点的行向量。

> 1 个信号,> 1 个组

元胞矩阵,其中每个元素 (i, j) 对应于信号 i 和组 j。

数据集中元素的数量必须与信号组中的信号数量相同。setappendappendgroup 函数的数据集格式限制包括:

  • 元素必须是 MATLAB® 时间序列数据。

    时间序列数据和/或时间不能为空。

  • 时间序列数据必须为双精度类型。

  • 时间序列数据必须为一维(每个时间对应一个标量值)。

信号名称,以字符向量或字符向量元胞数组形式返回。

Signal Builder 模块路径或句柄,由模块创建或追加命令返回。

时间序列元素数据集,以 Simulink.SimulationData.Dataset 对象形式返回。

一个或多个由时间序列元素组成的数据集,以 Simulink.SimulationData.Dataset 对象形式返回。

活动信号组索引。

活动组标签,以索引形式返回。

图窗句柄,当 Signal Builder 模块的内容打印到隐藏的图窗时返回。

详细信息

全部折叠

插入缺少的数据值

指定周期信号(如正弦波)时,signalbuilder 函数使用线性拉格朗日插值法计算在由 signalbuilder 函数提供数据的时间步之间发生的时间步的数据值。指定周期信号时,请以时间向量(定义为采样时间的倍数)形式指定信号,例如:

t = 0.2*[0:49]';

版本历史记录

在 R2007a 中推出

全部折叠

R2019a: 不推荐使用 signalbuilder 函数

不推荐使用 signalbuilder 函数。改用 signalEditor 函数。