设A
为 部分模型C
,D
为 扩展的模型A
。给定一个模型
partial model X
A a[3];
end X;
我如何实例化 X,例如类似的东西
A X.a = {C,D,C};
更新:我尝试了 2 个变体。一个是
package P
partial model A end A;
model B extends A; end B;
model C extends A; end C;
partial model X
A a[3];
end X;
model Y extends X(a={c,b,c});
B b;
C c;
end Y;
end P;
失败并显示警告“只能使用默认值设置输入、参数和变量,但已修改 a。” . 另一个是
package P
partial model A end A;
model B extends A; end B;
model C extends A; end C;
partial model X
replaceable A a[3];
end X;
model Y extends X;
redeclare A a={c,b,c};
B b;
C c;
end Y;
end P;
失败并出现错误“组件 a = {c,b,c},但以前 a = << Empty >>。组件不相同。”
请注意,可以执行以下操作。
package P
partial model A end A;
model B extends A; end B;
model C extends A; end C;
partial model X
A a[3] = {a1,a2,a3};
replaceable A a1,a2,a3;
end X;
model Y extends X;
redeclare B a1;
redeclare C a2;
redeclare B a3;
end Y;
end P;
但我想P.X
使用参数数组。话又说回来,下面的想法来实现这一点,是行不通的。
package P
partial model A end A;
model B extends A; end B;
model C extends A; end C;
partial model X
parameter Integer N;
replaceable A a[N] = fill(ai,N);
A ai;
end X;
model Y extends X(N=3);
redeclare A a[3] = {b,c,b};
B b;
C c;
end Y;
end P;