本文へスキップ

シムサーキット有限会社は回路シミュレーションに関連する技術/製品/サービスを提供する会社です。

LTspice TIPSHow to use LTspice


 LTspiceは、少し凝ったモデリングなどをしようとしなければ、簡単に回路シミュレーションできる機能を持っています。
しかし、Windowsの他のプログラムや市販のSPICEツールに慣れたユーザーから見ると、結構クセのあるソフトウェアではないでしょうか。
対策はそのクセを知り、それに慣れることしかありません。
ここでは、知っていると便利な使い方や、使いこなすのに障害となりそうなポイントへの対処法、「コツ」を紹介します。
特に、回路素子のパラメータを変えながらシミュレーションを繰り返す解析(バークレーSPICEにはなく、PSpiceで考案/追加された解析と思われます)について、LTspiceでも基本機能のみ実行は可能ですが、コマンド入力後でないと解析設定ウィンドウが現れないという不思議な仕様なので、手順を整理しておく必要があります。また、ディジタル・シミュレーションについても他の市販SPICEとの違いを明確にしながら、紹介しています。

 LTspiceオリジナル開発者のMike Engelhardt氏が、アナデバを離れたという情報がありました。大丈夫かなと思っていましたが、早くも最新のバージョン24へのバージョンアップで、懸念が現実化しつつあるような気がします。慣れ親しんだメニューバーのアイコンが、センス的にどうかなと思うものに全面変更されました。
その割に、機能性の大きな向上は有るのか無いのか。かつて、M&Aの荒波により、PSpiceが、どうすれば使いにくくなるかを追求しているのではないかという代物にされてしまいました(しかも基本機能の更新はなく)。LTspiceが、PSpiceの惨状の二の舞いにならないことを、心から願います。
(更新:2019-02-13, 2020-09-17, 2021-02-16, 03-16, 03-25, 04-19, 05-08, 05-28, 07-10, 2022-04-27, 05-14, 06-14, 08-10, 2024-02-06)

基本設定

回路図と波形の表示変更
メニューバーのTools-->Control Panelで現れたダイアログボックスのOperationタブをクリック。1行目のDefault Window Tile Patternで初期設定の「Horz」から「Ver」に変更。
回路図と波形表示のウィンドウが左右横並びに表示され、横長の画面では多くの場合見やすくなります。
なお、表示結果を見て、元の上下縦並びにしたいという場合は、メニューバーのWindow-->Tile Horizontallyを選ぶと簡単に変更できます。同様の手順で、回路図と波形表示をカスケード表示にしたり、"Close Everything"を選べば、いくつも開いた路図や波形表示を一括で閉じることもできます。

フローティング・ウィンドウ
LTspice XVIIバージョンでは、回路図と波形のウィンドウがメイン・ウィンドウの枠から外して自由な場所に移動できるようになりました。マルチ・ディスプレイのシステムなどで、便利に使用できます。デフォルトの設定では、メイン・ウィンドウ内に収まっていますが、その枠を飛び越えて自由に移動できるようになります。
方法は、回路図キャプチャ、波形ビューアーどちらの場合も、ウィンドウ内で右クリックし、現れたプルダウンメニューの最下行のFloat Windowをクリックします。
フロートを元に戻すには、同じようにFloat Windowをクリックし、チェックを外します。

サンプル・ファイルの更新またはマイナー・バージョンアップの方法
メニューバーよりHelp-->AboutLTspiceXVIIをクリックし、バージョン更新日を確認。
メニューバーよりTools-->Sync Releaseをクリックし、ダイアログボックスが表示されたら、OKをクリック。
メニューバーよりHelp-->AboutLTspiceXVIIをクリックし、バージョン更新日が新しくなったのを確認。


回路図キャプチャ

手順が通常と逆に感じることに注意
個人差はあると思いますが、使いやすく感じる回路図エディタでは、常に選択モードになっていて、直接部品をクリックしたり、回路ブロックの範囲を選んだりでき、その後選択した部分のカット、コピー、回転、デリートなどの機能を指定します。
LTspiceの回路図キャプチャでは、まず機能モード(Cut, Copy, Move, Drag)を選択/指定してから、対象物にアクセスするという考え方です。
他で慣れている場合は、順序が通常と逆に感じるので慣れが必要です。各機能モードは、右クリックで解除できます。

Zoom to Fitの活用
作図画面の端の方に部品を配置しようとしたり、配線をしたりという作図中に、ちょっと気を抜くと、それらが現在の画面のかなたに流れて行ってしまいます。(これは改良して頂きたい仕様の一つではあります。)対策としては、Zoom to FitまたはZoom full extends機能で頻繁に表示範囲を正しながら作図することです。この場合、×のついた虫眼鏡アイコンのクリックでもOKですが、キーボードの「スペースキー」がデフォルトのショートカットキーとして指定されていますので、これを利用すると便利なようです。
    
部品や回路ブロックのコピー
メニューバーよりEdit-->Duplicateをクリックします。(ツールバーのCopyアイコンでも可)
カーソルの形状がコピー形状に変わった状態で、部品をクリックまたは回路ブロックの領域を選択してコピーし、希望する場所まで移動してクリックするとコピー部分が配置されます。
同一回路図内だけでなく、コピーした部品や回路ブロックをそのまま移動させ新しい回路図に配置することも可能です。コピー後、新しい回路図を選択しカーソルを移動するとコピーが新しい回路図に現れます。クリップボードを経由しないこの方式は、やや扱いにくいことは否めません。

