信号组
信号生成器块显示并允许你创建或编辑可互换的信号源组,并快速将组切换到模型中或从模型中切换出来。
信号组可以极大地促进模型测试,特别是当你将其与Simulink®断言块和Simulink Coverage的模型覆盖工具结合使用时。
模型配置参数求解器窗格设置会影响信号生成器块输出。
使用具有快速重启功能的Signal Builder块
打开快速重启后:
在运行之间,你可以更改数据、重命名信号和信号组以及添加新组。不能:
–导入信号或信号组
–更改信号输出设置
你可以单击“Run all ”按钮一次。要重新启用“Run all ”按钮,请切换Simulink编辑器工具栏上的快速重启按钮。但是,Run all不使用快速重启。
信号生成器窗口
信号生成器块窗口允许您定义块输出的信号(波形)的形状。您可以指定分段线性的任何波形。
要打开窗口,请双击该块。此时会出现信号生成器窗口。
信号生成器窗口允许你创建和修改由信号生成器块表示的信号组。信号生成器窗口包括以下控件。
Group Pane
显示由块表示的可互换信号源组集。每个组的窗格显示组中每个波形的可编辑表示。组的名称显示在窗格的顶部。一次只能看到一个窗格。要显示不可见的组,请从列表中选择组名。该块输出其窗格当前可见的信号组。每个窗格都占据“信号生成器块”对话框中的一个窗格。一次最多可以显示16个信号。
Signal Axes
信号出现在共享公共时间范围的单独轴上。此演示文稿允许您比较每个信号变化的相对时间。信号生成器会自动缩放每个轴的范围,以适应它显示的信号。使用信号生成器轴菜单更改所选轴的时间(T)和振幅(Y)范围。
Signal List
显示属于当前选定信号组的信号的名称和可见性。单击列表中的条目可选择信号。双击列表中的信号条目可在组窗格中隐藏或显示波形。
Selection Status Area
显示当前选定信号的名称和当前选定波形段或点的索引。
Waveform Coordinates
显示当前选定波形段或点的坐标。您可以通过编辑显示的值来更改坐标。
Name
当前选定信号的名称。您可以通过编辑此字段来更改信号的名称。
Index
当前选定信号的索引。索引指示信号出现的输出端口。索引为1表示最顶部的输出端口,2表示从顶部开始的第二个端口,以此类推。您可以通过编辑此字段来更改信号的索引.
Help Area
显示有关使用Signal Builder窗口功能的上下文相关提示。
Editing Signal Groups
信号生成器窗口允许您从信号生成器块表示的组集中创建、重命名、移动和删除信号组。
创建和删除信号组。要创建信号组,请执行以下操作:
1 在信号生成器中,复制现有的信号组。
2 修改它以满足你的需求
要复制现有信号组,请执行以下操作:
在信号生成器中,从列表中选择组。
选择Group > Copy.
一个新组就创建好了。
要删除一个组, 从列表中选择组, 然后选择Group > Delete.
重命名信号组。要重命名信号组,请执行以下操作:
1 在信号生成器中,从列表中选择组,
2 选择Group > Rename.
将出现一个对话框。
3 在对话框中编辑现有名称或输入新名称。单击“OK”。
移动信号组。要在组窗格堆栈中重新定位组,请执行以下操作:
在信号生成器中,选择窗格。
要将组在堆栈中向下移动,选择Group > Move Down.
要将窗格在堆栈中移动到更高的位置,选择Group > Move Up.
编辑信号
Signal Builder允许创建、剪切和粘贴、隐藏和删除信号组中的信号。
创建信号。要在当前选定的信号组中创建信号,请执行以下操作:
在信号生成器中,从活动组列表中选择要添加信号的组。
选择Signal > New.
选择要添加的波形。
指定输入,然后单击“确定”。
如果选择标准波形,Signal Builder会将具有该波形的信号添加到组中。如果选择自定义波形,系统会提示您输入时间值和Y值。
你还可以使用MATLAB工作空间变量创建新信号。
1 在MATLAB命令窗口中,为两个变量t和y创建数据。
t=1:10
y=1:10
这些向量的大小必须相同。
2 创建模型并添加信号生成器块。
3 双击信号生成器块。
4 选择Signal > New > Custom.
5 在自定义波形窗口, 在“Time values ”字段输入t,在“Y values”字段中输入y, 然后点击 OK.
信号生成器块窗口将新信号显示为信号2。
定义信号输出。要指定用于发送测试信号的输出类型:
1 在信号生成器中,选择Signal > Output.。
2 从列表中选择:
Ports
默认。从块发送单个信号。每个信号N都会出现一个名为信号N的输出端口。
Bus
从块发送单个、虚拟、非分层的信号总线。出现一个名为Bus的输出端口。
手动创建信号组集
如果你有信号数据文件,例如来自测试用例的文件,请考虑按照“导入信号组集”中的说明导入此数据。
要创建一组可互换的信号组:
1 从Simulink源库中拖动信号生成器块的实例,并将其放入模型中。
默认情况下,该块表示包含输出方波脉冲的单个信号源的单个信号组。
2 使用块信号编辑器创建其他信号组,向信号组添加信号,修改现有信号和信号组,并选择块输出的信号组。
3 将块的输出连接到图表。
该块显示该块可以输出的每个信号的输出端口。
您可以在模型中创建任意数量的信号生成器块,每个块代表一组不同的可互换信号源组。当一个组有多个信号时,这些信号可能有不同的结束时间。但是,Signal Builder块要求组内信号的结束时间匹配。如果发生不匹配,信号生成器块将通过保持具有较小结束时间的信号的最后一个值来匹配结束时间。
从现有数据集中导入信号组。
您可能有要输入到信号生成器块中的现有信号数据集。Signal Builder窗口上的File > Import from File命令将启动“导入文件”对话框。此对话框是模态的,这意味着在对话框运行时,焦点无法切换到另一个MATLAB窗口。如果要在导入数据后查看Signal Builder窗口中的更改,请执行以下操作之一:
关闭“ Import File ”对话框。
并排设置“Import File”对话框和“ Signal Builder”窗口。
“导入文件”对话框接受以下格式适当的文件类型:
Microsoft® Excel® (.xls, .xlsx)
Comma-separated value (CSV) text files (.csv)
MAT-files (.mat)
只有格式正确,才能导入数据集文件。
对于Microsoft Excel电子表格:
信号生成器块将第一行解释为信号名称。如果不指定信号名称,信号生成器块将使用Imported_signal#格式指定一个默认名称,其中#随着每个额外的未命名信号而递增。
信号生成器块将第一列解释为时间。在此列中,时间值必须增加。
信号生成器块将其余列解释为信号。
如果有多张表:
每张表必须具有相同数量的信号(列)。
每张表必须具有相同的信号名称集(如果有的话)。
每张表上的每一列必须具有相同的行数。
信号生成器块将每个工作表解释为信号组。
此示例包含一个格式可接受的Microsoft Excel电子表格。它有三个名为Group1、Group2和Group3的工作表,代表三个信号组。
对于CSV文本文件:
每个文件只包含数字。不要在CSV文件中命名信号。
信号生成器块将第一列解释为时间。在此列中,时间值必须增加。
信号生成器块将其余列解释为信号。
每列必须有相同数量的条目。
信号生成器块将每个文件解释为一个信号组。
信号生成器块为每个信号分配一个默认信号名称,格式为Imported_Signal#
此示例包含一个可接受格式的CSV文件。内容代表一个信号组。
0,0,0,5,0
1,0,1,5,0
2,0,1,5,0
3,0,1,5,0
4,5,1,5,0
5,5,1,5,0
6,5,1,5,0
7,0,1,5,0
8,0,1,5,1
9,0,1,5,1
10,0,1,5,0
对于MAT文件:
Signal Builder块支持Simulink的数据存储日志记录。模拟数据。数据集对象将此数据表示并解释为单个组。
Signal Builder块支持随时间保存为结构的Simulink输出。
Signal Builder块支持Signal Builder数据格式。此格式是一组必须标记的单元格数组:
time
data
sigName
groupName
sigName和groupName是可选的。
为了向后兼容,Signal Builder块支持来自Simulink的记录数据。ModelDataLogs对象,并将此数据解释为单个组。ModelDataLogs格式将在未来的版本中删除。
信号生成器块不支持:
Simulink输出仅作为结构
Simulink输出仅为数组
如果导入大量数据点(100000000或更多),Signal Builder将返回警告。然后,你可以取消该操作。
此示例包含一个可接受的日志MATLAB工作区。使用MATLAB工作区的“Save ”命令将变量保存到MAT文件中。将此文件导入信号生成器块。
用选定数据替换所有信号数据。Simulink软件使用一个信号创建默认的信号生成器块。要替换此信号和块可能显示的所有其他信号数据:
创建一个模型,并将信号生成器块拖动到该模型中。
双击该块。
信号生成器窗口显示其默认Signal 1。
在信号生成器中,选择File > Import from File。
此时会出现“导入文件”对话框。
在要导入的文件字段中,输入信号数据文件名或单击浏览。
此时会出现文件浏览器。
如果选择文件浏览器,请导航到并选择信号数据文件。例如,选择3Grp_3Sig.xls。
“要导入的数据”窗格包含文件中的信号数据。单击扩展器以显示所有信号。
选择要导入的信号。要导入所有信号,请单击全选。
从“Placement for Selected Data ”列表中,选择要对信号数据采取的操作。例如,选择“Replace existing dataset”。
确认选择按钮已激活。在信号生成器块执行指定操作之前,验证您的信号选择。如果信号数据选择不合适,确认选择将保持灰色。例如,如果您选择的信号数量与要替换的信号生成器组中的信号数量不同,则“Confirm Selection”将保持灰色。
单击确认选择按钮。
如果请求的操作是有效的,则“Status History ”窗格将显示消息以指示状态。例如:
确认后还可以启用“OK”和“Apply”按钮。
如果你对状态消息感到满意,请单击“Apply”以用此文件的内容替换现有的信号数据。
选择替换现有数据集时,软件会让你有机会保存Signal Builder块的现有内容。
信号生成器块使用新的信号数据进行更新。单击“确定”关闭“导入文件”对话框并检查信号生成器块。
单击“确定”。
检查更新的信号生成器窗口,确认您的信号数据完好无损。
关闭“信号生成器”窗口,保存并关闭模型。例如,将模型另存为signalbuilder1。
将选定信号附加到连续的现有信号组。
您可以按照选择信号的顺序将信号附加到连续信号组的末尾。此语句意味着您选择的信号数量与信号组的数量相同,并将每个信号顺序附加到不同的组中。软件将每个附加信号重命名为最后一个附加信号的名称。
本主题使用“Replacing All Signal Data with Selected Data”过程中的signalbuilder1。
1 在MATLAB命令窗口中,键入signalbuilder1。
2 双击信号生成器块。
此时会出现信号生成器窗口。
3 注意信号生成器块中存在多少组。例如,此信号生成器块有三个组,myGroup1、myGroupB和myGroup_Thre
4 双击该块。
此时会出现“File to Import”对话框。
5 在“File to Import”文本字段中,输入信号数据文件名或单击“Browse”。
此时会出现文件浏览器。
6 如果选择文件浏览器,请导航到并选择信号数据文件。例如,选择3Grp_3Sig.xls。
“要导入的数据”窗格包含文件中的信号数据。单击扩展器以显示所有信号。
7 评估此数据文件组中的信号数量。如果每组中的信号数量等于块中存在的组中的信号数,则可以将其中一个组附加到块中。
8选择要导入的组。在这个例子中,有三个组,myGroup1、myGroupB和myGroup_Tree。选择myGroupB。
9 从“Placement for Selected Data”列表中,选择要对信号组采取的操作。例如,选择“Append groups”。
确认选择按钮已激活。在信号生成器块执行指定操作之前,验证您的信号选择。
10 单击确认选择按钮。
如果请求的操作是有效的,则“Status History”窗格将显示消息以指示状态。例如:
确认后启用“OK”和“Apply”按钮。
11 如果对状态消息感到满意,请单击“Apply”以附加信号。
信号生成器块使用新的信号数据进行更新。单击“确定”关闭“导入文件”对话框,并检查信号生成器块的组。
请注意,新的信号组被添加为最后一个窗格。因为已经有一个名为myGroupB的信号组,软件会自动将新的信号组名称递增1。选择myGroupB。
将同名信号附加到现有信号组。
如果附加的信号名称与信号生成器块中存在的信号名称相同,则软件会将附加信号的名称递增1。软件重复递增,直到附加的信号名称是唯一的。例如:
假设您的信号生成器块有一个信号组myGroup1,其中包含信号Sig1、Sig2和Sig3。
将名为Sig1的信号附加到myGroup1。
请注意,软件在将Sig1添加到myGroup1之前,会先将Sig1递增到Sig4。
附加一组具有不同信号名称的信号。如果附加的信号组的信号名称与信号生成器块中存在的信号名称不同,软件会将现有信号的名称更改为与附加的信号相同。例如,
假设您的信号生成器块有一个信号组myGroup1,其中包含信号Sig1、Sig2和Sig3。
附加一个名为myGroup2的信号组,其信号名称为SigA、SigB和SigC。
请注意软件:
附加myGroup2。
将myGroup1中的信号重命名为与myGroup2中的信号相同。
编辑波形
Signal Builder允许你更改组输出的波形的形状、颜色、线条样式和粗细。
重塑波形
Signal Builder允许您通过使用鼠标或箭头键选择并拖动其线段和点,或编辑线段或点的坐标来更改波形。
选择波形。要选择波形,请在波形上的任何点上单击鼠标左键。
信号生成器显示波形点,以指示波形已被选择。
要取消选择波形,请左键单击波形轴上不在波形本身上的任何点,或按Esc键。
要选择波形的一个点,首先选择波形。然后将鼠标光标放在该点上。光标会改变形状以指示它位于一个点上。
用鼠标左键单击该点。信号生成器在该点周围绘制一个圆圈,以表示你的选择。
要插入点,请选择波形,按住Shift键并单击点的截面。
要取消选择该点,请按Esc键。
要删除点,请选择该点,然后按Backspace或delete键。
要使用信号生成器功能编辑点,请使用信号生成器设置功能替换波形。您不能以编程方式删除点。
选择分段。要选择线段,首先选择包含它的波形。然后左键单击该线段。信号生成器会加厚该段,以表示已选择该段。
要取消选择该线段,请按Esc键。
移动波形。要移动波形,请选择它,然后使用键盘上的箭头键沿所需方向移动波形。每个按键都会将波形移动到捕捉网格上的下一个位置,如果未启用捕捉网格,则移动0.1英寸。
拖动分段。要将线段拖动到新位置,请将鼠标光标放置在线段上。鼠标光标会改变形状,以显示拖动分段的方向。
按下鼠标左键,沿指示方向将线段拖动到所需位置。您还可以使用键盘上的箭头键移动所选线段。
拖动点。
要沿信号振幅(垂直)轴拖动点,请将鼠标光标移动到该点上。光标将形状更改为圆形,表示可以拖动该点。将平行于y轴的点拖动到所需位置。要沿时间(水平)轴拖动点,请在拖动点的同时按Shift键。您还可以使用键盘上的箭头键移动所选点。
捕捉网格。
每个波形轴都包含一个不可见的捕捉网格,有助于波形点的精确定位。捕捉网格的原点与波形轴的原点重合。当您拖放一直拖动的点或线段时,信号生成器会将该点或线段分别移动到网格上最近的点。信号生成器轴菜单允许您独立指定网格水平(时间)轴和垂直(振幅)轴间距。间距越小,放置点的自由度就越大,但精确定位点就越困难。默认情况下,网格间距为0,这意味着您可以将点放置在网格上的任何位置;即,网格实际上是关闭的。使用“轴”菜单选择您喜欢的间距。
插入和删除点。
要插入点,请先选择波形。然后按住Shift键,左键单击要插入点的波形。要删除点,请选择该点并按Del键。
编辑点坐标。
要更改点的坐标,请先选择该点。信号生成器在信号生成器窗口底部的左点编辑字段中显示点的当前坐标。要更改选定点的振幅,请编辑Y字段中的值或将其替换为新值,然后按Enter键。信号生成器将点移动到新位置。同样,编辑T字段中的值以更改所选点的时间。
编辑线段坐标。
要更改线段的坐标,请先选择线段。信号生成器在“信号生成器”窗口底部的“左点”和“右点”编辑字段中显示线段端点的当前坐标。要更改坐标,请在相应的编辑字段中编辑值,然后按Enter键。
更改波形的颜色
要更改波形的颜色,请选择波形,然后从信号生成器信号菜单中选择颜色。信号生成器显示MATLAB颜色选择器。为波形选择新颜色。单击“确定”。
更改波形线样式和粗细
信号生成器可以将波形显示为实线、虚线或虚线。默认情况下,它使用实线。要更改波形的线条样式,请选择波形,然后从信号生成器信号菜单中选择线条样式。弹出线条样式菜单。从菜单中选择线条样式。
要更改波形的线宽,请选择波形,然后从信号菜单中选择Line Width。此时会出现一个对话框,显示线条当前粗细。编辑厚度值,然后单击“确定”。