ローパスフィルタの動作とシミュレーション

さまざまな周波数のうち、低周波数信号のみを透過させるフィルタのことをローパスフィルタといいます。このページでは、ローパスフィルタの特性について、理論計算およびSimulinkを用いたシミュレーションを行い、詳細に理解していきます。

ローパスフィルタの概要

ローパスフィルタは、様々な周波数信号のうち低周波信号のみを透過させるフィルタになります。その動作イメージを図1に示します。

図1 ローパスフィルタの動作イメージ
低周波の信号を透過し、高周波の信号を遮断する

図1では3種類の周波数の信号を入力し、最も低周波の信号のみを取り出しています。この時、どの周波数の信号を遮断するかはローパスフィルタの設計で変更することができます。以下、ローパスフィルタの詳細について考えていきます。

ローパスフィルタの回路例

ローパスフィルタの回路としては複数の種類があります。ここでは3種類の回路構成を紹介します。

RCフィルタ

ローパスフィルタの代表的な回路がRCフィルタです。その回路図を図2に示します。

図2 RC回路によるローパスフィルタ

キャパシタのインピーダンスは高周波ほど小さいので、高周波ほどキャパシタ側に流れていくことが直感的にも分かると思います。

LCフィルタ

ローパスフィルタとしてLCフィルタも使われます。その回路図を図3に示します。

図3 LC回路によるローパスフィルタ

インダクタのインピーダンスは低周波ほど小さいので低周波ほど後段に流れていくことが直感的にわかります。また、キャパシタのインピーダンスは高周波ほど小さいので、高周波ほどキャパシタ側に流れていくことが直感的にわかります。

これらの二重の効果のためフィルタの遮断性能はRCフィルタよりも優れています。

LR フィルタ

LRフィルタもローパスフィルタとして動作させることが可能です。その回路図を図4に示します。

図4 LR回路によるローパスフィルタ

インダクタのインピーダンスは低周波ほど小さいので低周波ほど後段に流れていくことが直感的にわかります。
 
これらのフィルタのうち、ここではRCフィルタを取り上げ、その特性を理解していきます。他のフィルタについても同様の考え方で特性を導出できます。

RCフィルタの伝達関数とボード線図

RCフィルタの特性を導出するために、入力信号と出力信号の比(=伝達関数)を考えます。RCフィルタ回路にインピーダンスを書き込んだ回路図を図5に示します。

図5 RC回路(インピーダンス情報追加)

この回路図から伝達関数とボード線図を導出します。

RCフィルタの伝達関数の導出

インピーダンスの関係から、出力電圧は次のとおり計算することができます。

$$V_{out} = \frac{\frac{1}{j \omega C}}{\frac{1}{j \omega C} + R} = \frac{1}{1+j \omega C R}V_{in}$$

入力電圧と出力電圧の比である伝達関数は次のとおりです。

$$\frac{V_{out}}{V_{in}} = \frac{1}{1+j \omega C R}$$

この伝達関数からボード線図を導出します。

RCフィルタのボード線図の導出

入力と出力の比からボード線図を書きます。ボード線図はゲインと位相の周波数依存性を記述したものなので、ゲインと位相を計算します。

ゲインと位相の計算

伝達関数の分母に虚数単位があるため、分子側に持ってくるように式変形します。

$$\frac{V_{out}}{V_{in}} = \frac{1}{1+j \omega C R} = \frac{1-j \omega CR}{1 + (\omega CR)^2}$$

従って、ゲインは次のように表せます。

$$ Gain = |\frac{V_{out}}{V_{in}}| = \frac{ \sqrt{1 + (\omega CR)^2}}{1 + (\omega CR)^2} = \frac{1}{\sqrt{1 + (\omega CR)^2}}$$

また、ゲインが-3dB( \(\frac{1}{\sqrt{2}}\) )になる角周波数(rad/s)は次のとおりです。

$$ \omega_c = \frac{1}{CR}$$

また、位相については次のとおりです。

$$phase = – \atan \omega CR$$

このゲインと位相をプロットしたものがボード線図になります。

