组件阵列提供了一种直观的方法来对具有任意数量的同质组件(如分段管道、电池组或传输线)的复合组件建模。
使用一个为
循环来声明成员组件数组:
for i=1:array_size components (ExternalAccess=none) member_comp(i) = compX;结束结束
数组大小可以声明为复合组件的可调参数,以便块用户可以修改此值。
array_size = 10;%成员组件数量结束
将指定数组大小的参数声明为无单元整数,因为为
循环迭代器必须是一个无单元整数。
与常规复合组件类似,如果您希望底层成员组件的某些参数可以通过复合组件接口进行调整,请将它们包含在成员声明中。这个例子建立了参数之间的关系parX
成员分量的compX
和顶级参数top_level_parX
复合组件的:
array_size = 10;%成员组件数top_level_parX = {1, 'm'};% i=1时成员组件的可修改参数:array_size components (ExternalAccess=none) member_comp(i) = compX(parX = top_level_parX);结束结束
使用为
循环来指定成员组件之间的连接。它们的迭代器范围为
循环取决于数组大小和连接类型。例如,当你连接N
在并行成员中,迭代器范围等于数组大小:
for i=1:N个连接。,一个);连接(compX(我)。B, B);结束结束
然而,如果你连接N
序列中的成员,迭代器的范围是from1
来(n - 1)
,因为您正在连接端口B除最后一个要端口的成员外的所有成员一个下一位成员:
for i=1:(N-1)连接连接(compX(i))。B, compX (i + 1)。);结束结束
在这种情况下,不要忘记将链的两端连接到复合组件的外部端口:
连接连接(compX(1)。,一个);连接(compX (N)。B, B);结束
你也可以用compX(结束)
指示组件数组的最后一个成员。例如,这个语法等价于前一个语法,用于将链的两端连接到复合组件的外部端口:
连接连接(compX(1)。,一个);连接(compX(结束)。B, B);结束
您可以使用嵌套的为
循环创建组件的多维数组。
以下规则和限制适用于Simscape™语言中的数组:
数组仅应用于组件
类成员。
组件数组必须是同构的,也就是说,它们的成员必须都属于同一个类。但是,成员可以有不同的参数值。
有关具有相同成员的组件数组的示例,请参见使用组件数组的分段管道.
有关如何为组件数组的某些成员指定不同参数值的示例,请参见案例研究-使用阵列产生故障的电池组.
数组大小可以是参数,也可以是参数表达式。控制数组大小的参数可以有它们的ExternalAccess
属性设置为修改
,它允许块用户更改数组的大小。
数组成员必须具有ExternalAccess
属性设置为没有一个
或观察
.
不支持空数组。万博1manbetx
您可以使用为
循环来声明组件数组并将数组的成员相互连接。为
循环的语法和为
在MATLAB®.以下规则和限制适用于为
Simscape语言中的循环:
为
循环只能包含组件
或连接
.
的为
循环迭代器必须是一个无单元整数。
为
循环可以嵌套。使用嵌套为
循环创建组件的多维数组。
在嵌套为
在循环中,嵌套循环中的迭代器不能指向它上面的循环中的迭代器。例如,这个语法是无效的:
for i=1:N for j=1:i…结束结束
组件声明使用为
循环必须包含为
循环迭代器作为一个裸标识符,例如,管(我)
.不能使用表达式或数字来代替迭代器。嵌套内声明的组件为
Loop必须列出所有迭代器,例如:
for i=1:N for j=1:M components (ExternalAccess=none) resistor(i,j) = foundation.electric .elements. .电阻器(R = R);结束结束结束
不能在内部包含条件节(用于定义组件变量)为
循环。但是,你可以包括为
条件段内的循环。