我试图根据要满足的条件让参数属于特定类型。但我不太确定如何做到这一点,或者这在 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;
Run Code Online (Sandbox Code Playgroud)
我希望通过可替换模型或可替换类型来实现这一目标,但我没有实现。
但是,下面的代码允许您在 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;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
575 次 |
| 最近记录: |