MATLABによるボード線図のプロット

前述のGainとphaseを用いてボード線図を記述することができますが、MATLABでは伝達関数をベースにボード線図を書くことができます。

MATLABでは次のようなコードを書くことでボード線図を記述できます。https://jp.mathworks.com/help/control/ref/dynamicsystem.bode.html

H = tf([1 0.1 7.5],[1 0.12 9 0 0]);
bode(H)

第一行目はtf関数を用いて、伝達関数をHという変数に書き込んでいます。
第二行目にてbode関数を用いて、伝達関数をプロットするようにします。

次に実際にRCフィルタのボード線図を書いてみます。R=1Ωで固定し、C=0.1mF, 1mF, 10mFの3パターンでボード線図をプロットします。プロットした結果を図6に示します。

図6 RCフィルタのボード線図
低周波ではゲインは高く、高周波でのゲインは低い

いずれのプロットも低周波数側ではゲイン0(入力信号と等倍)であり、カットオフ周波数以降でゲインが小さくなるプロットを示しています。

カットオフ周波数はグラフから100rad/s, 1000rad/s, 10000rad/sとなりますが、これは1/CRの理論値と一致します。

Simulink・Simscapeを用いた周波数応答測定

RCフィルタは簡単な回路なため理論値を導出することが可能でしたが、複雑な回路では解析解を取得することが困難なことがあります。このような場合は、Simulinkの周波数応答測定機能を使うとボード線図を取得することができます。

ボード線図の取得方法はこのページやMathWorksのDocumentを参考にしてください。周波数応答のオフライン推定

RCフィルタのSimscapeモデル

図7にSimscapeモデルを示します。

図7 SimscapeによるRCフィルタ回路の周波数応答測定

図2のようなRCフィルタに対して、Controlled Voltage Sourceブロックを追加しています。このブロックを追加することで周波数応答を測定することができます。なおフィルタのパラメータとしてはR=1Ω、C=1mFとしています。

このモデルに対して周波数応答推定器を活用してボード線図を取得します。

周波数応答推定の結果

各種設定をして周波数応答推定器を動作させて取得したボード線図が図8です。
入力信号は10~10000Hz, 振幅は0.01に設定しています。(1Vの1%を与えています。)

図8 周波数応答推定器によるボード線図

高周波ほどゲインが小さくなり、ローパスフィルタの特性を反映しているように見えます。この結果が解析解と一致するか確認します。

Simscapeによる周波数応答とMATLABによる解析解の比較

周波数応答推定器を活用してボード線図を取得できたので、この結果が理論値と一致しているか確認します。理論値とSimulinkによる周波数応答推定結果をプロットしたものを図9に示します。

図9 理論値とSimscapeによる周波数応答の結果比較
位相が若干ずれているが、おおむね結果は一致している

周波数応答推定結果(オレンジ色)は概ね理論値(青色)と一致していることが分かります。ただし、細かいところでいくつか差異があります。
 
一つ目の差異は、入力した周波数範囲のため理論値ほど広範囲に取得していません。これは、周波数応答推定器の設定によるものです。周波数推定では実験的にデータを取得するため、すべての周波数に対して測定できるわけではありません。
 
二つ目の差異は、位相遅れです。Simulinkによる結果の方が低周波における位相遅れが大きくなっています。この原因は筆者は分かっていません。(シミュレーション起因のものかと思いますが…。)
 
いくつか差異があるものの、周波数応答推定器を用いることで解析解を求めなくても周波数応答を取得することができます。

まとめ

このページでは、ローパスフィルタについて紹介しました。ポイントは次のとおりです。

  • ローパスフィルタとしてRCフィルタ、LCフィルタ、LRフィルタなどがあります。
  • RCフィルタについて、伝達関数、ゲイン、カットオフ周波数、位相を導出しました。
  • MATLABで伝達関数からボード線図を取得する方法を紹介しました。
  • Simulinkの周波数応答推定器を利用してSimscapeモデルの周波数応答を推定しました。その結果、概ね理論値と一致したボード線図を取得することができました。
タイトルとURLをコピーしました