The Negligible Lab

Astray in the forest of electrical and electronic circuits. Adrift in the gap between time and frequency domains. 独立独歩を是とする。

移動平均フィルタとサンプル & ホールド

はじめに

サンプリング周期がTであるサンプル & ホールド(S&H)の伝達関数G(s)は,近似的に

G(s) = \displaystyle \frac{1 - e^{-s T}}{s T} \tag{1}

と書けることが知られています。 これは移動平均フィルタ(moving average filter, MAF)の伝達関数と完全に一致します。 何となくそうなりそうな気もしますし,本当にそうなのという疑念もあります。

そもそもS&Hに正弦波を入力しても,サンプリングするから出力はカクカクしているじゃないか❓ 高調波が含まれるけど,基本波成分だけを抽出するとそうなるということ─❓

時間領域での波形を見てみると…確かに基本波成分は似ているように思えます。

f:id:s-inoue2010:20200704050920p:plain
図1: ともに100 μsの移動平均フィルタとサンプル & ホールドに1 kHzの信号を入力した場合の解析例

という訳,LTspice XVIIで試してみることにしました。

まずはいきなり結果のボード線図を

続きを読む

LTspiceによる電流制御のシミュレーション

はじめに

電圧形インバータを用いてモータを制御したり,系統連系したりする場合,電流制御*1が必須となります。 昨今はオペアンプ等でアナログ制御*2することは稀で, 制御ハードウェアとしてはマイコンDSP (digital signal processor),FPGA (field-programmable gate array)が選ばれると思います。 この場合,サンプリング周期毎に制御演算のルーチンが実行される(タイマ割り込みで定期的に呼ばれる関数など)離散時間制御となります。 サンプリング周期Tの分だけむだ時間が生じるため,安定性を確保するための制御ゲイン設計が問題となります。 さらに,インバータではPWM (pulse-width modulation)にて出力電圧指令値と平均値の一致するパルス列に変換します。

筆者は電力変換器の回路方式や制御方式について学んできましたが,電流制御そのものについては実は理解が曖昧なところがありました。 そこで本稿では,LTspice XVIIと自作制御ライブラリContrailleを用いて:

  • 連続時間(アナログ)制御 vs. 離散時間(ディジタル)制御
  • 任意電圧出力 vs. PWM

を比較してみることにしました。 対象としては単純なRL回路を想定します。

f:id:s-inoue2010:20200702023510p:plain:w200
図1: 対象とするRL回路

電流i(t)が所望の値・波形となるように,電圧v(t)を調整します。 この場合,制御量はi(t)であり,電圧v(t)の方は「操作量」と呼ばれますが,「操作量」なる語はあまり浸透していない気がしています💦 念のためですが,tは時刻になります。電流i(t),電圧v(t)ともに時刻tに依存する関数となります。

DISCLAIMER!!: 本記事には技術的な誤りが含まれている可能性もありますので,予めご了承ください💦

聞きかじったこと

よく言われている(?)ことですが,R = 0~\Omegaであり,サンプリング周期がTである場合,電流制御の比例ゲインK_{P}

K_{P} \leq \displaystyle \frac{L}{4 T} \tag{1}

に設定すれば,電流i(t)にオーバーシュートを生じない,ということがあります。 これについては,例えば文献*3や 文献*4に記載がありますが, やはり理解するには自分で手を動かさないとダメだとの思いから,ブロック図と数式をいじってみることにします。

*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

続きを読む

制御電源のLaplaceオプションの罠

Laplaceオプション

LTspiceには

  1. ビヘイビア電源(B, Arbitrary behavioral voltage or current sources)
  2. 電圧制御電圧源(E, voltage-dependent voltage source)
  3. 電流制御電流源(F, current-dependent current source)
  4. 電圧制御電流源(G, voltage-dependent current source)
  5. 電流制御電圧源(H, current-dependent voltage source)

の各種制御電源が用意されておりますが,上記のうちB, E, GにはLaplaceオプションが用意されております。 これは,入力信号に対して,Laplaceオプションで記述した伝達関数を(周波数領域で)乗じたものを出力とする機能であり, ある意味で非常に強力です。

罠とは何か

2次系のハイパスフィルタ(HPF)の伝達関数G(s)は次式で書けます。

G(s) = \displaystyle \frac{s^{2}}{s^{2} + 2 \zeta \omega_{n} s + \omega_{n}^{2}}  \tag{1}

ご存じの通り,\zetaは減衰係数,\omega_{n}は固有角周波数です。

続きを読む

連続系の代表的な伝達関数の双一次変換による離散化

はじめに

連続系では1次遅れ要素や2次遅れ要素など,代表的な伝達関数というものがあります,例えば,

G_{1}(s) = \displaystyle \frac{\omega_{n}}{s + \omega_{n}}, \quad G_{2}(s) = \displaystyle \frac{\omega_{n}^{2}}{s^{2} + 2 \zeta \omega_{n} s + \omega_{n}^{2}} \tag{1}

などですね。

制御器やフィルタなどをもともと連続系で考えていた場合,マイコンFPGAに実装しようとする際には離散系に変換する必要が生じます。 このときのテクニックのひとつに双一次変換(bilinear transformまたはTustin transformとも)があります。これは,

s = \displaystyle \frac{2}{T_{s}} \frac{1 - z^{-1}}{1 + z^{-1}} \tag{2}

として,s領域の伝達関数z領域の伝達関数に変換する手法です。ここでT_{s}はサンプリング周期です。

動機と方法

双一次変換については,各種教科書・参考書で「変換できる」という記述は見掛けるのですが,実際に(記号計算として)変換した結果はあまり見たことがありませんでした。 そこで,Pythonの数式処理ライブラリSymPyを用いて,計算してみることにしました。

結果

連続系の様々な伝達関数を双一次変換してみました。結果は下表をご覧下さい。

続きを読む

LTspice用制御系ライブラリContraille開発中

Analog Devices社が無償で提供しているLTspice XVIIは回路シミュレータとして大変強力ですが,MATLAB/SimulinkやPSCAD/EMTDCにあるような「信号」という概念がありません。すべてが回路です。SimulinkやPSCADにあるようないわゆる「制御ブロック」を標準では持っていないので,制御系を作ろうとするとOPアンプで作るか,Arbitrary behavioral voltage sourceを組み合わせて作るしかありませんでした。

続きを読む

最初の記事

はじめに

電気系の技術者として15年以上は生活してきましたが,自分の中に集積がないことに気が付きました💦 本ブログを通じて,学び直しながらoutputしてみようと思います。

試してみる

ところで,はてなブログでは数式が書けたりするんでしょうか?

 e^{\boldsymbol{A} t} = \mathcal{L}^{-1} \left [ (s \boldsymbol{I} - \boldsymbol{A})^{-1} \right ] \tag{1}

おおっ! 表示されてますね!