次のように、Modelica モデルでクラス関数/メソッドを使用したいと考えています。
optimization Moo(objective=-x(finalTime), startTime = 0, finalTime = 12)
parameter Real e = 0.05;
Real x(start=2, fixed=true, min=0, max=100);
input Real v (min=0, max=1);
function omega
input Real t;
output Real y;
algorithm
y := e;
end omega;
equation
der(x) = v*omega(time);
constraint
v<=1;
end Moo;
e
関数内の変数を変数にomega
して、後でパラメーター スイープを実行しているときにその値を簡単に変更できるようにしたいと考えています。残念ながら、関数omega
は変数を認識していないようe
で、JModelica コンパイラは次のエラーを返します。
e のクラスまたはコンポーネント宣言が見つかりません
と同じクラスに属しているのでomega
を見ることができると素朴に期待します。e
omega
e
これを達成する方法はありますか?