【FMIライブラリ】最小構成のMBD事例 第2章 その73【DCモータ①】

【FMIライブラリ】最小構成のMBD事例 第2章 その73【DCモータ①】 事例
【FMIライブラリ】最小構成のMBD事例 第2章 その73【DCモータ①】

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

はじめに

前回でFMILibraryの使用方法はおおよそ確認した状態となる。
しかし、使用したFMUはFMILibraryのサンプルとしてあったシンプルなものであった。

OpenModelicaにFMU export機能がある。
これで作成したFMUをFMILibraryで制御してみたい。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラスト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

今後の方針

太郎くん
太郎くん

今後の方針としては、
「OpenModelicaで作ったFMUをFMILibraryで制御する」
ってことでいいのかな?

フクさん
フクさん

まぁ大雑把に言うとそうなるね。

太郎くん
太郎くん

となると何を用意していけばいいんだ?

フクさん
フクさん

とりあえず、以下のプランを考えている。

  • OpenModelicaで使用するモデルを確定
  • OpenModelicaで使用するモデルの挙動確認
  • FMILibraryでの利用を想定してモデルの一部を修正
  • FMU出力
  • FMILibraryでFMU読み込み確認
  • FMILibraryでFMU内パラメータの確認
  • FMILibraryでFMU内パラメータの取得
  • FMILibraryでFMU内パラメータの変更

使用するモデル

太郎くん
太郎くん

使用するモデルはどうするの?
また何か作る?

フクさん
フクさん

以前、動作確認したDCモータモデルでいいんじゃないかな?

太郎くん
太郎くん

あー、そういえばここでやったのがあったね。

フクさん
フクさん

そうそう。
これをベースに使おう。

太郎くん
太郎くん

じゃー、これはもう挙動は見てるから
挙動確認も済ってことで良いかな。

フクさん
フクさん

いや、ちょっと構成変えるんで、
挙動確認はいるかな?

太郎くん
太郎くん

(なんで、構成変えて仕事増やすの?老●なの?)

構成変更理由

フクさん
フクさん

以前、確認したDCモータモデルは
DCモータに電圧を印加するだけのモデルだったと思う。

太郎くん
太郎くん

確かこんな構成だったかな。

OpenModelica、Modelica.Blocks.Sources.Ramp、Modelica.Electrical.Analog.Sources.SignalVoltage、Modelica.Electrical.Analog.Basic.Ground、Modelica.Electrical.Machines.BasicMachines.DCMachines.DC_PermanentMagnet dcpm、Modelica.Electrical.Machines.Utilities.ParameterRecords.DcPermanentMagnetData dcpmData、Modelica.Mechanics.Rotational.Components.Inertia loadInertia、Modelica.Mechanics.Rotational.Sources.TorqueStep loadTorqueStep
フクさん
フクさん

そして、挙動はこんなんだった。

OpenModelica、DCモータ、角速度、制御電圧、制御電流
フクさん
フクさん

RampとsignalVoltageの間にPID制御器を置いて、
もうちょっと制御してるふぅな感じにする。

太郎くん
太郎くん

あー、そっか。
オープンループ制御からクローズループ制御に変えたいってことかー。

フクさん
フクさん

うん。
今後の実験を考えて今のうちにクローズループ制御のモデルを作っておきたいって感じだ。

太郎くん
太郎くん

(ということはまだまだこのシリーズ続くってことなのか・・・。)

まとめ

フクさん
フクさん

まとめだよ。

  • 「OpenModelicaで作ったFMUをFMILibraryで制御する」のプランを提示。
  • モデルは以前扱ったDCモータモデルとする。
    • Rampをそのまま電圧としてDCモータに印加するモデル。
  • ただし、そのまま使わずPID制御を追加してみる。
    • オープンループ制御からクローズループ制御のモデルに変更。

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

コメント

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