热度 7| |
龙年第一篇,按照原计划,仍然贡献给反馈与稳定性这个家伙。
兔年底讲了稳定判据里的一些问题。现在首先讨论的一个方向就是一个多环路系统如何判读稳定性。这个问题其实在模拟电路里时不时也会遇到,只是没有人系统的总结一下。上次在论坛上我也就这个回答了别人的几个问题。希望以后问这种问题的人越来越少。
如果抛开电路,直接说一个多环路系统的稳定性,我想还是要去信号与系统中找答案。信号与系统中虽然没有明说,但是在信号流图部分介绍了一个一般的系统如何直接写出传输函数,在状态空间部分也说明了一个一般的系统,不管输入输出在哪里,总有一个特征的多项式。我们知道稳定不稳定,就是问输入输出的传输函数有无右极点,而这就是问传输函数分母的特征(我们假定本身开环没有右极点)。再看一下一般的传输函数性质,就知道这个分母其实也是有规律可训的,是若干个环路函数的组合然后加1.当只有一个环路时,就退化成1+T。所以要是想类似单环路一样判断稳定性,那就是要找出这个环路函数的组合,然后给它做bode图,或者奈奎斯特图。可惜我大概想了想,就是没有想到一种方法,可以断开某点或者某些点,然后把这个环路函数的组合直接仿真/观察出来。所以我觉得应该是没有一种通用的方法去画bode图。
补充几点,首先这个环路函数的组合是什么样子?我想课本是最可靠的,叫做梅逊公式。它大概是T1+T2+T3+T11*T12+ T23*T34之类的样子。其次,输出输出点不同,是否对它有影响?这也是个好问题。不过课本上表达式也暗示了,不论是写传输函数,还是用状态空间法,输出输出点的选择不影响分母。这也是为什么之前说环路增益对一个系统来说更基本一些。
那么是不是所有的多环路系统都没法看bode图了?多想一步就会想到实际中的系统很多都是多环路的,只是被我们简化成单环路了,那岂不是单环路的结果不可靠?区分几种情况。一种是假如每个单独的环路都是稳定的系统就一定是稳定的(这有些像gain boost里的情况)。我忘了这个的出处,也许是cadence的帮助文件?不过这个要求似乎很强,反过来说,如果每个单独的环路都不稳定,系统不一定不稳定。另一种情况是多个环路有公共点。这样可以在公共点断开。举个例子,假设正向增益A,反向有beta1和beta2两个反馈路径并联。大家都很容易想出来,环路增益是A(beta1+beta2),但也可以看成是Abeta1和Abeta2两个环路(有人会说,谁会连这都看不出来,却要看成更加复杂的东西。实际情况是有时很多人真没看出来,放n年前我刚碰到这个问题的时候,我也没能一眼看出来。所以有时画小信号等效,简化系统是非常重要的,我们平时常说的一眼就看出来实际是自己对这个模式很熟悉后迅速简化的结果)。这种就可以在A的输出或者输入点断开,因为这点就是公共点。(如果断开的点不是公共点,而是在任意点断开呢?我最近推导的结果是环路增益将变化很大,但是如果只是考察是否稳定,不同点断开的意义是相同的。但如果还需要用相位裕度等参数去考虑瞬态响应,那就差别很大了。)
一个实际的例子就是两级miller差分opa,cmfb反馈到电流源,同时外部还有差模的电阻反馈。这样的话外部的电阻反馈同样构成了共模反馈,因此在哪里断对于仿真cmfb的bode图就很重要了。好在还可以证明(这个我真的证明了),当外部的共模反馈比较弱时,高频的bode图形状变化不大,因此pm,gm等结果基本可以使用。
讨论的第二个方向是关于稳定性的一些工具。先说说理论方面,除了bode图,root locus也很有趣。说有趣是因为可以很直观的看到极点的变化情况,看到零点对极点的影响,看到反馈对整个系统稳定性的影响。另外,我还在想,其实现在也完全可以直接画出奈奎斯特曲线(bode图是该曲线的另一种表示方式),不知道为什么很少有软件支持。对于一些复杂的,奇怪的bode图,也许这个曲线更有意思。不过我曾经让软件画过一次,似乎由于比例的关系,显示效果不好,这可能是个问题。
再说说实际电路仿真方面。要做出bode图,主要就是要找到一个断点。接下来,“直流连接,交流断开”。直流连接是为了保证电路的静态工作点正确,否则开环的时候由于有时增益很大,后几级的管子会离开饱和区,交流断开则是为了得到A*beta的结果。为了实现这个,不论是大的RC,或者LC,或者交流开关等等,都可以,没有谁比谁更好或者更差。再接下来,“考虑断开点的负载”,这是由于断开之后,断开点本身的负载就被分开了,导致电路与原来不一致。举个例子很明显:假如一个opa,然后接一个电阻分压反馈,中间抽头到opa负端。假如opa负端有个大电容,那么在beta上就会产生一个极点。但是如果在opa负端断开,电容被opa拿走,那么这个极点就消失了。所以传统的做法是要仔细选择断开点,最好还要根据实际情况,在断开点左右加入等效负载。准确的做法是在断开点做两次仿真,据说spectre里的stb就是用的这种算法。所以一般来说就选stb好了。对于差分电路,需要区分共模电路和差模电路。直接搭个半电路是不太可能的,所以需要在断开点选择是断开差模还是断开共模。cadence给的教程里一种是自己用理想变压器提取出信号的差模和共模,在需要的信号通路上接probe,然后再把差模与共模用理想变压器恢复。另一种是用cmdmprobe,算下来是一样的道理。