部品や回路ブロックの削除
メニューバーよりEdit-->Deleteをクリックします。(ツールバーのCutアイコンでも可)
カーソルの形状がはさみの形状に変わった状態で、部品をクリックまたは回路ブロックの領域を選択して削除します。

カット&ペーストはできない
同一回路図内で部品やブロックを移動したい場合、Windowsの標準的な機能であるカット&ペーストが使えないので注意が必要です。(ただし、LTspice組み込みのテキストエディタでは、Windowsの標準仕様と同じです。)
LTspiceの回路図キャプチャでは
カット===>上記の通り、デリート(削除)のことで、データは一時保存はされず、なくなってしまいます。
ペースト===>使用不可。
従って、部品や回路ブロックを同一回路図内の別の場所に移動したい場合、カット&ペーストではなく、以下に示している「移動」を選びます。

部品や回路ブロックの移動
  1. 配線から切り離し、移動する(Move)。メニューバーよりEdit-->Moveをクリックすると、カーソルが手を開いた形になるので、部品や回路ブロックの領域を選択し移動します。配線を含んだ領域を選択した場合は、選択した部分を切り離し配線も含んで移動できます。
  2. 配線がつながったまま、移動する(Drag)。メニューバーよりEdit-->Dragをクリックすると、カーソルが手を握った形になるので、部品や回路ブロックの領域を選択し移動します。既存の配線はつながったままで選択した配線も含んで移動できます。

部品や回路ブロックの回転とミラー反転
回転とミラー反転は、コピーや削除のように専用のモードはなく、上記の移動モードをまず選びます。若干ルールが違うので注意が必要です。
上記の方法でMoveまたはDragをクリックしてから、部品や回路ブロックを選択し、その後キーボードの「Ctrl+R」で回転、「Ctrl+E」でミラー反転します。

回路図の拡大縮小
マウスのスクロールホイールにより回路図の拡大縮小が可能。その際、拡大縮小の中心はポインタの位置となります。
回路図の編集が終わり、すべての回路部品を図面内に表示するには、メニューバーよりView-->Zoom to Fitをクリックします。回路図キャプチャの仕様上、回路図作成時には、このZoom to Fit(虫眼鏡にバツがついたアイコン)を多用しなければなりません(;^_^A。追記:Zoom to Fitはスペースキーで代用できます。

背景画像の変更
プログラム起動直後、デフォルト設定では回路図キャプチャ全面に汚いシミ(^^;)のような模様が表示されます。これは、「アンティキティラ島の機械」というものだそうです。「天体の動きを計算して宇宙の営みを示す機械であり、世界最古のコンピューターと言える」という由緒ある機械をデザインしたものなのだそうですが、もしデザインがあまり好みではないという場合、変更することができます。メニューバーよりTools-->Control Panelをクリックします。Operationタブをクリックし、真ん中辺りのBackground imageのプルダウンメニューで、好きな絵柄を選びます。アリスタルコスの『太陽と月の距離と大きさについて』などや、ユーザーネーム・フォルダ直下にLTspiceXVII.jpgという名前で画像ファイルを用意して、オリジナルの背景を設定することもできるようです。

回路図ファイルの管理・保存 
同一回路で、DC解析、AC解析、過渡解析を行いたい場合があります。PSpiceでは、プロジェクトという概念でその下で各種解析をまとめています。TopSpiceでは、ネットリストによる解析と同じ感覚で、一つの回路図ファイルで各種解析を並行実行できます。LTspiceでは、並行実行はできず、解析設定を書き換えなければなりません。したがって、解析のすべてを保存しておきたい場合、解析ごとに別名(DC,AC,TRANなど)をファイル名に付加して回路図ファイルを保存するのが有効です。後述の**.pltファイルまで保存すれば完璧です。


SPICEエンジン

TRAN解析 
SPICEシミュレーションで最も多く使われる過渡解析を行います。基本的に回路をパワーオンしたときに、時間とともに回路の電圧電流がどうなるかを、計算します。回路は、微分積分方程式になるので、解析的には解けません。色々な処理を経て、膨大な計算を繰り返しながら、回路方程式が表す関数の近似解を求めます。
LTspiceのTRAN解析(トランジェント解析、過渡解析)の標準的な機能は、以下のように一般的なSPICEと変わりありませんが(参考文献(4))、Tstart、dTmaxの設定において注意が必要な点があります。
構文
.TRAN <Tstop> [Tstart [dTmax]] [modifiers]
  • Stop Time (Tstop)-----TRAN(過渡)解析の終了時間を入力する。通常のTRAN解析では、この値のみ設定する。単位は秒。
  • Time to Start Saving Data (Tstart)-----0以外の時間を入力すると、解析開始の0sec.から指定時間まで、計算結果データを出力しない。シミュレータ内部では、0sec.から解析されているが、データとして不要な場合に、その部分を残さないことにより、グラフを見やすくしたり、保存データサイズを小さくしたりできる。 他のSPICEではそんなことはない、LTspiceだけの「注意点」として、0以外の時間を指定しても波形ビュアーの表示は、0からに変更されてしまいます(不必要な機能と思いますが)。
  • Maximum Timestep (dTmax)-----過渡解析を行う場合の時間幅刻みの最大ステップ値。内部的にはこれより細かな時間幅で解析される場合もある。SPICEシミュレータは、データが短い時間で大きく変化する部分では解析ステップを細かくし、変化が小さい部分では解析ステップを粗くする。その粗くする最大値がこの値。指定しない場合は、Stop Timeの何十分の1かに設定されている。正弦波などのなめらかな変化の曲線を表示する場合に、シミュレータのデフォルトの時間ステップでは、きれいに表示されないときに、この値を入力する。
    注)他のSPICEでは、入力値どおりの時間ステップとなりますが、LTspiceでは、入力値の約2倍の時間ステップとなってしまっています。入力値を目標値の半分の値とした方が良いようです。
