5

我试图根据要满足的条件让参数成为特定类型。但我不太确定如何做到这一点,或者这在 Modelica 中是否真的可行/合法。原则上我想要的是这样的(非工作代码示例):

package test
type TypeA=enumeration(A,C,E);
type TypeB=enumeration(B,D,F);

model foo
    parameter Boolean Condition;
    parameter if Condition then TypeA else TypeB MyParameter; 
end foo;
end test;
4

1 回答 1

2

我希望通过可替换的模型或可替换的类型来实现这一点,但我没有到达那里。

但是,下面的代码允许您在 foo 的瞬间更改 MyParameter 的类型。也许这会有所帮助,或者它会激发某人完成这项工作。

package test
type TypeA = enumeration(A,C, E);
type TypeB = enumeration(B, D, F);

model foo
  parameter Boolean Condition;
  replaceable type MyType = TypeA;
  parameter MyType MyParameter;
end foo;

model UseFoo
  foo myfoo(Condition=true, redeclare TypeB MyType,
  MyParameter = TypeB.B);
end UseFoo;

end test;
于 2012-06-01T19:51:51.197 回答