MATLAB/SimulinkやOpenModelicaなどを用いた1Dシステムモデル構築(その2)
皆さま、こんにちは。
IDAJの小川です。
モデルベース開発において、制御モデルはMATLAB/Simulinkモデルを作成し、プラントモデルは別のツールで作成したモデルを使用するというように、異なる1Dツールを用いてシステムモデルを構築するケースが少なくありません。IDAJは、マルチフィジックス・システムシミュレーションツール「GT-SUITE」を用いた1Dシステムモデル作成だけでなく、膨大なGT-SUITEモデル作成で培ったノウハウを応用し、MATLAB/SimulinkやAnsys Twin Builder、OpenModelicaなどを使用した1Dシステムモデルの作成を承ります。1Dシステムモデルの構築やツール連携でお困りのことがございましたら、是非、本サービスのご利用をご検討いただければと思います。
今回は以下の[サンプル]の3つ目をご紹介します。([サンプル]の1と2はこちらをご覧ください。)
[適用状況]
- 制御システムモデルの構築にMATLAB/Simulinkを使用する
- 制御モデルの他、プラントモデルにもMATLAB/Simulinkを使用する
- 制御システムモデルの構築には、Modelica (物理モデリング言語)を使用する
- 所有しているツールが異なるため各ツールを連携する必要がある
[サンプル]
- OpenModelicaによるDCモータ制御システムモデルの構築
- PMSM(註1)制御システムモデルの構築(MATLAB/Simulink+Modelica)
- PMSMモデルのFMU(註2)連携(GT-SUITE・Ansys Twin Builder)
(註1)PMSM:Permanent Magnet Synchronous Motor:永久磁石型同期モータ
(註2)FMU:Functional Mockup Unitの略、FMI(Functional Mockup Interfaceの略でファイル交換の規格)に対応したファイルユニット
PMSMモデルのFMU連携(GT-SUITE・Ansys Twin Builder)
ツール連携の例として図15の構成を想定し、GT-SUITEとAnsys Twin BuilderのPMSMモデルをFMUに置き換えて比較しました。FMUはツールの仕様上、CSで行いました。
- GT-SUITEソルバー:Implicit-HHT(デフォルト設定)、最大ステップサイズ:Ts/2
- Ansys Twin Builderソルバー:SML→Adaptive Trapezoid-Euler(デフォルト設定)
- SML:Ansys Twin Builder標準のSimplorerモデル(以下 TWB-SML)
GT-SUITE(以下 GT)とAnsys Twin Builder(以下 TWB)には、PMSMモデルが用意されていますのでそれらを使用します。

PMSMモデルのFMU連携の構成
以下の3つのモデルを作成して、開ループテストを実行しました。
(1)Simulink(PMSMモデル)+TWB-Modelica(メカモデル)(図16)
(2)Simulink+GT(PMSMモデル)+TWB-Modelica(メカモデル)(図17)
(3)Simulink+TWB-SML(PMSMモデル)+TWB-Modelica(メカモデル)(図18)
[電源入力]
- 電圧(3相交流:振幅50V・10Hz)を、Simulink/GT/TWBの各PMSMモデルに入力
[クラッチ入力]
- メカモデルのクラッチで4[s]から0.1[s]でランプ状に最大値まで押付力を立ち上げる。押付力は、正規化された信号f_normalized[0-1]を与える。
- 各メカモデルのクラッチ前後の角速度W_L1、W_L2をプロットし、W_L1についての誤差を確認する。ここで、誤差の定義は、Simulinkをベースとして各モデル間の誤差(註4)とした。
[Simulinkソルバー]
- 固定ステップのode4(Runge-Kutta)
- サンプル時間は、1ms
- 各FMUのCSステップサイズ:サンプル時間に合わせる
- シミュレーション時間:1[s]
(註4)誤差[%]=(Simulink–[GT or TWB])*100/Simulink((最大値-最小値)の絶対値)

(1)Simulink(PMSMモデル)+TWB-Modelica(メカモデル)

(2-1)Simulink+GT(PMSMモデル)+TWB-Modelica(メカモデル)

(2-2)Simulink+GT(PMSMモデル)+TWB-Modelica(メカモデル)

(2-3)Simulink+GT(PMSMモデル)+TWB-Modelica(メカモデル)

(3-1)Simulink+TWB-SML(PMSMモデル)+TWB-Modelica(メカモデル)

(3-2)Simulink+TWB-SML(PMSMモデル)+TWB-Modelica(メカモデル)

(3-3)Simulink+TWB-SML(PMSMモデル)+TWB-Modelica(メカモデル)
下図は、開ループテストのプロット結果です。Simulink-GT間、Simulink-TWB-SML間のいずれも±0.3%程度の誤差はありますが、プロットの結果はほぼ重なっており、PMSMモデルは置き換えが可能なモデルになっていると考えられます。

開ループテストのプロット結果
3つのツールを連携した制御システムモデルを使用した、Simulink Dashboardでのシミュレーション結果を示します。Dashboardでは、画面上で入力条件を変更しながらシミュレーションし、プロットを確認することができます。
- Simulink(制御モデル)+GT(PMSMモデル)+TWB-Modelica(メカモデル)
- 入力条件(1):目標回転数(角速度)1,000~2,000[rpm]
- 入力条件(2):正規化された信号f_normalized[0-1]のクラッチ押付力の最大値
- その他のシミュレーション条件:PMSMモデルのSimulinkと同じ
①目標回転数:1,200[rpm]、クラッチ押付力:0.4(クラッチ締結)
②目標回転数:1,200→2,000[rpm]、クラッチ押付力:0.4(クラッチ締結後に目標回転数変更ですべり発生)
③目標回転数:2,000[rpm]、クラッチ押付力:0.4→1(クラッチ動作後にクラッチ押付力変更でクラッチ締結)
④目標回転数:2,000[rpm]、クラッチ押付力:1(クラッチ締結)

PMSM制御システムモデルのSimulink Dashboardでのシミュレーション結果(1)

PMSM制御システムモデルのSimulink Dashboardでのシミュレーション結果(2)

PMSM制御システムモデルのSimulink Dashboardでのシミュレーション結果(3)

PMSM制御システムモデルのSimulink Dashboardでのシミュレーション結果(4)
2回にわたって、OpenModelicaによるDCモータ制御システムモデル構築例と、MATLAB/SimulinkベースのPMSM制御システムモデル構築例、加えてFMUによるMATLAB/Simulink・GT-SUITE・Ansys Twin Builderのツール連携例についてご紹介しました。これら以外にも、MATLAB/Simulinkベースのモデル構築やツール連携、Modelica・VHDL-AMSを用いた制御システムモデル構築、JAMBE(註5)ガイドラインモデルのアプリケーションモデルの開発、Modelica・VHDL-AMSのGT-SUITEモデルへの置き換え(双方向)なども承ります。
本稿の詳細のご説明をご希望される方、少しでも本サービスにご興味がおありの方がいらっしゃいましたら、どうぞお気軽に弊社までご相談ください。
(註5)JAMBE:MBD推進センター。IDAJは、JAMBEのパートナー会員です。
■オンラインでの技術相談、お打合せ、技術サポートなどを承っています。下記までお気軽にお問い合わせください。ご連絡をお待ちしています。
株式会社 IDAJ 営業部
Webからのお問い合わせはこちら
E-mail:info@idaj.co.jp
TEL: 045-683-1990