创建用于初始化的非完全结构体
非完全初始条件结构体为总线的部分元素提供初始值。如果您在仿真过程中使用非完全初始条件结构体,Simulink 将创建一个完全的初始条件结构体来表示总线的所有元素。对于非完全初始条件结构体没有显式指定值的每个元素,Simulink 将为它们指定相应的接地值。
在创建模型的迭代过程中,为模块参数值指定非完全结构体可能很有用。非完全结构体使您可重点关注总线中的部分信号。当您使用非完全结构体时,Simulink 将隐式初始化未指定的信号。
在定义非完全初始条件结构体时:
只包括总线中的字段。
省略总线中的一个或多个字段。
使初始条件结构体中的字段对应于总线元素的嵌套级别。
在结构体和总线的相同嵌套级别中,可根据需要以不同于总线元素的顺序指定结构体字段。
注意
初始条件结构体的值必须位于对应的总线元素的设计最小值和最大值范围内。Simulink 会在您更新图或对模型进行仿真时执行此范围检查。
假设您有一个总线 Top,它包含三个元素(A、B 和 C)并具有以下特征:
A 是一个嵌套总线,具有两个信号元素。
B 是一个信号。
C 是一个嵌套总线,包含总线 A 作为其嵌套总线。
ex_bus_initial_conditions 模型包含嵌套的 Top 总线。这是模型在更新后的外观。
下面总结了 Top 总线层次结构以及总线元素的数据类型、维度和复/实性。
Top
A (sub1)
A1 (double)
A2 (int8, 5x1, complex)
B (double)
C (sub2)
C1 (int16)
C2 (sub1)
A1 (double)
A2 (int8, 5x1, complex)
在这些示例中,K 是为 Unit Delay 模块的初始值指定的初始条件结构体。初始条件结构体对应于 ex_bus_initial_conditions 模型中的 Top 总线。以下是一些有效的初始条件设定。
有效语法说明K.A.A1 = 3使用值 3 初始化总线元素 Top.A.A1。
K = struct('C',struct('C1',int16(4)))总线元素 Top.C.C1 为 int16。对应的结构体字段显式指定 int16(4)。您也可以将该字段值指定为 4,而不指定显式数据类型。
K = struct('B',3,'A',struct('A1',4))总线元素 Top.B 和 Top.A 在总线中位于同一嵌套级别。对于位于同一嵌套级别的总线元素,对应的结构体字段的顺序无关紧要。无效的非完全初始条件结构体
在下面的示例中,K 是为 Unit Delay 模块的初始值指定的初始条件结构体。初始条件结构体对应于 ex_bus_initial_conditions 模型中的 Top 总线。
以下三个初始条件指定无效:
无效语法语法无效的原因K.A.A2 = 3值维度和复/实性不匹配。总线元素 Top.A.A2 为 5x1,但 K.A.A2 为 1x1;Top.A.A2 为复数,但 K.A.A2 为实数。
K.C.C2 = 3不能使用标量值来初始化初始条件子结构体。
K = struct('B',3,'X',4)不能指定不在总线中的字段(X 不在总线中)。