問題タブ [jmodelica]
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.
python - EnergyPlus 協調シミュレーションで使用するための FMI 標準を使用した Python コードまたは Python インターフェイスの FMU エクスポート
私の研究グループは、EnergyPlus と一緒にシミュレートしたい新しい建物コンポーネント用の Python コードを開発しました。再利用性と市場への影響のために、経験の浅いユーザーにとってこの接続ができるだけ簡単になることを望み、Function Mockup Interface Standard (FMI)を使用してモデルをパックすることが最良の選択肢であると考えています。
他の Functional Mockup Unit (FMU) をテストするためにJModelicaを調査しましたが、モデル交換または協調シミュレーションのために Python コードの FMU エクスポートを実行しないことがわかりました。
PythonコードをFMUとしてパッケージ化する方法があるかどうか興味がありましたか? ない場合、Python を FMI 規格にリンクする方法や、EnergyPlus などの建物のエネルギー ソフトウェアに接続する方法はありますか?
これに代わる方法は、建物のエネルギー モデルを FMU としてエクスポートし、modelica/jmodelica にインポートするか、BCVTB を使用することです。これは私たちにとってはうまくいきますが、経験の浅い個人が私たちのツールを使用するのが難しくなりすぎるのではないかと心配しています.
python - JModelica は結果をファイルに直接出力できますか?
次の JModelica スクリプトを実行しています。
結果 (たとえば、時間、x1、x2 など) がファイルに出力されることを期待していました/z/out
。ただし、ファイルには IPOPT の詳細なデバッグ/ステータス情報のみが含まれています。
保存される情報をres
ファイルに直接出力する方法はありますか? どういうわけかres自体を書くか、できればIPOPT/JModelicaにPythonを使わずに結果を書き込んでもらいますか?
python - JModelica を静かにするにはどうすればよいですか?
次の JModelica スクリプトを実行しています。
に設定print_level
する0
と、JModelica と IPOPT が静かになると予想していました。そして、それは間違いなく役立ちます!しかし、私は次のような出力を取得し続けます:
この種の出力を抑制するにはどうすればよいですか?
python - JModelicaのresult_file_name出力の形式は何ですか?
次のコードを使用して、JModelica から結果を出力しています。
ファイル/z/out
を調べると、次の構造になっています。
ここで、 は...
までさらに多くの行があることを意味しfinalTime
ます。
しかし、これはどういう意味ですか?この出力のフォーマットはどこで指定されていますか?
modelica - Modelica微分単位の設定
次のようにパラメーター単位を定義できることはわかっています。
状態変数の単位は次のようになります。
しかし、導関数の単位を定義するにはどうすればよいでしょうか? (または、これらは自動的に生成されますか?私が使用している JModelica は単に単位をチェックしないのかもしれません。)
modelica - Modelicaクラスメソッド
次のように、Modelica モデルでクラス関数/メソッドを使用したいと考えています。
e
関数内の変数を変数にomega
して、後でパラメーター スイープを実行しているときにその値を簡単に変更できるようにしたいと考えています。残念ながら、関数omega
は変数を認識していないようe
で、JModelica コンパイラは次のエラーを返します。
e のクラスまたはコンポーネント宣言が見つかりません
と同じクラスに属しているのでomega
を見ることができると素朴に期待します。e
omega
e
これを達成する方法はありますか?
modelica - 置換可能な関数と文字列からの関数呼び出し
次の 3 つの質問は 1 つにまとめられているため、長文になることをお許しください。
Dymola 2016 を使用しています。
モデル内で置換可能な関数呼び出しを使用すると、ユーザーがドロップダウン オプションを使用できるようになります。以下の例:
関数内で同じ置換可能な関数呼び出しを行うと、関数が呼び出された場合と同じドロップダウン機能が許可されないようです (つまり、パッケージブラウザーで関数を右クリックします。関数は通常、他の関数/モデル内で呼び出されるため、これは意図的なものだと思います。以下の例:
質問1。モデルと同じように、関数内で置換可能な関数呼び出しを使用することは可能ですか? もしそうなら、適切な構文は何ですか? 代替アプローチ?
別の方法として、モデル内で置換可能な関数呼び出しを実行し、その結果を別の関数に渡して適切な呼び出しを行うという方法もあります。以下に例を示します。
パラメータ x と関数ハンドル a を次のように渡します。
質問2。これはModelicaで許容されますか?もしそうなら、どのように? 代替アプローチ?
質問#3。文字列を定義して、それを関数の名前に変えることは可能ですか? 以下の例:
前もって感謝します!私は Modelica の使用を探求し続けているので、あなたのフィードバックに感謝します。