LTspice:シミュレーションの高速化

LTspice:シミュレーションの高速化

著者の連絡先情報

Gabino-Alonso

Gabino Alonso

LTspiceは、シミュレーション時間を短縮できるように設計された回路シミュレータです。ただ、シミュレーションの内容によっては、更なる高速化を実現しなければ実用上問題が生じてしまうことがあります。そこで、ここでは高速化を実現するための手法をいくつか紹介します。但し、それらの手法を適用すると、速度と引き換えに精度が低下してしまう可能性があります。その点には注意が必要です。なお、本稿で取り上げる内容の詳細については、LTspiceのヘルプ・ファイル(<F1>キー)を参照してください。また、適用した手法の効果を評価するには、LTspiceのエラー・ログ(<Ctrl> + <L>キー)を見てシミュレーションにかかった時間を確認してください。

電源の起動時間を短縮する

ここでは、スイッチング電源(SMPS:Switch Mode Power Supply)のシミュレーション時間を短縮する方法を紹介します。SMPSについては、ソフトスタート用のコンデンサの値を変更することで出力電圧の立上がり時間を短縮することができます。これを実践する際には、電源のスタートアップ性能について十分に理解しておかなければなりません。その上で、同コンデンサの値をより小さい値に変更します。例えば、デフォルトの値である0.1μFから0.001μFに変更するといった具合です。それにより、所望の出力電圧に達するまでの時間を短縮することができます。

但し、ソフトスタート用のコンデンサの値は、小さくしすぎてはなりません。場合によっては、出力の立上がりにより、VCピン/ITHピンのレベルが公称の制御ポイントを大幅に上回ってしまうことがあります。そうすると、オーバーシュートを抑えるために、大きなスルー・ダウンが生じる可能性があります。そのようなレベルまでコンデンサの値を小さくするのは避けてください。

電源に負荷を接続するタイミングを遅らせる

もう1つ、SMPSのシミュレーションを高速化する効果的な手法が存在します。それは、電圧制御型のスイッチ(SW)を利用して、負荷の接続を遅らせるというものです。つまり、出力電圧が目標値(レギュレートされる値)に近づいたときに(または既知のタイミングで)、スイッチを使ってメインの負荷を接続するということです。そうすれば、それまでのすべての出力エネルギーが値の大きい出力コンデンサの充電に使われることになります。起動時の負荷とメインの負荷については、個々に抵抗の設定を行うのではなく、SWの.model文においてRon、Roffの両パラメータで設定することが可能です。

Delay the Application of the Load to a Power Supply with Switch

また、pulse関数を使って設定した電流負荷を使用することで、より簡単に同様の効果を得ることもできます。

Delay the Application of the Load to a Power Supply with Current Load

初期条件を設定する

.icコマンドを使用し、一部のノードの初期条件を設定することによって、シミュレーション時間を短縮できる可能性があります。例えば、シミュレーションの開始時に、出力が目標値に近い状態になるよう、出力の初期電圧を指定するといった具合です。同様に、補償用のノードの電圧を指定することで、スタートアップ時の初期ドループを排除することができます。

.ic V(out)=11 V(vc)=1

トランジェント解析に伴うデータの保存量を減らす

通常、LTspiceのトランジェント解析はtime = 0から開始します。ただ、データの保存を開始する時間は別途設定できるようになっています。.tranコマンドの「Time to start saving data」を編集し、保存を開始する時間を設定すればよいのです。その結果、トータルのシミュレーション時間を短縮することが可能になります。当然のことながら、この方法は保存開始までのデータは不要であることを前提にしています。

Reduce the Amount of Transient Analysis Data

必要なのは、いくつかのノードの電圧と、いくつかのデバイスの電流の値だけといったケースもあるでしょう。その場合、.saveディレクティブを使用し、特定のノードの電圧と特定のデバイスの電流の値だけを保存するようにします。そうすれば、保存するデータの量を制限することができます。また、このディレクティブにdialogboxオプションを追加すると、すべてのノードと電流の値が表示されます。その中から、保存が必要なデータだけを選択するといったことも行えます。

.save V(out) I(L1) V(in) dialogbox

初期動作点の解析をスキップする

シミュレーションを実行した結果、「Damped Pseudo-Transient Analysis」の状態に長時間とどまっているケースに遭遇することがあります(シミュレーションのステータス情報は、ウィンドウの左下隅の表示で確認できます)。通常、この状態は、回路の初期動作点を見いだすためのDC解析が行われている際に発生します。対象とするシミュレーションにおいて特に問題にならないのであれば、<ESC>キーを押すことで、初期動作点の検出をスキップしてシミュレーションを続行することが可能です。シミュレーション・コマンドの設定画面で「Skip initial operating point solution」を選択することでも同じように処理をスキップできます。

Skip the Initial Operating Point Solution

初回のシミュレーションで.savebiasコマンドを使用することにより、時間のかかるDC動作点の解析の結果をファイルに保存しておくことができます。つまり、以下のように記述します。 

.savebias filename.txt internal time=10m

その上で、2回目以降のシミュレーションでは.loadbiasコマンドを使用します。そうすれば、DC動作点の解析を迅速に終わらせて残りのシミュレーションに進むことができます。2回目以降のシミュレーションでは、以下のようなコマンドを実行すればよいということです。

.loadbias filename.txt

波形を表示する際、データをFast Access形式に変換する

LTspiceでは、シミュレーション速度を維持するために、圧縮バイナリ形式のファイルを使用します。それにより、追加のシミュレーション・データをその場で素早く付け加えられるようになっています。しかし、同形式は、シミュレーションの完了後に波形を表示するにあたっては最適なものだとは言えません。波形のプロットを高速化するには、同形式からFast Access形式への変換を行います。その変換は、波形ウィンドウの中をクリックし、「Files」→「Convert to Fast Access」を選択することで実施できます。また、.option fastaccessディレクティブを使用することでも同じ処理を実行できます。

.option fastaccess

なお、シミュレーションの内容によっては、この変換を行うことで、実際のシミュレーション時間よりも長い時間を要してしまうことがあります。この点には注意してください。