Tina-TI运放相位裕度仿真实战:断开法与交点法全解析 📅 发布时间:2026/9/8 10:52:21 👁 浏览次数: 上个月我帮同事调一块信号调理板里面是一个单位增益缓冲器输出直接挂了一颗47nF的陶瓷电容。板子一上电用示波器去抓输出波形看到的不是干净的直流电平而是十几兆赫兹的衰减振荡声音都能从电感里传出来。排查了一圈不是电源问题不是布局问题最后回到电路本身这个缓冲器的相位裕度根本不够。说起这个就绕不开Tina。TI官方的Tina-TI我用了很多年做运放稳定性分析、相位裕度仿真它虽然不是功能最全的工具但在“够用”和“免费”这两件事上几乎没有对手。你不需要会复杂的SPICE语法不需要买昂贵的授权只要有TI运放的模型就能在几分钟内把环路增益拉出来直接看到相位裕度。这篇文章就围绕“Tina相位裕度仿真”这个事把我常用的两种方法、完整的操作链路以及踩过的坑全部写出来。适合刚接触运放稳定性分析的新人也适合想把手动计算改成仿真验证的工程师。1. 相位裕度到底在测什么从“振荡的运放”说起1.1 一个上电就响的缓冲器先回到那个振荡的缓冲器。电路非常简单一颗TI的运放接成电压跟随器同相输入端接信号输出端直接接一颗47nF的电容到地。原理上电压跟随器增益是1好像怎么都不会有问题。但输出带大电容时运放输出级的输出阻抗和负载电容会形成一个额外的极点这个极点会把环路增益的相位进一步拉低。结果就是环路增益幅值降到0dB时相位已经掉到了-150°甚至更低离-180°只差20多度。此时系统几乎没有稳定裕量稍有扰动就会形成持续的振荡。在Tina里做相位裕度仿真本质就是回答一个问题在这个反馈系统里当环路增益幅值刚好等于10dB时环路的相移距离-180°还有多少度。1.2 环路增益、交叉频率与相位余量的关系很多人对相位裕度的理解停留在“越大越稳定”这个结论上但实际操作时不知道该看哪里。我习惯用倒车雷达来做类比。想象你驾驶一辆车倒车身后有一堵墙这个墙就是-180°相移线。你的回传信号环路增益的相位代表车尾和墙之间的距离。当你发现车辆接近一个临界点增益穿越0dB的频率你需要知道此时车尾离墙还有多远。如果只有5°稍微踩深一点油门就撞上了这在系统里就是振荡如果有45°到60°即使有一些扰动系统也能稳定停下来。在Bode图上你要关注两个东西一个是幅频曲线穿过0dB线的频率点我们叫增益交叉频率Gain Cross-over Frequency另一个是在这个频率点上相频曲线离-180°还剩多少。这个差值就是相位裕度PM数学上写为PM 180° ∠T(f_c)其中f_c是增益交叉频率∠T(f_c)是环路增益在这个频率点上的相移通常为负值。如果∠T(f_c) -150°那么PM 30°。1.3 相位裕度数值对应的工程手感光知道定义还不够你得对数值有感觉。结合我的经验大致可以这样判断相位裕度系统行为工程判断接近0°持续振荡基本不可用必须修改电路10°-20°阶跃响应振铃严重超调可能超过40%改善前不建议量产30°-45°有明显过冲稳定时间拉长勉强可用边缘状态45°-60°过冲适中响应速度好大多数电路的目标区间大于60°很稳定但响应可能偏慢适合对稳定性要求极高的场景你需要记住相位裕度不是越高越好。超过80°以后系统虽然绝对稳定但瞬态响应会显得“肉”带宽也会因为过度补偿而变窄。所以模拟设计师一般在45°到60°之间做取舍。这也是后面做仿真的判断依据。2. 仿真前的准备工作为什么选Tina-TI模型和扫描环境怎么配2.1 Tina-TI在相位裕度仿真上的两个刚需理由我为什么强调用Tina-TI而不是直接用LTspice或者PSpice理由很实际。第一Tina-TI内置了大量TI运放的宏模型。你不需要像用LTspice那样到处找第三方SPICE模型很多TI的运放型号在家里直接搜就有省去了一大堆导入模型、匹配引脚的时间。有些模型还能直接对应到不同封装和温度等级细节做得比较到位。第二Tina-TI的操作逻辑对中文用户友好菜单结构清晰。它的AC分析、瞬态分析都放在Analysis菜单下不需要记忆复杂的SPICE指令。在这个工具里做相位裕度仿真核心操作就是搭电路、设参数、看波特图门槛很低。当然Tina-TI也有它的不足比如模型库更新速度不是最快的一些非TI器件需要自己找模型。但如果你主要做TI运放和TI配套器件的电路它完全够用。2.2 获取与验证TI运放的SPICE模型仿真结果的可靠性很大程度上取决于模型质量。如果你在Tina-TI的元件库搜索一个运放型号没有结果可以用下面的方式解决。在TI官网找到对应运放的产品页面进入“工具与仿真”或“设计工具”栏目下载SPICE模型文件通常是.lib或者.cir格式的文本文件。然后在Tina-TI里通过“插入宏”或“导入模型”功能把模型加载进来。需要注意导入后的模型引脚顺序可能和原理图中的符号不一致做仿真前一定要核对。一个我自己常用的验证方法是先搭一个简单的单位增益跟随器跑一次AC分析看看开环增益曲线是否符合手册中给出的直流增益和单位增益带宽值。如果模型在简单电路上都对不上手册那别急着用它做相位裕度仿真先把模型问题解决掉再说。2.3 搭好电路并配置AC扫描参数搭建电路没什么特别神秘的但你需要注意一个关键习惯把输入信号源拆成两个部分。我的做法是在原理图中放置一个交流电压源电压幅值设为1V但将它置于AC分析的激励路径上。这样后续在看环路增益曲线时幅值和相位关系可以直接从输出量推导。这里有一个细节在Tina-TI里做AC分析时信号源的“信号特性”要设置为“交流分析”有效否则AC扫描出来的曲线很可能是一条直线。接下来是扫描参数。Tina-TI默认的AC分析会给出幅频特性和相频特性两条曲线。我是这样设置扫描范围的起始频率10Hz或者比电路主极点低两个数量级的频率结束频率至少到运放单位增益带宽的3到5倍扫描点数如果做相位裕度的精确读取建议把点数提高到500以上或者使用十倍频程固定步长别用太少点否则相位曲线在穿越频率附近会有明显锯齿读数误差很大我在实际中通常用十倍频程200点到500点既能保证速度又不会有读数的毛刺感。3. 断开环路法断点怎么选、注入网络怎么搭、结果怎么读3.1 断点位置靠近反馈网络输出侧还是反相输入侧环路增益也就是T(s)是一个闭环系统里“绕一圈”的总增益。想直接测它最经典的方法就是把反馈环路断开在断开处注入一个交流测试信号测量信号绕环一圈后回到注入点的增益和相位。断点选择是有讲究的。我喜欢把断开位置选在反馈网络与运放反相输入端之间。为什么选这里因为运放反相输入端的输入阻抗很高断开后对原电路工作点的影响最小。相反如果断在输出端附近输出级的负载效应会明显改变断点阻抗测出来的T(s)可能不是真实工作条件下的环路增益。在Tina-TI里操作时先用鼠标选中连接反馈电阻和反相输入端的导线然后剪断保留两端的节点标签。这样做的目的是保留网络拓扑信息同时为后面的注入网络留出接口。3.2 交流注入网络的搭建大电感串断点、大电容接地这一步是断开法的核心也是新手最容易卡住的地方。你不能直接拿一个交流源接到断点两端就算完事。因为你注入的信号会改变断点处的直流工作点而运放是一个依赖直流偏置的有源器件。工作点都偏了测出来的环路增益自然没有意义。标准做法是在断点处串联一个极大值的电感在断点处对地并联一个极大值的电容然后把交流信号源接在电感与电容的交汇点。一张简化的连接关系如下用文字描述反馈电阻输出端 → 节点A节点A → 大电感L → 节点B节点B → 运放反相输入端节点B → 大电容C → 地交流信号源正端 → 节点B交流信号源负端 → 地这个网络干了什么拆开来看大电感L的阻抗在直流下几乎为0所以直流工作点可以从A点直接传到B点运放的静态偏置不受影响大电容C对直流是开路的不影响直流偏置在交流信号下L的阻抗非常大比如L1GH在1MHz下阻抗达到6280Ω量级C的阻抗非常小所以交流信号主要从C流向地相当于把它“注入”到了环路里同时环路在B点被交流隔离。电感量级一般取1GH到1TH电容取1F到1TF具体看你的目标频率范围。频率越高需要的电感越大、电容也越大以保证在交叉频率附近它们仍然扮演“直流短路/交流开路”的角色。在Tina里放置好元件后给交流源设置一个1V的AC幅值相位为0°。这里使用1V是为了让输出的传递函数直接等于增益值不需要额外换算。3.3 AC扫描参数与环路增益的提取完成连接后点击Analysis → AC Analysis → AC Transfer Characteristic设置好起始和截止频率。你需要要观察的量是节点B与交流源之间的电压增益。在Tina-TI中我会输出V(B)的幅频和相频曲线。由于注入源的幅值是1VV(B)就等于环路增益T(s)。如果注入源不是1V那就用探针去测B点电压和源电压的比值Tina里可以通过添加电压表的方式实现。一次标准的AC分析会同时给出幅频曲线和相频曲线。它们会以波特图的形状出现在同一个图表窗口里用鼠标可以拖动光标查看具体数值。3.4 在波特图上读相位裕度别把-180°看成0°读数的位置非常关键。我见过不止一个新人在相频曲线上看到相位到了-180°就觉得系统不稳定其实这是对“开环相位”和“闭环稳定性”概念的混淆。正确的读取步骤如下在幅频曲线上找到穿过0dB线的那个点记录此时的频率f_c将光标移到相频曲线的同一个频率f_c上读取该点的相位值θ计算PM 180° θ。如果θ是-150°PM 30°如果θ是-120°PM 60°注意增益曲线可能因为高频极点出现“先穿过0dB又回升”的情况此时要取第一次穿越0dB的点也就是最低频的那个交叉点作为主交叉频率。我在Tina里习惯的做法是在图表窗口中选中光标工具先点幅频曲线找0dB交叉点再锁定这个频率值然后将光标切换到相频曲线去看对应读数。别直接目测光标精度比目测可靠得多。还需要提醒一点如果输出曲线出现了多个0dB交点务必检查是不是注入网络寄生谐振造成的。你可以把L和C分别加大10倍再跑一次如果交叉频率和相位值变化不明显说明注入网络引入的误差可忽略如果变化很大那就是L/C选值不够大需要重新调整。4. 1/β与Aol交点法不开环也能快速估算相位裕度4.1 交点法的数学原理为什么在|Aol|1/β处读相位断开环路法是标准做法但它有一个麻烦你需要改动电路拓扑。如果你只是想快速评估一下某个运放电路是否稳定可以直接用交点法。这个方法依赖的数学关系很简单。负反馈系统的环路增益T(s) Aol(s) × β(s)其中Aol(s)是运放的开环增益β(s)是反馈系数。在振荡判据里系统处于临界状态的条件是|T| 1也就是|Aol(s) × β(s)| 1两边取对数再移一下项等价于|Aol(s)| 1 / β(s)也就是说在Bode图上运放开环增益曲线Aol与反馈系数倒数1/β两条曲线的交点就是增益交叉频率。在这个频率点上你只需要读出Aol曲线的相位值就等于环路在这个频率点的相移。所以原则上说只要你能画出Aol曲线和1/β曲线就能用交点法得到相位裕度不需要断开电路。4.2 手工作图与光标读取的具体流程在Tina-TI里操作我的流程是这样的。第一步保持电路为闭环状态我通常会把AC信号源加到输入端然后把运放输出到反相端的反馈路径保留完整。第二步在同一张AC分析图里同时画出两个曲线一条是运放输出端的电压增益曲线也就是闭环增益Acl(s)另一条是V(noninverting)/V(inverting)或者直接算出1/β的值。由于在同相放大电路中β等于R1/(R1R2)所以1/β 1 R2/R1。比如R11kΩ、R29kΩ那么1/β 10倍在Bode图上就是20dB的水平线。第三步在Acl曲线上找到与1/β水平线相交的位置。因为当环路增益很大时Acl ≈ 1/β两条线会重合在交叉频率附近Acl会开始偏离1/β并向下滚降对应的就是开环曲线和1/β的交点。你可以直接从图表中读出这个交叉点的频率f_c。第四步Acl曲线本身是闭环响应它不直接给出相位信息。你需要在交叉频率处去读取Aol曲线的相位。这个过程可以在Tina里用光标定位到频率f_c然后查看运放输出相对于运放输入的开环相位。不过这里有一个巧办法如果你不想重新画Aol曲线可以直接看闭环Acl曲线的相位。在1/β为纯实数的情况下闭环相位在交叉频率附近的数值与Aol相位存在对应关系。但为了准确度我还是建议单独看Aol曲线。4.3 这个方法的三条使用边界交点法用起来快但它的三个边界条件你一定要记清楚第一β必须是与频率无关的常数。也就是反馈网络里只能有电阻不能有电容电感。如果反馈网络里有电容β是频率的函数1/β不再是水平线Aol和1/β交点法就不成立了。典型的例子是积分电路和带相位补偿的反馈网络这两个都要用断开法。第二运放的开环增益曲线必须从手册或模型中获取。有些人的AC分析设置里只画了闭环Acl忘了看Aol那等于只画了一半没法得到相位信息。第三这个方法默认运放是单极点主导的。如果运放的低频增益很高且主极点和第二个极点靠得很近那么在交叉频率附近Aol曲线的相位可能已经受到第二个极点的影响直接用单极点假设去估算相位就会误差很大。所以用这个方法时建议回头和断开法的结果对比一次确认两种方法吻合了再放心用。实际上我自己的习惯是新电路先用交点法做个快速筛查发现相位裕度在临界边缘时再用断开法精测。相当于先用“粗筛”找问题再用“精测”定结论。5. 案例实战单位增益缓冲器加上50nF负载电容5.1 原始电路的相位裕度两种方法的结果比对用一个实际案例把上面的方法串起来。我在Tina-TI里搭建了这样一个电路OPA2273运放单位增益缓冲器结构输出直接接一个50nF电容到地。这个结构和很多信号驱动电路的输出级如出一辙。先跑断开法。断点选在反馈线连接反相输入端的地方插入1GHz电感和1F电容交流源注入1V。AC分析从10Hz扫到10MHz。结果很清晰增益交叉频率f_c约为680kHz相位曲线在680kHz处是-152°相位裕度PM 180° (-152°) 28°。再用交点法复核。OPA2273的开环Aol曲线和1/β10dB水平线相交于约700kHz的位置和断开法得到的交叉频率非常接近。在该频率点读Aol相位同样约为-150°左右对应PM大约30°。两个方法的结果基本一致都和断开法的实测值误差在2-3°以内。这给了我很大信心如果只做一次快速估算交点法已经够用了。5.2 相位裕度不足时输出波形长什么样28°的相位裕度意味着什么呢光看频域曲线还不够直观我加了瞬态仿真验证。在输入端加一个1V的阶跃信号运行Transient Analysis时间跨度设为100μs。输出波形呈现出明显的振铃电压先冲到1.35V左右然后回落到0.8V附近再反向冲振荡了四五个周期才稳定下来。这个振铃给人的感觉就是“黏糊糊的”稳定时间拖到接近50μs。如果你用在ADC驱动或基准驱动电路里这种响应会直接影响建立时间指标。我也用这个波形去对照同事实际板子上的振荡虽然仿真里的振荡幅度比实测小但振荡频率和衰减特性几乎一致。说明只要模型准确相位裕度仿真的结果和真实电路是有很强对应关系的。5.3 加隔离电阻后的改善效果改善方法也很直接在运放输出和负载电容之间串联一个隔离电阻。我在Tina里把原来的直接连接改成了输出端先接一个22Ω电阻再到47nF电容。重新跑断开法增益交叉频率f_c降到约280kHz相位曲线在280kHz处变为-112°相位裕度提升到68°。再看瞬态响应阶跃激励下的过冲从35%降到5%以内振荡基本消失稳定时间缩短到大约10μs。这就是一个“响应够快且稳定”的状态。这里我补充一个实际操作上的细节隔离电阻的阻值不是越大越好。电阻大了会把负载和运放输出隔离得更彻底相位裕度会进一步提高但代价是输出端和负载电容之间形成了一个低通滤波器高频信号受损。在高速电路里这个电阻通常控制在10Ω到100Ω之间具体值要结合带宽要求和稳定裕量一起权衡。你也可以用Tina做隔离电阻的扫参分析。在电阻的参数设置里把它设为步进参数从0Ω扫到100Ω然后观察相位裕度和带宽的变化趋势。这种做法能帮你快速找到“既稳定又够快”的甜点区而不需要一个一个手改。6. 仿真和实测对不上的五个常见坑逐个排掉6.1 模型里的相位信息可能被简化掉第一个坑在模型端最隐蔽也最致命。很多第三方SPICE模型或者简化宏模型只精确拟合了直流增益、带宽和压摆率却没有完整描述高频极点和相位特性。你用这种模型跑相位裕度结果会极其乐观。怎么排查在Tina里画一条Aol的相频曲线看看高频段有没有持续向-180°甚至-270°滚降。如果相频曲线在超过单位增益带宽后还保持平坦或者只是缓慢下降那说明这个模型的相位信息是不完整的。换模型的唯一办法就是找TI官方模型或者从半导体厂商的应用笔记里找经过验证的宏模型。另外要注意宏模型的版本。同一颗运放可能有多个版本的模型老版本模型可能少了ESD保护二极管的寄生电容建模导致高频段相位估高了好几度。6.2 断开环路后直流工作点漂移做断开法时如果注入网络的L/C取值不够大交流注入源实际上会改变运放反相输入端的直流电平。你在波形显示器上看到的输出可能已经偏离了理论工作点此时测出的幅频曲线其实是“非正常工作点”下的结果。我排查这个问题的习惯是断开并接好注入网络后先跑一次直流工作点分析Operating Point Analysis查看运放输出端的直流电平是否等于输入端的直流电平。如果两者差异超过几个毫伏那就要检查L和C的取值或者在注入源上加一个直流偏置使其等于断点处的直流电压。6.3 读错位置把相位交叉当作增益交叉相位裕度定义里明确要求“在增益交叉频率处读相位”有的人却下意识地在相位曲线到达-180°的频率处去找增益值。这两个频率往往不同在有多个极点的情况下可能相差很大。一个很简单的检查方法如果一个系统的相位裕度挺高那么相位曲线到达-180°的频率一定高于增益交叉频率。如果你在相位-180°处看到增益还大于0dB那就说明你读错了位置或者系统模型有问题。6.4 忽略第二极点和PCB寄生参数很多仿真能跑出漂亮的60°相位裕度但实际板子一测就振荡问题往往出在模型和实际电路之间的差距上。运放输出端到负载电容之间的PCB走线会引入几十nH的寄生电感和负载电容一起在更高频段形成谐振峰。这个谐振峰会进一步拉低相位裕度。我的经验是在做相位裕度仿真时除了运放的Tina模型外至少在第一版仿真里加入等效的寄生元件。你可以不知道精确数值但用1nH到10nH的走线电感和1pF到5pF的寄生电容做参数扫描看看相位裕度对寄生参数是否敏感。如果敏感那么在Layout阶段就要重点缩短输出走线。6.5 AC分析的频率范围和步长设置不合理最后一个坑属于软件操作层面但会影响读数精度。如果你把AC扫描起始频率设置得太高主极点和低频零点信息就看不全如果步长太大在交叉频率附近的相位曲线会有明显的“折线感”读出的相位值可能偏差好几度。我的推荐做法是先用十倍频程每十倍100点的粗糙扫描确定交叉频率的大致位置然后再设置一个窄范围高密度的精细扫描比如从交叉频率的十分之一到十倍每十倍500点。这样既能快速定位又能精确读数。顺带说一句Tina-TI的光标工具在读取峰值、交叉点时有辅助功能但你最好在“光标设置”里把“捕捉最近点”打开否则光标可能落在两个仿真点之间读数不准。做相位裕度仿真这件事看起来只是拉两根曲线、读几个数但背后的细节确实不少。断开法、交点法、瞬态验证三套工具配合起来基本能把运放稳定性问题摸得很透。我个人的体会是每次改完电路先在Tina里看一眼相位裕度再决定要不要焊板子这样能省下大量的调试时间。仿真永远不能替代实测但它可以让你带着正确的预期去实测知道自己在找什么知道什么样的波形才算是正常的。这是最能帮我避免“半夜还在对着示波器挠头”的那一步。