0%

KiCad联合LTspice仿真 - KiCad Simulation:Export to LTspice

在介绍完KiCad仿真工具后,前文还介绍了如何使用KiCad内置的ngspice进行原理图仿真的案例,但是内置仿真的功能还不够多,而ngspice的界面过于简陋基本等于没有,那么在KiCad中有没有更好的仿真工具可以用呢,答案是,有的。

LTspice简介

这是一款免费的仿真工具,而且由ADI鼎力支持。 有这两点介绍就足够了。

联合LTspice仿真的流程

下面简单介绍一下整个流程和方法。

打开KiCad工程

这个没啥好介绍的吧,首先你得有个原理图。

绘制原理图

绘制原理图和前文相同,只需要给器件添加正确的仿真模型(或者直接已经写好绝对路径的器件),并且有正确的源设置。

相比于直接在KiCad中仿真,还需要继续设置一些东西。

填写仿真语句

当然,在KiCad中直接仿真的时候,先写好仿真语句也是完全可以的而且我是比较推荐的。

如果导出的时候没有事先在原理图中写好仿真语句,那么使用LTspice打开的时候会提示没有可用的仿真类型,你也可以这时候再在LTspice中编辑,但是,提示的弹窗很烦,不是吗?

需要注意的是,网表导出器只能识别它支持的语句,不支持的也不会被导出。

设置导出功能

打开原理图后,点击:

文件->导出->网表->选择spice这一栏,更换里面的默认命令为:

LTspice.exe -big "%I"

这里要注意,如果LTspice.exe并没有加入环境变量,那么需要填写为绝对路径:

C:\Users\[用户名]\AppData\Local\Programs\ADI\LTspice\LTspice.exe  -big "%I"

旧版的LTspice的可执行文件不叫这个名字,可以替换为:

D:\Program Files\LTC\LTspiceXVII\XVIIx64.exe -big "%I"

-big 参数表示打开的时候最大化窗口,%I则是当前导出网表的路径。

还可以选择更多的参数,参考LTspice安装目录下的LTspiceHelp文档,Command Line Switches章节。

然后点击导出网表并运行就可以直接打开LTspice啦。

当然,直接点击导出网表后点击cir文件也可以直接用LTspice打开,但是那麻烦一些,不是吗

额外的功能

使用LTspice的专用模型

LTspice的模型大多是专用的,但是除了加密模型,他们也是使用ASCII文本文件储存的,因此,虽然在KiCad的ngspice中虽然可能用不了,但是依然可以设置为器件的spice模型并且导出到LTspice使用。

这种方法的好处是对于ADI没有直接提供Spice模型的器件, 可以直接借用LTspice的模型。

是借用!读书人的事怎么能叫偷呢?

方法如下:

使用Everything找到需要器件的asy文件,这是LTspice所使用的原理图符号的文件。

什么?你还没有用上Everything? 赶快下载吧!极速体验就在眼前~

例如LT1009.asy ,使用文本编辑器例如VSCode打开这个文件,找到带有 SpiceModel 字样这一行,这个说明了这个模型在哪个库里面,这里找到的是LTC3.lib 。同时,可以关注一下下面的SpiceOrder,这个表示了spice中引脚排列顺序。这里是:

PINATTR PinName VCC
PINATTR SpiceOrder 1
PIN 0 32 NONE 8
PINATTR PinName VEE
PINATTR SpiceOrder 2
PIN 32 0 NONE 8
PINATTR PinName ADJ
PINATTR SpiceOrder 3

那么在KiCad原理图元器件的仿真设置中就需要设置正确的顺序。

在KiCad6中是勾选替代节点顺序,用KiCad原理图符号引脚号表示引脚,排成上面需要的顺序。

在KiCad7中是在引脚分配上手动勾选就好了。(吐槽:似乎还没上面那个好用,引脚多的器件需要一个一个点好累)

TIPS【1】: 可以看到LTC3.lib就包含了很多LTSpice的模型,实际上安装目录下LTspice\lib\sub的.lib文件就是Ltspice所用的spice器件模型,不过大多数模型都用了LTspice所兼容的语法,因此在ngspice可能并不能直接使用。

TIPS【2】: ngspice可以调整兼容模式,在KiCad中是 检查->仿真>仿真->设置 ,不过这不影响导出的网表,而且似乎没啥用。

优点

1、LTspice在许多电路中更容易收敛,还能用LTspice的模型仿真。

2、LTspice功能更多。

3、对于LTspice本来就没有的模型还是手动导入,这里直接从KiCAD导入则干脆省掉了这一步。

其实ngspice本身收敛能力不错,但是还是远不如LTspice,很多使用复杂模型的电路都会无法收敛。

相比直接使用LTspice的缺点

1、这个方法的缺点是由于只有网表可用,因此LTspice中的部分增强使用体验的功能不能直接使用。

虽然ltspice所支持的原理图文件(.asc)也是纯文本储存,而且格式非常简单,但是KiCad并没有基于原理图的插件功能,因此我认为目前不值得为其开发一个转换生成Ltspice原理图的功能。

KiCad组织从KiCad5开始说下一代要加入原理图插件功能,python插件示例中也预留了库名称,但是直到KiCad7,他们依然在说下次一定!

2、LTspice部分加密的二进制模型也无法使用。

语法注意点

有些名称需要按照LTspice的来,例如噪声仿真中,输出噪声的频谱是onoise_spectrum,而LTspice是onoise,例如需要使用.save命令的时候,当然是需要复合当前使用的仿真器。

结语

我尝试过使用别的仿真工具导入网表,但是似乎不太好用。

好了,现在KiCad仿真的系列教程结束了,现在转入LTspice的仿真教程吧!

我忘记我还要说什么了。。。。 下面放个视频教程: 【电路】KiCad仿真教程#2:KiCad联合LTspice仿真