PMSM ベクトル制御(FOC)実習:電流・速度 PI の調整

ベクトル制御のドライブは、単純なモデルの上に 2 つの PI ループを重ねた構成です。内側の電流ループがトルクをつくり、外側の速度ループが必要な電流を要求します。紙の上でゲインを決めるのは式 2 行で済みますが、そのゲインが実際に何をするかを見るにはモータが必要です。この実習では 48 V の PMSM を回転子 dq 座標でシミュレーションし、マイコンと同じ離散制御器を動かして、スライダーを動かすたびにすべてのグラフを描き直します。左の回転子の図は同じ結果をスローモーションで再生し、固定子電流ベクトルを重ねて表示します。

実験

i_d・i_q 電流 PI(10 kHz)

教科書的な調整:Kp_i = L·ω_bw、Ki_i = R·ω_bw。PI の零点が R/L の極を打ち消し、ループは ω_bw/(s + ω_bw) のように振る舞います。
ω_bw = Kp_i/L = 2π·500 Hz · Ki_i/Kp_i = 250 rad/s (R/L = 250)

速度 PI → i_q*(1 kHz)

出発点:Kp_ω = J·ω_sc/K_t、Ki_ω = Kp_ω·ω_sc/4、K_t = 1.5·p·λ_m。ω_sc は電流ループ帯域より 5〜10 倍以上低くします。
ω_sc ≈ Kp_ω·K_t/J = 2π·50 Hz · 電流/速度 = 10

モータ:R = 0.5 Ω、L_d = L_q = 2 mH、λ_m = 0.05 Wb、極対数 p = 4、J = 1×10⁻⁴ kg·m²、B = 1×10⁻⁴ N·m·s。V_dc = 48 V なので電圧制限は V_dc/√3 = 27.7 V。電流制限 20 A、i_d* = 0。

回転子、dq 軸、電流ベクトル
abcNSdqi_s

2 極の等価機として描いているため、表示される回転角は電気角です。実時間の約 1/1333 の速さで再生します。a、b、c 軸上のバーは相電流です。

t
6 ms
i_d / i_q
-0.00043 / 1 A
T_e
0.3 N·m
速度
300 rpm
|v|
6.79 V
θ_e
43°

結果

i_q 立ち上がり時間 10–90 %
310 µs
理想値 2.2/ω_bw
700 µs
オーバーシュート
2.46 %
電流ループ帯域
500 Hz
i_q ステップ:指令と応答
1.1-0.082A6 ms0
i_q*i_q
d 軸・q 軸電流
1.1-0.084A6 ms0
i_di_q
印加電圧とその制限
V_dc/√330-2.6V6 ms0
v_dv_q|v|
相電流(逆 Park 変換)
1.1-0.95A6 ms0
i_ai_bi_c

モデル:表面磁石形 PMSM の dq 方程式を 100 µs の制御周期ごとに RK4 で積分し、ある周期で計算した電圧は次の周期に印加します。PWM リプル、デッドタイム、磁気飽和、鉄損はモデル化していません。2 つの PI はどちらも条件付き積分によるアンチワインドアップを使います。

実習のモデル

回転子座標での固定子方程式は L_d·di_d/dt = v_d − R·i_d + ω_e·L_q·i_q、L_q·di_q/dt = v_q − R·i_q − ω_e·(L_d·i_d + λ_m)、ω_e = p·ω_m です。トルクは T_e = 1.5·p·(λ_m·i_q + (L_d − L_q)·i_d·i_q) で、L_d = L_q の表面磁石形では 1.5·p·λ_m·i_q になります。つまりトルクは i_q だけで決まります。軸は J·dω_m/dt = T_e − B·ω_m − T_L に従います。

2 つの電流制御器は 10 kHz、速度制御器は 1 kHz で動きます。電圧ベクトルは半径 V_dc/√3 の円の中に制限します。これは空間ベクトル変調が過変調なしで出せる最大の正弦波電圧です。d 軸を優先し、i_q* は ±20 A に制限します。

なぜ Kp = L·ω_bw、Ki = R·ω_bw なのか

逆起電力の項を除くと、v_q から見た q 軸電流は 1/(L·s + R) の 1 次系です。PI 制御器 Kp + Ki/s は Ki/Kp に零点を持ちます。この零点をモータの極 R/L に置くと極が打ち消され、開ループは Kp/(L·s)、つまり交差周波数 Kp/L の積分器になります。ループを閉じると帯域 ω_bw = Kp/L の 1 次応答となり、10–90 % 立ち上がり時間は 2.2/ω_bw です。

