「ADALM1000」で、SMUの基本を学ぶトピック6:位相とは何か?なぜ気にしなければならないのか?

アナログ・ダイアログの2017年12月号から、アクティブ・ラーニング・モジュール「ADALM1000」について紹介しています。今回も、引き続き同モジュールを使用して、小規模かつ基本的な測定を行う方法を説明します。ADALM1000に関する以前の記事は、こちらからご覧になれます。

図1. ADALM1000 のブロック図
図1. ADALM1000 のブロック図

目的

この実験では、まず2つの信号間の位相について理解することを目指します。その上で、理論と実験結果が一致することを確認します。

背景

現実のサイン波と受動部品を使用することにより、信号における位相シフトを観測することができます。それにより、位相の概念について探っていきます。以下では、正弦関数の変数の中でも、特に位相の項に注目することにします。次の式をご覧ください。

数式1

ωは角速度(角周波数)と呼ばれるものです。これと時間tを組み合わせることにより、時間の経過に応じてどれだけ角度が進むかが決まります。θはこの関数において位相シフトを定義するものです。時間のオフセットを表す要素だと表現することもできます。

正弦関数は、-1~ 1の間の値をとります。ここでは、tに定数を設定することにします。話をわかりやすくするために、t = 1としましょう。すると、ωtは時間の関数ではなくなります。ωの単位はrad(ラジアン)で、sin(π/4)の値は約0.7071となります。2π〔rad〕は360°であり、π/4〔rad〕は45°です(以下、ラジアンの単位は省略します)。角度の単位として度(°)を使って表せば、sin(45°)の値が約0.7071になります。

次に、通常のように時間tを変化させます。ωtの値が時間に対して線形に変化するとき、図2のようなサイン波が得られます。ωtが0から2πまで変化すると、サイン波はまず0から1まで上昇し、続いて0を経て-1まで下がり、再び上昇して0に戻ります。これがサイン波の1周期です。ここでは周期をTで表すことにします。x軸は時間に応じて変化する変数ωtです。この値は1周期で0から2πまで変化します。

図2は、θの値が0の場合のプロットです。sin(0) = 0であり、プロットは0から始まっています。時間オフセットが存在しないシンプルなサイン波です。言い換えれば、位相オフセットが存在しないということです。1周期分のサイン波は、ωtが0から2πまで変化することによって得られます。これは、°を単位として使うなら、0°から360°まで変化させるという意味になります。

図2 . サイン波の波形。2 周期分をプロットしています。
図2 . サイン波の波形。2 周期分をプロットしています。

図2に対し、ωが同じ値で、θが0のもう1つのサイン波をプロットするとどのようになるでしょうか。その場合、1つ目のサイン波の上にもう1つのサイン波が重なった状態で描かれることになります。θが0ということは、2つのサイン波に位相差はないということです。したがって、時間オフセットが存在しない同一の結果が得られます。

次に、2つ目の波形のθをπ/2(90°)に変更します。すると、1つ目のサイン波を時間軸上で左にシフトしたサイン波が得られます。図3に、1つ目のサイン波(青色)と、時間オフセットが生じた2つ目のサイン波(オレンジ色)をプロットしました。オフセットの値は一定なので、θの値分(この例ではサイン波の周期の1/4)、時間軸上でシフトしたサイン波が得られます。

図3 . サイン波の波形。青色はsin(t) 、オレンジ色はsin(t+π/4) の波形です。
図3 . サイン波の波形。青色はsin(t) 、オレンジ色はsin(t+π/4) の波形です。

θは式(1)において位相に相当します。これを時間オフセットと表現することもできます。位相角は時間オフセットに対応づけられ、時間オフセットは位相角に対応づけられます。次式にその関係を示しました。先ほどの例では、オフセットの値として90°を選びました。実は、サイン波に90°の位相オフセットを持たせると、コサイン波を得ることができます。

例えば、オシロスコープ上に、2つのサイン波が表示されているとします。そのとき、位相角は、2つの波形の時間を測定することによって算出することができます。その際には、負から正へのゼロ交差点(サイン波が負の値から正の値へと転じる際には、ゼロを通過することになります。その交差点をこのように呼ぶことにします。逆に、正の値から負の値に転じる場合は、正から負へのゼロ交差点と呼ぶことにします)を時間測定のための参照ポイントとして使用するとよいでしょう。サイン波の1周期分に相当する時間は、360°に対応づけられます。2つの波形の時間の比dtとサイン波の1周期の時間Tを使えば、θ(角度)を定義できます。式(2)は、その関係を示したものです。

