首页 / 资讯中心 / 文章详情

PLECS仿真DAB峰值电流前馈控制:从原理到参数整定实战

PLECS仿真DAB峰值电流前馈控制:从原理到参数整定实战 ★ FEATURED ARTICLE
1. 为什么要在PLECS里啃下DAB峰值电流前馈这块硬骨头双有源桥Dual Active BridgeDAB变换器在储能、车载充电、直流微网这些场景里出镜率极高原因不复杂它天生具备双向能量流动能力、宽电压比适应性和电气隔离拓扑本身也够简洁。但真正把DAB跑起来的人都知道稳态效率好看不难难的是动态过程——负载突变、输入电压跳变、端口电压扰动时电感电流会冲出一个远超稳态值的尖峰轻则触发保护、重则炸管。峰值电流前馈控制策略就是冲着这个痛点去的在电流环给定上叠加一个与扰动直接相关的前馈项让控制器在扰动被反馈环感知到之前就提前动作把峰值电流压下去。我这次做的事情是在PLECS里完整复现一套基于峰值电流前馈的DAB控制方案思路来源是一篇该领域顶刊论文的控制框架。选择PLECS而不是Simulink理由很实在PLECS的开关器件模型和热模型耦合更自然变步长求解器处理高频开关瞬态时步长控制更稳跑长时间工况扫描不容易因为零交叉检测丢步。而且PLECS的C-Script模块写自定义控制逻辑非常顺手前馈项里那些分段判断、查表补偿用C-Script实现比搭框图清爽得多。这篇内容适合谁看如果你已经搭过基础的DAB开环或单移相闭环模型想进一步搞清楚前馈控制到底怎么加、加在哪里、参数怎么整定那这篇就是给你准备的。如果你还在纠结DAB的基本工作原理建议先把单移相调制和电感电流波形吃透再回来不然前馈部分会看得云里雾里。全文会围绕为什么这么设计—关键细节怎么抠—实操怎么落地—坑怎么填这条线展开所有参数和步骤都来自我实际跑模型的过程可以直接抄。2. 整体方案设计与思路拆解2.1 从反馈救火到前馈预判的控制逻辑转变传统DAB电流环是纯反馈结构采样电感电流或输出电流与给定值比较误差送进PI调节器输出移相角。这套逻辑的问题在于反馈天生滞后——扰动发生到误差显现再到调节器输出修正中间隔着采样延迟、计算延迟和开关周期。对于DAB这种电感电流斜率大、能量缓冲小的拓扑等反馈环反应过来电流尖峰早就冲上去了。前馈的思路完全不同扰动量比如输入电压、输出电压、负载电流本身是可测的那就直接把扰动量通过一个已知的传递关系折算成控制量的修正值叠加到反馈输出上。打个比方反馈控制像开车时看到前车刹车灯亮了才踩刹车前馈控制像提前知道前面有个下坡脚先放到刹车上备着。两者不冲突前馈负责粗调预判反馈负责精调兜底。具体到DAB峰值电流前馈的核心是把电感电流峰值与移相角、端口电压之间的解析关系反解出来构造一个前馈通道。论文里的做法通常是对单移相调制下的电感电流峰值表达式做线性化处理提取出对输入电压和输出电压的敏感项作为前馈增益的设计依据。我在复现时保留了这套解析框架但在实现上做了简化——把前馈项拆成电压比补偿和负载电流补偿两部分分别整定调试起来更直观。2.2 为什么选PLECS而不是其他仿真平台这个选择值得单独说清楚因为工具选错会让后续调试事倍功半。PLECS的核心优势在于它把电气回路和控制系统分成两个求解域电路部分用变步长求解器处理开关瞬态控制部分用固定步长离散求解。这种分离式架构对DAB特别友好因为DAB的开关频率通常在几十到上百kHz如果整个模型都用固定小步长跑仿真速度会慢到让人失去耐心如果都用变步长控制器的离散特性又不好精确表达。PLECS的另一个好处是理想开关和非理想开关可以一键切换。前期调控制逻辑时用理想开关仿真飞快先把前馈通道的符号、增益方向、限幅逻辑调对后期验证峰值电流实际抑制效果时切到带导通电阻和结电容的开关模型看真实的电流尖峰和振荡。这个先理想后非理想的流程比一上来就搭精细模型效率高太多。还有一点是PLECS的探针和示波器配置很灵活可以在任意支路插入电流探针、在任意节点插入电压探针而且支持把多个工况的波形叠加对比。我做前馈参数扫描时就是靠这个功能把不同前馈增益下的峰值电流曲线叠在一张图上看趋势省了大量重复截图的时间。2.3 前馈通道的插入位置与结构选型前馈项加在哪里直接决定策略的有效性。常见的有三种插入位置加在电流环给定上、加在移相角输出上、加在电压环输出上。我复现的方案选择加在电流环给定上原因是这样前馈项与反馈项在同一量纲下叠加限幅和抗饱和逻辑可以共用一套实现上最干净。结构上前馈通道采用扰动测量—增益折算—限幅叠加三段式。扰动测量取输入电压和输出电流这两个量在DAB里都是必须采样的不增加额外传感器成本。增益折算用解析式算出的系数矩阵输入电压扰动对应一个增益输出电流扰动对应另一个增益。限幅叠加是为了防止前馈项在大扰动下过冲把前馈输出限制在反馈输出的合理比例范围内一般取反馈输出的百分之三十到五十作为前馈限幅上限。注意前馈增益的符号必须与反馈环极性一致否则会变成正反馈一上电就发散。我第一次搭的时候就因为输入电压前馈项符号搞反模型跑了两毫秒直接报错排查了半天才发现是解析式推导时电压比定义方向弄拧了。3. 核心细节解析与实操要点3.1 电感电流峰值解析式的推导与简化前馈增益不是拍脑袋试出来的得从电感电流峰值的解析表达式出发。单移相调制下DAB的电感电流在一个开关周期内分四段线性变化峰值出现在移相角对应的时刻。设输入电压为V1输出电压折算到原边为V2移相角为φ开关频率为fs电感为L则峰值电流表达式可以写成与(V1V2)、φ、以及电压比相关的分段函数。论文里的处理方式是对这个分段函数在稳态工作点附近做小信号线性化提取出峰值电流对V1和负载电流的偏导作为前馈增益的理论值。我在复现时发现直接套用论文的线性化系数在宽电压比范围内误差偏大原因是线性化只在工作点附近成立而实际工况电压比变化范围很宽。我的处理是把电压比范围分成三段每段单独算一组前馈增益用查表方式切换。这个改动让峰值电流抑制效果在全程范围内都稳定在可接受水平代价是控制逻辑多了一个分段判断C-Script里几行代码的事。具体增益计算过程是这样的先确定额定工作点V1取四百伏V2折算后取三百五十伏L取六十微亨fs取五十千赫兹额定功率三千瓦。在这个点上算出峰值电流对输入电压的偏导约为零点零二安每伏对负载电流的偏导约为一点三安每安。这两个数就是前馈增益的基准值实际整定时在此基础上上下浮动百分之二十做微调。3.2 采样时序与计算延迟的补偿处理前馈控制最怕的就是前馈量算出来了但扰动已经过去了。数字控制里采样、计算、PWM更新之间存在固有延迟如果前馈通道不补偿这个延迟效果会打折扣。我的做法是在前馈通道里加一个超前补偿环节用当前采样周期的扰动变化率外推一个周期的扰动量相当于提前半步动作。具体实现上在C-Script里维护一个扰动量的历史缓冲区存最近两个采样点的值用差分算变化率乘以一个补偿系数后叠加到当前前馈量上。补偿系数取零点五到零点八之间太大容易引入噪声放大太小补偿效果不明显。我实测下来零点六左右比较平衡输入电压阶跃时峰值电流能再压下去百分之十左右。提示超前补偿对采样噪声很敏感如果电流采样没有做足够的滤波补偿系数要往小调否则前馈输出会抖。我的电流采样用了二阶低通滤波截止频率设在开关频率的十分之一这个配置下补偿系数取零点六没有出现明显抖动。3.3 前馈与反馈的权重分配原则前馈和反馈不是简单相加就完事两者权重分配有讲究。前馈负责快速响应反馈负责稳态精度如果前馈权重过大稳态时前馈项会与反馈项打架造成移相角小幅振荡如果前馈权重过小动态时前馈起不到作用等于白加。我的整定顺序是先把反馈环单独调好确认稳态无静差、动态超调在可接受范围然后逐步加大前馈权重观察峰值电流和稳态纹波的变化。前馈权重从零开始每次加零点一加到峰值电流不再明显下降、但稳态纹波开始上升的那个点往回退一档作为最终值。这套流程走下来最终前馈权重定在零点七峰值电流比纯反馈时压低了约百分之三十五稳态纹波增加不到百分之五这个折中我认为是划算的。3.4 限幅与抗饱和逻辑的细节设计前馈项必须限幅这一点没有商量余地。大扰动下前馈输出可能远超合理范围如果不限幅移相角会被推到极限反而引发更大的电流冲击。我的限幅策略是动态限幅前馈输出上限取当前反馈输出的绝对值乘以一个系数系数取零点五。这样前馈项永远不超过反馈项的一半保证反馈环始终有调节余量。抗饱和逻辑跟前馈限幅是联动的。当移相角接近极限值时前馈通道要冻结积分、停止累加防止前馈项在饱和期间越积越大等扰动过去后突然释放造成二次冲击。PLECS里实现这个逻辑可以在C-Script里判断移相角是否触及上下限触及则把前馈通道的使能信号拉低同时把前馈输出保持在上一次的有效值。4. 实操过程与核心环节实现4.1 PLECS模型搭建的完整步骤模型搭建从电路主回路开始。直流电源接原边全桥四个开关器件用MOSFET模型桥臂中点接电感电感另一端接副边全桥的桥臂中点副边全桥直流侧接输出电容和负载电阻。变压器用理想变压器加漏感的方式表达漏感值直接并入外接电感简化模型结构。这一步的关键是开关器件的驱动信号要留出死区死区时间取两百纳秒太短会有直通风险太长会畸变电流波形。控制部分用C-Script模块实现输入端口接采样得到的输入电压、输出电压、输出电流、电感电流输出端口接八个开关的驱动信号。C-Script内部按固定步长运行步长取一微秒与PWM载波周期对齐。移相角生成用计数器加比较的方式计数器从零计到载波周期值比较值由反馈输出加前馈输出再折算成计数值。前馈通道在C-Script里单独写一个函数块输入是V1和Iout输出是前馈移相角修正量。函数内部先做分段查表确定增益再算前馈量再做超前补偿最后限幅输出。整个C-Script代码量不大核心逻辑不到一百行但每个变量的量纲和定标要反复核对我在这上面花的时间比写代码本身还多。4.2 关键参数的计算与整定记录参数整定我按先静态后动态、先单环后双环的顺序来。静态先确认额定工作点下移相角对应的输出功率对不对用功率公式反算理论移相角跟模型里实际跑出来的移相角对比误差在百分之二以内算通过。这一步能验证主回路参数和变压器变比有没有填错。动态整定先调反馈环。电流环PI参数用极点配置法给初值比例增益按电感电流响应时间取开关周期的五到十倍来估积分增益取比例增益的十分之一左右。然后跑负载阶跃看电流超调和恢复时间微调比例增益直到超调在百分之十以内。电压环在外环带宽取电流环的五分之一同样用阶跃响应整定。前馈参数整定在反馈环调好之后进行。先固定前馈权重为零跑一遍负载阶跃和输入电压阶跃记录峰值电流作为基准。然后按3.3节的流程逐步加权重每加一档跑一次阶跃记录峰值电流和稳态纹波。我做了五组对比数据整理成下表前馈权重负载阶跃峰值电流(A)输入电压阶跃峰值电流(A)稳态电流纹波(A)0.018.621.30.420.315.217.80.440.513.415.60.460.712.114.20.490.911.813.90.58从表里能清楚看到拐点权重从零点七加到零点九峰值电流只降了不到百分之三但稳态纹波涨了近百分之二十。所以最终定在零点七这个点性价比最高。4.3 典型工况的仿真验证与波形解读验证工况我选了三个负载从半载跳到满载、输入电压从四百伏跳到三百六十伏、输出电压给定从三百五十伏跳到三百三十伏。每个工况都跑纯反馈和前馈投入两组波形叠在一起对比。负载阶跃工况下纯反馈时电感电流峰值冲到十八点六安前馈投入后压到十二点一安恢复时间从一点二毫秒缩到零点七毫秒。波形上能明显看到前馈投入后电流上升沿变钝了尖峰被削平后续振荡也小。输入电压阶跃工况的改善更明显峰值电流从二十一点三安降到十四点二安因为输入电压扰动是前馈通道最直接的补偿对象。输出电压给定阶跃的改善相对小一些峰值电流降了约百分之二十五这是因为输出电压给定变化经过电压环才影响到电流环前馈通道对它的响应链路更长。波形解读时要注意一点前馈投入后电流波形在扰动瞬间会出现一个小台阶这是前馈项突加造成的台阶幅度跟前馈权重和限幅系数有关。这个台阶本身无害但如果台阶过大导致电流变化率超过电感饱和阈值就要回头调小前馈权重或加一个前馈量斜率限制。我的模型里台阶幅度控制在额定电流的百分之五以内实测没有引发任何异常。4.4 从仿真到实际硬件的移植考量仿真跑通不等于硬件能跑。移植到实际控制器时有几个地方必须改。第一是采样延迟仿真里采样是理想的实际ADC采样有转换时间而且采样时刻与PWM更新时刻之间有固定偏移前馈通道的超前补偿系数要按实际延迟重新标定。第二是参数离散化仿真里C-Script用浮点运算实际控制器如果定点运算前馈增益的定标要重新算防止溢出或精度损失。第三是保护逻辑仿真里可以随便跑极限工况硬件上必须在前馈通道里加输出钳位防止前馈量异常时把移相角推到危险区域。我在移植时还遇到一个仿真里没暴露的问题实际电感的饱和特性。仿真电感是线性的实际电感在大电流下感值会下降导致同样移相角下电流峰值比仿真高。解决办法是在前馈增益里加一个电流相关的修正项电流越大增益适当调小相当于给前馈通道加了一个软饱和。这个修正项在仿真里看不出效果但硬件上实测能把大电流工况的峰值再压百分之十左右。5. 常见问题与排查技巧实录5.1 前馈投入后系统反而振荡的排查路径这是最常见的问题我前后遇到三次原因各不相同。第一次是前馈增益符号搞反表现是前馈一投入电流立刻发散波形上能看到指数增长的振荡。排查方法很简单把前馈权重设成很小的值比如零点零五看电流是收敛还是发散发散就是符号问题回头检查解析式推导时电压比的定义方向。第二次是前馈通道和反馈通道的采样不同步前馈用的输入电压采样比反馈用的电流采样晚一个周期导致前馈动作总是慢半拍与反馈形成相位差引发低频振荡。解决办法是把所有采样放在同一个中断里触发保证时序对齐。第三次是超前补偿系数给太大把采样噪声放大了前馈输出高频抖动通过移相角传导到电流上形成高频振荡。把补偿系数从零点八降到零点五振荡消失。这三次排查下来我总结了一个顺序先查符号再查时序最后查补偿系数按这个顺序走基本能覆盖大部分振荡问题。5.2 峰值电流抑制效果不达预期的原因分析有时候前馈投入了峰值电流也降了但降幅远小于预期。我遇到过两种情况。一种是前馈限幅设得太保守前馈项还没发挥作用就被限幅卡住了。检查方法是把限幅系数临时放大到一看峰值电流是否明显下降如果是说明限幅是瓶颈适当放宽限幅系数但要注意放宽后稳态纹波会上升需要重新找平衡点。另一种是扰动测量点选错了。我最初把输出电流采样点放在输出电容之后测到的是负载电流而不是电感电流两者在动态过程中差异很大导致前馈量算错。把采样点移到电感支路上问题解决。这个坑很隐蔽因为稳态时两个电流几乎一样只有动态时才能看出差别。5.3 不同电压比工况下前馈效果差异大的处理DAB的电压比变化范围宽前馈效果在不同电压比下差异明显这是解析式线性化的固有局限。我的处理是分段查表前面3.1节提过。分段点怎么选我的经验是按电压比等于一、大于一、小于一分成三段每段内再按电压比偏离程度细分两档总共六组增益。分段越多效果越好但切换时的跳变也越明显需要在切换点加一个平滑过渡用线性插值把两组增益混起来过渡区间取电压比的百分之五。注意分段切换时如果前馈量跳变过大会在电流上产生一个台阶这个台阶可能触发过流保护。平滑过渡是必须的不能省。5.4 常见问题速查表现象可能原因排查方法处理措施前馈投入即发散前馈增益符号反小权重试投看收敛性检查解析式电压比方向低频振荡前馈与反馈采样不同步查采样中断时序统一采样触发时刻高频抖动超前补偿系数过大减小补偿系数观察降到零点五左右峰值抑制不足前馈限幅过保守临时放大限幅看效果放宽限幅并重调权重动态时前馈量算错扰动采样点位置不对对比稳态与动态采样值采样点移到电感支路电压比变化时效果差线性化增益不适配分工况记录峰值电流分段查表加平滑过渡切换工况时电流台阶大分段增益跳变观察切换点波形加线性插值过渡5.5 几个仿真设置上的实操心得PLECS的求解器设置对DAB仿真结果影响很大这里分享几个我踩过坑才调对的参数。最大步长不要设太大我一开始图快设了十微秒结果开关瞬态被跨过去电流峰值明显偏低跟理论对不上。后来改成最大步长一微秒峰值电流才准。相对容差设千分之一绝对容差设一微安这个组合下仿真速度和精度比较平衡。还有示波器的采样设置默认是跟求解器步长走的变步长下波形点疏密不均看峰值的时候容易漏掉真正的尖峰。把示波器改成固定采样率采样率取开关频率的五十倍以上峰值就能抓准。这个细节不起眼但做峰值电流相关的研究波形采样不准等于白做。最后是C-Script的调试技巧。C-Script里不能直接打断点我的办法是在关键变量上挂探针把前馈量、反馈量、限幅标志这些中间变量引到示波器上跑一遍看波形判断逻辑对不对。比盲猜高效得多。6. 写在跑完这一轮模型之后这套前馈策略从搭模型到参数整定再到工况验证前后花了我将近三周其中大半时间耗在排查振荡和调分段增益上。回头看最值钱的经验其实就两条一是前馈通道的符号和时序必须在投入前反复核对这两样错了后面全白搭二是前馈权重不要贪大零点七左右是个甜点区再往上加收益递减而代价递增。后续如果还要往下挖我打算做两件事一是把分段查表换成在线参数辨识让前馈增益随工况自适应调整省掉手工分段的麻烦二是把前馈通道扩展到三重移相调制下那个场景的电流峰值表达式更复杂但前馈的收益可能也更大。这两块等模型跑出结果再找机会聊。
阅读完成 · 觉得有帮助?
咨询建站