金宝app®块可以输出一维、二维或多维信号。Simu金宝applink用户界面和文档通常将1-D信号称为向量和二维或多维信号为矩阵.单元素数组通常被称为数组标量.一个行向量是一个只有一行的二维数组。一个列向量是一个只有一列的二维数组。
一维(1-D)信号由一系列一维阵列组成,每个仿真时间步以一个阵列(矢量)的频率输出。
二维(2-D)信号由一系列二维阵列组成,每个块采样时间以一个2-D阵列(矩阵)的频率输出。
多维信号由一系列多维(二维或多维)数组组成,每个块采样时间以一个数组的频率输出。您可以使用任何有效的MATLAB来指定多维数组®多维表达,如[4 3]。看到多维数组有关多维数组的信息。
金宝appSimulink块在它们可以接受或输出的信号的维度上是不同的。一些块可以接受或输出任何维度的信号。有些只能接受或输出标量或矢量信号。
请注意
金宝appSimulink在模拟过程金宝app中不支持动态信号维度。也就是说,在执行模拟时,信号的维度必须保持不变。但是,您可以在模拟过程中更改信号的大小。看到可变大小信号基础.
如果一个块可以发射非标量信号,则该块输出的信号的维度取决于该块的参数,如果该块是源块;否则,输出维数取决于块输入和参数的维数。
要确定信号最终用于模拟的尺寸,首先要更新方框图(例如,通过按Ctrl + D).然后,选择以下技巧之一:
在方框图上直接显示尺寸。使用此技术跟踪沿块路径的信号尺寸。在模型中,在调试选项卡上,选择信息覆盖>信号的维度).
在Model Data Editor中检查维度,它以可搜索、可排序的表显示信息。在表格中,右侧的每个单元格中维列表示模型中相应信号线的真实尺寸。有关模型数据编辑器的更多信息,请参见使用模型数据编辑器配置数据属性.
Simu金宝applink块数据类型支持表包括一列,用于标金宝app识具有多维信号支持的块。
在MATLAB命令行中,输入showblockdatatypetable
.
将打开带有Simulink块数据类型支持表的单独窗口。金宝app金宝app
在“块”列中找到Simulink块的名称。金宝app右边的列是数据类型或特性。一个一个X列中表示对该特性的支持。金宝app
金宝appSimu金宝applink最多支持32维的信号。不要使用超过32维的信号。
一个源Block是一个没有输入的块。源块的示例包括常数Block和正弦波块。看到来源以获取Simulink源代码块的完整列表。金宝app源块的输出维数与其输出值参数的维数相同将向量参数解释为1-D参数为off(即在块参数对话框中未选中)。如果将向量参数解释为1-D参数为on时,输出维数等于输出值参数维数,除非参数维数为n × 1或1 × n。在后一种情况下,块输出宽度为N的矢量信号。
作为如何输出参数值的例子将向量参数解释为1-D一个源块的参数决定其输出的维数,考虑常数块。这个块输出一个等于它的常数信号恒定值参数。的维数是如何恒定值参数的设置将向量参数解释为1-D参数确定块输出的维数。
恒定值 | 将向量参数解释为1-D | 输出 |
---|---|---|
标量 |
从 |
元素的数组 |
标量 |
在 |
元素的数组 |
1)×(n矩阵 |
从 |
1)×(n矩阵 |
1)×(n矩阵 |
在 |
n元向量 |
n×1矩阵 |
从 |
n×1矩阵 |
n×1矩阵 |
在 |
n元向量 |
m×n的矩阵 |
从 |
m×n的矩阵 |
m×n的矩阵 |
在 |
m×n的矩阵 |
金宝appSimulink源块允许您指定它们输出的信号的尺寸,或者指定Simulink从中推断尺寸的值。因此,您可以使用源块将不同维度的信号引入您的模型。
如果一个块有输入,那么在标量展开之后,它的输出维数与它的输入维数相同。(如中所讨论的,所有输入必须具有相同的尺寸信号与参数维数规则).
在创建Simulink模型时,必金宝app须遵守以下关于信号和参数维度的规则。
块的所有非标量输入必须具有相同的尺寸。
一个块可以混合使用标量和非标量输入,只要所有的非标量输入具有相同的维度。金宝appSimulink将标量输入扩展为与非标量输入具有相同的维度(请参阅输入和参数的标量展开).
一般来说,块参数的尺寸必须与块的输入尺寸相同。金宝appSimulink执行一些处理,提供了与通用规则相关的灵活性。
块可以具有与非标量输入相对应的标量参数。在这种情况下,Simulin金宝appk将标量参数展开为与相应的输入具有相同的维度(请参阅输入和参数的标量展开).
如果输入是一个向量,相应的参数可以是一个n × 1或1 × n矩阵。在本例中,Simulink将金宝appN个矩阵元素应用于输入向量的相应元素。这个例外允许使用MATLAB的行向量或列向量,它们实际上分别是1 × n或n × 1矩阵,来指定应用于向量输入的参数。
金宝app在下列情况下,Simulink将向量转换为行或列矩阵,并将行或列矩阵转换为向量:
如果矢量信号连接到需要矩阵的输入,Simulink将矢量转换为单行或单列矩阵。金宝app
如果单列或单行矩阵连接到需要向量的输入,Simulink将矩阵转换为向量。金宝app
如果块的输入由向量和矩阵的混合组成,并且矩阵输入都有一列或一行,则Simulink将向量分别转换为有一列或一行的矩阵。金宝app
请注意
您可以配置Simulink,使其在模金宝app拟期间发生矢量或矩阵转换时显示警告或错误消息。看到矢量/矩阵块输入转换获取更多信息。
标量扩张将标量值转换为非标量数组。许多Sim金宝appulink块支持输入和金宝app参数的标量扩展。特定于块的描述指示Simulink是否对块输入和参数应用标量展开。金宝app
输入的标量展开是指标量输入的展开,以匹配其他非标量输入或非标量参数的维度。当块的输入是标量和非标量信号的混合时,Simulink将标量输入扩展为与其他非标量输入具有相同尺寸的非标量信号。金宝app例如,如果相关的非标量的维数为3,则标量4将展开为向量[4 4 4]。
参数的标量展开是指标量块参数的展开,以匹配非标量输入的维度。
输入(年代) | 关联块参数 | 标量扩张 |
---|---|---|
标量 |
Nonscalar |
扩展输入以匹配参数维度。 看到标量输入和非标量参数. |
Nonscalar |
标量 |
扩展标量参数以匹配输入元素的数量。 看到非标量输入和标量参数. |
标量与非标量的组合 |
无对应参数 |
扩展标量输入以匹配最大的非标量输入的维度。 |
在本例中,向增益块输入的常量块是标量。增益块获得参数为非标量。金宝appSimulink扩展标量输入以匹配非标量的维度获得参数,显示在Display块中的模拟结果中。
在本例中,增益块的常量块输入是非标量的。增益块获得参数为标量。金宝appSimulink扩展标量参数以匹配来自Constant块的非标量输入的尺寸,这反映在Display块中的模拟结果中。
在本例中,Sum块的Constant1块输入是非标量,而Constant2块输入是标量。Sum块没有关联参数。金宝appSimulink将标量输入从Constant2扩展到与非标量Constant1块输入的维度相匹配。输入被展开为向量[3,3,3]
.
方法来暂停模拟,以获得端口信号的尺寸一步按钮。选择一个块并使用PortHandles
参数。然后使用GetCompiledPortDimensions
参数。例如,如果您在此模型中向前一步并选择常数布洛克:
Ph = get_param(gcb,“PortHandles”);Dim = get_param(ph。输出港,“CompiledPortDimensions”)
2 . Dim = 2
对于非总线端口,结果是一个数组,其中第一个元素是维数(在本例中是维数)2
),接下来的两个元素(对应维度数)是维度的值。
对于总线信号,结果包括一些额外的元素。假设您在一个具有公共汽车的模型中向前一步,并选择总线的创造者包含嵌套总线的块:
Ph = get_param(gcb,“PortHandles”);Dim = get_param(ph。输出港,“CompiledPortDimensions”)
Dim = -2 4 1 2 1 1 3 4 5 6 5 2 3 4 5 6
第一个元素是-2
,表示该信号为总线。第二个元素是叶节点的数量。后续元素遵循与非总线信号相同的模式。在本例中,第三个元素表示总线中第一个信号的维数1
),下一个数字是该维度的值(2
).