Modelica 在派生模型中设置枚举索引向量

Modelica 在派生模型中设置枚举索引向量,modelica,Modelica,我定义 type Enum = enumeration(A, B, C); 及 及 这是一个错误。我最好的猜测是a={1,2,3}是罪魁祸首。这确实是非法的吗?如果是,我如何在M中设置a 更新 经过进一步的检查,我发现上面的一切都是合法的。让我全力以赴: type Enum = enumeration(A, B, C); connector Conn Real[Enum] a; flow Real[Enum] f; end Conn; model M1 Conn conn;

我定义

type Enum = enumeration(A, B, C);

这是一个错误。我最好的猜测是
a={1,2,3}
是罪魁祸首。这确实是非法的吗?如果是,我如何在
M
中设置
a


更新

经过进一步的检查,我发现上面的一切都是合法的。让我全力以赴:

type Enum = enumeration(A, B, C);

connector Conn
  Real[Enum] a;
  flow Real[Enum] f;
end Conn;

model M1
  Conn conn;
equation
  conn.f = -conn.a;
end M1;

model M2
  Conn conn;
initial equation
  conn.a = {1, 2, 3};
equation
  der(conn.a) = conn.f;
end M2;

model M3
  M1 m1;
  M2 m2;
equation
  connect(m1.conn, m2.conn);
end M3;
这是无法建立的。但是,如果我只是将连接器类中的每个
Enum
更改为
3
,那么它就可以工作。

这个示例(据我所知)是合法的,并且一些工具已经处理了它(假设没有其他隐藏)

由于您需要特定于工具的解决方案,因此需要指定哪个工具


合法性将在Modelica规范的后续版本中进一步澄清,因为不清楚-

感谢您的建议。我使用的是Wolfram | One,其行为可能与SystemModeler相同。我也刚刚添加了一个更新。
model M
  extends PM(a = {1, 2, 3});
...
end M;
type Enum = enumeration(A, B, C);

connector Conn
  Real[Enum] a;
  flow Real[Enum] f;
end Conn;

model M1
  Conn conn;
equation
  conn.f = -conn.a;
end M1;

model M2
  Conn conn;
initial equation
  conn.a = {1, 2, 3};
equation
  der(conn.a) = conn.f;
end M2;

model M3
  M1 m1;
  M2 m2;
equation
  connect(m1.conn, m2.conn);
end M3;