LTSpice Automation


15

バッテリー駆動のブーストコンバーターを使用しており、いくつかの種類のバッテリー(さまざまな電圧/電圧)に加えて、高電流(さまざまなデューティサイクル/周期)のさまざまな負荷条件で最大入力(バッテリー)電圧ドループを測定しようとしています内部抵抗)。私はそのような(比較的)長い操作時間をシミュレートしているので、シミュレーションファイルはかなり時間がかかりますが、もちろん時間がかかります。LTSpiceを自動化して、コンポーネントの値をプログラムで変更し、シミュレーションを再実行してデータ(電圧や電流などの値)をキャプチャできるようにします。そんなこと知ってる:

  • WAVファイルは、プログラムからのデータの入出力に使用できます
  • プログラムはコマンドラインから実行できます

これまでのところ、私の最良のオプションは、目標を達成する方法で、これら2つのオプションと独自のコード/スクリプトを組み合わせて使用​​するようですが、すでにもっと良い方法があるのではないかと思います。

LTSpiceを自動化した人や、LTSpice向けに書かれた自動化APIが(メーカーまたはサードパーティによって)作成されたかどうかを知っている人はいますか?

理想的には、必要なパラメーターを与え、制約に対する「最適な」解決策が見つかるまでさまざまなコンポーネントの値を試すようなソルバーが必要です。


リニアFAEは何と言いましたか?私は彼らに最初に尋ねます。
ブライアンカールトン

1
.STEPおよび.PARAMコマンドについて知っていますか?それがあなたが望むものを正確に達成するかどうかはわかりませんが、興味があればいくつかの例を挙げて答えを投稿します。
オリグレイザー

1
この質問は、電子設計に関するものではないため、トピック外のようです。
レオン・ヘラー

12
WICEの@LeonHellerはSPICEがデザインの一部ではないのですか?
プレースホルダー14年

1
モンテカルロオプションがこれに最適であることがわかります。Schmooのさまざまなパラメーターを使用でき、バリエーションを表示することもできます。LT-Spiceは、これをネイティブにサポートするSPICEによって無効にすることができます。そこから開始
プレースホルダー14年

回答:


15

シミュレーションを複数回実行し、複数のコンポーネント値を変更することは、1つを変更するだけではありません(それほど悪くはありません)

1つの値を変更するための概念は次のとおりです。

  • 抵抗値など、右端のSPICEディレクティブアイコンを使用して.paramステートメントを追加します .param X=R
  • それを使用するには、抵抗値に{x}を入力し、たとえば.step param X 100 500 50、100から500までの値を50刻みでステップすることを含めます。

例:

ステップの例

結果:

グラフ

複数の値の場合、私が見つけた唯一の方法は、Xの値のリストを使用し、tableステートメントを使用することでした。これはおそらく例を使用して説明するのが最適です(使用するコマンドのヘルプを読むと役立つでしょう)。ただし、テーブルコマンド構文はtable(index、x1、y1、x2、y2、.... xn、yn)の形式であり、入力としてインデックスを取り、指定されたxに基づいてx = indexの補間値を返すことに注意してください。 、yペア。

シミュレーションの1つで、3つの異なるコンポーネント値を変更しながら12のシミュレーションを実行する必要がありました。コマンドは次のとおりです。

.step param X list 1 2 3 4 5 6 7 8 9 10 11 12
.param Rin1 = table(X, 1, 1,1p, 2, 1p, 3, 1p, 4, 4478, 5, 4080, 6, 3400, 7, 2200, 8, 1p, 9, 1p, 10, 1p, 11, 1p, 12, 1p)
.param Rin2 = table(X, 1, 4997, 2, 4997, 3, 4997, 4, 499, 5, 897, 6, 1577, 7, 2777,  8, 4997, 9, 4997, 10, 4997, 11, 4997, 12, 4997)
.param Tval = table(X, 1, 56, 2, 56, 3, 27, 4, 1G, 5, 1G, 6, 1G, 7, 1G, 8, 1G, 9, 330, 10, 330, 11, 120, 12, 120)
.param Kval = table(X, 1, 316, 2, 147, 3, 147, 4, 6340, 5, 6340, 6, 6340, 7, 6340, 8, 6340, 9, 6340, 10, 825, 11, 825, 12, 316)

結果:

ゲインの例

