いまさら聞けないデジタル電源超入門 第5回 デジタルフィルタ編

投稿者: 上司豊 投稿日:

デジタル電源超入門 第4回では、PWMの動作について解説しました。

過去のデジタル電源超入門は、以下のリンクにまとまっていますので、ご覧ください。
いまさら聞けないデジタル電源超入門 まとめ

第5回では、デジタルフィルタについて解説させて頂きます。

フィルタとは

フィルタとはいろいろな周波数の信号が混ざっている信号から、ある範囲の周波数の信号だけ取り出すときに使われます。
家庭の換気扇を考えてみますと、換気扇のフィルタはゴミや汚れをそこでストップさせ、きれいな空気だけを通します。

例えば【図1】のように、50Hzの信号の上に1kHzのノイズが乗った信号があるとします。

200Hz以上の信号をカットするローパスフィルタを通すと、1kHzの信号が消え、50Hzの信号だけを取り出すことができます。

デジタル電源では、プログラムの中でデジタルフィルタを使って制御を行います。
そのため今回は、デジタルフィルタについて解説します。

【図1】フィルタの例

ローパスフィルタ

アナログフィルタの回路は非常に簡単で、抵抗とコンデンサで作ることができます。
それではまず最初に、ローパスフィルタについて解説します。

アナログローパス・フィルタは【図2】のような回路構成および周波数特性になっています。

【図2】アナログローパス・フィルタ

時間関数では

$$ f(t) = 1 – e^{-\frac{1}{CR}} $$

伝達関数は

$$ G(s) = \frac{V{out}(s)}{V{in}(s)} = \frac{\frac{1}{CR}}{s+\frac{1}{CR}}=\frac{a}{s+a} $$

となります。

さて、このアナログローパス・フィルタをデジタルに変換するには、フィルタをアナログの
$s$平面から$z$平面に変換する必要があります。

$$ S =\frac{2}{T}\frac{Z-1}{Z+1} $$

を伝達関数に代入することにより、デジタルフィルタの一般形に変換することができます。

これを双一次変換と言います。
それでは双一次変換を行ってみましょう。

$$ G(s) = \frac{a}{s+a} =\frac{a}{\frac{2}{T}\frac{Z-1}{Z+1}+a} $$

$$ A = \frac{2}{T×a} $$

とすると

$$ G(s) = \frac{Z+1}{(A+1)Z-A+1} $$

ここで入力を$x$、出力を$y$とすると、

$$ (A+1)y+(-A+1)y_0= x+x_0 $$

$x_0$、$y_0$は、一つ前の入力出力となります。
これを$y$についてまとめると、

$$ y= \frac{1}{A+1}(x+x_0+(A-1)y_0) $$

となります。

Scideamによるローパスフィルタのシミュレーション

それではScideamを使って、ローパスフィルタのシミュレーションを行ってみましょう。

シミュレーションモデルについて

本モデルは、電源パワエレ向け高速回路シミュレータScideam(サイディーム)で動作可能です。
本記事のモデルは以下からダウンロードしてください。

Scideamを立ち上げ、FileからLPF.sファイルを開くと、【図3】のアナログ・ローパスフィルタの回路が表示されます。

【図3】アナログローパス・フィルタの回路

それでは、デジタルフィルタのプログラムを見てみましょう。

画面上部のScriptアイコンをクリックした後、画面右にスクリプト・エクスプローラにあるDigitalLPFをダブルクリックすると、【図4】のプログラムが表示されます。

【図4】デジタルローパス・フィルタのプログラム

サンプリング周波数 fs=100kHz、カットオフ周波数 fc=1kHzでパラメータを計算すると、
下図のようになります。

それでは、シミュレータを実行させてみましょう。

Scideamではアナログフィルタ回路とデジタルフィルタ・プログラムを同時にシミュレーションして表示できます。

