AnalogDiscoveryを試す

2014/11/8からのアクセス回数 6613

待望のAnalogDicovery

秋月でも購入できるようになったAnlogDiscoveryを遅ればせながら入手することができました。

私の着目するAnalogDiscoveryの特徴は、以下の点にあります。*1

  • 2チャンネル・オシロスコープ
  • 2チャンネル任意波形発生器
  • ネットワーク・アナライザ
  • 2チャンネルDC電源(PS+, PS-)

他にもロジックアラライザーの機能もありますが、ソースが公開されていないので そちらはLabToolsを使用することにします。

AnalogDiscovery.png

ピンの配置は、以下の通りです。

Analog_Discovery_pin.png

CR積分回路

AnalogDiscoveryで最初に試すのは、CR積分回路です。以下にWikiから引用した回路図を示します。

250px-Series-RC.svg.png

LTSpiceを使って方形波に対するVcの変化を見る

AnalogDiscoveryで実験をする前にLTSpiceを使って方形波に対するVcの応答をシミュレーションしてみます。 *2

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

LTSpiceで以下の回路を作成します。

CR_Int_cir.png

50Hzでのシミュレーションの結果は、以下の様になりました。

CR_Int_Spice_50Hz.png

同様に500Hz, 5kHzの結果を示します。 *3

CR_Int_Spice_500Hz.png

5kHzは、以下の様になります。

CR_Int_Spice_5KHz.png

AnalogDiscoveryを使ってVcを測定する

トラ技2014年5月号では、アルミの箱を使うように進めていたのですがまだ入手できていないので、 机の上での測定になります。*4 少しでも精度が良くなるように奮発してフィルムコンデンサーを使いました。

以下のようのブレッドボードに回路を組み、AnalogDiscoveryと接続しました。 *5

CR_Int_setting.png

AnalogDiscoveryを使った測定結果

方形波の周波数を50Hz, 500Hz, 5kHzに変えて、Vcの応答を測定してみました。

回路の時定数\(\tau\)は、\(C_1 R_1 = 10K \times 0.1 \mu = 1 ms \)となっています。

50Hzの場合、コンデンサーに十分電荷が蓄積された後、放電が開始されている様子が観られます。

th_CR_Int_50Hz.jpg

500Hzでは、方形波の変化が時定数の1msとなっており、方形波を積分したときの三角波に近い形を示しています。 *6

th_CR_Int_500Hz.jpg

5kHzになるとほとんど変化しなくなり、ローパスフィルターの性質がでてきます。

th_CR_Int_5KHz.jpg

周波数特性を測る

AnalogDiscoveryを購入する動機になったのが、周波数特性を計測する機能です。

ネットワーク・アナライザを使って周波数特性を測ったのが、以下のグラフです。 これは、入力波と出力はの2チャンネルのアナログ測定値から計算しており、計測には少々時間が掛かります。

th_CR_Int_network.jpg

CR積分回路の意味を考える

50HzのVcの応答を見ると、コンデンサーに蓄積された電荷が方形波の電圧が逆になったときに、 放電している様子が分かります。

微分方程式を解いて、CR回路を計算するのは、sage/微分方程式を解いてみるで紹介していますので、 ここではラプラス変換を使って、Vcの応答を計算してみます。

参考にしたのは、間邊 幸三郎さんのサイトです。*7

ラプラス変換ではラプラス積分を直接計算するのではなく、既存の関数のラプラス変換表を使って計算するのが特徴です。

CR積分回路のラプラス変換

CR積分回路と方形波の入力の関係を ラプラス変換とその使い方5 いろいろな波形の過渡現象 の図11から引用します。

11.png

この回路の入力波とRとCの電圧の関係から以下の式が成り立ちます。 *8

$$ R i + \frac{\int i dt}{C} = E \left\{ u(t) - u(t - T)\right\} $$

この式を7 t推移法則とステップ関数のラプラス変換\( \frac{1}{s} \)、6 積分法則を使ってラプラス変換すると以下の様になります。

$$ R I(s) + \frac{I(s) + q(0)}{sC} =E \frac{1 - e^{-Ts}}{s} $$

これから\(I(s)\)を求めると、以下の様になります。

$$ I(s) = \frac{1 - e^{-Ts}}{s ( R + \frac{1}{sC} )} E = \frac{E}{R} \frac{(1 - e^{-Ts})}{ ( s + \frac{1}{CR} ) } $$

ラプラス逆変換を\( L^{-1}(s) \)と表すと\( i \)は、以下の様に求まります。 $$ i = \frac{E}{R} L^{-1} \left \{ (1 - e^{-Ts}) \frac{1}{s + \frac{1}{CR}} \right \} $$

