事例 【FMI/FMU】最小構成のMBD事例 第2章 その88【PyFMI⑤】 時間軸作った。とりあえず、0秒から2秒の等差数列で作った。Ramp作った。等差数列で斜めにプロットした後にmax,minでサチらせた。時間軸とRamp入力と統合&縦方向に。vstackとtransposeを使用。入力オブジェクト作った。voltageに入力行列を紐づけた。 2021.09.02 事例
事例 【FMI/FMU】最小構成のMBD事例 第2章 その87【PyFMI④】 FMUをPythonで使用する上で必要ライブラリのimport。PyFMIのload_fmu。numpy。matplotlib。load_fmuの戻りのオブジェクトはFMU次第。FMUModelCS1。FMUModelCS2。FMUModelME1。FMUModelME2。 2021.09.01 事例
事例 【FMI/FMU】最小構成のMBD事例 第2章 その86【PyFMI③】 PyFMIの動作確認方法を列挙。実験用のFMUを作って、それをPyFMIで制御しつつmatplotlibで波形表示する。って流れ。DCモータモデル改造。改造と言ってもInputブロックを追加した程度。InputブロックもOutputブロックと同様にエイリアスは生成される。このエイリアスにアクセスする予定。 2021.08.31 事例
事例 【FMI/FMU】最小構成のMBD事例 第2章 その85【PyFMI②】 PyFMIのインスト―ルについてあれこれ。依存関係がヤバイ。FMILibraryの64bitが必要。Assimuloが依存したsundials、GLIMDAのsolverの64bit品が必要。condaだと依存関係を一撃で解決してくれる。python-canなどはconda管理になっていないなど万能では無い。 2021.08.30 事例
事例 【FMI/FMU】最小構成のMBD事例 第2章 その84【PyFMI①】 PythonからFMUを制御するPyFMIの紹介。内部でFMILibraryを使用している。JModelicaの一部。JModelicaはmodelon AB社のModelicaPlatform。2019年にClosed Sourceに移行。FMILibraryも開発元はmodelon AB社。 2021.08.29 事例
事例 【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 事例