AnalogDiscoveryを試す

2014/11/30からのアクセス回数 1791

LCノッチ・フィルタ回路

特定の周波数成分を除去するフィルターをノッチフィルターを呼びます。

今回は、R(抵抗), L(コイル), C(コンデンサー)を使ったLCノッチフィルタをAnalogDiscovery、 LTSpice、Sageを使って試してみましょう。

LTSpiceを使った周波数解析

LTSpiceを使って以下の様なLCノッチ・フィルターの回路を作成します。

モデルは、以下のファイルを使用しました。

LC_NotchFilter_cir.png

AC解析を実行する

Runコマンド(回路図で右クリックしてRunを選択)を実行すると、以下の様な周波数特性が表示されます。

LC_NotchFilter_Network.png

AnalogDiscoveryで測定してみる。

LCノッチ・フィルターの回路を以下の様にブレッドボードに組み、AnalogDiscoveryと接続します。

LC_NotchF_Setting.png

接続は、以下の通りです。

AnalogDiscoveryブレッドボード
Orange: Scope Ch1+Vi
Orange/White: Scope Ch1-GND
Blue: Scope Ch2+Vo
Blue/White: Scope ch2-GND
Yellow: Wave Gen 1Vi

波形を測る

最初に中心周波数15.7kHzの方形波を入力したときの出力波形を見てみます。

ちょうど、方形波から正弦波を引いたような形をしています。

th_LC_NotchF_15.7KHz.jpg

周波数特性を測る

ネットワーク・アナライザを使って周波数特性を実測します。 LTSpiceのシミュレーションと同じ形の周波数特性が測定できました。

th_LC_NotchF_network.jpg

Sageを使ってグラフを表示

Sageを使ってVoでの周波数特性を計算してみましょう。

ここで紹介するSageのノートは、以下のURLで公開しています。

LCノッチ・フィルターを解析的に求めるために、Wikipediaから直列RLC回路の電源の図を引用します。

RLC_series_circuit_v1.svg.png

入力電圧Vを時間の関数\( v_i(t) \)とすると、以下の関係式が成り立ちます。

$$ R i(t) + L\frac{di}{dt} + \frac{1}{C} \int_{-\infty}^t i(\tau) d\tau = v_i(t) $$

この式をラプラス変換すると、以下の関係式が求まります。

$$ V_i(s) = I(s)\left( R + Ls + \frac{1}{Cs}\right) $$

Sageで伝達関数をプロットする

AnalogDiscoveryを試す/01-CR積分回路の場合には、伝達関数の振幅特性と位相特性を計算してからプロットしましたが、 今回は伝達関数から直接振幅特性と位相特性をプロットしてみます。

上記の式から伝達関数を以下の様に定義します。

$$ H(s) = \frac{V_O(s)}{V_i(s)} = \frac{Ls + \frac{1}{Cs}}{ R + Ls + \frac{1}{Cs}} $$

以下の方法は、伝達関数Hの形が異なるだけで、他はAnalogDiscoveryを試す/02-CR微分回路と同じです。

Sageへの入力:

# 伝達関数から周波数特性を求める
(s, f,R,C,L) = var('s f R C L')
H = (L*s + 1/(C*s))/(R + L*s +1/(C*s)) 

表示すると、 Sageへの入力:

show(H)

eq6.png

ラプラス変数sをjω、ω=2πfを代入すると、 Sageへの入力:

# s = jω, ω= 2πfを代入すると
H(f) = H.subs_expr(s == 2*i*pi*f)

db単位で表示するために、toDb関数を以下の様に定義します。

# 電気ではデジベルで表示するため、toDb関数を定義する
def toDb(v):
    return 20*log(abs(v), 10) 

振幅特性をプロットします。 Sageへの入力:

# 直接表示すると'unable to simplify to float approximation'のエラーがでるので、lambda式で回避した。

plot(lambda f: toDb(H(f, R=470, C=0.022*10^-6, L=4.7*10^-3)).n(), [f, 5*10^3, 100*10^3], scale="semilogx", figsize=(5, 3), plot_points=500) 

gain_notch.png

位相特性は、定義から以下の様になります。

# 位相は以下の様になる
Phi(f) = arctan(imaginary(H(f))/real(H(f)))

位相を度で表示するために、toDeg関数を以下の様に定義します。

def toDeg(v):
    return v*180/pi 

位相特性をプロットすると以下の様になります。

Sageへの入力:

# プロットに少し時間がかかります。

plot(lambda f: toDeg(Phi(f, R=470, C=0.022*10^-6, L=4.7*10^-3)).n(), [f, 5*10^3, 100*10^3], scale="semilogx", figsize=(5, 3), plot_points=300) 

phase_notch.png

コメント

選択肢 投票
おもしろかった 2  
そうでもない 0  
わかりずらい 0  

皆様のご意見、ご希望をお待ちしております。勉強会で分からなかったこと等、お気軽に問い合わせて下さい。

スパム防止に画像の文字列も入力してください。


(Input image string)


添付ファイル: fileth_LC_NotchF_network.jpg 293件 [詳細] fileth_LC_NotchF_15.7KHz.jpg 312件 [詳細] fileLC_NotchF_Setting.png 328件 [詳細] fileRLC_series_circuit_v1.svg.png 303件 [詳細] filegain_notch.png 285件 [詳細] filephase_notch.png 323件 [詳細] fileeq6.png 316件 [詳細] fileLC_NotchFilter.asc 241件 [詳細] fileLC_NotchFilter_Network.png 317件 [詳細] fileLC_NotchFilter_cir.png 349件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-02-27 (月) 08:31:45 (85d)
SmartDoc