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

交換可能なモデルまたは交換可能なタイプでこれを実現したいと考えていましたが、実現していません。

ただし、以下のコードでは、MyParameter のタイプを foo のインスタンスで変更できます。多分これは助けになるか、誰かが仕事を終えるためのインスピレーションを与えます.

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 に答える