私は、入力と出力をyとするサインブロックを含む単純なFMUファイルを持っています。この場合、uは時間に等しく設定されます。私のC++コードでは、FMILibraryからFMIライブラリをロードして、入力にpi(3.14として)の新しい値を与えたい点まで、すべての必要なステップを実行しました。だから私は行った:変更中のFMI変数/関数
fmistatus = fmi2_import_set_real(fmu, &uRef, 1, &pi);
while (timeCurrent < timeEnd){
fmistatus = fmi2_import_do_step(fmu, timeCurrent , stepSize, fmi2_true);
timeCurrent += stepSize;
}
私はそれを新しい価値を与えようとしたが、時間はまだ設定されていた。私は何か見落としてますか?
PS。 FMIライブラリ関数の詳細な説明はどこにありますか?現在、私は入力出力の説明のみを見つけることができますか、何かをもう一度見逃しました。
更新:数回の試行を経て、私は式u =時間を再定義しようとしていたため、この問題が発生している可能性があります。言い換えれば、私はopenmodelicaのRealInputブロックに私の変数を変更するとすべてうまくいく。では、ある方程式を本当に再定義したいのですが?私は何をしなければならないのですか?
FMIでは、変数の値を「置き換える」ことはできませんか? –
おそらく関連:https://stackoverflow.com/questions/37571451/parameters-sometimes-not-editable-in-dymola-simulation-tab-and-fmu – matth
これは似ていますが、私の場合はパラメータではなくむしろ変化しています方程式。すなわち、u =時間をu = 3.14に変更する。 –