TRAN解析のオプション 
 LTspiceのTRAN解析には、電源回路向けなどのmodifiers(修飾子、オプション)の機能が以下のように多くあることが特徴です。希望するオプションにチェックを入れて使います。
  • Start external DC supply voltages at 0V:  -----「外部DC電源を0Vからスタートする」
    シミュレーション回路に使用する外部DC電源を、すべて0Vから20usecで設定値まで直線的に立ち上げる。通常のチェックしていない場合は、DC動作点解析で求められた指定電圧が、0secで印加されるので、単数複数の外部電源を使用している回路などで、回路の誤動作が心配される場合に使用する。これは、他のSPICE系シミュレータにはないLTspiceのみの機能です。シミュレータに添付の電源ICのテスト回路ではすべて使用されています。
  • Stop simulating if steady state is detected:  -----「定常状態を検出したらシミュレーションを停止する」
    スイッチング電源(SMPS)のシミュレーションにおいて、ユーザーが指定した波形が一定のスイッチングの繰り返しになったところを検出し、そこから一定回数の繰り返しでシミュレーションを停止する。最終的にこのサイクルの波形データのみ保存し、グラフ表示される。これは、効率計算レポートのために必要な機能で、他のSPICE系シミュレータにはないLTspiceのみの機能です。 定常状態の自動検出に失敗する場合は、回避する方法がいくつかあります。詳しくはLTspiceのヘルプを参照ください。
  • Don't reset T=0 when steady state is detected: -----「定常状態を検出してもT=0にリセットしない」
    上記または下記のチェックがされているときに、一定サイクルのみの表示でなく、0secから定常状態検出まで波形データを保存し表示する。LTspiceのみの機能です。
  • Step the load current source: -----「負荷電流源をステップさせる」
    スイッチング電源(SMPS)のシミュレーションにおいて、ステップ構文を付与した電流源負荷を使ったとき、チェックが入っていると定常状態になると次の負荷電流値に移っていく。 ステップ構文を付与した電流源負荷は、専用のシンボルがないようなので、load, load2シンボルを使い電流値の入力欄に、次の構文の<value>以下を入力します。Syntax: Ixxx n+ n- <value> step(<value1>, [<value2>], [<value3>, ...]) [load] LTspiceのみの機能です。
  • Skip initial operating point solution: -----「初期の動作点解析をスキップする」
    SPICEは、この項目にチェックが入っていない場合、過渡解析をする前に自動的にDC動作点解析を行います。これが、過渡解析のtime=0の回路の初期状態となり、引き続き時間ステップごとの解析を続けていきます。通常の過渡解析は、このプロセスで行います。例えば、無安定マルチバイブレータのような発振回路など一部の回路では、DC動作点の初期値を計算してしまうと、発振しないなどの不具合を発生することがあります。そのような場合に限って、チェックを入れます。 チェックを入れると、.tranコマンドの最後にuic(Use Initial Condition)がつきます。これはLTspiceに限らず、SPICE系のシミュレータでは標準として付いているオプションです。
フーリエ高調波解析 
 過渡解析で得られた結果の波形から、その波形の高調波成分解析、歪解析を行います。 (1)波形ビュアーのFFT(高速フーリエ変換)機能を使って、周波数スペクトルを視覚的に表示する方法と、 (2)SPICEエンジンに開発時(バークレーSPICE)から組み込まれている.fourコマンドにより、高調波成分と全高調波歪み率を「数値」で得られる方法 の2種類があり、両方を同時に実行することもできます。もう少し詳しい説明は、こちらを参照。

AC解析 
指定された周波数帯域で回路の周波数応答を計算します。解析を成立させるには、少なくとも1つのAC信号源が必要です。AC解析を実施すると、まず、回路のDCオペレーティング・ポイントを計算します。回路内にダイオードやトランジスタなどの非線形デバイスがあった場合、デバイスはそのポイントで線形化されます。次に線形化された回路に、AC信号を入力します。それを指定範囲内の周波数で計算し、複素数の結果を得ます。AC解析は、周波数ドメインの線形定常状態正弦波解析なので、時間ドメインで小振幅の正弦波を加えた場合とは、本質的に違います。
LTspiceのAC解析(交流解析、周波数特性解析)の標準的な機能は、一般的なSPICEと変わりありませんが、他のSPICEにはないlistオプションが新たに追加されています。
構文
.ac <oct, dec, lin> <Nsteps> <StartFreq> <EndFreq>
.ac list <FirstFreq> [<NextFreq> [<NextFreq> ...]]
  • oct ----- 1オクターブ(2倍の周波数)(octave) ごとのステップで周波数を増やす。
  • dec ----- 10倍ごと (decade) のステップで周波数を増やす。
  • lin ----- StartFreq〜EndFreqの間で、等間隔ステップ(linear, 線形)で周波数を増やす。
  • Nsteps ----- ステップ数
  • StartFreq ----- 開始周波数
  • EndFreq ----- 終了周波数
2つ目の構文を使った例は、アナデバ社のサイトの記事を参照してください。「ステップ・コマンドを使用したAC解析
 
