部分模型的 Modelica 数组 [英] Modelica array of partial model

查看:87
本文介绍了部分模型的 Modelica 数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

A 为部分模型,CD 为扩展 A 的模型.给定一个模型

Let A be a partial model and C, D be models which extend A. Given a model

partial model X
  A a[3];
end X;

我如何实例化 X,例如类似的东西

how can I instantiate X, e.g. something along the lines of

A X.a = {C,D,C};

更新:我尝试了 2 个变体.一个是

Update: I tried 2 variants. One is

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;

失败并显示警告只能使用默认值设置输入、参数和变量,但已修改.".另一个是

which fails with the warning "May only set inputs, parameters, and variables with default, but modified a.". The other one is

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 >>.组件不相同."

请注意,可以执行以下操作.

Note that it is possible to do the following.

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 使用参数数组.再说一次,实现此目的的以下想法行不通.

But I want P.X to use a parametric array. Then again, the following idea to achieve this, does not work.

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;

推荐答案

是的.实例化部分模型而不从非部分模型扩展它是非法的.像这样的事情可能会奏效:

Yes. Is illegal to instantiate a partial model without extending it from a non-partial model. Something like this might work:

model Y
  extend X(a = {C, D, C});
end Y;

那么 Y.a 就是你想要的.

Then Y.a is what you want.

这篇关于部分模型的 Modelica 数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