在介绍完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 |
那么在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仿真