文档

为总线信号指定初始条件

总线信号初始化是一种特殊形式的信号初始化。对于一般信息初始化信号,明白了初始化信号和离散状态。初始化数组的总线信号的详细信息,请参见初始化数组的公交车

总线信号初始化指定了总线仿真软件的元素值万博1manbetx®使用第一块的执行,使用总线信号。默认情况下,一辆公共汽车元素的初始值(由地面的价值0)。总线初始化包括指定非零初始条件(ICs)。

您可以使用总线信号初始化功能:

  • 指定初始条件的信号具有不同的数据类型。

  • 不同的初始条件申请中的每个信号总线。

  • 指定初始条件的一个子集的信号在一个没有指定初始条件对所有的总线信号。

  • 使用相同的初始条件为多个模块,信号,或模型。

初始化块支持总线信号万博1manbetx

你可以初始化总线信号值的输入块如果那块满足这两个条件:

  • 有一个初始值或初始条件块参数

  • 万博1manbetx支持总线信号

这些块支持总线信号初始化:万博1manbetx

  • 数据存储内存

  • 内存

  • 合并

  • 外港(当块在一个有条件地执行上下文)

  • 率转换

  • 单位延迟

例如,单位延迟块是一个bus-capable块。有一个块参数对话框初始条件参数。

你不能初始化一个巴士,有:

  • 适应信号

  • 不定位信号

支持总线初始化设置诊断万博1manbetx

启用总线信号初始化,在你开始仿真,设置未指定初始化检测配置参数简化

创建初始条件结构

您可以创建部分或全部初始条件(IC)结构来表示一个总线信号的初始值。创建一个集成电路结构,使用这些方法之一:

  • 定义一个MATLAB®MATLAB基础结构或仿真软件模型的工作区。万博1manbetx您可以手动定义的结构,或者完整的结构,您可以使用万博1manbetxSimulink.Bus.createMATLABstruct函数。

  • 在一个块的参数对话框,支持总线信号初始化,初始条件参数指定一个表达式,计算结构。万博1manbetx

MATLAB定义结构的信息,请参阅创建结构数组(MATLAB)。

字段中指定一个集成电路结构必须完全匹配这些数据总线的属性元素:

  • 的名字

  • 复杂性

例如,如果你定义一个总线元素是一个真正的(2 x2)双数组,然后在集成电路结构,定义总线元素的值来初始化一个真正的(2 x2)数组的两倍。

在每个总线的集成电路结构显式地指定字段的元素有一个枚举(枚举)数据类型。

控制结构字段的数据类型

如果任何信号元素以外的其他目标总线使用数据类型,您可以使用不同的技术来控制字段的数据类型的初始条件结构。您选择的技术,可以影响效率和生成的代码的可读性。看到控制数据类型的字段初始条件结构

创建初始化的完整结构

一个完整的初始条件的结构为每个元素提供一个初始值一个总线信号。集成电路结构反映了总线的总线层次结构,反映了属性元素。

在代码生成指定完整的结构提供了这些优势:

  • 生成更可读的代码

  • 万博1manbetx支持一个显式初始化所有信号的建模风格

使用万博1manbetxSimulink.Bus.createMATLABStruct函数简化创建一个完整的MATLAB初始条件结构相同层次结构,名称和数据属性作为一个总线信号。这个函数填充所有的元素,您没有指定这些元素的值。

您可以使用几种不同的输入功能,包括:

  • 一个总线对象名称

  • 一个端口处理数组

您可以调用函数从总线编辑器。选择总线对象你想创建一个完整的MATLAB的结构,然后选择文件>创建一个MATLAB结构菜单项。

检测当结构参数不一致的形状(层次结构和名称)总线信号有关,在模型编辑器中,可以使用万博1manbetx分析>模型的顾问>通过产品>万博1manbetx检查结构参数与总线信号使用检查。这张支票识别部分集成电路结构。

在您创建的结构,您可以在MATLAB编辑器中编辑它。

为初始化创建部分结构

部分集成电路结构提供了初始值的元素的一个子集总线信号。如果你使用一个部分集成电路结构,在仿真中,仿真软件创建一个完整的集成电路结构来表示所有的总线信号元素。万博1manbetx万博1manbetx仿真软件分配各自的地面价值每个元素的部分集成电路结构不明确赋值。

指定块的部分结构参数值可能是有用的在创建模型的迭代过程。部分结构使您能够专注于总线信号的一个子集。当你使用部分结构,模型隐式初始化未指明的信号。万博1manbetx

