如果我们能解析LTspice仿真生成的波形数据文件,即raw文件,就可以做很多后处理工作了。比如导入Matlab;做数据统计,画直方图(Histogram)等等。
Python就提供了这么一个工具,PyLTSpice。另外在Github上也能下载:Gihub仓库地址。
或者更直接的,装完Python后直接在线安装这个包:(拿Python3.8举例)
装完以后,打开cmd窗口,输入pip install PyLTSpice
,回车即可:
另外,如果需要画图,会用到matplotlib包,同样在cmd窗口输入pip install matplotlib
进行安装。
如果网速不好,建议切换pip镜像服务器。首先按快捷键 WIN+R,输入%APPDATA%
,回车,定位到了Roaming文件夹,新建一个名为pip
的文件夹,文件夹里新建一个文本文档并改名为pip.ini
,编辑ini文件,输入以下内容并保存:
[global]
index-url=https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=tsinghua.edu.cn
重点是,如何应用这个包:
我们写一段python脚本,名字随意了(我取的LTspiceDataParserUtils.py),内容如下,注意需要解析的raw文件,路径一定要写对,不要丢了r
import matplotlib.pyplot as plt #导入绘图包
from PyLTSpice import LTSpice_RawRead #导入LTspice的Raw数据文件解析包
LTR = LTSpice_RawRead.LTSpiceRawRead(r"C:\Users\wanggaoyong\Desktop\temp\test.raw") #读取运行仿真后生成的raw文件
print(LTR.get_trace_names()) #打印raw文件里所有的波形名字,包括时间轴
print(LTR.get_raw_property()) #打印raw文件的属性
Vo = LTR.get_trace("V(out)") #获取V(out)波形数据
x = LTR.get_trace('time') #获取时间轴数据
steps = LTR.get_steps()
for step in range(len(steps)):
# print(steps[step])
plt.plot(x.get_time_axis(step), Vo.get_wave(step), label=steps[step])
plt.legend() # order a legend
plt.show()
然后运行该脚本:
PyLTSpice这个包还有很多功能,具体可以参考官方介绍,或者自行研究吧,我目前也就会了这一个功能。