問題タブ [pyfmi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
openmodelica - FMU FMI シミュレーション、初期化後に一部の方程式が評価されない
私の問題はこの前の質問に何らかの形で関連していると思いますが、彼らのアドバイスでは問題を解決できませんでした.
これは最小限の非動作例です。整流スイッチを備えた単純な電気回路があります(openModelicaで開発)。入力パラメーターの値に応じて、switch.controlの値を変更したいと考えています。そのために、私は次のものを持っています:
注:パラメータ、入力などの間で多くの組み合わせを試しました...
反復シミュレーションを行いたいです (たとえば、システムの 60 秒をシミュレートしますが、1 秒のシミュレーションを 60 回連続してシミュレートします)。これは、別の FMU シミュレーションに従って入力値 ( openclose )を変更できるようにするためです。
その結果、pyFMI からの入力の値を変更できます。(私がそれを読むと、変更が考慮されます)。ただし、「新しい値」は私の方程式でも考慮されていません。
これが私のpyfmiスクリプトです:
基本的には、50 単位の時間でシミュレートしてから、openclose
変数の値を変更してから、もう一度シミュレートし、もう一度切り替えて、再シミュレートします。その結果、私は得ました:
実際には、 への最初の呼び出しの前に作成されたセットのみが、model.simulate(...)
その値をシステムに伝達します。
ここannotation(Evaluate = false)
で提案されていることを理解しようとしましたが、うまくいきませんでした。実際に値を変更できるため、関連しているかどうかはわかりません。問題は、このパラメーターに基づく方程式が初期化中にのみ評価されるように見えることです:-/
どんなアイデア/助けも大歓迎です...