当你定义一个部分集成电路结构:

  • 在公共汽车上只包括字段。

  • 省略一个或多个字段的公共汽车。

  • 使该领域的集成电路结构对应于公共汽车元素的嵌套级别。

  • 在相同的嵌套在总线结构和水平,选择指定字段顺序不同总线结构元素。

请注意

集成电路结构的价值必须躺在设计相应的总线元素的最小值和最大值范围。万博1manbetx仿真软件执行这个范围检查当你更新图或模拟模型。

假设您有一个公共汽车,由三个元素:一个,B,C,但有这些特征:

  • 一个是一个嵌套的总线,两个信号元素。

  • B是一个信号。

  • C是一个嵌套的总线,包括公共汽车一个作为一个嵌套的公共汽车。

ex_busic模型包括嵌套公共汽车。这就是模型出现后,已更新。打开模型

这是一个总结的总线的层次结构和数据类型、尺寸和复杂性总线的元素。

前一个(sub1) A1 (double) A2 (int8 5 x1,复杂)B (double) C (sub2) C1 (int16) C2 (sub1) A1 (double) A2 (int8 5 x1,复杂)

在这些例子中,K是一个集成电路结构的初始值指定的吗单位延迟块。对应的集成电路结构公共汽车的ex_busic模型。这里有一些有效的初始条件的规范。

有效的语法 描述
·一个1 = 3

总线初始化元素Top.A.A1使用价值3

K =结构(“C”、结构(C1, int16 (4)))

公共汽车元素Top.C.C1int16。相应的结构域显式地指定int16 (4)。此外,您可以指定字段值4没有指定显式数据类型。

K =结构(' B ' 3 ' ',结构(“A1”, 4))

总线的元素Top.BTop.A在公共汽车上都处于同一嵌套级。为总线元素嵌套级,对应的结构字段的顺序无关紧要。

无效的部分集成电路结构

在下面的例子中,K是一个集成电路结构的初始值指定的吗单位延迟块。对应的集成电路结构公共汽车的ex_busic模型。

这三个初始条件规范有效:

无效的语法 原因,语法是无效的
K.A.A2= 3

价值维度和复杂性不匹配。公共汽车元素Top.A.A25 x1,但K.A.A21 x1;Top.A.A2是复杂的,但K.A.A2是真实的。

kcC2 = 3

你不能用一个标量值来初始化IC子结构。

K =结构(' B ' 3 ' X ', 4)

你不能指定字段的总线(X在公共汽车上不存在)。

总线信号使用块进行初始化参数

初始化一个总线信号通过设置初始条件参数块接收总线信号作为输入,并支持总线初始化(见万博1manbetx初始化块支持总线信号万博1manbetx)。

例如,块的参数对话框单位延迟块有一个初始条件参数。

支持总线信号初始化块,你可以替换的万博1manbetx默认值0使用这些方法之一:

所有三种方法要求您定义一个集成电路(见结构创建初始条件结构)。你不能指定一个非零的标量值或以外的任何其他类型的值0一个集成电路结构,或万博1manbetxSimulink.Parameter对象来初始化一个总线信号。

一个集成电路结构定义为一个MATLAB变量,而不是直接指定集成电路结构在块参数对话框中提供了许多优点,包括:

  • 重用集成电路结构的多个块

  • 使用集成电路结构的可调参数生成的代码

MATLAB结构初始化

您可以初始化一个总线使用MATLAB信号结构,显式地定义了总线信号的初始条件。

例如,在初始条件参数的单位延迟块,你可以输入一个结构。

MATLAB变量初始化

你可以初始化一个总线信号使用MATLAB变量定义为一个集成电路结构与适当的值。

例如,您可以定义以下部分结构的基本工作空间:

K =结构(A、结构(“A1”, 3),“B”, 4);

然后,您可以指定K结构的初始条件单位延迟块的参数:

万博1manbetxSimulink.Parameter为初始化

你可以初始化一个总线信号使用万博1manbetxSimulink.Parameter对象使用一个集成电路结构价值财产。

例如,您可以定义局部结构P在基本工作空间(反映了ex_busic模型在前一节中讨论):

P = 万博1manbetxSimulink.Parameter;P。数据类型=“总线:上”;P。值= Simul万博1manbetxink.Bus.createMATLABStruct(“顶级”);P.Value.A。A1 = 3;P.Value。B = 5;

然后,您可以指定P结构的初始条件单位延迟块的参数:

另请参阅

功能

相关的话题

这个主题有帮助吗?