LTSpice 自动化

电器工程 编程 模拟 香料 优化
2022-01-19 16:23:02

我有一个电池供电的升压转换器,我正在尝试测量在各种高电流消耗(不同的占空比/周期)负载条件下的最大输入(电池)电压降,此外还有多种电池类型(各种电压/内阻)。由于我正在模拟如此(相对)大量的操作时间,因此模拟文件变得相当庞大,更不用说它们需要一段时间了。我想自动化 LTSpice,以便我可以以编程方式更改组件值并重新运行模拟并捕获数据(电压或电流等值)。我知道:

  • WAV 文件可用于从程序输入/输出数据
  • 该程序可以从命令行运行

到目前为止,我最好的选择似乎是结合使用这两个选项以及我自己的代码/脚本以实现我的目标,但我只是想知道是否已经有更好的方法。

有没有人自动化 LTSpice 或知道是否有任何类型的自动化 API 为它编写(由制造商或第 3 方)?

理想情况下,我希望有一个求解器,这样我就可以给它所需的参数并尝试各种组件值,直到它找到我的约束的“最佳”解决方案。

4个回答

多次运行模拟并更改多个组件值比仅更改一个更复杂(这还不错)

这是更改一个值的概念:

  • 使用最右侧的 SPICE 指令图标添加 .param 语句,例如电阻值.param X=R
  • 要使用它,您可以在电阻值中输入 {x},然后包括例如.step param X 100 500 50以 50 为增量在 100 和 500 之间步进值。

例子:

步骤示例

结果:

图形

对于多个值,我发现唯一可行的方法是使用 X 的值列表,并使用 table 语句。这可能最好用一个例子来解释(阅读所用命令的帮助可能会有所帮助)。但请注意,table 命令语法的格式为 table(index, x1, y1, x2, y2, .... xn, yn),将 index 作为输入并根据提供的 x 返回 x=index 的插值,y 对。

在我的一个模拟中,我需要执行 12 次模拟,同时更改 3 个不同的组件值,以下是命令:

.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's multisim 之类的东西(我认为它有一些批量模拟选项,虽然我不确定它们有多大用处)在LTSPice上询问也可能会有所帮助论坛,看看是否有人知道更好的做事方式。

我认为实际上可以从命令行运行 LTSpice 并让它运行瞬态模拟:

在 Windows 上:

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

LTSpice 可以使用-b命令行开关以批处理模式运行。

从 LTSpice 帮助文件:

-b:以批处理模式运行。例如“scad3.exe -b deck.cir”会将数据留在文件deck.raw中

如何阅读和解释 .raw 输出留给读者练习。

另请注意,在命令行开关中:

-ascii:使用 ASCII .raw 文件。严重降低程序性能。

您是否已经在“ LTSpice 队列管理器”查看过?链接重定向到我自己的网站,您可以在其中下载该软件,但我不是它的作者,他最初在今天关闭的论坛上分享了该程序。通过我的网站分享它是恢复它的一种方式)。

这个工具在过去对我有很大帮助。您可以准备许多模拟文件并以队列方式运行它们。

LTSpice 队列管理器