DC解析 
強制的に、キャパシタは開放、インダクタは短絡し、電圧源または電流源の値をスイープさせて、回路のDCオペレーティング・ポイントの変化を計算します。
LTspiceのDC解析は、バークレーSPICEと機能が同じままです。つまりDCスイープ出来るのは、独立電圧源Vと独立電流源Iのみで、その変化も線形スイープのみです。(DC解析に関して最も機能の多いと思われるPSpiceでは、スイープ変数は、電圧源,電流源,温度,グローバル・パラメータ,モデル・パラメータ。スイープタイプは、線形,対数が可能です。)
構文
.dc <srcnam> <Vstart> <Vstop> <Vincr> [<srcnam2> <Vstart2> <Vstop2> <Vincr2>]
  • srcnam ----- スイープさせる独立電圧源または電流源名
  • Vstart ----- スイープさせる電圧または電流の開始値
  • Vstop ----- スイープさせる電圧または電流の終了値
  • Vincr ----- スイープさせる電圧または電流の増分値
  • srcnam2, Vstart2, Vstop2, Vincr2 ----- オプションの2つめのスイープさせる独立電圧源または電流源に関するパラメータ。1つ目のスイープ値各々についてスイープする。
では、LTspiceでは、電源以外のパラメータ値をスイープさせてDC解析することはできないのでしょうか。抵抗値をパラメータとする具体例で、2つの方法を紹介します。
A.負荷抵抗値をスイープさせて、出力電流制限回路の特性を調べたい。
  負荷抵抗の代りに独立電流源を配置し、右クリックで現れる設定ダイアログのParasitic Propertiesの"This is an active load"にチェックを入れます。
  このloadオプションを付けることで、独立電流源を電流負荷としてDC解析ができます。
  追記:通常の独立電流源の代りに、symフォルダにあるloadという可変負荷のシンボルの電流源を使うと、見栄えが良いです。なお、上記チェックは必要です。
B.ストレインゲージを使ったセンサー回路で、ゲージの抵抗値を変えてDC解析したい。
  (1)ストレインゲージの抵抗値をグローバル・パラメータ{Rstrain}とします。
  (2).opコマンドを設定します。(DC動作ポイントの計算)
  (3).step param Rstrain 115 125 0.5と設定し、パラメータを変化させながら.opコマンドを繰り返します。
  この方法により、DC解析を直接行ったのと同じ結果が得られます(気にならない程度の時間がかかる)。また、.stepコマンドなので、対数スイープも可能です。

波形ビュアー

波形表示の段数を増やす
メニューバーよりPlot settings-->Add Plot Paneをクリックし、最大25ペインまで表示段数を増やすことができます。
波形ラベルをドラッグ&ドロップすることで、自由に波形のペイン間移動ができます。

ボーデ線図を見やすく処理  
LTspiceの波形ビュアーに関して改良してほしいポイントの一つに、ボーデ線図のゲインと位相が同一ペイン内に表示されるということがあります。複数の出力を表示させたい場合など、ゲインと位相が混在し、識別が困難で、とても実用的ではありません。
しかしながら、やや面倒ですが対処法がまったく無い訳ではありません。まず、上記の方法で表示段数を2段に増やします。次に、両方の段(ペイン)に全く同じように、希望するボーデ線図を表示させます。最後に、上のペインの右側の軸表示部にカーソルを置き、右クリックし、現れたダイアログボックスで、Don't plot phase.ボタンをクリックします。下のペインの左側の軸表示部にカーソルを置き、右クリックして現れたダイアログボックスで、Don't plot the magnitude.ボタンをクリックします。これでゲインと位相が別々に表示されます。最後に、トレース名を右クリックして、同じゲインと位相のトレースの色を一致させて終了です。

波形表示設定の保存(**.plt)
シミュレーションを実行後、波形表示を設定しますが、これは結構手間がかかります。次回シミュレーション結果を参照するときに、設定を保存していないと、またこの面倒な同じ作業を繰り返さなければなりません。
設定を保存する方法は、メニューバーよりPlot settings-->Save Plot Settingsをクリックし、保存ボタンをクリックします。通常は回路図ファイル名と同じ名前のままで設定ファイルを保存すればよいと思います。
次回この回路図ファイルを開き、メニューバーよりView-->Visible Tracesをクリックすると、保存時の前回の設定で波形が表示されます。
一度保存すれば、回路図ファイル名を変えない限り、回路図を変更してシミュレーション実行しても同じ表示設定が適用されます。
 回路図ファイルが示されていて、それを"Run"させてみると真っ黒な波形表示画面が出ると、がっかりしてしまいます。LTspiceでは、回路図ファイルと波形表示設定ファイルが分離されていて、設定ファイルの自動保存もされません。回路図ファイルを他の人に提示する場合は、波形表示設定ファイルも必ずセットで提示することを、推奨します。

波形データのカーソルによる読み取り
描かれた波形の任意のポイントのデータを、数値として読み取りたい場合があります。カーソルを波形上にマニュアルで重ねると、X-Y座標としては読み取れますが、簡易的になら構いませんが、正確に波形にぴったり合わせるのは困難です。メニューバーを探しても、それらしい該当項目はありません。
この場合は、
  1. 波形ラベルを右クリックします。現れたExpression Editor内のAttached Cursorの欄のプルダウン・メニューをクリックします。
  2. メニューから、読み取りたいポイントが1つなら「1st」または「2nd」を選びます。2つの波形で読み取りたい場合は、どちらか一方を「1st」他方を「2nd」とします。1つの波形上で2つのポイントを指定して、2点間のX軸やY軸における差、波形の傾きなどを見たい場合は、「1st & 2nd」を選びます。
  3. OKをクリックすると、波形画面いっぱいに十字カーソルが現れ、そのクロスポイント点の値が、別途現れた小さな測定値ウィンドウに表示されます。
  4. 十字カーソルの縦のラインをドラッグすることによって、希望するポイントへ移動できます。左右の矢印キー「←」「→」を使うと微調整が可能です。
  5. 読み取りが終了したら、測定値ウィンドウを閉じると、元の画面に戻ります。
