OpenModelicaの使い方 User’s Guide解読_18

OpenModelica

引き続きUser’s Guide(Release v1.22.1)を読んでいきます。
91ページからの内容となります。
前回の記事はこちら

チャプター6はソルバについてです。
ModelicaモデルをODE(常微分方程式)に変換し、これを解いています。
ソルバの設定はsimulateコマンドの設定、-s simflagで設定できます。
陽解法/陰解法、次数、step size、マルチステップ等を設定します。
ソルバは下記のものが選択できます。
あまり詳しくないので概要だけ記載しておきます。

  • DASSL:OpenModelicaのデフォルトソルバ。
        高次の陰解法ソルバで幅広いモデルに対して安定している。
        BDF(差分後退法)がベースとなっており、Cに変換される
  • IDA:sundials(SUite of Nonlinear and DIfferential/ALgebraic equation Solvers)と
       呼ばれるソフトファミリーの一部。
  • CVODE:こちらもsundialsの一部。
         可変ステップ、可変次数にすることで初期値問題に対応。
         OpenModelicaではstiffな(解きにくい、不安定な)モデルでおすすめ。
  • GBODE:一般的なODE解法、Runge-Kutta法を適用。
         様々な次数の陰解法、陽解法が用意されている。

基本的は陽解法ソルバ(euler, heun, rungekutta)は固定ステップとなります。
陰解法ソルバ(impeuler, trapezoid, imprungekutta)も固定ステップとなり、sundialsの非線形ソルバKINSOLがベース。
cvode, rungekuttaSsc, irksco, symSolver, symSolverSsc, qssは検証が十分にされていないものの実験的に導入。

ODEシミュレーションだけでなくDAE(微分代数方程式)モードでのシミュレーションも可能です。
–daeModeをONにするとDAEソルバで計算します。
最適化時の処理が少なくなることでコンパイルが早くなる場合があるようです。

今回はここまでにします。

コメント

タイトルとURLをコピーしました