【PyFMI】最小構成のMBD事例 第2章 その96【マルチFMI⑥】

【PyFMI】最小構成のMBD事例 第2章 その96【マルチFMI⑥】 事例
【PyFMI】最小構成のMBD事例 第2章 その96【マルチFMI⑥】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/

はじめに

前回は土台となるMasterに必要な、

  • モデルセット
  • モデル間接続セット

を用意し、Masterに渡したところ。

これでシミュレーションをする上でのおおよその準備が整ったが、もう少し調整するところがある。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

オプション設定

太郎くん
太郎くん

前回でおおよその準備はできたっぽいけど、
まだなんかの調整がいるんだっけ?

フクさん
フクさん

そうそう。
まぁコードにしてしまうと大した話ではないのだが、
こんか感じだ。

opts = master.simulate_options()
opts["step_size"] = 0.001

res = master.simulate(final_time=2.0, options=opts)
太郎くん
太郎くん

これは・・・。
いわゆるオプション設定みたいなやつ?

フクさん
フクさん

そうだね。
今回はstep_sizeを1msになるようにオプション設定をした。

太郎くん
太郎くん

0.001で1msってことは単位は秒なんだね。

その他のオプション

太郎くん
太郎くん

step_size以外のオプションってあるの?

フクさん
フクさん

あるよ。
ざっと以下だね。

  • step_size
    • シミュレーション時のステップ時間(デフォルト0.01秒)
  • initialize
    • TrueだとFMU内の初期化アルゴリズム起動(デフォルトTrue)
  • block_initialization
    • 初期化アルゴリズムで台数ループ解決(デフォルトFalse)
  • extrapolation_order
    • 外挿法定義(0 or 0!)
  • smooth_coupling
    • 外挿をスムーズにするか(デフォルトTrue)
  • linear_correction
    • 線形補間(デフォルトFalse)
  • execution
    • OpenMPを使用して並列処理(デフォルトはシリアル)
  • num_threads
    • 並列処理時のスレッド数
  • error_controlled
    • ステップサイズ可変(デフォルトFalse)
  • atol
    • 該当関数エラー時の代替値(デフォルト1e-4)
  • rtol
    • 該当関数エラー時の代替値(デフォルト1e-4)
  • maxh
    • 誤差制御シミュレーションと同時に使用できる最大ステップサイズ(デフォルト0)
  • local_rtol
    • モデルの初期化時に、接続されたFMUに提供される相対的な許容値を定義(デフォルト1e-6)
  • result_file_name
    • シミュレーション結果が書き込まれるファイル名を指定
  • result_handling
    • 結果をどのように処理するかを指定
  • result_handler
    • 結果のハンドラ
  • filter
    • 結果を実際に保存する変数を選択するためのフィルター
  • logging
    • Trueの場合、シミュレーション中に追加のデバッグデータを保存
  • store_step_before_update
    • Trueの場合、接続されたモデル間でデータが交換される前に、基礎となるFMUの値を結果ファイルに追加保存
  • block_initialization_type
    • 入力/出力の最適なグループ化を見つけるために、どのアルゴリズムを使用するかを指定
  • force_finite_difference_outputs
    • セットされていると、通信点間の有限差分(一次)を強制的に使用

オプションをみた感想

太郎くん
太郎くん

こ、これは・・・。

太郎くん
太郎くん

とりあえずスルーでいいかな。

フクさん
フクさん

まぁあんまり弄るところもでも無いしね。
強いて上げるならば、線形補間を有効にするか、ロギング機能を有効にするかくらいかな。

太郎くん
太郎くん

まぁ悩んだ時にまた見てみよう。

まとめ

フクさん
フクさん

まとめだよ。

  • Masterにオプション設定が可能。
    • 今回はstep_sizeを調整。
      • デフォルト値が0,01秒なので0,001秒に変更。
  • step_size以外にも大量のオプションがある。
    • 補間の仕方、並列処理の有無、結果出力、ログ出力などなど。
    • どういうものがあるかだけ把握し、必要になった際に再度確認すればOK。

バックナンバーはこちら。

コメント

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