シミュレーション結果を使って計算・表示する
シミュレーション結果のノード電圧、素子・端子電流である出力変数を使って、それらや定数による演算の結果をグラフに表示することができます。理論式が分かっていれば、その式を波形表示できます。必要であれば、本体の回路に影響ないような特別な測定回路を、回路図内に組み、数式に反映させることもできます。
手順は、波形ビュアーのメニュバーより、Plot Settings-->Add tracesとクリックし、現れたウィンドウで出力変数を選ぶと、下の欄に変数が入力されるので、希望する数式を作成し、OKをクリックします。
回路内の部品の消費電力を、波形として表示するとき、部品に加わっている電圧と流れる電流を掛け算すればよいわけですが、この場合は、回路図キャプチャの特別な機能を使えます。Altキーを押しながら回路図上の部品にカーソルを合わせると、カーソルが棒状温度計に変わります。そこでクリックするとその部品の消費電力が数式とともに波形表示されます。

シミュレーション結果の測定・グラフ化(.measコマンド)
前項は、シミュレーション結果の出力変数を使った数式による表示でした。こちらでは視点を変えて、シミュレーション結果の測定を、コマンドを使って自動化する方法です。 上述の様に、表示されたグラフ上にカーソルを表示させてマニュアルで読み取ることも可能です。それをコマンドで指定することにより、マニュアルでは合わせられないような詳細な設定ができ、平均値などの計算ができ、後でも繰り返し見ることが可能になります。読み取った値または値のセットには、ユーザーが任意の名前を付けられます。コマンドは、.measure(省略形 .meas)を使い、他のドットコマンドと同様に回路図に直接書き込みます。なお、シミュレータ・エンジンへのコマンドと同じドットコマンド形式になっていますが、これは、シミュレータではなく波形ビュアー(ポストプロセッサ )への命令であることに注意してください。
 .measコマンドの詳細は、下記にまとめましたのでご参照ください。回路図への入力は、そのまま構文を記述していくよりも、いつもの変則的な方法が便利です。まず、「.meas」とのみ入力して回路図に配置します。次に、それを右クリックすると、ステートメント・エディタが開くので、マスを埋めていくとコマンドが簡単に入力できます。
 結果の表示も、単純明解です。メニューバーよりView--->SPICE Error Log(名前がちょっと気になりますが・・。ショートカットキーは、ctrl+L)と表示させます。測定結果が1ポイントの場合は、ユーザー指定変数名=〇〇で表示されています。複数ポイントの場合は、表形式で表示されています。この場合は、表の上辺りで右クリックします。すると小さなダイアログが表示されるので、「Plot step'ed .meas data」を選択します。すると新たなビュアーのウィンドウが表示されます。変数が複数ある場合は、変数を選択するとグラフが表示されます。

 構文1( 任意の1点の値を読む場合、ただし繰り返し解析を行った場合はテーブル(表形式)変数として得られる )
 .MEAS[SURE] [AC|DC|OP|TRAN|TF|NOISE] <name>
+ [<FIND|DERIV|PARAM> <expr>]
+ [AT=<expr>|WHEN <expr>]
+ [<RISE|FALL|CROSS>=[<count1>|LAST]] [TD=<val1>]

・[AC|DC|OP|TRAN|TF|NOISE] : 解析の種類を指定する(同じ回路図を使って他の種類の解析も行う場合は、念のため指定しておく)
・<name>:測定値に対しユーザーが任意で付ける変数名
・[<FIND|DERIV|PARAM> <expr>]:FIND(<expr>が出力変数またはユーザー設定の数式の場合)、DERIV(<expr>の傾き/導関数を得る)、PARAM(<expr>は結果が任意定数となる数式の場合、または出力変数ならば最後にシミュレーションされた値を得たい場合)
・[AT=<expr>|WHEN <expr>]:AT=(求めたい<expr>のX値を指定)、WHEN <expr>(条件式<expr>を指定する場合、以降詳細な条件設定が可能)
・[<RISE|FALL|CROSS>=[<count1>|LAST]]:RISE(条件式<expr>がグラフの立上りで<count1>回目に満たされた場合を検出)、FALL(条件式<expr>がグラフの立下がりで<count1>回目に満たされた場合を検出)、CROSS(条件式<expr>が<count1>回目に満たされた場合を検出)、LAST(条件式<expr>が範囲内で最後に満たされた場合を検出)
・[TD=<val1>]:過渡解析で別途指定のタイミングから<val1>sec後の値を検出

 構文2(指定区間内の平均値、最大値、最小値、ピーク to ピーク値、RMS値、積分値を求める場合。区間指定なしの場合はシミュレーション全範囲。)
  .MEAS [AC|DC|OP|TRAN|TF|NOISE] <name>