Phase:

数式2

ここで、Tはサイン波の周期を表します。

サイン波に自然に生じる時間オフセット

受動部品の中には、その両端の電圧とそこに流れる電流の間に、時間オフセットが生じるものがあります。例えば、抵抗にかかる電圧と抵抗を流れる電流には、時間に関係のないシンプルな関係があります。つまり、V/I = Rという関係です。抵抗値Rは実数であり、単位はΩです。このように、抵抗の両端の電圧と電流は常に同位相です。

コンデンサとインダクタについても、似たような式でVとIを関連づけることができます。すなわち、V/I = Zという式です。ここでZ は、実数の成分と虚数の成分から成るインピーダンスです。以下では、コンデンサだけに着目することにします。

コンデンサについては、基本的な原則が存在します。それは、「コンデンサの両端の電圧はコンデンサに電流が流れていなければ変化しない」というものです。時間に対する電圧の変化の割合dv/dtは、電流の振幅に依存します。理想的なコンデンサでは、電流i(t)は次の式で電圧と関連づけられます。

数式3

コンデンサのインピーダンスは周波数の関数です。その値は、周波数が低くなるほど大きくなり、周波数が高くなるほど小さくなります。

数式4

ωは角速度として以下のように定義できます。

数式5

式(4)には、1つ理解を妨げる要素があります。それは虚数単位jの存在です。例えば、抵抗の式には虚数単位は含まれていません。抵抗を流れるサイン波形の電流と抵抗にかかる電圧の関係は、実数で表されます。そのため、両者の間に時間オフセットは存在しません。異なるのは振幅だけです。電圧のサイン波は電流のサイン波と同相です。

このことはコンデンサには当てはまりません。コンデンサの両端の電圧波形(サイン波)を観察すると、コンデンサに流れる電流に対して時間シフトが生じているはずです。式で言えば虚数単位jが含まれていることがその原因です。図4を見ると、電圧波形のスロープ(時間変化率dv/dt)が最も大きいときに、電流波形がピーク(最大)に達することがわかります。

時間の差は、式(2)に示したように、2つの波形の位相角として表すことができます。

図4 . 電圧と電流の間の位相角を決める要素

コンデンサのインピーダンスは虚数で表されることに注意してください。抵抗のインピーダンスは実数なので、抵抗とコンデンサの両方を含む回路(RC回路)のインピーダンスは複素数になります。

RC回路における電圧と電流の位相角の理論値は、次式で表されます。

数式6

ここで、Zcircuitは回路全体のインピーダンスです。

式(6) は、次のような形になるまで変形することができます。

数式7

ここで、AとBは実数です。

電圧に対する電流の位相関係は、次式のようになります。

数式8

準備するもの

  • ADALM1000
  • 抵抗:470Ω、2個
  • コンデンサ:1μF、1個

