事例 最小構成のMBD事例 第2章 バックナンバー Modelicaによるプラント設計。 それをFMUにして他のプラットフォーム(Python等)での再利用。 さらに制御器との様々な接続方法(ASAM XCP等)の事例を紹介していく話。 Modelica用ツールとしてはOpenModelicaを使用する。 2022.04.20 事例
事例 【FMIライブラリ】最小構成のMBD事例 第2章 その83【DCモータ⑪】 FMILibraryについての感想。 標準仕様であるが故の恩恵であるが、他ツールで出力したものを再利用できるのは助かる。 CAN、A/D、D/Aなどと繋げるとさらに強力な使い方ができるかも? 今後はPythonベースの環境を構築してみる。 ググっても情報少ないので手探り状態の失敗覚悟状態で進める。 2021.08.28 事例
事例 【FMIライブラリ】最小構成のMBD事例 第2章 その82【DCモータ⑩】 固定値パラメータの変更の挙動確認。 Rampの挙動を変えた。 目標値(target)の挙動を変えたため、それに合わせて全体の挙動が変化。 狙った挙動になっている。 パラメータになっていれば、おおよそ変更可能。 変えられないのはアルゴリズムそのものや信号線の繋ぎぐらい。 2021.08.27 事例
事例 【FMIライブラリ】最小構成のMBD事例 第2章 その81【DCモータ⑨】 FMU内部の固定値パラメータの変更ができるか? 以前やった方法で実現可能。 これのソースコード改造実施。 Rampの開始タイミング、0→1の期間を設定できるように改造。 "ramp.duration"が0.8[s] → 1.5[s]。 "ramp.startTime"が0.2[s] → 0.3[s]。 2021.08.26 事例
事例 【FMIライブラリ】最小構成のMBD事例 第2章 その80【DCモータ⑧】 改造版fmi2_import_cs_testの実行してみた。 問題無く動作している様子。(目標値、制御電圧、モータ電流、モータ角速度) 試しにグラフで表示。 期待通りの波形が得られた。 これに伴い、OpenModelicaからexportしたFMUもFMILibraryで制御可能と言える。 2021.08.25 事例
事例 【FMIライブラリ】最小構成のMBD事例 第2章 その79【DCモータ⑦】 シミュレーションループにvalueReferenceを渡すためのfmi2_import_cs_testのソースコード修正を確認。 流れは以下。 欲しいパラメータ名文字列列挙。 変数オブジェクト取得。 valueReference取得。 valueReferenceをシミュレーションループで利用。 2021.08.24 事例
事例 【FMIライブラリ】最小構成のMBD事例 第2章 その78【DCモータ⑥】 OpenModelicaからexportしたFMUをFMILibraryで読み込んでみた。 無事読み込み成功。 変数リストによる列挙もできた。 必要なパラメータの情報は問題無く取得出来ている。 シミュレーションをするために若干の改造が必要。 シミュレーションループにvalueReferenceが渡るように修正。 2021.08.23 事例
事例 【FMIライブラリ】最小構成のMBD事例 第2章 その77【DCモータ⑤】 OpenModelicaから無事FMUをexport。 FMU内部のmodelDescription.xmlを参照。 Outputブロック名のパラメータの存在を確認。 上記のvalueReferenceと同値のパラメータも確認。 モデル上、同一の信号線上のパラメータが該当。 利用するのはOutputブロック側。 2021.08.22 事例
事例 【FMIライブラリ】最小構成のMBD事例 第2章 その76【DCモータ④】 OpenModelicaからFMUをexportするための設定確認が必要。 FMIオプション内を確認&修正。 バージョン:2.0。 タイプ:Co-Simulation。 Platforms:Static。 Linux環境だとDynamicでもOKだろうが、Windows環境だとStatic推奨。 2021.08.21 事例
事例 【FMIライブラリ】最小構成のMBD事例 第2章 その75【DCモータ③】 クローズループ制御にしたDCモータモデルの動作確認を実施。 ちゃんと動いてるっぽい。 Outputブロック設置 各種信号にエイリアスを振るために設置。 目標値をtarget。 指令電圧値をvoltage。 電流センサで取れる電流をcurrent。 角速度センサで取れる角速度をspeed。 2021.08.20 事例