この結果は連続時間の制御器を前提としています。500 Hz のプリセットで演算遅れを切ると、測定した立ち上がり時間は理想値の約 20 % 以内に入り、残りの差は 10 kHz サンプリングそのものによるものです。遅れを戻すとループに 100 µs 1 周期分の遅れが入り、応答が速くなって小さなオーバーシュートが出ます。1 kHz ではオーバーシュートが 50 % 前後になり、1.4 kHz のプリセットでは電流が 1 ms 以上振動します。1 サンプル遅れのある離散ループは、比例ゲインだけの場合 Kp·T_s/L が 1 に達すると不安定になり、ここでは帯域約 1.6 kHz に相当します。実際の電流ループ帯域をサンプリング周波数のおよそ 1/10〜1/20 にすることが多いのはこのためです。

非干渉化と電圧制限

ω_e·L_q·i_q と ω_e·(L_d·i_d + λ_m) の項が 2 つの軸を結びつけ、どちらも速度に比例して大きくなります。フィードフォワードがないと、q 軸の積分器が逆起電力をすべて自分で積み上げる必要があり、i_q を変えるたびに i_d が乱れます。回転速度を 1000 rpm に固定し、i_q にステップを与えて非干渉化を切り替えてみてください。切ると、ステップの間 i_d がゼロから外れ、q 軸積分器が逆起電力を抱えます。v_d,ff = −ω_e·L_q·i_q と v_q,ff = ω_e·(L_d·i_d + λ_m) を加えると結合の大部分が消え、PI 制御器は調整の前提とした R と L の動特性だけを相手にすれば済みます。

48 V ではインバータが出せる電圧ベクトルは約 27.7 V で、逆起電力 λ_m·ω_e は 1000 rpm ですでに 21 V に達します。速度モードで 1500 rpm を指令すると、速度が届く前に電圧のグラフが制限線に当たり、ゲインをどう変えてもモータはベース速度付近から上がりません。実際のドライブは i_d を負に流して鎖交磁束を減らす弱め界磁制御でこの点を越えます。この実習は弱め界磁をモデル化せず電圧を飽和させるだけですが、制限がなぜあるのかを見るには十分です。

速度ループと電流ループを離す

速度制御器は、電流ループが i_q* を即座に実現するものとして設計します。電流ループが十分速いときだけ成り立つ仮定です。速度ループのプリセットは 500 Hz の電流ループに 200 Hz の速度交差周波数を重ねたもので、比は 2.5 です。このモデルでは速度のオーバーシュートが約 17 % から約 34 % へとほぼ倍になり、ステップ中に i_q* が 20 A の制限に当たります。増えたオーバーシュートの一部は電流ループの遅れから、一部はこの電流制限から来ます。比は 5〜10 にするのが一般的です。速度積分器の零点はここでは交差周波数の 1/4 に置いており、負荷トルクをどれだけ速く抑えるか、大きなステップ後のオーバーシュートの大きさを決めます。

試してみること

Ki_i を 10 分の 1 にすると、i_q は指令の少し手前で止まってからゆっくり追いつきます。零点が極を打ち消せず、遅い尾が出たためです。i_q ステップを 10 A に大きくすると電流はほぼ直線的に上がりますが、これはゲインではなく電圧ベクトルの飽和によるものです。速度モードで負荷トルクを 2 N·m にすると、i_q は約 6.7 A に落ち着きます。i_q 1 A あたり K_t = 0.3 N·m のトルクが出るためです。これらの数値はこのモータモデルのもので、実際のモータでは変わります。

参考文献

R. Krishnan, Permanent Magnet Synchronous and Brushless DC Motor Drives, CRC Press, 2010. N. Mohan, Advanced Electric Drives: Analysis, Control and Modeling Using MATLAB/Simulink, Wiley, 2014. 本サイトの関連ページ:Clarke・Park 変換、SVPWM、制御ブロック図、PID コード生成器、PI 離散化ツール。

アニメーションはこのページに示した式どおりに描いています。教科書やソフトウェアライブラリによって規約が異なるので、数値を比べる前に使っているコードの規約を確認してください。