手順

  1. ALICEのデスクトップ・メニューを使って、測定用の設定を行います。

    • ADALM1000がUSBポートに接続されていることを確認し、ALICEのデスクトップ・アプリケーションを起動します。
    • メイン画面には、変更可能な範囲、位置、測定パラメータなどを網羅するスコープが表示されるはずです。
    • 画面の下方にある「CA V/Div」と「CB V/Div」が共に0.5に設定されていることを確認します。
    • CA V Pos」と「CB V Pos」が2.5に設定されていることを確認します。
    • CA I mA/Div」が2.0に、「CA I Pos」が5.0に設定されるはずです。
    • AWG」 の コントロール・ウィンドウ に お いて、CHA と CHBの「Frequency」で、周波数を1000H z、位相を90°、最小値を0V、最大値を5 V( ピークtoピーク出力が5V)に設定します。「SVMI」モードを選択すると共に、波形をサイン波に設定します。
    • Meas」ドロップダウン・メニューで、「CA-V」、「CA-I」、「CB-V」に対して「P-P」を選択します。
    • Time/Div」を0.5ミリ秒に設定し、「Curves」ドロップダウン・メニューで「CA-V」、「CA-I」、「CB-V」を選択します。
    • ソルダーレス・ブレッドボード上で、CHAの出力を470Ωの抵抗の一端に接続します。
    • 抵抗のもう一端をグラウンドに接続します。
    • スコープ上の「Start」ボタンをクリックします。

    ボードが正確に校正されていれば、一方のサイン波の上にもう一方のサイン波が重なって見えます。CHAとCHBはいずれも5Vp-pになります。正確な校正が行えていない場合には、CHAとCHBは位相が等しく振幅が異なる2つのサイン波として観測されます。電圧の差が大きい場合には、校正を実施してください。

  2. 生成した2つの波形の位相角を測定します。

    • CA V/Div」と「CB V/Div」がいずれも0.5に設定されたままで、「CA V Pos」と「CB V Pos」が2.5に設定されていることを確認します。
    • CA I mA/Div」は2.0、「CA I Pos」は5.0に設定されているはずです。
    • CHAとCHBの「Frequency」で、周波数を1000 Hz、位相を90°、最小値を0V、最大値を5V(ピークtoピーク出力が5V)に設定します。「SVMI」モードを選択すると共に、波形をサイン波に設定します。
    • 「AWG」コントロール・ウィンドウにおいて、CHBの位相θを135°(90° + 45° )に変更します。

    CHBの信号は、CHAの信号よりも進んでいる(先に発生している)ように見えるはずです。CHBの信号は、下方から上方へと遷移する際、CHAの信号と2.5Vのポイントで交差します。θが正の値の場合、位相が進んでいる状態という表現が使われます。下方から上方に向かって交差する時間の参照ポイントは任意です。上方から下方への交差点についても同様です。

    • CHBの位相オフセットを45°(90° - 45°)に変更します。

    今度は、CHBの信号がCHAの信号よりも遅れているように見えます。

    • CA」の「Meas」表示を「Frequency」と「A-B Phase」に設定します。「CB」の表示は、「B-A Delay」に設定します。
    • Time/Div」を0.2ミリ秒に設定します。
    • 赤色の「Stop」ボタンを押して、プログラムの実行を中断します。マウスの左ボタンを使えば、ディスプレイ上にマーカーを加えることができます。

    CHAの信号とCHBの信号のゼロ交差点について、マーカーを使うことにより、両者の間の時間差dtを測定します。

    • 測定したdtと式(2)を使って、位相オフセットθ(°)を計算します。

    画面に少なくとも1周期分の波形が表示されていなければ、信号の周波数を測定できないことに注意してください。信頼できる結果を得るには、2周期分以上を確保するべきです。ただ、周波数については皆さん自身が設定した値で生成されているはずなので、ここでは測定する必要はありません。

  3. レールtoレールの回路を使って振幅を測定します。
    図5 . レールt oレールの回路
    図5 . レールt oレールの回路
    • 470Ωの抵抗を2個使って、ソルダーレス・ブレッドボード上に図5に示す回路を構成します。
    図6 . レールt oレール回路を構成するためのブレッドボード上の接続
    図6 . レールt oレール回路を構成するためのブレッドボード上の接続
    • AWG」コントロール・ウィンドウにおいて、CHAの「Frequency」で、周波数を200Hz、位相を90°、最小値を0V、最大値を5 V(ピークt oピーク出力が5 V)に設定します。「SVMI」モードを選択すると共に、波形をサイン波に設定します。
    • CHBに対して「Hi-Z」モードを選択します。ここではCHBを入力として使用しますが、残りの設定は重要ではありません。
    • CHAの出力をCHBの入力とグラウンドにワイヤで接続します。テスト・ポイントは色付けして示してあります。
    • 2周期分の波形を表示するために、「Horizontal Time Scale」を1.0ミリ秒/divに設定します。
    • まだ実行されていなければ、スコープの「Start」ボタンをクリックします。

    CHAに表示されるのは、両抵抗にかかる電圧(VR1 + VR2)の波形です。CHBに表示されるのは、R2のみにかかる電圧(VR2)の波形です。R1にかかる電圧を表示するには、「Math」波形表示オプションを使用します。具体的には、「Math」ドロップダウン・メニューで「CAV-CBV」という式を選択します。これによって、R1にかかる電圧(VR1) の波形が表示されます。両方の波形が見えるようにするために、チャンネルの垂直位置を調整して分離します。信号を設定し直す際には、必ず垂直位置を元に戻してください。

    • VR1、VR2、VR1 + VR2のピークtoピーク値を記録します。

    VR1とVR2のゼロ交差点の間にずれは存在するでしょうか。言い換えれば、2つのサイン波が見えるでしょうか。おそらくは、1つのサイン波しか見えないはずです。つまり、時間オフセットは観測されず、位相シフトは生じないということがわかります。

  4. RC回路の振幅と位相を測定します。

    • R2を1μFのコンデンサC1に置き換えます。
    図7. RC 回路
    図7. RC 回路.
    図8 . RC 回路を構成するためのブレッドボード上の接続
    図8 . RC 回路を構成するためのブレッドボード上の接続
    • AWG」コントロール・ウィンドウにおいて、CHAの「Frequency」で、周波数を500Hz、位相を90°、最小値を0V、最大値を5 V(ピークt oピーク出力が5 V)に設定します。「SVMI」モードを選択すると共に、波形をサイン波に設定します。
    • CHBに対して「Hi-Z」モードを選択します。
    • 2周期分の波形を表示するために、「Horizontal Time Scale」を0.5ミリ秒/divに設定します。

    コンデンサには直流電流は流れません。そのため、波形の平均(dc)値に関する別の設定が必要になります。

    • メイン画面の右側に、チャンネルAとチャンネルBのDCオフセットを入力するフィールドが設けられています。図9に示すようにオフセット値を設定します。
    図9 . ゲインとオフセットの調整用メニュー
    図9 . ゲインとオフセットの調整用メニュー
    • 入力からオフセットを排除したので、波形がグリッドの中心にくるように垂直位置を調整する必要があります。そこで「CA V Pos」と「CB V Pos」を0.0に設定します。
    • まだ実行されていなければ、スコープの「Start」ボタンをクリックします。
    • CA-V、CA-I、CB-Vとmath(CAV - CBV)のピークtoピーク値を測定します。

    math波形はどのような信号であるかを確認してください。

    • VR1、VC1、IR1、VR1 + VC1の値を記録します。

    次に、位相に着目しましょう。グリッド上には、時間オフセット(位相差)のある数本のサイン波が表示されているはずです。そこで、時間オフセットを測定することにより、位相差を算出します。

    • VR1、IR1、VC1の時間差を測定し、位相オフセットを算出します。
    • 式(2)と測定したdtを使って、位相角θを算出します。

    dtの測定には、以下のようにマーカーを使用するとよいでしょう。

    • 少なくとも2周期分のサイン波を表示します。
    • Horizontal Time/Div」を0.5マイクロ秒に設定します。赤色の「Stop」ボタンをクリックした上で、グリッド上にマーカーを配置してください。

    Marker Delta」表示は、差分の符号を保持していることに注意してください。

    測定表示の機能を使えば、周波数を確認することができます。信号の周波数については、皆さん自身で設定したわけですから、測定ウィンドウに頼る必要はありません。

    画面上に1周期分または2周期分のサイン波を表示しても差が見られないときには、dtがゼロであると仮定します。

    • 1つ目のマーカーを、CA-V(VR1 + VC1)の信号の負から正へのゼロ交差点に配置します。2つ目のマーカーを、math(VR1)の信号の負から正へのゼロ交差点(1つ目のマーカーに最も近いもの)に配置します。時間の差d tの値を記録し、位相角θを算出します。dtは負の数になる場合があることに注意してください。その場合、位相角は進んでいるのか遅れているのか考えてみてください。

    次の測定に向けてマーカーをリセットするために、赤色の「Stop」ボタンをクリックします。

    • 1つ目のマーカーを、CA-V(VR1 + VC1)の信号の負から正へのゼロ交差点に配置します。2つ目のマーカーを、CB-V(VC1)の信号の負から正へのゼロ交差点( 1つ目のマーカーに最も近いもの) に配置します。時間の差dtの値を記録し、位相角θを算出します。
    • 1つ目のマーカーを、math(VR1)の信号の負から正へのゼロ交差点に配置します。2 つ目のマーカーを、CB-V(VC1) の信号の負から正へのゼロ交差点( 1つ目のマーカーに最も近いもの) に配置します。時間の差dtの値を記録し、位相角θを算出します。

    math(VR1)の信号と、表示されたCA-Iの電流波形の間には、測定可能な時間の差(位相シフト)は存在するでしょうか。ここでは直列回路を例にとっているので、AWGのチャンネルAから供給される電流は、R1およびC1における電流と等しくなります。