うまくいけば、アイデアを得て、希望する値を入力するときに必要なSPICEコマンドを生成するスクリプトを作成できるかもしれません。または、単にテンプレートを作成します(たとえば、上記をコピーしていくつかの異なるシミュレーションに貼り付け、値を変更しました)

上記のあなたがやりたいしない場合は、多分NIのMultisimのようなものを見て(私は彼らがどのように有用ではないんですけれども、それは、いくつかのバッチ・シミュレーション・オプションを持っていると思う)またに尋ねることは有用かもしれLTSPiceフォーラムで誰かが物事を行うためのより良い方法を知っているかどうかを確認します。


3
これは私が望んでいるほどきれいではありませんが、フリーソフトウェアの場合、彼らが私に骨を投げてくれたことに感謝することができます。このテクニックをご紹介いただきありがとうございます。これは間違いなく私が探しているものに近づくでしょう。
ジョエルB

1
ありがとう、これは私のシミュレーションを理解するのに役立ちました。ここで、どのシミュレーションがどのシミュレーションであるかを確認できるように、プロットに凡例を配置する方法を理解する必要があります。

8

コマンドラインからLTSpiceを実行し、一時的なシミュレーションを実行することは実際に可能であると思います。

ウィンドーズについて:

cd <wherever LTSpice is installed on your computer>
scad3.exe -Run -b MyCircuit.asc

Linuxの場合:

cd ~/.wine/drive_c/Program Files (x86)/LTC/LTspiceIV
wine ./scad3.exe -Run -b MyCircuit.asc

1
これは素晴らしい発見です!今、私はこれを自動設計にどのように使用できるかをブレインストーミングしています。
ジョエルB 14

1
@JoelB:はい、それも私が使用しているものです。残念ながらいくつかの欠点があります。1)GUIとは異なり、ソルバーはシングルスレッドで実行されるため、速度が遅くなります。2)GUIのような「進捗レポート」はありません
15年

3

LTSpiceは、-bコマンドラインスイッチを使用してバッチモードで実行できます。

LTSpiceヘルプファイルから:

-b:バッチモードで実行します。たとえば、「scad3.exe -b deck.cir」はデータをファイルdeck.rawに残します。

.raw出力の読み方と解釈方法は、読者の練習問題として残されています。

また、コマンドラインスイッチには次の点に注意してください。

-ascii:ASCII .rawファイルを使用します。プログラムのパフォーマンスが大幅に低下します。


どのように正確に実行しますか?つまり、コマンドラインモードで。私は通常Windowsユーザーではなく、Windowsマシンでこれを行う方法がわかりません。
Tropical_Peach 14年

1
私はそのように実行したことがありません。自分で試してみる必要があります。コマンドウィンドウ([スタート]メニューの 'cmd.exe')を開くか、テストのシーケンスに使用している言語から実行できます。
光子

あなたは、MATLABを使用している場合、彼らはた.rawファイルを変換するためのスクリプトを持っているmathworks.com/matlabcentral/fileexchange/...
電圧スパイク

3

LTSpice Queue Manager」ですでに確認しましたか?(リンクは、ソフトウェアをダウンロードできる私のウェブサイトにリダイレクトしますが、私はその著者ではありません。元々は今日閉鎖されているフォーラムでプログラムを共有していました。私のウェブサイトで共有すると復活します

このツールは、過去に非常に役立ちました。多くのシミュレーションファイルを準備して、キュー形式で実行できます。

LTSpiceキューマネージャー


キューイングは自動化ではありません。
ハリースベンソン

1
必要な自動化がキューイングである場合、それは確かです!これは、OPの問題に直接対処します。
ダニエル

1
これがあなたが書いていないクローズドソースのソフトウェアである場合、ユーザーはそれを実行することを理解できるほど恐ろしく思うでしょう。
デイブツイード

1

LT Spiceだけで、GUIを通過できない場合は、スクリプトプログラムAutoItをお勧めします。active-x-DDE-COM.dll-whateverが欠けているいくつかの重要なWindowsアプリケーションを自動化するために使用しました。ファイルの待機、ウィンドウボタンのプッシュ、メニュー項目、引数付きのプログラムの呼び出しなどを設定できます。

見て:

http://www.autoitscript.com/site/

http://www.autoitscript.com/forum/

スクリプトプログラムの料金を支払う場合は、Winbatchに行きます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.