概要
この記事では誰でも無料で使用可能なオープンソースのOpenModelica OMEditを用いた、永久磁石同期モータ(Permanent Magnet Synchronous Motor; PMSM)の電流制御シミュレーションを紹介する。OpenModelicaは微分方程式のソルバーであり、数学モデルシステム、力学、熱力学、電磁気、電気回路などの幅広い分野のシミュレーションを複合的に行うことが可能である。OMEditを用いることで、GUI上で複数の機能ブロックを組み合わせるだけでシミュレーションを行うことができる。
最初にOMEdit上での設定を示した後に、PMSMのベクトル制御による電流フィードバックの理論の概要を簡単に説明する(詳細はこの記事末尾の参考サイトを見てほしい)。OMEditでモデルを構成する上で注意が必要なブロックを紹介した後に、シミュレーション結果を確認する。シミュレーションの細かな条件やパラメータなどは下記のPDFにまとめている。 https://app.box.com/s/84irpaixg9q6idrl20a3fb97lz41zxjk
背景
無料でパワーエレクトロニクスのシミュレーションが可能なシミュレータを探している中で、OpenModelicaを見つけた。その性能確認とソフトの使い方の学習の目的で、PMSMのシミュレーションを構成してみることにした。
OpenModelica
概要
OpenModelicaはModelica言語を用いた、オープンソース(OSMC Public License, EPL, GPL)の複雑な動的システムのシミュレーション・モデル作成・最適化・解析の環境であり、誰でも無料で様々な解析をすることができる。OpenModelicaは数学モデルシステム、力学、熱力学、電磁気、電気回路などの幅広い分野のシミュレーションを複合的に行うことが可能である。OpenModelicaの公式ページと、詳しく説明しているページを下記に記載するので、参考にしてほしい。
openmodelica.org virtualmbdlabmodelica.net 1dcae.com www.xsim.info
OMEdit
OpenModelicaのアプリケーションの1つであるOMEditは、matlab simlinkやscilab xcosのように、GUIを用いて視覚的に機能ブロックを組み合わせることで、シミュレーションモデルを構築できる。この記事ではOMEditを用いて、標準Modelicaライブラリ(Modelica Standard Library; MSL)のみを使うことでPMSMのシミュレーションモデルを構築して、その詳細を説明する。
シミュレーション内容
PMSM駆動システム
この記事では、空間ベクトル理論を用いて、永久磁石同期モータ(Permanent Magnet Synchronous Motor; PMSM)をインバータによって駆動するシステムを検討する。モータの負荷は定速度負荷とする。インバータは PWM Controller から受け取ったゲート信号、、にしたがって、必要な電圧を出力するように動作する。インバータの入力は直流電圧であり、出力は三相電圧、、である。PMSMの前段には電流センサが設置させており、三相電流、、を検出する。PMSMの出力トルクは、機械角速度はとする。PMSMの機械角は位置センサにより検出される。
制御システムは電流・速度・トルク指令値(Reference)などを入力として、検出した、、とを用いて、PMSMを指令値に追従するように制御する。モータコントローラはPMSMを指令値に追従させるために必要なインバータ出力電圧指令値、、を出力し、PWMコントローラはこれらの指令値を実現するインバータのゲート信号、、を三角波比較法などを用いて生成する。
空間ベクトル理論
PMSMの制御ではゼロ相を制御しないため、クラーク変換を用いて三相電圧・電流をゼロ相とそれ以外の、相に分離する。クラーク変換の変換行列は次式で定義される。
クラーク逆変換はを転置することで得られる。
クラーク変換により得られるゼロ相、相、相の電圧・電流をそれぞれ・、・、・とする。
次に、得られた、、、を回転子座標系に回転座標変換(dq変換)する。PMSMの極対数を、電気角をとすると、dq変換行列は次式で与えられる。
逆dq変換行列はにを代入したものであり、dq変換の逆回転の変換である。よってdq座標系での電圧・電流、、、は次式で表される。
PMSM の数理モデル
uvw座標系において1相当たりの配線抵抗を、永久磁石による磁束の振幅を、電気角速度をとすると、PMSMの数理モデルは次式で表される。
ここではPMSMのインダクタンス行列であり、PMSMの数理モデルの電流微分の係数行列である。上式をdq座標系で表した等価な方程式は次式で表される。
ここで、はd軸・q軸インダクタンスである。dq座標系での配線抵抗はuvw座標系と同じ値となるのに対して、dq座標系での永久磁石の磁束はuvw座標系磁束のとなることに注意が必要である。
PMSM 制御システム
ここでは古典的な比例積分(PI)制御を適用した電流フィードバック制御をシミュレーションする。PMSMの電流フィードバック制御では、干渉項と永久磁石による誘起電圧項をフィードフォワードすることによって補償する。上図は制御ブロック図であり、、、、は、、、の司令値である。上図の、、はセンサなどにより検出する。司令値、は逆dq変換と逆クラーク変換により、、、に変換して PWM Controller に転送する。
OMEditのPMSM駆動モデルの構築
前述したPMSMドライブ回路とPMSMの制御システムのモデルをOMEditで作成すればよい。ここでは、構築したPMSMのOMEditシミュレーションモデルで注意が必要な要素のみの簡潔な説明を示す(詳細は Modelica Documentation)。 ToSpacePhasor ブロックを用いてクラーク変換を行う場合、 ToSpacePhasor ブロックの出力値にを乗ずる必要がある。同様に FromSpacePhasor ブロックを使って逆クラーク変換を行うには、ゼロシーケンス値をゼロ相のとして、ブロックの出力値にを乗ずる。
.Modelica.Electrical.Analog.Ideal.IdealOpeningSwitch | |
---|---|
理想的な開閉スイッチであり、そのスイッチング動作は,入力 boolean 信号により制御される。 boolean 信号が True のときスイッチは OFF となる。 | |
.Modelica.Electrical.Polyphase.Basic.PlugToPin_p | |
plug_p (多相回路)の k ピンを pin_p (単相回路)に接続し、plug_p の他のピンは未接続(開放)にする。 | |
.Modelica.Electrical.Machines.SpacePhasors.Blocks.ToSpacePhasor | |
多相電圧または電流をスペースフェーザおよびゼロシーケンス値に変換する。三相の場合には、三相入力を]、スペースフェーザを]、ゼロシーケンス値をとすると、下式の変換を行う。 \begin{align*} \begin{bmatrix} x_{\alpha} \\ x_{\beta} \end{bmatrix} &= \frac{2}{3} \begin{bmatrix} \cos{\left( 0 \right)} & \cos{\left( \frac{2}{3} \pi \right)} & \cos{\left( -\frac{2}{3} \pi \right)} \\ \sin{\left( 0 \right)} & \sin{\left( \frac{2}{3} \pi \right)} & \sin{\left( -\frac{2}{3} \pi \right)} \end{bmatrix} \begin{bmatrix} x_{u} \\ x_{v} \\ x_{w} \end{bmatrix}\\ x_{0} &= \frac{x_{u} + x_{v} + x_{w}}{3} \end{align*} | |
.Modelica.Electrical.Machines.SpacePhasors.Blocks.FromSpacePhasor | |
スペースフェーザおよびゼロシーケンス値から多相電圧または電流へ変換する。三相の場合には、三相出力を]、スペースフェーザを]、ゼロシーケンス値をとすると、下式の変換を行う。 \begin{equation*} \begin{bmatrix} x_{u} \\ x_{v} \\ x_{w} \end{bmatrix} =\begin{bmatrix} x_{0} \\ x_{0} \\ x_{0} \end{bmatrix} + \begin{bmatrix} \cos{\left( 0 \right)} & -\sin{\left( 0 \right)} \\ \cos{\left( -\frac{2}{3} \pi \right)} & -\sin{\left( -\frac{2}{3} \pi \right)} \\ \cos{\left( \frac{2}{3} \pi \right)} & -\sin{\left( \frac{2}{3} \pi \right)} \end{bmatrix}\begin{bmatrix} x_{\alpha} \\ x_{\beta} \end{bmatrix} \end{equation*} | |
.Modelica.Electrical.Machines.SpacePhasors.Blocks.Rotator | |
スペースフェーザ(電圧または電流)を数学的に負方向(反時計回り)に、入力された角度だけ回転させる。 |
シミュレーション
シミュレーションの細かな条件やパラメータなどは下記のPDFにまとめている。 https://app.box.com/s/84irpaixg9q6idrl20a3fb97lz41zxjk
OMEditのシミュレーションの刻み幅はとした。シミュレーション結果を下記に示す。上から順にdq軸電流、とその司令値、、uvw相電流、、、uvw相電圧、、、三角波比較での三角波と変調波、、の波形である。dq軸電流は司令値に追従しており、PMSMの電流制御を実現していることがわかる。uvw相電圧は階段状の波形であり、インバータのPWM制御によりPMSMを制御している。、のリプルはスイッチングに起因する。
まとめ
PMSMの大まかなシミュレーションは問題なく動いたが、パラメータによっては収束しない場合がある。特にスイッチング時に微分方程式の解が不安定になるので、シミュレーションを動かすためのノウハウを蓄積する必要があるかもしれない。シミュレーションを構成すること自体は簡単にできるので、これからも使ってみようと思う。
参考
- 2022 OpenModelica, 「OpenModelica」, openmodelica.org, https://openmodelica.org/ (Accessed Dec. 17, 2022)
- Adrian Pop, 「OpenModelica Build Server -Modelica Documentation-」, build.openmodelica.org, https://build.openmodelica.org/Documentation/ (Accessed Jan. 5, 2023)
- 一般社団法人オープンCAE学会, 「OpenModelica ユーザーズガイド和訳 リリース v1.14.1」, www.opencae.or.jp, https://www.opencae.or.jp/wp-content/uploads/2021/04/OpenModelicaUsersGuide.pdf
- Wikipedia, 「OpenModelica」, en.wikipedia.org, https://en.wikipedia.org/wiki/OpenModelica
- 公益社団法人日本電気技術者協会, 「 音声付き電気技術解説講座 電気応用」, jeea.or.jp, https://jeea.or.jp/course/04.html