問題

  1. 式(5)と式(6)を使い、AとBの変数を適切な値に置き換えることによって、インピーダンスZcircuitと、RC回路の電圧に対する電流の位相θの関係を確認してください。
  2. 図7のRC回路で時間差を測定し、周波数が1000Hzの場合の位相オフセットを算出してください。

答えはStudentZoneで確認できます。

付録

図10 . ステップ5 における「Time/Div」の設定。0.5 マイクロ秒に設定します。
図10 . ステップ5 における「Time/Div」の設定。0.5 マイクロ秒に設定します。

注記

アクティブ・ラーニング・モジュールを使用する記事では、本稿と同様に、ADALM1000に対するコネクタの接続やハードウェアの設定を行う際、以下のような用語を使用することにします。まず、緑色の影が付いた長方形は、ADALM1000が備えるアナログI / Oのコネクタに対する接続を表します。アナログI/Oチャンネルのピンは、「CA」または「CB」と呼びます。電圧を印加して電流の測定を行うための設定を行う場合には、「CA-V」のように「-V」を付加します。また、電流を印加して電圧を測定するための設定を行う場合には、「CA-I」のように「-I」を付加します。1つのチャンネルをハイ・インピーダンス・モードに設定して電圧の測定のみを行う場合、「CA-H」のように「-H」を付加して表します。