線形法則で分配して、 $$ i = \frac{E}{R} \left \{ L^{-1} \frac{1}{s + \frac{1}{CR}} - L^{-1} \frac{e^{-Ts}}{s + \frac{1}{CR}} \right \} $$ これをラプラス変換表を使って以下の様に書き替えます。 $$ i = \frac{E}{R} \left \{ e^{-\frac{1}{CR}t} - e^{-\frac{1}{CR}(t - T) } u(t -T)\right \} $$

電流iからCの両端の電圧Vcは、以下の様に求まります。 $$ V_C = E \left\{ u(t) - u(t - T)\right\} - iR $$

これからt < TのVcは、 $$ V_C = E(1 - e^{-\frac{1}{CR}t}) $$ t >= TのVcは、

$$ V_C = E \left \{ - e^{-\frac{1}{CR}t} + e^{-\frac{1}{CR}(t - T)} \right \} $$

Sageを使ってグラフを表示

出力となるVcの式は分かりましたが、そのままではどんな形になるか分かりづらいです。 そこで、Sageを使ってグラフを表示してみましょう。

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

CRを時間係数\( \tau \)として、VcをSageで表すと以下の様になります。

(t, T, tau, E) = var('t T tau E')
Vc = E*(1*(unit_step(t) - unit_step(t - T)) - e^(-1/tau*t) + e^(-1/tau*(t - T) )* unit_step(t - T)) 

数式を見やすくすると、

show(Vc) 

eq1.png

方形波を以下のように定義します。

# 方形波
U = E*(unit_step(t) - unit_step(t - T)) 

方形波とVcを合わせてプロットする関数plot_Vcを以下の様に定義します。

# 方形波とVcをプロットする関数を定義します
def plot_Vc(Tc):
    fvc(t) = Vc(t, tau=0.001, T=Tc, E=2.0)
    Ut(t) = U(T=Tc, E=2.0)
    vc_plt = plot(fvc(t), [t, 0, 2*Tc], color='blue')
    ut_plt = plot(Ut(t), [t, 0, 2*Tc], color='green')
    (vc_plt + ut_plt).show(figsize=4) 

Tc=0.01、周期50HzでのVcのプロットします。

# Tc=0.01、周期50HzでのVcのプロット
plot_Vc(Tc=0.01) 

plt_50Hz.png

Tc=0.001、周期500HzでのVcのプロットします。

# Tc=0.001、周期500HzでのVcのプロット
plot_Vc(Tc=0.001) 

plt_500Hz.png

Tc=0.0001、周期5kHzでのVcのプロットします。

# Tc=0.0001、周期5kHzでのVcのプロット
plot_Vc(Tc=0.0001) 

plt_5kHz.png

周波数特性

もう一度、最初の図に戻って、CR積分回路の周波数特性を求めてみます。

250px-Series-RC.svg.png

この図から、\( v_{in} \)を式で表現すると以下の様になります。

$$ R i + \frac{\int i dt}{C} = v_{in} $$

これをラプラス変換すると、以下の様になり、 $$ R I(s) + \frac{I(s) + q(0)}{sC} = V_{in} $$\(V_RとV_C\)が分圧しているみると、伝達関数の周波数特性は、以下の様になります。 $$ H_C (s) = \frac{V_C(s)}{V_{in}(s)} = \frac{\frac{1}{Cs}}{R + \frac{1}{Cs}} $$ これを整理すると、以下の式が得られます。 $$ H_C(s) = \frac{1}{RCs + 1} $$

振幅特性は、

$$ \|{H_C(s) }\| $$

位相特性は、sをjωとし、以下のように表されます。 $$ G(j\omega) = \Re{G(j\omega)} + j \Im{G(j\omega)} $$

従って、\( H_C(j\omega) \)の実数部と虚数部に分けると位相角\( \phi(G(j\omega)) \)は、以下の様に求まります。

$$ \phi(G(j\omega)) = \tan^{-1} \frac{\Im(G(j\omega))} {\Re{G(j \omega))}} $$

RSをτとして、\( \phi(G(j\omega)) \)を表し、上下に\( 1 - \tau j \omega\) を掛けて、分母を有理化すると、

$$ G(j\omega) = \frac{1}{1 + \tau^2 \omega^2}( 1 - \tau \omega j) $$

となり、位相特性は以下の様に求まります。

$$ \phi(G(j\omega)) = \tan^{-1} -\tau \omega $$

これをSageを使って計算みます。 ここで、\( s= j \omega = 2 \pi f j \)であることを使います。

Sageへの入力:

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

Sageへの入力:

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

eq2.png

Sageへの入力:

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

Sageへの入力:

