ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

UC2843电流模式PWM控制器Simplis建模实战:从零搭建到环路验证

UC2843电流模式PWM控制器Simplis建模实战:从零搭建到环路验证 做电源设计这些年我越来越觉得会建模仿真和会画板子焊板子是两种完全不同的技能。以前在学校那会儿大家习惯用PSpice或者Saber搭电路但要碰开关电源的环路补偿、大信号响应动不动就收敛失败一个小系统仿一个晚上出来波形还是一团浆糊。后来转到Simplis第一次跑反激电源的启动过程几秒钟就出结果那种感觉确实不一样。这篇内容我打算围绕UC2843这颗经典的电流模式PWM控制器展开。UC2843在反激、正激、Boost这些拓扑里用得非常多但市面上讲芯片内部结构的多讲怎么在Simplis里把它从零搭出来、怎么验证参数合理性的少。这篇文章会把我自己建模仿真时踩过的坑、验证过的方法、调参的思路全部整理出来适合刚接触Simplis的电源工程师也适合想把手头UC2843方案做深做透的老手。你不需要懂Simplis的C语言编程也不需要有很深的半导体工艺知识只要会基本的电路分析跟着文章的思路走一遍就能得到一个可以跑环路、测负载动态、算损耗的UC2843仿真平台。1. UC2843内部架构与建模思路拆解1.1 芯片到底在干什么UC2843的功能框图与信号流在Simplis里建模的第一步不是急着开软件而是先把UC2843的内部功能想清楚。这颗芯片看起来就是一个8引脚的小玩意儿但内部集成了振荡器、误差放大器、电流采样比较器、RS触发器、推挽输出级、欠压锁定和基准电压源这些模块。信号流大概是这样一个过程输出电压通过反馈分压电阻送到误差放大器的反相输入端与2.5V基准比较后产生误差信号COMP。这个COMP电压与电流采样电阻上的峰值电流信号比较电流信号高了就关断功率管电流信号低了就让功率管继续导通。振荡器决定开关频率RS触发器保证每个周期最多开通一次D触发器部分版本保证占空比不超过50%。UC2843和UC3843的区别就在于工作温度范围和电压精度但功能上是完全一致的。建模的时候需要想清楚一个问题我们是做功能级建模还是做晶体管级建模晶体管级建模是把芯片内部的每一个三极管、电阻都搭出来精度高但仿真速度慢而且需要工艺库支持这在Simplis里不太现实。功能级建模是把芯片的每个功能块用理想化器件表达比如用压控电压源代替误差放大器用比较器和RS触发器代替PWM逻辑。我们做系统级电源设计重点是环路稳定性、负载动态响应、过流保护行为功能级建模完全够用而且仿真速度快得多。1.2 Simplis和PSpice/KiCad仿真到底差在哪很多刚接触Simplis的朋友会问为什么不用普通的SPICE仿真器来跑开关电源这里有个很关键的差异需要讲清楚。传统SPICE仿真是把整个电路都当作连续时间系统来处理每一个开关动作都会引发一堆非线性微分方程的求解。电源系统里开关频率通常是几十到几百千赫兹而环路的穿越频率是几万赫兹两者之间差了好几个数量级。SPICE为了追踪每一个开关动作必须把仿真步长压得非常小所以仿一次启动过程要几分钟甚至更久而且经常出现不收敛。Simplis采用的是分段线性PWL的建模方式。它把开关管的导通和关断状态分别看作不同的线性子电路切换时刻通过事件驱动机制精确捕获。这样仿真步长不再是固定的小步长而是可以在每个线性区间内大步长跳跃只有在开关动作发生时才细化时间步。实测下来同样的反激电源模型Simplis的仿真速度比SPICE快一到两个数量级而且基本不会碰到收敛问题。这一点对于UC2843的建模尤其重要。因为电流模式控制器的核心机制就是每个开关周期都要比较电流信号和误差信号这种周期性的开关行为在SPICE里会产生大量仿真事件只有在Simplis这种事件驱动引擎下才能跑得飞起。另外Simplis自带的AC分析功能可以直接在开关电源上做小信号扫频不需要像SPICE那样先做大信号瞬态再提取平均模型这对环路设计来说非常方便。1.3 建模精度选型平均模型还是开关级模型在确定用Simplis做UC2843建模之后还要决定用哪一种模型精度。第一种是平均模型。这种模型把开关管和二极管的作用等效成受控源不考虑开关频率下的纹波和开关动作只关心一个开关周期内的平均行为。平均模型跑得最快适合做环路补偿器的初步设计但看不到电流纹波、看不到峰值电流保护的真实触发点也看不到次谐波振荡。第二种是开关级行为模型。这是我在实际项目中用的最多的一种。这种模型保留了开关动作用Simplis自带的可控开关器件或者行为级开关来模拟功率MOSFET和二极管芯片内部的PWM逻辑用RS触发器、比较器等数字逻辑元件搭建。开关级模型可以看到真实的电流波形、占空比变化、逐周期限流行为仿真速度依然比SPICE快很多完全可以用来做环路设计和动态响应验证。第三种是混合方案。比如把UC2843做成开关级行为模型但输出整流部分用理想二极管变压器的漏感用线性电感近似这样既保证了对芯片行为的精确模拟又避免了变压器模型过于复杂导致的仿真缓慢。我的建议是第一次建模一定要从开关级行为模型入手。因为UC2843的很多特性比如斜坡补偿、电感电流连续和断续模式切换、打嗝保护都是与开关周期强相关的行为只有开关级模型才能真正模拟出来。等模型验证通过后再根据项目需求考虑是否简化成平均模型。2. UC2843芯片关键模块与Simplis建模实操2.1 振荡器建模RT/CT参数与频率计算UC2843的振荡器主要由定时电阻RT和定时电容CT决定频率。芯片内部有一个恒流源给CT充电当CT电压达到上限阈值时放电形成锯齿波。这个锯齿波发生器可以用Simplis里的压控电流源和比较器来搭建。振荡频率的计算公式是f 1.72 / (RT × CT)其中RT的单位是kΩCT的单位是μF得到的频率单位是kHz。比如RT 10kΩCT 4.7nF代入公式 f 1.72 / (10 × 0.0047) ≈ 36.6kHz。这个公式是TI数据手册给出的典型值不同厂家的2843会有一些差异但误差一般在10%以内。在Simplis里搭建振荡器我一般用以下方式用一个受控电流源VCCS给CT电容充电电流大小设为Vref/RT的镜像比例CT电容两端并联一个放电开关由比较器控制。当CT电压超过2.8V时比较器翻转放电开关导通把CT电压拉到1.2V放电完成后比较器复位放电开关关断CT重新开始充电从比较器输出端引出一个信号作为后续RS触发器的时钟信号实际建模时要注意Simplis的开关器件默认导通电阻很小如果放电开关直接接到地CT的放电会非常快可能在仿真步长内引起数值问题。解决办法是在放电开关上串联一个几欧姆的限流电阻保证放电过程有一定的时间常数。2.2 误差放大器与2.5V基准源的Simlpis实现误差放大器是环路补偿的核心。UC2843内部是一个跨导型运算放大器OTA输出端COMP通过外接RC网络进行补偿。跨导放大器在Simplis里的建模样式很直接用压控电流源实现输入端接反馈电压和2.5V基准输出电流 gm × (Vfb - Vref)。跨导值gm在数据手册上没给得很直接但可以从开环增益和输出阻抗估算。通常取2~5 mS即可这个值对环路增益的增益带宽积影响很大。在Simplis里我用一个VCCS实现跨导放大输出端并联一个电阻反映输出阻抗再通过外部引脚接入RC补偿网络。基准源的建模反而是容易出问题的地方。芯片内部的2.5V基准在Simplis里可以用一个理想电压源直接代替但这会在仿真中掩盖一些问题——比如输入电压欠压时基准会漂移或者负载变化时基准有微小的波动。如果只是做环路设计理想基准完全够用。但如果你要仿真芯片上电过程和欠压锁定行为建议在基准电压源后面加一个RC滤波器来模拟内部的启动延迟。实测下来我踩过的比较典型的一个坑是直接把理想基准电压源接到误差放大器导致仿真中小信号扫频时出现了一个几十赫兹的低频极点这个极点在真实芯片上不存在根源是基准源没有做好与地的隔离。误差放大器的输出钳位也需要特别注意。UC2843的COMP电压并不是无限制变化的内部有限幅电路通常钳位在1V到5.5V。在Simplis中可以通过在输出端并联两个二极管来实现限幅——一个接到2.5V基准钳住下限一个接到5V电源钳住上限。如果不加这个限幅电流模式控制器在启动时可能会因为误差电压过大产生非常宽的占空比导致电流保护误动作或者电感饱和。2.3 电流采样与斜坡补偿模块的搭建电流采样和斜坡补偿是UC2843建模中最容易出问题、也是影响环路稳定性最关键的部分。UC2843的电流采样比较器需要同时接收三路信号峰值电流检测信号、斜坡补偿信号和误差放大器的输出COMP。前两者相加后与COMP比较当采样电压超过COMP电压时比较器翻转PWM关断。电感电流通过采样电阻Rsense转换成电压信号这个电压送到芯片内部比较器的同相端。实际应用中采样点通常放在MOSFET源极到地之间采样的是开关管导通期间的漏极电流。在Simplis里这个采样过程可以直接用电压探针和一个电阻分压实现。斜坡补偿的作用是抑制占空比大于50%时的次谐波振荡。由于UC2843的本体占空比限制是50%带D触发器所以当你的设计占空比需要超过50%时必须外加斜坡补偿。补偿的斜率大小取决于电感电流下降沿斜率和采样电阻的乘积。简单估算公式斜坡补偿斜率 ≥ 0.5 × (Vout - Vin) × Rsense / (2 × L)其中Vout、Vin分别是输出电压和输入电压L是电感量。比如一个输入12V、输出5V、L22μH、Rsense0.1Ω、频率100kHz的Buck电路补偿斜率需要 ≥ 0.5 × (5 - 12) × 0.1 / (2 × 22e-6) ≈ 795V/s ≈ 0.8mV/μs。这个斜率看起来很小但要注意的是补偿斜率过大也会带来问题它会改变电流模式的响应特性让系统越来越像电压模。实际上通常有三种坡度补偿方案固定斜率、与占空比成比例、与输入电压成比例。UC2843的数据手册推荐的是固定斜率因为电路简单只需要RC网络就能实现。在Simplis里实现斜坡补偿我用一个锯齿波源VSaw输出与振荡器同步的斜坡信号然后通过加法器叠加到电流采样信号上。锯齿波的斜率可以通过设置VSaw的上升时间和幅度来控制。这里有一个细节我一直提醒自己斜坡补偿信号必须和振荡器完全同步不能有相位差。如果你用独立的锯齿波源而不做同步仿真中会出现周期性的抖频现象看起来像是不稳定其实是模型不同步造成的假象。2.4 输出级、欠压锁定与PWM锁存逻辑UC2843的输出级是推挽结构可以直接驱动MOSFET栅极。在Simplis里最简化的做法是使用一个真值表的电压源和一个阻尼电阻。输出级内部有推挽结构源出电流和灌入电流能力不一样数据手册上写的典型值是0.5A左右。如果你的应用需要更大的驱动能力可以外接驱动芯片但仿真时不必那么精确。输出级建模的核心点在于上升沿和下降沿的死区时间。UC2843本身的输出是单端PWM波形并没有上下管交替因此不需要死区但如果你在外部用了半桥结构驱动逻辑中还需要加死区时间。Simplis里可以用RC延迟配合比较器来实现死区也可以用两个延迟模块分别控制上升沿和下降沿。欠压锁定UVLO是UC2843上电时序的关键。芯片内部有一个比较器监测VCC电压只有当VCC上升到16V典型值UC2843才会启动输出降到10V典型值时关闭输出形成一个迟滞窗口。这个迟滞特性很重要它防止了系统在上电过程中反复开断。在Simplis里实现UVLO最简单的方法是接一个电压比较器阈值分别设置为16V和10V根据比较结果控制输出级使能引脚。PWM锁存逻辑是电流模式控制的核心。每次振荡器产生一个时钟脉冲置位RS触发器让输出为高开通功率管当电流采样信号超过COMP电压时比较器复位RS触发器让输出为低关断功率管。RS触发器保证了“一个周期最多一次开通”的特性避免出现多次开通导致的电流失控。在Simplis自带的逻辑库里有RS触发器原语直接用即可。需要注意的是RS触发器必须是电平触发的而且在时钟信号到来之前要确保触发器处于复位状态否则会出现输出一直为高的异常情况。我在第一次建模型的时候犯过一个典型错误把RS触发器的S端置位和R端复位接反了。结果仿真出来的PWM波形完全反相输出在关断时是高的导通时反而变低了。排查了半天才发现是触发器引脚接反了。这种问题在原理图看起来不明显但通过对比数据手册的时序图很快就能定位。3. 基于Simplis的UC2843完整建模流程与参数优化3.1 从零搭建UC2843模型的五步走流程在Simplis中完整搭建UC2843模型我推荐一个五步流程每一步都有明确的校验点避免把问题累积到最后。第一步建立振荡器模块。先确定目标开关频率根据 f 1.72/(RT×CT) 选出RT和CT搭好锯齿波发生器用瞬态仿真观察CT电压波形确认频率和幅值正确。第二步建立误差放大器和基准源。接好反馈分压电阻用DC仿真验证空载时COMP电压是否接近预期值。这一阶段不需要接入PWM逻辑只需要确认误差放大器能正确放大反馈误差。第三步建立PWM比较器和RS触发器。把振荡器时钟接到触发器的置位端把电流比较器的输出接到复位端用固定占空比的信号代替电流采样信号确认PWM输出逻辑正确。第四步接入电流采样和斜坡补偿。把功率级的电感电流采样信号送进比较器同时叠加斜坡补偿做瞬态仿真验证稳态波形是否正常重点看占空比和电流峰值是否符合理论计算。第五步闭环联调。将误差放大器输出COMP接到PWM比较器输入端加入反馈网络做完整的闭环仿真验证启动过程、稳态纹波、负载动态响应和环路稳定性。每一步都完成后再做整体仿真。这个流程最大的好处是定位问题非常迅速如果最终仿真波形异常可以倒推是哪个模块的问题。我试过直接一步到位搭完整电路结果出来一堆莫名其妙的波形排查问题花了整整一下午。3.2 关键参数优化振荡频率、斜坡补偿和环路补偿UC2843的参数优化主要集中在三个地方振荡频率、斜坡补偿幅度、环路补偿网络。振荡频率的优化要综合考虑效率、尺寸和EMI。频率越高变压器和滤波电感可以做得越小但开关损耗和磁性损耗会增加。低频率反而有更好的EMI表现但磁性元件体积会变大。实际项目中我一般会先在50kHz到150kHz之间做参数扫描观察效率曲线和元件温度变化再选择最优点。Simplis自带参数扫描功能可以在一个瞬态仿真中扫描多个频率值非常方便。斜坡补偿的优化有一个指标性的判断方法观察电感电流波形的占空比对扰动信号的响应。当占空比大于50%且补偿不足时扰动会逐周期放大表现为电流波形出现宽窄交替的纹波这是次谐波振荡的典型特征。补偿量过小时增加补偿斜率直到电流波形保持均匀补偿量过大时相位裕度会明显下降阶跃响应变差。我的个人经验是从理论计算值的1.2倍开始调试逐步增大直到电流脉动稳定且动态响应不再明显变差为止。环路补偿的优化是整个建模过程中最需要耐心的一步。UC2843的COMP端接的是RC网络典型的是Type II补偿一个电阻串联一个电容再并联一个小电容抑制高频噪声。Type II补偿的传递函数中包含一个零点和一个极点计算方式如下零点频率fz 1 / (2π × Rcomp × Ccomp) 极点频率fp 1 / (2π × Rcomp × Ccomp_hf)其中Ccomp_hf是并联的用于高频衰减的小电容通常取Ccomp的1/10到1/100。一个实用的起点是fz设为开关频率的1/10左右fp设为开关频率的1/2左右。举个例子100kHz开关频率下fz 10kHzfp 50kHz。如果Ccomp 100nFRcomp 1 / (2π × fz × Ccomp) ≈ 159ΩCcomp_hf 1nF。在这个基础上用Simplis的AC分析扫频观察穿越频率和相位裕度逐步调整Rcomp和Ccomp的值直到相位裕度在45°到60°之间。3.3 用Simplis的AC分析做环路稳定性验证Simplis的AC分析是做环路稳定性验证的利器。它不需要像传统SPICE那样先求平均模型再跑AC分析而是直接在开关级模型上进行小信号扫频扫频结果可以画Bode图。在Simplis中进行AC分析的步骤在电路的反馈环路中插入一个AC扰动源。通常的做法是在反馈电阻和误差放大器输入端之间串联一个小信号电压源打开AC分析设置选择扫描频率范围一般是10Hz到开关频率的10倍设定扰动信号幅度为1V运行分析后在感兴趣节点提取扰动响应用Simplis内置的后处理工具画出环路增益的幅频和相频曲线根据Bode图读出穿越频率和相位裕度判断环路是否稳定在实际操作中我发现在Simplis里做AC分析有个小技巧扰动源要放在低阻节点而不是高阻节点。放在误差放大器的输出端往往比放在反馈电阻之前效果更好因为COMP节点阻抗较高直接在COMP节点注入扰动信号环路增益的提取会更干净。AC分析做出来如果穿越频率低于开关频率的1/10说明带宽不够动态响应可能会比较慢。如果相位裕度低于30°系统就会有明显的振铃甚至振荡。我的调整策略一般是从电容开始改先增大Ccomp降低穿越频率然后增大Rcomp提高零点位置来提升相位反复迭代几次就能锁定一个比较合理的补偿参数。3.4 参数扫描与优化工具的组合应用Simplis的参数扫描功能太适合用来做补偿参数整定了。我常常同时扫描Rcomp和Ccomp观察不同组合下的穿越频率和相位裕度形成一个二维的“稳定性地图”一眼就能看出哪些参数区域是稳定区哪些是震荡区。具体做法是在Simplis的参数扫描设置里选择需要扫描的参数比如Rcomp从50Ω到500ΩCcomp从10nF到100nF每个参数取10个点总共100次AC扫描。Simplis会把所有结果合并显示在一张图上也可以用后处理脚本来提取每个组合对应的穿越频率和相位裕度。有一点要注意——AC扫描结果只有在系统处于稳定状态时才有效。如果你还没跑瞬态仿真确认系统确实工作在稳态直接做AC分析得到的结果可能是非线性的混合信号Bode图会非常难看。我在第一次用这个功能时就吃过亏。后来养成的习惯是先做瞬态仿真等到电路达到稳定工作状态后再做AC分析。另外参数扫描可以结合效率分析和损耗分析一起做。Simplis的分段线性模型可以把MOSFET和二极管的总损耗分解成导通损耗和开关损耗这样在选择参数时不仅能看环路稳定性还能看效率指标两个目标同时优化。我在实际项目中经常会因为最终效率提升了0.5个百分点而放弃一组稳定性更好的参数——因为效率对电源产品的散热和温度应力影响有时候比稳定性更关键。4. Simplis仿真中的常见问题与调试技巧4.1 收敛失败与时间步长设置虽然Simplis在收敛性上比SPICE好很多但并不是完全不存在收敛问题。最常见的收敛失败原因是时间步长设置过小导致事件过多仿真速度急剧下降或某个节点存在高阻状态比如比较器输出悬空导致SOC状态可变电路计算异常。应对方法是分层排查。先看看是否所有数字逻辑元件的输出都接了上拉或下拉电阻很多时候RS触发器输出悬空就会引起莫名其妙的振荡。再看看振荡器模块的CT充电电容是否取值过小电容太小会导致充电时间极短仿真器难以捕捉精确的触发点。在实际操作中我一般把最小时间步长设置为开关周期的1/1000左右再逐级调小观察波形收敛情况。如果时间步长过于小比如到了开关周期的1e-7且与波形无关那就要考虑模型本身是否有设计问题了。另一个常见问题是死循环或马尔可夫状态切换。Simplis里允许你设置最大事件数量如果事件数量超过上限仿真器会强制终止并报错。出现这种情况多数是因为比较器和RS触发器之间形成了无限制的振荡循环。一个典型的场景是功率管关断后电感电流下降到零此时电流采样信号为负或为零但比较器判定条件设置不当触发了一个本不该出现的复位信号形成高频振荡。4.2 波形异常排查PWM抖动、振荡和毛刺的真实原因我在仿真中遇到过很多次PWM波形异常归纳下来主要有几类第一类是PWM抖频。波形看起来平均占空比是对的但是开关周期不稳定每一段的周期长度有微小的差别。这种情况绝大多数是斜坡补偿信号与振荡器不同步导致的或者是锯齿波发生器的比较器迟滞设置太大。检查方法很简单同时调出CT电压波形和PWM输出波形看看PWM翻转时刻是否每次都落在CT电压波形的同一相对位置。如果不是那就是同步问题。第二类是启动过程中的PWM振荡。这种波形通常在电路刚上电的几毫秒内出现表现为输出过冲或欠冲阶段PWM占空比接近100%或0%然后反复横跳。解决办法是在COMP端加一个软启动电容通常为10nF到100nF量级。TinySwitch和UC2843这类芯片虽然内部有软启动但效果非常有限加上外部软启动电容能显著改善启动行为。第三类是毛刺和振铃。这类问题通常在开关管关断瞬间出现表现为波形上叠加一个高频衰减振荡频率在几十MHz到几百MHz之间。产生原因是变压器漏感和MOSFET输出电容之间产生了谐振。Simplis里如果在输出级添加了寄生电容和寄生电感很容易出现这种振铃。如果只是为了验证环路设计可以适当减小寄生参数值或者直接在输出级并联一个RC吸收网络来抑制振荡。4.3 经验汇总建模仿真的三条避坑建议从最开始在Simplis里搭第一个UC2843模型到后来一遍遍接近量产方案的仿真验证我最深的体会有三条专门拿出来分享给同样在钻研的朋友。第一搭建模型时务必要做“最小化验证”。不要一上来就搭一个完整的反激电源先分别验证振荡器、误差放大器、PWM比较器三个模块是否各自工作正常。我通常会给每个模块单独写一个测试电路比如给误差放大器输入不同的直流电压扫描COMP输出确认它不是饱和就是放大了应有的倍数。这一步多花半小时后面能省一整天的调试时间。第二充分利用Simplis自带的测量与分析工具。Simplis里有测量平均功率、RMS值、纹波峰峰值、效率等现成的函数不用自己写脚本。尤其是在做参数优化的时候我经常把效率定义为输出功率除以输入功率的平均值然后在参数扫描后直接把效率作为纵轴画出来观察不同频率和补偿参数下的效率曲线。这比靠肉眼看波形判断哪个参数合适的效率高太多。第三不要把Simplis的仿真结果当作“圣旨”。仿真模型再精确也永远无法完全复现真实芯片的每一个物理细节特别是在电磁兼容和热行为方面。Simplis的模型适合做环路设计验证和大型信号行为预测但最后还是要回到真实硬件做调试验证。我在多个项目中验证过Simplis仿真给出的相位裕度与实际测量的误差基本在5°以内这个精度已经足够指导设计了但真正决定量产可靠性的永远是你在测试台架上的实测数据。最后再分享一个操作细节在Simplis中建UC2843模型的时候强烈建议把所有关键参数比如振荡器RT/CT值、补偿电容电阻值、斜坡补偿斜率都设置成参数化变量。这样子做参数扫描和优化时只需要修改变量表里的数值不用每次在原理图上找元件位置改参数。看起来是一个非常不起眼的习惯但当你需要扫描上百组参数来寻找最优补偿方案时这个习惯会让你省去大量重复工作。我在实际项目中靠这个方法把补偿参数从最初的十几个候选值收敛到最终的三个最优方案只花了不到两个小时的仿真时间。
返回列表