+ [<AVG|MAX|MIN|PP|RMS|INTEG> <expr>]
+ [TRIG <lhs1> [[VAL]=]<rhs1>]
+ [<RISE|FALL|CROSS>=<count1>] [TD=<val1>]
+ [TARG <lhs2> [[VAL]=]<rhs2>]
+ [<RISE|FALL|CROSS>=<count2>] [TD=<val2>]
・[AC|DC|OP|TRAN|TF|NOISE] : 解析の種類を指定する(同じ回路図を使って他の種類の解析も行う場合は、念のため指定しておく)
・<name>:測定値に対しユーザーが任意で付ける変数名
・ [<AVG|MAX|MIN|PP|RMS|INTEG> <expr>]:AVG(出力変数またはそれを使った数式<expr>について、指定区間内の平均値を求める)、MAX(最大値を求める)、MIN(最小値を求める)、PP(ピーク to ピーク値を求める)、RMS(RMS値を求める)、INTEG(積分値を求める)
・[TRIG <lhs1> [[VAL]=]<rhs1>] [<RISE|FALL|CROSS>=<count1>] [TD=<val1>]:測定を開始するポイントの設定。出力変数またはそれを使った数式<lhs1>について、VAL(値が<rhs2>になったポイント)、RISE(<count1>回目に立ち上がったポイント)、FALL(<count1>回目に立ち下がったポイント)、CROSS(<count1>回目にクロスしたポイント)、TD(過渡解析で指定ポイントから<val1>sec経過したポイント)
・[TARG <lhs2> [[VAL]=]<rhs2>] [<RISE|FALL|CROSS>=<count2>] [TD=<val2>]:測定を終了するポイントの設定。以下、上に同じ。


コンポーネント値等を変化させながら解析を繰り返す

パラメータ・スイープ
回路部品のパラメータ(ユーザー指定の変数、LTspiceではグローバル・パラメータと呼んでいる)、モデルパラメータ、独立電源の値、動作温度(.tempでも可能)を変えながら、シミュレーションを繰り返し、同一プロット上に一括波形表示することができます。 これは、基本のDC解析、AC解析、過渡解析のいずれに対しても適用できます。
波形表示の結果は、さらに.measureコマンドを使って、横軸、縦軸のパラメータを変えた新たなグラフを作成することもできます。
  1. 変化させたいパラメータを数値から、任意の変数名に置き換える。回路図内の変数名は、グローバル・パラメータの場合は、中括弧(波括弧){ }で囲む。
  2. 解析設定コマンドに加えて下表に従って.stepコマンドを記述し、どの変数をどう変化させるかを設定する。 分かりにくい場合は、まず .step のみを回路図に配置し、右クリックすると設定ウィンドウが開くので、それを使って入力する。
 スイープ対象 スイープタイプ .stepステートメント書式 
グローバル・パラメータ リニア .step param <変数名> <初期値> <最終値> <増分>
対数 .step dec|oct param <変数名> <初期値> <最終値> <ポイント数/単位区間>
リスト .step param <変数名> list <値1> <値2> ...
モデルパラメータ   リニア .step <モデル種類> <モデル名>(<モデルパラメータ>) <初期値> <最終値> <増分>
対数 .step dec|oct <モデル種類> <モデル名>(<モデルパラメータ>) <初期値> <最終値> <ポイント数/単位区間>
リスト .step dec|oct <モデル種類> <モデル名>(<モデルパラメータ>) list <値1> <値2> ... 
(温度 または 独立電源) リニア .step temp|<電源名> <初期値> <最終値> <増分>
対数 .step dec|oct temp|<電源名> <初期値> <最終値> <ポイント数/単位区間>
リスト .step temp|<電源名> list <値1> <値2> ...
・スイープタイプが対数の場合、dec は decade の略で10倍ごとの対数スケールに沿った数値をとり、oct は octave の略で2倍ごとの対数スケールに沿った数値をとります。負の値は使えません。(例 .step dec param X 1 20 5 ならば X=1, 1.58, 2.51, 3.98, 6.31, 10, 15.8, 20という値をとります。)
・動作温度を変えて解析する場合は、.step temp より.tempコマンドが簡単で便利です。
・独立電源で電源名でなく電圧・電流値を直接、変数とする場合は、グローバル・パラメータの書式に従います。(取扱いはグローバル・パラメータとした方が良いようです。)

多次元ステッピング 
前項のパラメータ・スイープでは、基本的に一つのパラメータまたはそれに相関性のある複数のパラメータを変動させる方法を説明しています。1歩進んで、まったく相関性のない複数のパラメータを変えた組み合わせを指定して、それらを変動させながらシミュレーションしたい場合があります。TopSpiceでは、多次元ステッピング用に、テーブル関数を使った方法がマニュアルで詳しく説明されています。LTspiceには用意されてはいないので、.funcコマンドによるユーザー指定関数を使って、代わりの方法を考えた方がいたようです。公開されている内容の中には、微妙に間違っていて動かない例もあるようなので、正しく動作するという確認済みの方法を、まとめておきます。
.func muld(x,p1,p2,p3,p4) {buf(x==1)*p1+buf(x==2)*p2+buf(x==3)*p3+buf(x==4)*p4} -----(1)
.param A=muld(x,0.5,0,1,0.5) -----(2)
.param B=muld(x,0.5,1,0,0.5)
.param C=muld(x,0.033u,0.033u,0.068u,0.068u)
.param D=muld(x,3300p,3300p,6800p,6800p)
.param E=....
.step param x list 1 2 3 4 -----(3)
(1):muld(引数1,引数2,引数3,...)(名前は任意)というユーザー指定関数を、.funcコマンドで定義した。buf(x==n)は、LTspice独自の組み込み関数で、変数xがnのとき、buf(x==n)=1となり、xがnでない場合はbuf(x==n)=0となる。したがって、例えばステップ変数x=3のときは、muld(x,p1,p2,p3,p4)=p3となる。buf(x==n)は、if(x==n,1,0)と同じ結果を示す。
(2):任意の回路変数Aがステップ値にしたがい、変動する。他のものも同様。複数の変数に対し、希望する組み合わせを設定できる。
(3):ステップ・コマンドを前項のルールで実行する。.step param <変数名> list <値1> <値2> ...

