做开关电源的人,应该都听过PSIM这个名字。我用PSIM仿真反激电源的电压环电流环已经好几年了,从最开始连PID参数都靠拍脑袋,到现在能在仿真里把穿越频率、相位裕度调明白,踩过的坑确实不少。这篇文章专门聊反激电源双环控制在PSIM里的完整搭建流程,从主电路参数怎么填、变压器模型怎么设,到电压环电流环怎么连、补偿网络怎么配,再到仿真后波形怎么分析,一次性给你捋清楚。不管你是刚入行的电源工程师,还是正在做课程设计/毕业设计的学生,只要手里有PSIM,跟着这篇走一遍,基本能把反激闭环仿真跑起来。
很多人有个误区,觉得仿真就是搭个电路看波形,其实反激电源的仿真重点在“环路”而不是“功率级”。你开环跑一个反激很容易,但一旦把电压环电流环闭合,各种不收敛、振荡、过冲就全来了。这也是为什么我建议大家在PSIM里从头搭一遍闭环模型,而不是直接拿现成例程改。只有亲手配过参数,你才明白双环各自在干什么,出问题的时候才知道往哪查。
1. 反激电源的电压环电流环到底在控什么
1.1 双环的分工:电压环定精度,电流环定响应
先理解控制目标。反激电源的输出电压需要稳定在设定值,这是电压环的职责。电压环采样输出电压,和基准比较,得到误差信号,再经过补偿网络,输出一个控制量。但这个控制量不直接去驱动开关管,它给的是“电流参考值”。
电流环在里面干的事,是让变压器原边的峰值电流或者平均电流跟踪这个参考值。开关管导通时,原边电流上升,当采样到的电流达到电流参考值,PWM关断。这样电源就形成了一个电压外环、电流内环的串级结构。
用个生活化的类比:电压环是船长,负责看航线有没有跑偏,告诉舵手“往左打一点”;电流环是舵手,负责快速把船头修正回来。船长反应慢一点没关系,但舵手必须动作快,否则船就晃得厉害。对应到电源上,电压环带宽通常比较低,主要保证稳态精度;电流环带宽高,负责动态响应和逐周期限流。
这种结构有一个天然好处:电流环把功率级的电感特性“包”进去了。对反激来说,变压器励磁电感在电流内环的控制下,相当于变成了一个受控电流源,电压环看过去,被控对象从二阶系统简化成了一阶系统,补偿容易很多。
1.2 为什么反激电源偏爱峰值电流模式
反激电源的变压器既是储能元件又是隔离元件,和正激、LLC都不一样。它在开关管导通时储能,关断时向副边释放能量。这个特性导致反激在连续导通模式(CCM)下存在一个右半平面零点,如果只用电压单环控制,补偿网络必须把穿越频率压低,否则动态响应会很难看。
而峰值电流模式(Peak Current Mode)天生对这个问题有抑制作用。电流内环实时检测原边电流,相当于提前感知了输入电压变化和负载变化,能够马上调整占空比。这样电压环面对的功率级特性就被大幅简化,穿越频率可以适当推高,电容可以选小一点,动态响应也更快。
再说一个很实际的好处:峰值电流模式天然带逐周期限流。你不需要额外加过流保护电路,只要电流参考值限幅,开关管电流就不可能超过设定值。这也是很多反激控制芯片内部都采用峰值电流模式的原因,比如常用的UC384x系列。仿真时我建议你也优先复现这种控制方式,既贴近工程实际,又容易调通。
当然,平均电流模式也行,但反激用得少,尤其是小功率场合。如果你仿真过程中发现峰值电流模式调不出来,再考虑平均电流模式也不迟。
1.3 斜坡补偿是什么时候必须要加的
提到峰值电流模式,就绕不开斜坡补偿。为什么需要它?因为当占空比超过50%时,峰值电流模式会进入一种亚谐波振荡状态。具体表现是开关频率一半处出现振荡,电流波形一高一低交替变化,输出电压纹波变大,严重时环路直接不稳定。
原理是这样的:电流内环在扰动下,电流误差每周期会按某个比例变化。当占空比大于0.5时,这个比例大于1,扰动会被逐周期放大,形成振荡。解决方式就是在电流采样信号上叠加一个斜坡信号,让比较器的参考值逐渐“下降”,抵消掉误差放大效应。
斜坡补偿的斜率怎么选?经典的经验公式是补偿斜坡的斜率等于电感电流下降沿斜率的一半以上。反激电源原边电流下降沿其实发生在副边导通期间,但折算到原边看,下降斜率等于副边输出电压除以匝比,再除以励磁电感。实际仿真中,你可以先用占空比的一半作为补偿斜坡斜率,再观察波形是否还有振荡。这个在后面第4章我会给出具体调试办法。
2. PSIM模型搭建完整配置流程
2.1 主电路器件选型与参数设计
在PSIM里搭反激主电路,大部分器件都能从元件库里直接拖出来。我下面以一个12V/2A的反激电源为例,开关频率取100kHz,目标效率按85%考虑。
输入侧用直流源代替整流桥输出,电压可以直接设成300V,如果你要仿真全电压范围,可以在120V和380V之间切换观察。这里要理解,反激的输入是整流后的大电解电容上的电压,仿真时没必要把交流部分也建出来,除非你要做PFC联动。用直流源模拟母线电压,既能加快仿真速度,又不影响环路特性验证。
输出滤波电容,按输出电流和纹波要求估算。12V/2A,纹波按输出电压的1%算就是120mV。反激输出电容实际还要扛住负载瞬态的电压跌落,一般按C = Iout * Δt / ΔV估算,假设动态响应时间大概100μs,允许压降200mV,那电容差不多要1000μF。仿真里可以先用两个470μF并联,容抗和ESR都要设置成非理想值,建议给ESR设个10mΩ左右,太理想的话动态波形会失真。
功率MOSFET直接用PSIM自带的N-MOSFET模型,导通阻抗RDS(on)根据实际管子选,比如100mΩ,二极管用快恢复二极管,反向恢复时间设置得和实物接近。这些寄生参数影响的是效率波形和电压尖峰,对环路稳定性的定性结论影响不大,但数值别太离谱。
2.2 变压器与耦合电感的正确建模方式
反激变压器的建模是PSIM仿真里最容易踩坑的地方。PSIM里变压器模型分好几种,如果你直接用理想变压器,会发现反激根本存不了能,因为理想变压器没有励磁电感。
我的做法是在主电路中放一个理想变压器,然后在其原边并联一个励磁电感Lm。这样模型非常直观:励磁电感负责储能,理想变压器负责变比和隔离,二者互不干扰。比直接设置耦合系数那种方式更容易理解,也更好调。
参数怎么填?假设匝比设成5:1,励磁电感Lm取1mH。这个值怎么来的?反激CCM模式下,励磁电感的最小值由临界连续条件决定。公式是Lm_min = (Vin_min * D_max)^2 / (2 * Pout * fs)。Vin_min取120V,D_max取0.5,Pout取24W,fs取100kHz,算出来Lm_min大约375μH。实际取1mH是为了保证在较宽的负载范围内都工作在CCM,同时原边峰值电流也不会太大。
漏感也要考虑。PSIM里可以在原边串联一个小电感模拟漏感,比如10μH。漏感会影响开关管关断时的电压尖峰,仿真时它对环路增益的低频特性影响不大,但对波形真实性和RCD吸收设计很重要。初学阶段你可以先把漏感设为0,先把环路调通,再回头加漏感和RCD钳位。
变压器同名端方向千万别搞错。反激变压器原边导通时副边二极管是不通的反激变压器原边导通时副边二极管是不通的,所以副边绕组方向要和原边相反,否则仿真会直接报错或者波形乱七八糟。函数表达式:在PSIM中简单的方法是把副边绕组同名端倒过来,这样副边二极管受反压截止,能量存住;开关管关断时副边输出电压正向导通,能量释放。
2.3 峰值电流模式控制在PSIM里的连线方式
现在到双环的核心部分。峰值电流模式控制电路在PSIM里不需要写代码,用几个逻辑模块就能搭出来。基本结构如下。
输出电压经过电阻分压采样,得到反馈电压Vfb。Vfb和基准电压Vref送入误差放大器,误差放大器输出经过补偿网络后,得到误差电压Vcomp。这个Vcomp就是一节说到的“电流参考值”。
然后是把Vcomp转换成占空比。峰值电流模式下,需要比较的是Vcomp和“电流采样+斜坡补偿信号”。电流采样用电流检测模块接在开关管源极,或者接在原边地线上,转换成电压信号。斜坡补偿用一个锯齿波发生器,同步到开关频率,和电流采样相加后送入比较器。
比较器输出就是PWM信号,但这还不够。因为峰值电流模式有个特点:开关周期开始时应固定导通,电流上升到阈值才关断。如果直接用比较器输出驱动开关管,会在电流参考值高于峰值时出现多脉冲,逻辑上是错的。所以要加一个RS触发器。
开关时钟脉冲置位触发器,让开关管开通;比较器输出复位触发器,让开关管关断。这样每个开关周期开始时强制开通一次,电流达到阈值再关断,符合反激峰值电流控制的真实逻辑。PSIM元件库里直接找RS Flip-Flop就可以。
误差放大器我建议用PSIM里面的运放或者C Block搭传递函数。如果你只是验证控制逻辑,用运放加RC反馈是最直观的。C Block适合做过采样数字控制,模拟控制没必要上来就写代码,先用运放把思路验证了。
2.4 电压环补偿网络参数配置实例
电压环补偿我用Type II补偿,两个极点一个零点,是反激电源最常用的补偿结构。一个极点放在低频以提高低频增益,一个零点放在功率级主极点附近,最后一个极点放高频用于抑制开关噪声。
我给一个能直接跑的初始参数。假设输出12V,分压电阻R1=10kΩ(上分压电阻连接输出到反馈脚),R2=10kΩ(反馈脚到地),那么反馈电压是输出一半,所以基准设为6V。误差放大器的参考端接6V基准,另一端接Vfb。如果你基准是2.5V,就把分压比改一下,保证稳态时Vfb等于基准。
补偿网络:RZ取20kΩ,CZ取10nF,CP取330pF。这三个值对应的零极点是:零点fz = 1 / (2π * RZ * CZ),带入得约800Hz;极点fp = 1 / (2π * RZ * CP),约24kHz。穿越频率我控制在2-5kHz左右,相位裕度目标45度以上。
这些参数不是最优的,但作为起点足够稳定。调完看Bode图,如果相位裕度不够,就把RZ调大,或者把CP调大一点压低高频极点。如果穿越频率太高,把零点频率往低移。我把常用调试方向整理成了一个表。
| 参数 | 位置 | 作用 | 常见调整方向 |
|---|---|---|---|
| RZ | 补偿网络串联电阻 | 决定零点频率 | 加大RZ,零点降低,穿越频率下降 |
| CZ | 补偿网络串联电容 | 决定零点频率和低频增益 | 加大CZ,零点降低,低频增益提高 |
| CP | 补偿网络并联电容 | 决定高频极点位置 | 加大CP,极点降低,抗噪声更好,但相位裕度下降 |
| 斜坡补偿斜率 | 电流比较器前 | 抑制谐波振荡 | 斜率过大导致电流环响应变慢,过小则振荡 |
在实际调参会发现,电压环补偿参数和斜坡补偿斜率会互相影响。不要每次只动一个参数,要看整体Bode图和瞬态波形的变化。我习惯先把斜坡补偿加上,让电流环稳定,再调电压环,否则波形乱成一团,根本分不清是谁的问题。
3. 仿真运行与波形分析:验证环路稳定性的关键指标
3.1 启动过程与软启动设置
模型搭好后,先把仿真步长设置成1e-8秒或者1e-7秒,仿真时间先跑20ms。反激电源启动瞬间,输出电压从零开始上升,此时的误差放大器输出会饱和到最高值,电流参考值也就顶到上限。如果没有限幅,开关管原边电流会直接冲上去,仿真里会出现巨大尖峰,严重时直接不收敛。
所以第一步是给误差放大器输出加限幅。PSIM的饱和模块(Saturation)可以直接用,把限幅上下限设成电流采样电阻能对应的电压范围,比如0V到1V。这等于给电流参考值设了限幅,也就是软启动的基本思路。
更好的做法是给基准电压加一个软启动斜坡,让参考电压从0慢慢爬升到6V,输出电压也就跟着平稳上升。PSIM里可以用一个阶跃源加一阶惯性环节实现,也可以用C Block写一段斜坡。我建议弄这个软启动,因为反激开环启动的电流冲击比正激明显得多,变压器储能的原因,不打软启动很容易把电流环逼到极限。
跑完启动后看输出波形。正常的启动波形是输出电压单调上升,没有明显过冲,原边电流峰值被限制在你设定值以内。如果输出电压过冲超过10%,说明环路响应太快或者限幅值太高,先把软启动时间加长,再看补偿参数。
3.2 稳态纹波和负载跳变响应
稳态波形主要看两个指标:输出电压纹波大小,以及电感电流波形是否稳定。PSIM里用Probe直接拖出来就能看。反激电源输出电压纹波主要是输出电容的ESR引起的,如果仿真里电容是理想的,纹波会很小,和实际差很多。所以前面强调电容要设置ESR,不然你后面做环路分析会误判。
负载跳变仿真很重要。在仿真到10ms时,把负载电阻从12Ω跳变到6Ω,相当于由1A负载突变到2A。这时候看输出电压的跌落量、恢复时间、电流环的响应过程。
一般要求是输出跌落不超过5%,恢复时间在几百微秒内。如果跌落很大,说明电压环带宽不够,需要提高穿越频率;如果恢复过程有振荡,说明相位裕度不足,需要调整补偿参数。这个瞬态波形比单纯的Bode图更直观,我建议每次改完补偿参数,都跑一次负载跳变,记录过冲和恢复时间。
有个细节:负载跳变时刻要选在开关周期的某个相位,避免和开关噪声混在一起。你可以在PSIM里用阶跃源的延迟时间,调到刚好在开关脉冲关断段发生跳变,这样波形更干净。
3.3 用AC扫描功能测环路增益
瞬态波形只能说明这个电路“能稳定”,但到底有多少稳定裕量,必须看环路增益的Bode图。PSIM提供了AC Sweep功能,可以不做复杂数学推导,直接在原模型上扫频。
操作方法是:在反馈环路中找一个断开点,比如误差放大器的输出Vcomp,把断点打开,插入一个正弦小信号源。AC扫描时,这个小信号源会叠加在静态工作点上,PSIM算出沿环路返回的信号与注入信号的比值,那就是环路增益。
具体接线:把Vcomp节点断开,一端接误差放大器输出,另一端接电流比较器的参考端。在断开处串联一个AC源,AC幅度设置为1V,DC设置为0。然后打开Simulation Control里的AC Sweep,设置扫描频率范围,比如10Hz到100kHz,点确定运行。PSIM会直接给出环路增益的幅频和相频曲线。
看Bode图的时候,重点看两个东西:增益为零dB时的频率,也就是穿越频率,应该在开关频率的1/10到1/5之间,对100kHz的开关频率,就是10kHz以内;另一个是穿越频率处的相位距离-180度的余量,也就是相位裕度,至少要45度,工程上做到50到60度比较稳。
如果相位裕度太低,补偿网络的零点位置往低频移,或者加大CP把高频极点压低。如果穿越频率太低,动态响应差,就减小CZ或者增大RZ,把零点和增益提上来。每改一次参数,都要重新跑AC扫描,直到裕量满足要求。
4. 仿真常见问题与调试避坑
4.1 仿真不收敛,先从这五个地方查
PSIM仿真不收敛的原因五花八门,但反激电源最常见的几个,我总结下排查顺序。
第一个是仿真步长太大。反激开关频率100kHz,周期10μs,如果步长设成0.1μs,开关瞬间的时间分辨率严重不足,容易出数值尖峰。我一般先设1e-8秒,跑通了再逐步放大到1e-7秒,兼顾速度和精度。
第二个是理想变压器+励磁电感组合中,励磁电感初始电流未设。反激启动瞬间励磁电感从0电流开始,如果你在瞬态仿真里把时间起点卡在稳态附近,电感电流初始条件和实际不符,就会产生一个巨大的自由分量。可以在电感参数里设置初始电流为0,或者让仿真时间足够长,让启动振荡衰减完再看。
第三个是比较器或RS触发器的逻辑冲突。峰值电流模式里,时钟置位和比较器复位如果同时有效,逻辑会锁死。PSIM的RS触发器需要设置优先级,通常置位优先。如果设置反了,会出现PWM无法关断的情况,表现出来就是开关管一直导通,电流飙升。
第四个是控制桥路里用了太多C Block但采样步长没有同步。C Block里如果用了几百个周期,仿真速度会慢到让你怀疑人生,而且可能因为离散化的误差引起非线性振荡。我建议模拟环路尽量不要用C Block,除非你在做数字控制。
第五个是补偿参数太极端。比如补偿电容取了1nF以下,高频极点跑到几百kHz,开关频率处增益还降不下来,系统就会在高频处振荡。这种情况把CP加大到1nF以上再看。
我实际操作中遇到最多的是第一种和第三种。步长问题好解决,RS触发器逻辑问题需要你用Logic Analyzer看一下时钟和复位信号的时序关系。如果发现时钟上升沿和复位信号重叠,就要调整比较器的阈值,让复位在时钟之后到来。
4.2 电流波形一高一低,亚谐波振荡的处理
如果你在仿真波形里看到电感电流呈现“高一低、高一低”的交替模式,那就是典型的亚谐波振荡。峰值电流模式在占空比超过50%时,不加斜坡补偿几乎必然出现这个现象,不是模型错误,而是控制方式本身的问题。
解决的唯一办法是加斜坡补偿。PSIM里实现起来并不复杂,用信号发生器产生一个锯齿波,频率和开关频率相同,幅度要可以调。锯齿波和电流采样信号相加后送到比较器的同相输入端。关键是锯齿波的斜率怎么设。
最小补偿斜率等于原边电流下降沿斜率的一半。反激很特殊,原边电流的下降发生在开关管关断、副边二极管导通期间。下降斜率等于副边输出电压Vo乘以匝比n,再除以励磁电感Lm,即Sn = n * Vo / Lm。这个值通常比较大,比如匝比5,输出12V,Lm=1mH,那下降斜率就是60kA/s,也就是每微秒0.06A。补偿斜率取一半,就是30kA/s。实际用还要再大一点,取75%到100%的下降斜率更安全。大了以后电流环动态会变慢一点,但稳定性优先。
我在调试时习惯把斜坡补偿做成一个可调参数,从零开始慢慢加大,观察电流波形何时不再交替振荡,记下这个临界值,然后在此基础上再乘1.5到2倍的裕量系数。这个思路在实物调试里也适用,先求出理论补偿斜率,再在样机上用示波器边观察边微调。
4.3 输出电压过冲或者稳定时间太长
输出电压启动过冲大,一般分三种情况。
第一种是软启动斜坡太快,输出电压还没建立,误差放大器输出已经顶到限幅,电流给得过大。把软启动时间从1ms加到5ms,问题基本能解决。
第二种是电压环穿越频率太高,系统动态响应过于激进。这个需要把穿越频率降下来,方法是增大补偿网络的CZ,零点往低频移,或者调低RZ。但是注意,穿越频率也不能太低,低于几百赫兹时,负载突变后输出电压会长时间回不到目标值。
第三种是相位裕度不够,导致输出在接近稳态值时出现振荡。这时候要着重看相位裕度,把零点往上移一点,或者把CP调小。你可以先在AC扫描里确认裕度,再回来调瞬态。有时候瞬态波形看着还行,但Bode图显示裕度只有20度,那就要警惕,因为元件参数稍微漂移可能就振荡了。
稳定时间太长一般是穿越频率太低。把零点往高频移,让增益在更高频率才降到0dB,就能加快恢复。代价是输出纹波可能会变大,电流环噪声也可能变多。所以环路设计的本质是权衡,没有一组全能的参数,你要根据目标指标来取舍。
4.4 PSIM仿真和实际测试的差距,心里要有数
PSIM仿真结果和实物测试往往有差距,这是正常的,不用因为波形不一致就怀疑模型。先说几个主要的差异来源。
第一,PSIM里的大部分器件模型是理想化的。变压器没有分布电容,没有漏感非线性;MOSFET没有驱动延迟;电容的ESR是常数,而实际电解电容ESR随频率变化,低温时还会变大。这些差异主要影响高频特性,比如开关尖峰,对环路稳定性的低频结论影响有限。
第二,反馈环节的延迟没有建模。实际电路里,从输出电压变化到PWM调节,中间有采样延迟、比较器延迟、驱动芯片延迟。峰值电流模式尤其敏感,因为它在单个开关周期内完成电流比较,如果比较器延迟大,等效于额外增加了一个闭环零点,会降低相位裕度。仿真里这些延迟默认是零,所以仿真稳定不代表实物一定稳定。
第三,PSIM里的电压环和电流环采样都是理想无延时的,而数字控制中ADC采样、PWM更新会有延时。如果你后面要做DSP/单片机控制,需要在仿真里主动加入单位延迟或传输延迟,模拟离散控制的效果。
我的经验是:仿真阶段把相位裕度做到至少50度以上,穿越频率控制在开关频率的十分之一以内,给实测留足余地。同时,在仿真里故意加一些寄生参数做敏感性扫描,比如把输出电容ESR从10mΩ增大到50mΩ,看看环路还稳不稳。这样做过一轮“压力测试”后,实物打样回来调试就会顺利很多。
最后再分享一个我个人养成的小习惯:每次调完一组补偿参数,我都会把PSIM工程文件存成一个带日期的副本,同时在工作台笔记本上记下这组参数对应的穿越频率、相位裕度、负载跳变恢复时间三个指标。这样当实物调试遇到问题时,我可以回溯仿真是哪一组参数更接近,再决定往哪个方向调。环路调试就是这样,一遍遍试错,但每一步都要有记录。反激电源玩的就是变压器和环路的配合,仿真把这两关过了,剩下的动手工夫相对就从容了。