値を直読!「.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出版社 新刊情報



ボード・コンピュータ・シリーズ

MicroPythonプログラミング・ガイドブック

データサイエンス・シリーズ

Pythonが動くGoogle ColabでAI自習ドリル

CQゼミ

長谷川先生の日本一わかりやすい「情報Ⅰ」ワークブック

CQ ham radio 2024年 5月号

アンテナチューナーで楽しもう!

アナログ回路設計オンサイト&オンライン・セミナ