数组连接 matlab,使用总线数组 - MATLAB & Simulink - MathWorks 中国

初始化总线数组

要为总线数组中的每个单独信号指定唯一的初始值,可以使用初始条件结构体数组。数组中的每个结构体都初始化其中一个总线。

下面的示例显示如何初始化总线数组。假设您定义总线类型 MyData 和 PressureBus。

c94e53c2159d58965322410dd35a5aa0.png

假设您将信号元素 temperature 的数据类型设置为 int16,并将元素 s1 和 s2 的数据类型设置为 double。

要指定总线数组的初始条件,您可以创建一个变量,其值是初始条件结构体的数组。

initValues(1).temperature = int16(5);

initValues(1).pressure.s1 = 9.87;

initValues(1).pressure.s2 = 8.71;

initValues(2).temperature = int16(20);

initValues(2).pressure.s1 = 10.21;

initValues(2).pressure.s2 = 9.56;

initValues(3).temperature = int16(35);

initValues(3).pressure.s1 = 8.98;

initValues(3).pressure.s2 = 9.17;

变量 initValues 为一个信号(它是包含三个总线的一个数组)提供初始条件。您可以使用 initValues 指定模块的 Initial condition 参数,例如 Unit Delay。

您也可以使用单个标量结构体为数组中的所有总线指定相同的初始条件。

initStruct.temperature = int16(15);

initStruct.pressure.s1 = 10.32;

initStruct.pressure.s2 = 9.46;

如果在模块的 Initial condition 参数中指定 initStruct,则数组中的每个总线对信号元素 temperature 使用相同的初始值 15。同样,总线对元素 pressure.s1 使用初始值 10.32,对元素 pressure.s2 使用值 9.46。

要为使用大型信号元素层次结构的总线创建结构体数组,请考虑使用函数 Simulink.Bus.createMATLABStruct。

以下示例说明如何初始化嵌套总线数组。为包含嵌套总线数组的复杂信号层次结构创建初始条件结构体。

在总线编辑器中,创建 Bus 对象 MyData 和 PressureBus。

c94e53c2159d58965322410dd35a5aa0.png

在层次结构窗格中,选择总线元素 pressure。将 Dimensions 属性设置为 [1 3]。

使用函数 Simulink.Bus.createMATLABStruct 创建一个包含四个初始化结构体的数组。将该数组存储在变量 initStruct 中。将所有单个信号初始化为接地值 0。

initStruct=Simulink.Bus.createMATLABStruct('MyData',[],[1 4]);

在基础工作区中,双击变量 initStruct 以在 Variable Editor 中查看它。

数组中的四个结构体各自都具有字段 temperature 和 pressure。

要检查 pressure,请双击其中一个字段。

四个 pressure 字段中每个字段的值都是一个包含三个子结构体的数组。每个子结构体都有字段 s1 和 s2。

要为总线数组中的信号提供唯一的初始化值,可以使用 Variable Editor 手动指定值。

您也可以编写脚本。例如,要访问 initStruct 的第三个结构体中第二个子结构体 pressure 的字段 s1,请使用以下代码:

initStruct(3).pressure(2).s1 = 15.35;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值