画面上部でWaveformを選び実行すると、【図5】のようなチャートが表示されます。
出力画面を切り替えて、アナログフィルタとデジタルフィルタの出力を確認してください。

【図5】 アナログフィルタとデジタルフィルタ

このように、アナログフィルタをデジタルフィルタで再現できることが確認できます。

演習

プロセッサのサンプリング周波数を100kHzから10kHzに変更した時の、デジタルローパス・フィルタの動作を確認してみましょう。

Circuit Editorの画面で画面右側のコンフィグに選び、サブ周波数を100kHzから10kHzに変更します。

サンプリング周波数の変更に伴い、プログラムのパラメータを下記の様に変更します。

実行ボタンをクリックして、シミュレーションを実行すると、【図6】の結果が得られます。

このチャートを見ると、サンプリング周波数が低いと、アナログフィルタと同じ特性が得られず、デジタルフィルタでアナログフィルタを近似できなくなることが分かります。

【図6】サンプリング周波数が遅いときのシミュレーション結果

ハイパスフィルタ

ローパスフィルタと同様に、ハイパスフィルタの回路構成周波および数特性は【図7】のようになります。

【図7】アナログバイパス・フィルタ

時間関数は

$$f(t) = \frac{1}{2 \pi CR}$$

その伝達関数は

$$G(s) = \frac{V_{out(s)}}{V_{in(s)}}= \frac{s}{s+\frac{1}{CR}} = \frac{s}{s+a} $$

となります。

$$s = \frac{2}{T} \frac{Z-1}{Z+1} $$

を代入すると

$$G(s) = \frac{ \frac{2}{T} \frac {Z-1}{Z+1}}{ \frac{2}{T} \frac{Z-1}{Z+1}+a} = \frac{2(Z-1)}{2(Z-1)+aT(Z+1)} $$

$$ A = \frac{2}{T\times a} $$

とすると

$$G(s) = \frac{2A(Z-1)}{2A(Z-1)+2(Z+1)}=\frac{A(Z-1)}{A(Z-1)+(Z+1)} $$

$$G(s) = \frac{AZ-A}{(A+1)Z+-A+1} $$

最終的に

$$ y = \frac{1}{A+1}(x+x_0+(A-1)y_0) $$

となります。ここで$x_0$、$y_0$は、ひとつ前の入力および出力となります。

それではScideamで、ハイパス・フィルタのシミュレーションを行ってみましょう。

シミュレーションモデルについて

本モデルは、電源パワエレ向け高速回路シミュレータScideam(サイディーム)で動作可能です。
本記事のモデルは以下からダウンロードしてください。

Scideamを立ち上げ、ダウンロードしたHPF.sファイルを開きます。
【図8】のような回路となります。

【図8】 アナログハイパス・フィルタ回路

次に、画面上部のスクリプト・アイコンをクリックして、
画面右側のスクリプト・エクスプローラでDigitalHPFをダブルクリックすると、
画面中央に【図9】のプログラムが表示されます。

【図9】 デジタルハイパス・フィルタのプログラム

Waveformを選択して実行すると、【図10】のチャートが表示されます。
画面ではアナログとデジタルを切り替えて表示されています。

このチャート見ると、アナログハイパス・フィルタもデジタルハイパス・フィルタで再現できることが分かります。

【図10】アナログハイパス・フィルタおよびデジタルハイパス・フィルタ出力

まとめ

シミュレーション結果でも分かるように、プログラムでデジタルフィルタを再現することができます。

今回シミュレーションした、二つのデジタルフィルタは、次の章で行うデジタル制御で使用します。

次回はいよいよ、デジタル電源の重要な要素である、デジタル制御になります。

今回ご説明したデジタルフィルタが、どのように使われるのか、ご期待ください。

Scideamについて
もっと詳しく
機能や価格
30日間試用について
製品ページへ

お問合せ


アバター

上司豊

現在芝浦工業大学電気工学科で非常勤講師をしています。 デジタル電源などエネルギーシステムについて講義を行っています。