同様に、表示する波形についても、電圧の波形は「CA-V」と「CB-V」、電流の波形は「CA-I」と「CB-I」のように、チャンネル名とV( 電圧) 、I( 電流)を組み合わせて表します。

本稿の例では、ALICE( Active Learning Interface for Circuits and Electronics)の Rev 1.1 を使用しています。同ツールのファイル(alice-desktop-1.1-setup.zip)は、こちらからダウンロードすることができます。

ALICEは、次のような機能を提供します。

  • 電圧/電流波形の時間領域での表示、解析を行うための2チャンネルのオシロスコープ
  • 2チャンネルのAWG(任意信号発生器)の制御
  • 電圧と電流のデータのX/Y軸プロットや電圧波形のヒストグラムの表示
  • 2チャンネルのスペクトル・アナライザによる電圧信号の周波数領域での表示、解析
  • スイープ・ジェネレータを内蔵したボーデ・プロッタとネットワーク・アナライザ
  • インピーダンス・アナライザによる複雑なRLC回路網の解析、RLCメーター機能、ベクトル電圧計機能
  • 既知の外付け抵抗、または50Ωの内部抵抗に関連する未知の抵抗の値を測定するためのDC抵抗計
  • 2.5Vの高精度リファレンス「AD584」を利用して行うボードの自己キャリブレーション。同リファレンスはアナログ・パーツ・キット「ADALP2000」に含まれている
  • ALICE M1Kの電圧計
  • AALICE M1Kのメーター・ソース
  • ALICE M1Kのデスクトップ・ツール

詳細についてはこちらをご覧ください。

注) このソフトウェアを使用するには、PC にADALM1000を接続する必要があります。

図11 . ALICE Rev 1.1のデスクトップ・メニュー
図11 . ALICE Rev 1.1のデスクトップ・メニュー

Doug Mercer

Doug Mercer

Doug Mercerは、1977年にレンセラー工科大学で電気電子工学の学士号を取得しました。同年にアナログ・デバイセズに入社して以来、直接または間接的に30種以上のデータ・コンバータ製品の開発に携わりました。また、13件の特許を保有しています。1995年にはアナログ・デバイセズのフェローに任命されました。2009年にフルタイム勤務からは退きましたが、名誉フェローとして仕事を続けており、Active Learning Programにもかかわっています。2016年に、レンセラー工科大学 電気/コンピュータ/システム・エンジニアリング学部のEngineer in Residenceに指名されました。

Antoniu Miclaus

Antoniu Miclaus

Antoniu Miclausは、アナログ・デバイセズのシステム・アプリケーション・エンジニアです。アカデミック・プログラムや、Circuits from the Lab®向けの組み込みソフトウェア、QAプロセス・マネジメントなどに携わっています。2017年2月から、ルーマニアのクルジュナポカで勤務しています。現在、バベシュボヨイ大学においてソフトウェア・エンジニアリングに関する修士課程にも取り組んでいます。また、クルジュナポカ技術大学で電子工学と通信工学の学士号を取得しています。