本文へスキップ

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

LTspice TIPSHow to use LTspice


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

基本設定

回路図と波形の表示変更
メニューバーの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)を選択/指定してから、対象物にアクセスするという考え方です。
他で慣れている場合は、順序が通常と逆に感じるので慣れが必要です。各機能モードは、右クリックで解除できます。

部品や回路ブロックのコピー
メニューバーよりEdit-->Duplicateをクリックします。(ツールバーのCopyアイコンでも可)
カーソルの形状がコピー形状に変わった状態で、部品をクリックまたは回路ブロックの領域を選択してコピーし、希望する場所まで移動してクリックするとコピー部分が配置されます。
同一回路図内だけでなく、コピーした部品や回路ブロックをそのまま移動させ新しい回路図に配置することも可能です。コピー後、新しい回路図を選択しカーソルを移動するとコピーが新しい回路図に現れます。クリップボードを経由しないこの方式は、やや扱いにくいことは否めません。

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

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

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

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

回路図の拡大縮小
マウスのスクロールホイールにより回路図の拡大縮小が可能。その際、拡大縮小の中心はポインタの位置となります。
回路図の編集が終わり、すべての回路部品を図面内に表示するには、メニューバーよりView-->Zoom to Fitをクリックします。

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

波形ビュアー

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

波形表示設定の保存
シミュレーションを実行後、波形表示を設定しますが、これは結構手間がかかります。次回シミュレーション結果を参照するときに、設定を保存していないと、またこの面倒な同じ作業を繰り返さなければなりません。
設定を保存する方法は、メニューバーより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キーを押しながら回路図上の部品にカーソルを合わせると、カーソルが棒状温度計に変わります。そこでクリックするとその部品の消費電力が数式とともに波形表示されます。

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

パラメータ・スイープ
回路部品のパラメータ(ユーザー指定の変数、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コマンドが簡単で便利です。
・独立電源で電源名でなく電圧・電流値を直接、変数とする場合は、グローバル・パラメータの書式に従います。(取扱いはグローバル・パラメータとした方が良いようです。)

モンテカルロ解析
現実の回路の部品パラメータ値は、理想の設計値に対して一定のばらつき・公差を持っています。このばらつきを乱数により発生させ、できるだけ多く解析を繰り返すと、対象回路を製品化し量産した場合にどの程度出力等が設計目標値よりずれるかを予測することができます。逆にこの解析により、各部品の公差をいくつに設定すればよいかなどを求めることができます。コンピュータ・シミュレーションならではの特長的な解析法です。
(モンテカルロ法:シミュレーションや数値計算を乱数を用いて行う手法の総称。カジノで有名なモナコ公国のモンテカルロ地区名より名付けられた。[ウィキペディアより])
LTspiceでも、モンテカルロ解析を行うことができます。しかし、市販のSPICE(PSpice, TopSpice等)と比較すると多くの機能で劣っており、使いづらさも多々あります。この点に注意しながら、LTspiceでできる範囲でのモンテカルロ解析の手順を以下に紹介します。唯一の参考資料は、\examples\EducationalフォルダのMonteCarlo.ascです。
  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  過渡解析全体  デフォルトで自動設定される最大時間ステップを指定。


参考文献資料:(1) LTspice XVII ヘルプ、(2) LTspiceで学ぶ電子回路(渋谷道雄 著、オーム社)、(3) LTspice電子回路シミュレータ(北川章夫 著、工学社) 
関連書籍ページ参照