LTspice-ドットコマンド「.measure」(測定)の使い方
当記事では、ドットコマンド「.measure」(測定)の使い方について詳しく解説します。
「.measure」を活用することによって、波形ビューワのカーソル機能を使うより簡単に、電圧や電流の値を測定することができます。
「.measure」とは?
「.measure」とは、シミュレーション時に自動的に電圧や電流の値を測定するドットコマンドです。
言葉だけではわかりづらいと思うので、まずは以下の記事で作成した回路図で、「.measure」を使ってシミュレーションをしてみます。
回路図は以下のリンクからダウンロードできます。
回路図「01_sample-tran-lt1028.asc」を開いて、以下の「.measure」構文を「SPICE Directive」で入力します。
.measure TRAN A MAX V(OUTPUT)
この構文は、ラベルを「A」として、V(OUTPUT)の最大電圧を測定と言う意味になります。
なお、「.measure」の代わりに「.meas」と記入しても、どちらも同じ意味になります。
「.measure」構文を配置後、「Run」をクリックしてシミュレーションを実行します。
「View-SPICE Error Log」を選択して、ログファイルを開きます。
ログファイルを開くと、以下のような記載があるのが確認できます。
a: MAX(v(output))=3.99891 FROM 0 TO 0.01
このように、ドットコマンド「.measure」を使うことで、簡単に電圧や電流の値を数値として算出することが可能です。
波形ビューワでカーソルを使って算出するより、便利で確実なので、ぜひとも覚えておきたいコマンドです。
今回、「.measure」のシミュレーションに使用した回路図は以下のリンクからダウンロードできます。
「.measure」の構文
「.measure」構文の使い方は以下のように「時間軸(横軸)で測定範囲を指定」と「時間軸(横軸)で特定ポイントを指定」に大きく分類されます。
時間軸(横軸)で測定範囲を指定
時間軸(横軸)で特定ポイントを指定
共通設定
「.measure」の構文で共通の設定項目について説明します。
解析の種類
解析の種類 | 説明 |
---|---|
TRAN | トランジェント解析 |
AC | AC解析 |
DC | DCスイープ解析 |
NOISE | ノイズ解析 |
TF | DC伝達関数解析 |
OP | DC動作点解析 |
シミュレーションで行う解析の種類について記述します。例えば、「「.measure」とは?」で行ったシミュレーションのように、「.tran 10m」であったら、「TRAN」を記述することになります。
ラベル
任意の英数字を指定します。「「.measure」とは?」で行ったシミュレーションでは「A」とラベルを指定したので、以下のログファイルのように文の先頭に「a」と表示されています。
(ラベルを大文字で記述しても、小文字になってしまいます。)
そのため、「.measure」の構文で最大電圧を測定するのであれば、ラベルを「v-max」にするなど、自分のわかりやすいようにラベルの英数字を指定すると良いでしょう。
ノード名&部品番号
ノード名&部品番号 | 説明 |
---|---|
V(ノード名) | 測定する「電圧」 |
I(部品番号) | 測定する「電流」 |
「.measure」の構文で測定したい電圧や電流を指定します。電圧であればノード番号、電流であれば部品番号で記述します。
時間軸(横軸)で測定範囲を指定
「.measure」の構文で、時時間軸(横軸)で測定範囲を指定する場合について説明します。
測定項目
測定項目 | 説明 |
---|---|
AVE | 平均値 |
MAX | 最大値 |
MIN | 最小値 |
PP | 振幅 |
RMS | 実効値 |
INTEG | 積分値 |
上記のように、平均値、最大値、最小値、振幅、実効値、積分値を測定することが可能です。
測定範囲
測定範囲は、「FROM 値 TO 値」で記述します。例えば、シミュレーション結果のうち、0msecから5msecまでの間を測定範囲とする場合は以下のようになります。
FROM 0 TO 5m
「FROM 値 TO 値」を記述しない場合、全ての時間が測定範囲になります。
TRIG:増加時の条件式/TARG:減少時の条件式
「TRIG:増加時の条件式/TARG:減少時の条件式」の設定はかなり複雑な設定になるので、「「.measure」のシミュレーション例」で「.meas Statement Editor」を使った構文の作成方法を説明する予定です。
時間軸(横軸)で特定ポイントを指定
「.measure」の構文で、時間軸(横軸)で特定ポイントを指定する場合について説明します。
測定項目
測定項目 | 説明 |
---|---|
FIND | 瞬時値 |
DERIV | 微分値 |
PARAM | 数式計算 |
上記のように、瞬時値、微分値を測定することが可能です。また、PARAMで数式計算を行うことができます。
測定箇所
測定箇所は、「AT 値」で記述します。例えば、シミュレーション結果のうち、5msecの時点を測定箇所とする場合は以下のようになります。
AT 5m
WHEN:条件式
WHEN条件式の設定はかなり複雑な設定になるので、「「.measure」のシミュレーション例」で「.meas Statement Editor」を使った構文の作成方法を説明する予定です。
「.measure」のシミュレーション例
「.measure」構文の説明だけでは、わかりづらいと思うので、いくつか例として実際に「.measure」のシミュレーションを行ってみます。
今後、シミュレーション例を増やしていく予定です。
時間軸(横軸)で測定範囲を指定
回路図「01_sample-tran-lt1028.asc」を開いて、以下の「.measure」を「SPICE Directive」で入力します。
.meas TRAN V-ave AVE V(OUTPUT)
.meas TRAN V-max MAX V(OUTPUT)
.meas TRAN V-min MIN V(OUTPUT)
.meas TRAN V-pp PP V(OUTPUT)
.meas TRAN V-rms RMS V(OUTPUT)
.meas TRAN V-integ INTEG V(OUTPUT) FROM 1 TO 2m
「.measure」構文を配置後、「Run」をクリックしてシミュレーションを実行します。
シミュレーションと「.measure」構文の結果は以下の通りになります。
v-ave=0.01 FROM 0 TO 0.01
v-max: MAX(v(output))=3.99891 FROM 0 TO 0.01
v-min: MIN(v(output))=-3.99408 FROM 0 TO 0.01
v-pp: PP(v(output))=7.99298 FROM 0 TO 0.01
v-rms: RMS(v(output))=2.8276 FROM 0 TO 0.01
v-integ: INTEG(v(output))=0.00254599 FROM 0.001 TO 0.002
波形ビューワの波形グラフと比較すると、ほぼ結果が一致していることがわかりますね。
今回、「.measure」のシミュレーションに使用した回路図は以下のリンクからダウンロードできます。
時間軸(横軸)で特定ポイントを指定
回路図「01_sample-tran-lt1028.asc」を開いて、以下の「.measure」を「SPICE Directive」で入力します。
.meas TRAN V-find FIND V(OUTPUT) AT 1.5m
「.measure」構文を配置後、「Run」をクリックしてシミュレーションを実行します。
シミュレーションと「.measure」構文の結果は以下の通りになります。
v-find: v(output)=3.99363 at 0.0015
波形ビューワの波形グラフと比較すると、ほぼ結果が一致していることがわかりますね。
今回、「.measure」のシミュレーションに使用した回路図は以下のリンクからダウンロードできます。