モンテカルロ解析
現実の回路の部品パラメータ値は、理想の設計値に対して一定のばらつき・公差を持っています。このばらつきを乱数により発生させ、できるだけ多く解析を繰り返すと、対象回路を製品化し量産した場合にどの程度出力等が設計目標値よりずれるかを予測することができます。逆にこの解析により、各部品の公差をいくつに設定すればよいかなどを求めることができます。コンピュータ・シミュレーションならではの特長的な解析法です。
(モンテカルロ法:シミュレーションや数値計算を乱数を用いて行う手法の総称。カジノで有名なモナコ公国のモンテカルロ地区名より名付けられた。[ウィキペディアより])
LTspiceでも、モンテカルロ解析を行うことができます。しかし、市販のSPICE(PSpice, TopSpice等)と比較すると、ワーストケース解析ができない、その他多くの機能で劣っており、使いづらさも多々あります。この点に注意しながら、LTspiceでできる範囲でのモンテカルロ解析の手順を以下に紹介します。唯一の参考資料は、\examples\EducationalフォルダのMonteCarlo.ascです。
追記:「LTspiceで学ぶ電子回路」の著者、渋谷先生の三共社オンラインセミナーで、LTspiceでワーストケース解析を行う方法が紹介されました。ユーザー定義関数コマンド.funcで独自の関数を2つほど定義して、.stepコマンドで解析を繰り返す方法です。
  1. グローバル・パラメータ値に対してどのようにばらつくかを設定する。ばらつきが範囲内で一様に分布するとした場合と、正規分布するとした場合の2通り選べる。
  2. 一様分布の場合は、ばらつきを設定したいグローバル・パラメータ値を、 {mc(val,tol)} と入力する。正規分布の場合は、{val*(1+gauss(tol))} と入力する。ただし、標準のグローバル・パラメータ値を val 、ばらつきを標準値に対する比率で tol とする。正規分布の場合は、釣鐘状の形の分布になり、パラメータは val(1-tol×3) から val(1+tol×3) の間に99.73%が存在します。ばらつきを設定したい部品の値は、LTspiceでは一括で指定する方法はないので、個々に指定します。
  3. DC解析、AC解析、過渡解析など基本の解析設定をいつも通りに行う。
  4. .stepステートメントにより、繰り返し回数を設定する。(例 .step param n 1 200 1)
  5. シミュレーションを実行すると、パラメータ値が乱数によって設定範囲内で設定分布に従ってばらつきながら、3項の解析が指定回数繰り返される。
・LTspiceでは、複数の乱数表が組み込まれてはいないようであり、解析実行のたびに分布が変わることはありません。
・.mesureステートメントを設定して、横軸を解析番目、縦軸出力のばらつき値としたグラフを作成することができます。LTspiceでは、度数分布のグラフを表示することはできません。
・正規分布を2σでカットする、ロット性のばらつきを組み込むなどの高度な機能は、LTspiceにはありません。


ディジタル・シミュレーション

 カリフォルニア大バークレー校で開発されたオリジナルのSPICEには、ディジタル素子によるシミュレーションは組み込まれていませんでした。PSpiceなど商用SPICEでは、ディジタル素子が追加され、アナデジ混在のシミュレーションが簡単にできるようになりました。SPICEを有効活用することを考えると、アナログ回路シミュレータとしてのみ使うのは、片手落ちです。
LTspiceにも基本的なものだけですが、ディジタル素子が組み込まれています。LTspiceのディジタル・シミュレーションについては、いくつかの入門書を見ても残念ですがあまり詳しく載っていないか、あるいはアナログ回路シミュレータとしか認識していないかのように、まったく記述がありません。
ここでは、LTspiceでディジタル・シミュレーションを行うための基本情報を紹介します。アナデジ・ミックスドモード・シミュレーションを行う際の参考としてください。

LTspiceにおけるディジタル・シミュレーションの基本
  • 他の市販SPICEでは、アナログ信号とディジタル信号は別のものとして扱われていますが、LTspiceでは区別されていません。 デフォルトでは、ロジック・ハイレベルが1V、ローレベルが0Vとなっており、ロジックの0/1をそのまま電圧で表しているとも見なせます。
  • アナデジ信号が区別されていないことには、メリット/デメリットがあり、それらを十分に理解して使用しなければなりません。
  • メリットは、ディジタル信号についての新たなルールや、ディジタル信号ジェネレータなどについて覚えなくて良いことです。
  • デメリットは、任意のパルス信号の生成時に必ずアナログの独立信号源のPWL記述を使わなければならないので、パルス信号の立ち上がり/立下りの設定が非常に面倒であること、スリーステートの概念が組み込めないこと、ディジタル素子の電圧レベルを一括で変えるコマンドがないので、動作レベルを0-1Vから変えたい場合はすべてのディジタル素子で変更する必要があることなどです。
  • さらに言えば、他のSPICEでは、常にそのノードはアナログ信号かディジタル信号かを意識して考えますが、LTspiceではその区別が明確でないために、ややもするとディジタル信号に対して過分なアナログ特性を追及してしまう可能性があります。シミュレーションの結果を自分で利用するだけならば、これはあまり意味がありません。無駄な労力は、避けましょう。
  • アナログとディジタル相互のインターフェイスは、他のSPICEと同様で電圧レベル、インピーダンスに注意すれば特に問題はありません。
