原文授权自知乎up:蒋宇辰
“仿真又错了,真实电路出来的结果完全不一样。”
“别用仿真了,反正都仿不准,不如直接搭个电路试试。”
“xxx仿真器根本不行,仿出来一堆错的。”
仿真不准这个都市传说好像又双叒叕灵验了,我在测试一个运放性能的时候发现带宽明显不符合预期。
测试电路是这样的

仿真结果是这样的

实际测试结果是这样的

仿真带宽17MHz,实际电路带宽3MHz,仿真你在逗我?反复检查电路,确认没有焊接错误,物料参数也是正确的,但是测再多遍都是这个结果。
又一篇吐槽仿真不准的文章?当然不是。遇到问题先怀疑自己的实验是否合理,很多问题藏在不起眼的细节里。
对于一个有一定经验的老油条来说,找到问题也不是特别难,很快反应过来哪里翻车了,修正错误,再试一次。
Bingo!实际电路与仿真结果基本吻合。

问题出在哪里?
这又是一个很基础但容易被忽视问题:SPICE的AC仿真,究竟仿的是大信号模型还是小信号模型?
(很多看《运放秘籍》的同学也有相同的疑问,在Multisim里都是一样的,AC仿真时是小信号模型,因此信号源的幅值不会有影响)
可能有人觉得大信号小信号要看仿真设置,激励源幅度大就是大信号,激励源幅度小就是小信号。正不正确只需要简单验证一下就好,还是上面的电路,对激励源的幅度进行扫参(100m、200m、500m、1、2)看看结果。
5条曲线完全重合,仿真结果根本不受激励源幅度的影响!

惊不惊喜,意不意外?其实认真看过仿真器手册就不会感到意外了。
LTspice手册关于.AC仿真命令的标题就是“.AC -- Perform an Small Signal AC Analysis Linearized About the DC Operating Point”。AC仿真仿的是小信号模型。
事实上在AC仿真中,激励源的幅度大小没有任何意义,这只是一个用于计算的数字,不代表任何物理量,只要你愿意从1E-9取到1E9都可以。AC仿真可以理解成在静态工作点处把电路抽象成系统模型,模型一定传递函数自然就定了,传递函数当然不会受激励信号幅度的影响。
我们习惯上把激励源幅度设置为1,是为了方便显示结果,只要把输出显示出来就等效于电路增益了,不需要再进行Vout/Vin的换算。
如果想在仿真中仿大信号模型,那就不能用AC仿真了,得用TRAN仿真。
“.TRAN -- Perform a Nonlinear Transient Analysis”
TRAN仿真应该是最接近于电路实际行为的仿真,不过仿真结果是时域波形,数据分析起来有点麻烦。
同样的电路,改成TRAN仿真,用.MEAS命令算一下2MHz下各种激励幅度对应的电路增益。

得到的结果如下,可以看到激励信号500mV时,电路增益开始明显降低,输出波形也开始畸变。
Measurement: res3
stepres1/res2
12.00587
22.00584
31.90498
41.02201
50.510008

回到测试电路,这次我翻车就翻在了激励的幅度上,想着仿真时都是1,那实测时也用1Vpp,再看看手册,FPBW(Full Power Bandwidth)试条件是Vo=1Vpp,而我的电路中输入1Vpp,输出都2Vpp了,当然应该用SR(Slew Rate)这个大信号模型去考虑,而不是GBW这个小信号模型。

尝试着改变激励幅度多测几次频响,得到了如下的结果。
所以是仿真错了么?是我错了。

原文授权自知乎up:蒋宇辰
*以下是赠送内容
细心的读者可能发现了问题:手册上当Vo=1Vpp时FPBW是1.6MHz,怎么我在Vo=1Vpp下测的频响接近5MHz?
这涉及到大信号模型的定义问题,这个FPBW其实可以用SR推导出来。
我们知道正弦信号可以用函数表示:

其中A是幅值,f为频率
它的一阶导数可以用来表示信号的变化率:

在定义域内有极大值2πfA
因为SR就是放大器电压变化率的极限,令

带入A=1V,可以得到

而波特图仪则是通过扫扫频,用输出信号与输入信号幅值的比,测出的频响曲线。
当输出信号超过放大器SR极限时,输出信号已经明显失真,也就是说系统不再是线性系统了,而非线性系统的频率响应是没有意义的。所以我用这种手段测的大信号带宽与手册不符也是很正常的。

最后再来验证一下SR参数,1.783V/170ns=10.488V/us,与手册给出的10V/us吻合。

原文授权自知乎up:蒋宇辰
原文链接:
https://zhuanlan.zhihu.com/p/184742858?share_code=ghuiIT2WrNxL&utm_psn=1899437984148850610
更多运放学习资料,尽在《运放秘籍》四部曲
如果看到这里,请点赞、收藏、分享三连!

全部0条评论
快来发表一下你的评论吧 !