値を直読!「.meas」コマンド




■問題

 図1に示す回路のOUT端子の周波数特性を解析し,100Hzのときのレベルを表示したい.このときのコマンド記述として正しいのはA,Bどちら?
A .meas ac f_100Hz find v(out) at 100
B .meas ac f_100Hz deriv v(out) at 100

平賀 公久 Kimihisa Hiraga

図1 抵抗とコンデンサで構成した1次ローパス・フィルタ(LPF)の回路
■回答

 A
 Aは,100HzのときのOUT端子のレベルを見つけ出し,その結果をログ・ファイルへ出力する.


■解説

●「.meas」コマンドは,シミュレーション結果から知りたい測定値がわかる
 特定の周波数のレベルを目視で正確に知るのは困難です.Spiceには,シミュレーションの結果をログ・ファイルへ出力し,テキストとして得ることができる便利なコマンドがあります.このコマンドは,「ドット・コマンド」と呼ばれています.ドットは「.」であり,時間軸での変化を解析する「.tran」,周波数特性を解析する「.ac」などもそのコマンドです.
 ドット・コマンドには,シミュレーション結果から知りたい条件の測定値をログ・ファイルへ出力する「.meas」があり,今回の問題ではLTspiceのその機能を使いました.「.meas」の指定はLTspiceの文法に従って記述し,それを回路図へ置きます.追加のコマンドを指定する場合は,「Edit > Spice Directive」または,ショートカット・キーでキーボードのSを押します.Edit Text on the Schematicのウィンドウ中に入力し,OKを押すと回路図へ置くことができます.その後シミュレーションを実行すれば自動的にログ・ファイルへ出力されますので,解析が終了したらログ・ファイルから数値を得ることができます.
 「.meas」のコマンドをもう少し詳しくみてみましょう.図2は各々の文字へ説明を加えました.文にすれば,「ac解析において,100Hz時のOUT端子レベルを見つけ出し変数f_100Hzへ入れなさい」という命令です.「Find」は測定点で知りたい条件の値を見つけ出します.図2での知りたい条件は周波数が100Hzです.今回測定する箇所はOUT端子です.



図2 「.meas」コマンドの説明

 一方,Bの「.meas」中にあるderivは知りたい条件での微分値を計算しその結果をログ・ファイルへ出力する命令です「.deriv」を使う例をあげると,時間軸での波形の変化でその傾きを求めるときなどに便利です.

●「.meas」コマンドのFindを回路で確かめる
 図3の回路は抵抗(R)とコンデンサ(C)で構成した1次LPF(Low Pass Filter:低域通過フィルタ)でOUT端子のレベルが-3dBとなるカットオフ周波数を0.1Hzとしました.知りたい周波数は1Hz,10Hz,100Hz,2Hz,4Hz,8Hzの6点におけるOUT端子の周波数特性のレベルです.その結果をログ・ファイルへ出力させます.「.meas」で始まるコマンドを指定する場合は「Edit > Spice Directive」またはショートカット・キーでキーボードのSを押し,Edit Text on the Schematicのウィンドウ中に入力します.


図3 1次RC LPFのAC解析で各周波数の値を「.meas」コマンドで測る

 RUNボタンを押しシミュレーションした周波数特性が図4です.実線が利得,破線が位相特性を示しています.「.meas」コマンドで測定した1Hz,10Hz,100Hz,2Hz,4Hz,8Hzの結果はLTspiceのログ・ファイルに出力されます.ログ・ファイルを見るときはメニューバの「View > SPICE Error Log」または,ショートカット・キーの「Ctrl+L」でログ・ファイルのウィンドウが現れます. logファイル中の「.meas」コマンドで得た各々の結果は,次のようになります.

f_1hz: v(out)=(-20.0432dB,-84.2894°) at 1
f_10hz: v(out)=(-40.0004dB,-89.4271°) at 10
f_100hz: v(out)=(-60dB,-89.9427°) at 100
f_2hz: v(out)=(-26.031dB,-87.1373°) at 2
f_4hz: v(out)=(-32.0432dB,-88.5677°) at 4
f_8hz: v(out)=(-38.0615dB,-89.2837°) at 8

 括弧内の最初が利得,次が位相値です.指定した1Hz,10Hz,100Hz,2Hz,4Hz,8Hzの知りたいレベルは利得の部分です.
 図4の周波数特性へ1Hz,10Hz,100Hzは赤色,2Hz,4Hz,8Hzは緑色で示しました.1次LPFはカットオフ周波数より高くなるとOUT端子のレベルは減衰し,そのときの傾きは-20dB/dec言い換えれば-6dB/octで減衰している様子が分かります.


図4 1次RC_LPFのシミュレーション結果

●「.meas」コマンドのderivを回路で確かめる
 図5の回路はOPアンプ「LT1001」を使ったボルテージ・フォロア回路です.入力信号は立上がり/立下がり時間1nsのパルス波形を非反転端子へ印加した場合のOUT端子における12μs時の微分値(応答波形の傾き)を測定します.


図5 ボルテージ・フォロア回路のパルス応答の傾きを「.meas」コマンドで測る

 図6がシミュレーションした時間軸の波形の変化です.12μs時の微分値はログ・ファイル中に出力されます.「.meas」コマンドで測定させた値はメニュ・バーの「View > SPICE Error Log」または,ショートカットの「Ctrl+L」でログ・ファイルのウィンドウが現れます.12μs時の微分値は,

tr: D(v(out))=249968 at 1.2e-005

 時間軸に置けるOUT端子の波形の変化を図6へ示します.Y軸の10%をカーソル1,90%をカーソル2として,その傾きと12μs時の微分値を比較します.カーソルの測定は赤で示し12μsの測定ポイントは緑で示しました.カーソルの測定はSlope=249965,12μs時の微分値=249968 であり,ほぼ同じ傾きです.
 この傾きはスルー・レートに換算すると約0.25V/μsとなりLT1001のカタログ値と同じ結果を示しています.


図6:OUT端子の過渡応答波形とカーソルで得た傾き

 「.meas」コマンドには波形の平均を計算する「AVG」,最大値や最小値を計算する「MAX」や「MIN」,Peak to Peakを計算する「PP」,実効値を計算する「RMS」,積分値を計算する「INTEG」なども用意されています.また「param」は他の「.meas」で得た値を指定した計算式を使い答えを出します.「.meas」の詳細はLTspiceのHELP中にその利用例が記載されていますので便利な「.meas」コマンドの使い方をマスタしておきましょう.

■データ・ファイル

解説に使用しました,LTspiceの回路をダウンロードできます.
LTspice002.zip
●データ・ファイル内容
RC_LPF.asc:図3の回路
LT1001_deriv.asc:図5の回路
※二つのファイルは同じホルダに保存して,ホルダ名を半角英数にしてください

■LTspice関連リンク先


(1) LTspice ダウンロード先
(2) LTspice Users Club
(3) トランジスタ技術公式サイト LTspiceの部屋はこちら

トランジスタ技術 表紙

CQ出版社オフィシャルウェブサイトはこちらからどうぞ

CQ出版の雑誌・書籍のご購入は、ウェブショップで!


CQ出版社 新刊情報



Interface 2017年 7月号

ラズパイ実験室 はじめてのIoT 2017

CQ ham radio 2017年 6月号

特集 144/430MHzの魅力再発見!

トランジスタ技術 2017年 6月号

特集 スマホ&大画面計測!私のハイパー実験室

Interface 2017年 6月号

新・科学計算ソフト ウルトラ大集合 DVD付き