ディジタル素子
ディジタル素子を、回路図に配置するには、 回路図キャプチャのツールバーのANDアイコンをクリック、またはメニューよりEdit--->Componentとクリックして、部品選択ウィンドウを開き、[Digital]フォルダ内の部品を選びます。部品の詳細は下表に示します。
ディジタル素子の電源/グランドラインの接続の必要はありません。また、ゲート素子の入出力端子で、使用していないものは、一般ルール同様オープンで構いません。参考文献(2)で示されているゲートの入出力を接地するという接続方法はとらなくても動作します(内部的にはそのような設計なのかも知れません)。
ディジタル素子名 機     能 
and 2〜5入力のANDまたはNANDゲート。ANDかNANDの選択は、出力端子の選び方で決まる。
buf 1入力2出力のゲート。反転出力を選べばインバータ・ゲート、非反転出力を選べばバッファ・ゲート。同時に非反転、反転出力を選ぶことも可能。
buf1 1入力1出力の通常のバッファ・ゲート。
counter n進カウンタで、クロック入力とQ0出力とQ1(nが奇数のとき)またはQ0の反転出力(nが偶数のとき)を持つ。パラメータとして「cycles=n」と指定することが必要。nは2以上の整数。クロックの立ち上がりエッジでカウントする。
dflop Dタイプフリップフロップ。クロックの立ち上がりエッジで動作する。プリセット(PRE)とクリア(CLR)入力があり、どちらもハイ・アクティブだが、使用しない場合はオープンで構わない。
diffshumitt, diffshumitbuf, diffshumitinv 差動入力タイプのシュミットトリガ・ゲート。diffshumittは、非反転出力と反転出力2つを持つ。diffshumitbufは、非反転出力のみを持つ。diffshumitinvは、反転出力のみを持つ。入力スレッシュホールド電圧は、Vt(初期値0.5V)で指定、ヒステリシス電圧は、Vh(初期値0V)で指定する。 
inv 1入力1出力の通常のインバータ・ゲート。
or 2〜5入力のORまたはNORゲート。ORかNORの選択は、出力端子の選び方で決まる。 
phidet フェイズ・ディテクタ。ディジタル素子のフォルダ内にありますが、純粋なロジック素子ではありません。入力1が0.5Vを右肩上がりで通過し、入力2が0.5Vを右肩上がりで通過するまで、出力がハイとなる。出力のレベルは、Iout(デフォルト値:100uA)というパラメータで指定される電流値と負荷抵抗値でのみ決定される。 パラメータVhigh, Vlowは無視される。
shumitt, shumitbuf, shumitinv 基本的な1入力タイプのシュミットトリガ・ゲート。shumittは、非反転出力と反転出力2つを持つ。shumitbufは、非反転出力のみを持つ。shumitinvは、反転出力のみを持つ。入力スレッシュホールド電圧は、Vt(初期値0.5V)で指定、ヒステリシス電圧は、Vh(初期値0V)で指定する。 
srflop リセット優先のRSフリップフロップ。セットS, リセットR入力のどちらもハイ・アクティブ。S,Rともにハイ入力の場合は、リセット動作をします。
xor Ex.OR(排他的論理和)またはEx.NORゲート。2つの入力のみを使えば、当然ですが、標準のエクスクルーシブOR/NORとして機能します。3〜5入力を使った場合は、本来はEx.ORではないのですが、一つの入力のみがハイのときに、非反転出力がハイに、反転出力がローになります。

ディジタル素子のパラメータ
パラメータをデフォルト値以外に設定したい場合は、当該シンボルを右クリックすると、属性設定エディタが開くので、Value欄に「パラメータ=**」という形式で指定します。
パラメータ デフォルト値  適用される素子 内     容 
Vhigh 1 V すべてのディジタル素子 ロジック・ハイレベル。
Vlow 0 V すべてのディジタル素子  ロジック・ローレベル。
Trise 0 sec すべてのディジタル素子  立ち上がり時間。
Tfall Trise すべてのディジタル素子  立ち下がり時間。
Td  0 sec すべてのディジタル素子  伝搬遅延時間。
Ref .5*(Vhigh+Vlow) シュミットトリガ素子以外  入力ロジック・スレッシュホールド値。中間値から変更する場合に指定。 
Tau 0 sec シュミットトリガ素子以外   出力RC時定数。出力にRC積分回路が接続されたような波形になる。Vc=E(1-e^(-t/Tau))
Cout 0 F すべてのディジタル素子 出力キャパシタンス。 
Rout 1 Ω すべてのディジタル素子  出力インピーダンス。
Rhigh Rout  すべてのディジタル素子  ロジックハイレベル・インピーダンス。 
Rlow Rout すべてのディジタル素子  ロジックローレベル・インピーダンス。
Vt .5*(Vhigh+Vlow) シュミットトリガ素子  シュミットトリガ入力ロジック・スレッシュホールド値。 
Vh 0V シュミットトリガ素子  シュミットトリガ入力ヒステリシス値。
tripdt timestep  過渡解析全体  デフォルトで自動設定される最大時間ステップを指定。


LTspiceに外部のモデルを組み込むには


別ページを参照願います。


参考文献資料:(1) LTspice XVII ヘルプ、(2) LTspiceで学ぶ電子回路(渋谷道雄 著、オーム社)、(3) LTspice電子回路シミュレータ(北川章夫 著、工学社)、(4) 電子回路シミュレータPSpiceリファレンス・ブック(森下勇著、CQ出版社) 
関連書籍ページ参照