LTspiceによる電流制御のシミュレーション
はじめに
電圧形インバータを用いてモータを制御したり,系統連系したりする場合,電流制御*1が必須となります。 昨今はオペアンプ等でアナログ制御*2することは稀で, 制御ハードウェアとしてはマイコンやDSP (digital signal processor),FPGA (field-programmable gate array)が選ばれると思います。 この場合,サンプリング周期毎に制御演算のルーチンが実行される(タイマ割り込みで定期的に呼ばれる関数など)離散時間制御となります。 サンプリング周期の分だけむだ時間が生じるため,安定性を確保するための制御ゲイン設計が問題となります。 さらに,インバータではPWM (pulse-width modulation)にて出力電圧指令値と平均値の一致するパルス列に変換します。
筆者は電力変換器の回路方式や制御方式について学んできましたが,電流制御そのものについては実は理解が曖昧なところがありました。 そこで本稿では,LTspice XVIIと自作制御ライブラリContrailleを用いて:
- 連続時間(アナログ)制御 vs. 離散時間(ディジタル)制御
- 任意電圧出力 vs. PWM
を比較してみることにしました。 対象としては単純なRL回路を想定します。
電流が所望の値・波形となるように,電圧を調整します。 この場合,制御量はであり,電圧の方は「操作量」と呼ばれますが,「操作量」なる語はあまり浸透していない気がしています💦 念のためですが,は時刻になります。電流,電圧ともに時刻に依存する関数となります。
DISCLAIMER!!: 本記事には技術的な誤りが含まれている可能性もありますので,予めご了承ください💦
聞きかじったこと
よく言われている(?)ことですが,であり,サンプリング周期がである場合,電流制御の比例ゲインを
に設定すれば,電流にオーバーシュートを生じない,ということがあります。 これについては,例えば文献*3や 文献*4に記載がありますが, やはり理解するには自分で手を動かさないとダメだとの思いから,ブロック図と数式をいじってみることにします。
まずはシミュレーション例を
LTspice XVIIと自作制御ライブラリContrailleを用いて図2のようなモデルを組み立てました。 制御系は連続時間と離散時間の2つを並列で用意しており,マルチプレクサで選択できるようにしています。 さらに,選択した出力をそのまま電圧制御電圧源E1に入力するか,PWMしてからE1に入力するかも,もう1つのマルチプレクサで選択できるようにしています。
単なる一例ですが,回路・制御定数は以下の通りです。
パラメータ | 値 |
---|---|
抵抗器 | |
インダクタ | |
サンプリング周期 | |
比例ゲイン | |
積分ゲイン |
パラメータをLTspiceの.stepコマンドでに変化させています。 の場合が上記の比例ゲインの場合です。
図3に示す通り,の場合にはオーバーシュートが出ていないことが判りますね。
連続時間での単純なブロック図
PI制御を適用するとして,むだ時間等を考えない最も単純なブロック図を領域で描けば下図となります。 この場合,開ループ伝達関数は次式となります。
ここで,
を満たすように比例ゲイン,積分ゲインを設定できれば,極零相殺されて
となります。 この場合,閉ループ伝達関数は
となり,の1次遅れ系となります。 ここで,比例ゲインをいくつに設定すればよいかが問題ですが,上述の通り,オーバーシュートの生じない境界条件としてとすれば,
となります。 すなわち,の1次遅れ系です。 例えばであった場合,となります。 実際には,PWMに伴うむだ時間や電流センサの周波数特性などがありますので, ゲイン余裕,位相余裕をよく確認する必要があると思います(これについてはまた別記事で考えてみようと思います)。
離散時間制御でのブロック図
各種教科書を見ていると,離散時間(ディジタル)制御をまずは連続時間の領域で表すことを試みるようです。 まずは,として,考えます。
図3において,はディジタル演算に伴う1サンプリング遅れ,はサンプル & ホールド0次ホールドの伝達関数です。
図3より,開ループ伝達関数は,
となります。
これを領域に変換すると,
となって,閉ループ伝達関数は,
として得られます。 の特性根は
となります。 オーバーシュートを生じない場合,特性根が実根である必要があるため,(10)式の根号の中が正でなければなりません。 この場合,
となり,上述の「聞きかじったこと」を理論的に追うことができました💦
(注:何故そうなるのかは理解していない😂)
シミュレーション結果
他のシミュレーション結果を示します。
自作制御ライブラリContraille…早く準備を整えて世に問うぞ~🎵
《追記》連続時間制御の電流検出信号に移動平均を施す
さて,図2のLTspiceモデルでは,連続時間(アナログ)制御のブロックで電流検出信号(フィードバック信号)をそのまま指令値と比較していました。 一方,離散時間(ディジタル)制御では,電流の検出の後にサンプル & ホールドする必要があります。 図3,図6 ~ 8でオーバーシュートなどの様相が連続時間制御と離散時間制御で異なる理由はこれではないかと考えました。
ディジタル制御やz変換の教科書では,サンプル & ホールドの伝達関数が近似的に
と書けることが記載されており,移動平均フィルタの伝達関数とまったく同じであることが分かります。 そこで,連続時間制御の電流のフィードバック信号に移動平均フィルタを追加し,離散時間制御と比較してみようと思います。
電流制御の比例ゲインとしてオーバーシュートが発生する条件にしてみた状態で, 連続時間制御と離散時間制御を比べてみると──。
連続時間制御と離散時間制御がほぼ重なりました❗ 図3,図6 ~ 8では比例ゲインが等しくてもオーバーシュートなどの様相が異なりましたが,連続時間制御に位相平均フィルタを追加すると,ほとんど重なってしまいます。 逆に言えば,離散時間(ディジタル)制御では入力信号を当然の如くサンプル & ホールドしているだけで,移動平均フィルタが掛かってしまっているということなんですね…。 また,PWMの有無に関わらず,連続時間制御と離散時間制御はほとんど一致するようです。
いやぁ…このあたりも自分で手を動かしてやってみないと,自分の中に「直観」として落とし込めななかったですね…。
*1:よくACR (automatic current regulator)と呼ばれますが,恐らく日本語でしょう…。
*2:早川:「初めての自立移動ロボット制御シミュレーション」,トランジスタ技術,2020年7月号,pp. 71-86
*3:田原・藤田・赤木:「FPGAによる高速電流制御を適用したPWM整流器の動作特性」,電気学会半導体電力変換研究会資料SPC-05-14,pp. 33-38,2005年1月,大阪
*4:H. Akagi, E. H. Watanabe, and M. Aredes, Instantaneous Power Theory and Applications to Power Conditioning, Wiley, 2007