AnalogDiscoveryを試す/04-LCバンドパス・フィルタ
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[AnalogDiscoveryを試す/03-LCノッチ・フィルタ]]
[[AnalogDiscoveryを試す]]
#contents
2014/11/30からのアクセス回数 &counter;
完成しました!
** LCバンドパス・フィルタ回路 [#y1ea78d3]
特定の周波数成分を通すフィルターをバンドパス・フィルター...
今回は、R(抵抗), L(コイル), C(コンデンサー)を使った...
LTSpice、Sageを使って試してみましょう。
** LTSpiceを使った周波数解析 [#g8bce5a2]
LTSpiceを使って以下の様なLCバンドパス・フィルターの回路を...
((抵抗の値がノッチフィルターと異なり10KΩになっているで注...
モデルは、以下のファイルを使用しました。
- &ref(LC_BPF.asc);
&ref(LC_BPF_cir.png);
*** AC解析を実行する [#mc6d2613]
Runコマンド(回路図で右クリックしてRunを選択)を実行する...
約15kHz当たりに中心周波数があります。
&ref(LC_BPF_Network.png);
** AnalogDiscoveryで測定してみる。 [#e1ba71c3]
LCバンドパス・フィルターの回路を以下の様にブレッドボード...
&ref(LC_BPF_setting.png);
接続は、以下の通りです。
| AnalogDiscovery | ブレッドボード |h
| Orange: Scope Ch1+ | Vi |
| Orange/White: Scope Ch1- | GND |
| Blue: Scope Ch2+ | Vo |
| Blue/White: Scope ch2- | GND |
| Yellow: Wave Gen 1 | Vi |
*** 波形を測る [#u141bfaa]
最初に中心周波数15.7kHzの方形波を入力したときの出力波形を...
少しずれていますが、方形波と同じ周波数の正弦波が出力され...
&ref(th_LC_BPF_15.7KHz.jpg);
*** 周波数特性を測る [#k268b462]
ネットワーク・アナライザを使って周波数特性を実測します。
LTSpiceのシミュレーションと同じ形の周波数特性が測定できま...
&ref(th_LC_BPF_network.jpg);
** Sageを使ってグラフを表示 [#n9d8f841]
Sageを使ってVoでの周波数特性を計算してみましょう。
ここで紹介するSageのノートは、以下のURLで公開しています。
- http://www15191ue.sakura.ne.jp:8000/home/pub/51/
今回は、伝達関数を連立方程式を使って求めます。
Vo点での電流は、以下の関係を持ちます。
$$
i_R = i_C + i_L
$$
また、Voでの電圧は、コンデンサーもコイルも同じなので、以...
$$
L \frac{di_L}{dt} = \frac{1}{C} \int_{-\infty}^t i_C(\tau...
$$
入力電圧Viは、抵抗に流れた電流\(i_R\)とコイルに流れた電流...
$$
R i_R + L \frac{di_L}{dt} = v_i(t)
$$
これらの式を組み合わせると以下の連立方程式が成り立ちます。
$$
\left\{
\begin{eqnarray}
i_R & = &i_C + i_L \\
L \frac{di_L}{dt} & = & \frac{1}{C} \int_{-\infty}^t i_C(...
v_i(t) & = & R i_R + L \frac{i_L}{dt}
\end{eqnarray}
\right.
$$
これをラプラス変換表を使って書き替えると以下の様になりま...
(( ラプラス変換表は、[[AnalogDiscoveryを試す/01-CR積分回...
$$
\left\{
\begin{eqnarray}
I_R & = & I_C + I_L \\
LsI_L & = & \frac{1}{Cs} I_C \\
V_i & = & R I_R + Ls I_L
\end{eqnarray}
\right.
$$
1番目の式を使って2番目と3番目の式を書き替えると以下の様に...
$$
\left\{
\begin{eqnarray}
I_C & = & C L s^2 I_L \\
V_i & = & I_L \{ R(1 + C L s^2) + Ls \}
\end{eqnarray}
\right.
$$
これから伝達関数Hは以下の様に求まります。
((ここで、\(V_o = V_L\)を使っています。))
$$
H = \frac{V_o}{V_i} = \frac{Ls}{RCLs^2 + Ls + R}
$$
*** Sageで伝達関数をプロットする [#vcde31be]
上記の式から伝達関数を以下の様に定義します。
$$
H = \frac{V_o}{V_i} = \frac{Ls}{RCLs^2 + Ls + R}
$$
以下の方法は、伝達関数Hの形が異なるだけで、他は[[AnalogDi...
Sageへの入力:
#pre{{
# 伝達関数から周波数特性を求める
(s, f,R,C,L) = var('s f R C L')
H = (L*s)/(R*C*L*s^2 + L*s + R)
}}
表示すると、
Sageへの入力:
#pre{{
show(H)
}}
&ref(eq7.png);
ラプラス変数sをjω、ω=2πfを代入すると、
Sageへの入力:
#pre{{
# s = jω, ω= 2πfを代入すると
H(f) = H.subs_expr(s == 2*i*pi*f)
}}
db単位で表示するために、toDb関数を以下の様に定義します。
#pre{{
# 電気ではデジベルで表示するため、toDb関数を定義する
def toDb(v):
return 20*log(abs(v), 10)
}}
振幅特性をプロットします。
Sageへの入力:
#pre{{
# 直接表示すると'unable to simplify to float approximatio...
plot(lambda f: toDb(H(f, R=10*10^3, C=0.022*10^-6, L=4.7*...
}}
&ref(gain_BPF.png);
位相特性は、定義から以下の様になります。
#pre{{
# 位相は以下の様になる
Phi(f) = arctan(imaginary(H(f))/real(H(f)))
}}
位相を度で表示するために、toDeg関数を以下の様に定義します。
#pre{{
def toDeg(v):
return v*180/pi
}}
位相特性をプロットすると以下の様になります。
Sageへの入力:
#pre{{
# プロットに結構時間がかかります(5分くらい)。
plot(lambda f: toDeg(Phi(f, R=10*10^3, C=0.022*10^-6, L=4...
}}
&ref(phase_BPF.png);
** コメント [#z09654b7]
#vote(おもしろかった[4],そうでもない[0],わかりずらい[0])
皆様のご意見、ご希望をお待ちしております。勉強会で分から...
スパム防止に画像の文字列も入力してください。
- LTSpiceがMac版だったのに気づいてませんでした。そんなの...
- ながやまさん、ご指摘ありがとうございます。式を修正しま...
#comment_kcaptcha
終了行:
[[AnalogDiscoveryを試す/03-LCノッチ・フィルタ]]
[[AnalogDiscoveryを試す]]
#contents
2014/11/30からのアクセス回数 &counter;
完成しました!
** LCバンドパス・フィルタ回路 [#y1ea78d3]
特定の周波数成分を通すフィルターをバンドパス・フィルター...
今回は、R(抵抗), L(コイル), C(コンデンサー)を使った...
LTSpice、Sageを使って試してみましょう。
** LTSpiceを使った周波数解析 [#g8bce5a2]
LTSpiceを使って以下の様なLCバンドパス・フィルターの回路を...
((抵抗の値がノッチフィルターと異なり10KΩになっているで注...
モデルは、以下のファイルを使用しました。
- &ref(LC_BPF.asc);
&ref(LC_BPF_cir.png);
*** AC解析を実行する [#mc6d2613]
Runコマンド(回路図で右クリックしてRunを選択)を実行する...
約15kHz当たりに中心周波数があります。
&ref(LC_BPF_Network.png);
** AnalogDiscoveryで測定してみる。 [#e1ba71c3]
LCバンドパス・フィルターの回路を以下の様にブレッドボード...
&ref(LC_BPF_setting.png);
接続は、以下の通りです。
| AnalogDiscovery | ブレッドボード |h
| Orange: Scope Ch1+ | Vi |
| Orange/White: Scope Ch1- | GND |
| Blue: Scope Ch2+ | Vo |
| Blue/White: Scope ch2- | GND |
| Yellow: Wave Gen 1 | Vi |
*** 波形を測る [#u141bfaa]
最初に中心周波数15.7kHzの方形波を入力したときの出力波形を...
少しずれていますが、方形波と同じ周波数の正弦波が出力され...
&ref(th_LC_BPF_15.7KHz.jpg);
*** 周波数特性を測る [#k268b462]
ネットワーク・アナライザを使って周波数特性を実測します。
LTSpiceのシミュレーションと同じ形の周波数特性が測定できま...
&ref(th_LC_BPF_network.jpg);
** Sageを使ってグラフを表示 [#n9d8f841]
Sageを使ってVoでの周波数特性を計算してみましょう。
ここで紹介するSageのノートは、以下のURLで公開しています。
- http://www15191ue.sakura.ne.jp:8000/home/pub/51/
今回は、伝達関数を連立方程式を使って求めます。
Vo点での電流は、以下の関係を持ちます。
$$
i_R = i_C + i_L
$$
また、Voでの電圧は、コンデンサーもコイルも同じなので、以...
$$
L \frac{di_L}{dt} = \frac{1}{C} \int_{-\infty}^t i_C(\tau...
$$
入力電圧Viは、抵抗に流れた電流\(i_R\)とコイルに流れた電流...
$$
R i_R + L \frac{di_L}{dt} = v_i(t)
$$
これらの式を組み合わせると以下の連立方程式が成り立ちます。
$$
\left\{
\begin{eqnarray}
i_R & = &i_C + i_L \\
L \frac{di_L}{dt} & = & \frac{1}{C} \int_{-\infty}^t i_C(...
v_i(t) & = & R i_R + L \frac{i_L}{dt}
\end{eqnarray}
\right.
$$
これをラプラス変換表を使って書き替えると以下の様になりま...
(( ラプラス変換表は、[[AnalogDiscoveryを試す/01-CR積分回...
$$
\left\{
\begin{eqnarray}
I_R & = & I_C + I_L \\
LsI_L & = & \frac{1}{Cs} I_C \\
V_i & = & R I_R + Ls I_L
\end{eqnarray}
\right.
$$
1番目の式を使って2番目と3番目の式を書き替えると以下の様に...
$$
\left\{
\begin{eqnarray}
I_C & = & C L s^2 I_L \\
V_i & = & I_L \{ R(1 + C L s^2) + Ls \}
\end{eqnarray}
\right.
$$
これから伝達関数Hは以下の様に求まります。
((ここで、\(V_o = V_L\)を使っています。))
$$
H = \frac{V_o}{V_i} = \frac{Ls}{RCLs^2 + Ls + R}
$$
*** Sageで伝達関数をプロットする [#vcde31be]
上記の式から伝達関数を以下の様に定義します。
$$
H = \frac{V_o}{V_i} = \frac{Ls}{RCLs^2 + Ls + R}
$$
以下の方法は、伝達関数Hの形が異なるだけで、他は[[AnalogDi...
Sageへの入力:
#pre{{
# 伝達関数から周波数特性を求める
(s, f,R,C,L) = var('s f R C L')
H = (L*s)/(R*C*L*s^2 + L*s + R)
}}
表示すると、
Sageへの入力:
#pre{{
show(H)
}}
&ref(eq7.png);
ラプラス変数sをjω、ω=2πfを代入すると、
Sageへの入力:
#pre{{
# s = jω, ω= 2πfを代入すると
H(f) = H.subs_expr(s == 2*i*pi*f)
}}
db単位で表示するために、toDb関数を以下の様に定義します。
#pre{{
# 電気ではデジベルで表示するため、toDb関数を定義する
def toDb(v):
return 20*log(abs(v), 10)
}}
振幅特性をプロットします。
Sageへの入力:
#pre{{
# 直接表示すると'unable to simplify to float approximatio...
plot(lambda f: toDb(H(f, R=10*10^3, C=0.022*10^-6, L=4.7*...
}}
&ref(gain_BPF.png);
位相特性は、定義から以下の様になります。
#pre{{
# 位相は以下の様になる
Phi(f) = arctan(imaginary(H(f))/real(H(f)))
}}
位相を度で表示するために、toDeg関数を以下の様に定義します。
#pre{{
def toDeg(v):
return v*180/pi
}}
位相特性をプロットすると以下の様になります。
Sageへの入力:
#pre{{
# プロットに結構時間がかかります(5分くらい)。
plot(lambda f: toDeg(Phi(f, R=10*10^3, C=0.022*10^-6, L=4...
}}
&ref(phase_BPF.png);
** コメント [#z09654b7]
#vote(おもしろかった[4],そうでもない[0],わかりずらい[0])
皆様のご意見、ご希望をお待ちしております。勉強会で分から...
スパム防止に画像の文字列も入力してください。
- LTSpiceがMac版だったのに気づいてませんでした。そんなの...
- ながやまさん、ご指摘ありがとうございます。式を修正しま...
#comment_kcaptcha
ページ名:
SmartDoc