# 直接表示すると'unable to simplify to float approximation'のエラーがでるので、lambda式で回避した。
# plot(toDb(Hc(f, R=10000, C=10^-7)).n(), [f, 10, 10000], scale="semilogx", figsize=4, plot_points=1000)
#
plot(lambda f: toDb(Hc(f, R=10000, C=10^-7)).n(), [f, 10, 1000], scale="semilogx", figsize=(5, 3), plot_points=1000)

gain.png

Sageへの入力:

# 位相は以下の様になります。
PhiC(f) = arctan(-2*pi*f*R*C)
show(PhiC)

eq3.png

表示℃で変換する関数を定義する。

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

位相をプロットします。 Sageへの入力:

plot(lambda f: toDeg(PhiC(f, R=10000, C=10^-7)).n(), [f, 10, 1000], scale="semilogx", figsize=(5, 3), plot_points=1000)

phase.png

付録(ラプラス変換規則と主な関数の変換表)

ラプラス変換の基本法則を以下に示します。

法則t関数s関数
1 線形法則\( a f(t) \)\( a F(s) \)
2 線形法則\( f(t) + g(t) \)\( F(s) + G(s) \)
3 相似法則\( f(at) \)\( \frac{1}{a} F \left ( \frac{s}{a} \right ) \)
4 s推移法則\( e^{-at} f(t) \)\( F(s + a) \)
5 微分法則\( \frac{d f(t)}{dt} \)\( sF(s) - f(0) \)
6 積分法則\( \int f(t)dt \)\( \frac{F(s)}{s} + \frac{f^{-1}(0)}{s} \)
7 t推移法則\( f(t - a) \)\( e^{-as} F(s) \)

主な関数のラプラス変換表を以下に示します。*9

t関数s関数
\(\delta\)1
\(u(t)\)\(\frac{1}{s}\)
\(t\)\(\frac{1}{s^{2}}\)
\(t^2\)\(\frac{1}{s^{3}}\)
\(t^n\)\(s^{{(-n - 1)}} \Gamma\left(n + 1\right)\)
\(cos(\omega t)\)\(\frac{s}{{(\omega^{2}+s^{2})}}\)
\(sin(\omega t)\)\(\frac{\omega}{{(\omega^{2} + s^{2})}}\)
\(e^{a t}\)\(-\frac{1}{{(a - s)}}\)
\(t e^{a t}\)\(\frac{1}{{(a - s)}^{2}}\)

コメント

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

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

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

  • いくつかの式のミスを修正しました。 -- 竹本 浩? 2014-11-22 (土) 19:46:52
  • ラプラス変換表の1をu(t)に修正しました。 -- 竹本 浩? 2014-11-22 (土) 20:59:29

(Input image string)


*1 特質すべき点は、ネットワーク・アナライザと2チャンネルDC電源です。これで両電源を必要とするアンプの周波数特性が測定できます。
*2 LTSpiceがMacOSXでも動くようになりました。嬉しいです
*3 5kHzでのシミュレーションでは、開始後から安定するまで少し時間が必要になるみたいです
*4 ご容赦ください。
*5 WaveFormsは、VMWare FusionのWindows上で実行しました。
*6 実際に波形をみると積分した形になっていることに感動しました。
*7 ほぼコピーで申し訳ありません
*8 Eの中括弧がそのまま書いたので、latexの処理で消えてしました。2014/11/22修正
*9 このテーブルはSageで計算した結果です。

添付ファイル: fileAnalog_Discovery_pin.png 1318件 [詳細] fileCR_Int.asc 1273件 [詳細] filephase.png 1254件 [詳細] filegain.png 1247件 [詳細] fileeq3.png 1184件 [詳細] fileeq2.png 1139件 [詳細] file11.png 1247件 [詳細] fileplt_500Hz.png 1308件 [詳細] fileplt_50Hz.png 1328件 [詳細] fileplt_5kHz.png 1299件 [詳細] fileeq1.png 1254件 [詳細] fileCR_Int_cir.png 1347件 [詳細] fileCR_Int_setting.png 1295件 [詳細] fileth_CR_Int_network.jpg 1364件 [詳細] fileth_CR_Int_500Hz.jpg 1283件 [詳細] fileth_CR_Int_50Hz.jpg 1397件 [詳細] fileth_CR_Int_5KHz.jpg 1342件 [詳細] fileCR_Int_Spice_500Hz.png 1285件 [詳細] fileCR_Int_Spice_50Hz.png 1288件 [詳細] fileCR_Int_Spice_5KHz.png 1228件 [詳細] file250px-Series-RC.svg.png 1336件 [詳細] fileAnalogDiscovery.png 1264件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-12-23 (金) 13:58:50 (2682d)
SmartDoc