spice类电子电路模拟器
ahkab的Python项目详细描述
一个用python编写的类似spice的电子电路模拟器
代码应该易于阅读和修改,主要语言是python –2或3–独立于平台。
新闻!
- AHKAB v0.18于2015年7月18日发布,包括新功能, 修正错误和改进文档。建议升级。 签出the release notes的 更多!
- 整个代码库都经历了一个(但还不完整) 重构和记录工作。这是new documentation is available on RTD。
这些天我的资源有限,所以急需的工作是 缓慢地进行,尽管希望是稳定的。如果你感兴趣 您希望为重构或记录特定的 功能,非常欢迎。
支持的模拟:
- 数字:
- 操作点,使用猜测计算加速 解决方案。参见示例:Downscaling current mirror
- dc扫描
- 瞬态分析,可用的微分公式: 隐式欧拉,梯形,2-5档。查看 例如simulation of a Colpitts Oscillator。
- ac分析
- pz分析
- 非自治电路的周期稳态分析, timedomain射击和蛮力算法。
- 符号:
- 小信号分析,交流或直流,带传输提取 函数,直流增益,极点和零点。各种各样的symbolic analysis examples on this page。
结果保存到磁盘,打印或打印到标准输出,并且可以 由最常用的工具(如 Octave, gnuplot, Matlab, gwave和其他)
安装
程序要求:
- python解释器版本2或3(python2至少是v.2.6, 5.3.3Python3),
- numpy>;=1.7.0,scipy>;=0.14.0,sympy>;=0.7.6,tablete>;=0.7.3。
强烈建议使用matplotlib,否则无法进行绘图。
如果需要有关依赖项的更多信息,请检查Install notes。
用法
一。ahkab可以作为python库运行
fromahkabimportnew_ac,runfromahkab.circuitimportCircuitfromahkab.plottingimportplot_results# calls matplotlib for youimportnumpyasnp# Define the circuitcir=Circuit('Butterworth 1kHz band-pass filter')cir.add_vsource('V1','n1',cir.gnd,dc_value=0.,ac_value=1.)cir.add_resistor('R1','n1','n2',50.)cir.add_inductor('L1','n2','n3',0.245894)cir.add_capacitor('C1','n3','n4',1.03013e-07)cir.add_inductor('L2','n4',cir.gnd,9.83652e-05)cir.add_capacitor('C2','n4',cir.gnd,0.000257513)cir.add_inductor('L3','n4','n5',0.795775)cir.add_capacitor('C3','n5','n6',3.1831e-08)cir.add_inductor('L4','n6',cir.gnd,9.83652e-05)cir.add_capacitor('C4','n6',cir.gnd,0.000257513)cir.add_capacitor('C5','n7','n8',1.03013e-07)cir.add_inductor('L5','n6','n7',0.245894)cir.add_resistor('R2','n8',cir.gnd,50.)# Define the analysisac1=new_ac(2.*np.pi*.97e3,2.*np.pi*1.03e3,1e2,x0=None)# run itres=run(cir,ac1)# plot the resultsplot_results('5th order 1kHz Butterworth filter',[('|Vn8|',"")],res['ac'],outfilename='bpf_transfer_fn.png')
2.ahkab可以使用netlist文件从命令行运行
语法为:
`$ python ahkab -o graph.dat <netlist file>`
有关命令行开关,请参见ahkab --help,also online on the documentation pages.
文件
这个documentation is available on RTD。
在那里,你可以找到 documentation 和 examples 关于如何从python脚本进行模拟。
参考netlist syntax page 如果您喜欢编写描述电路的netlist文件。
有运行spice或相关商业模拟器的经验 非常有用:这不是给胆小的人的。
发展模式
- 发展发生在github repository,
- 主要在主分支上,仅创建特征分支 用于特殊用途或非琐碎功能。
- 快照(希望)定期发布,并且 在Releases pages, complete with changelog和上提供 PYPI
欢迎使用补丁和拉取请求!
这个项目是如何诞生的
很明显,这个项目是在我还是一个狂热的大学生的时候诞生的 有足够的空闲时间参加“Simulazione Circuitale”(电路 由{a24}在意大利的 米兰理工大学。
我很感谢布朗比拉教授教授教授 我大学时代的有趣课程。-总价值
缺陷和补丁
有效吗?漏洞?有补丁吗?你跑了一些值得注意的 模拟?告诉我!欢迎反馈,我的email address在验证码后可用。
捐款支持发展
如果您希望支持ahkab,*的开发,请捐赠给 癌症研究:*
或
学分
作者:Giuseppe Venturini, 有来自Ian Daniher的贡献 和Rob Crowther。
代码:模块py3compat.py是(c)2013-Jinja团队。
依赖关系:非常感谢numpy,scipy的作者, sympy、matplotlib和tabulate!