ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

三相交错并联Boost变换器电流双闭环控制策略与Simulink仿真实践

三相交错并联Boost变换器电流双闭环控制策略与Simulink仿真实践 三相交错并联Boost变换器配电流双闭环控制策略这几个词组合在一起基本就是大功率直流变换器设计里的常青树了。我做光伏直流变换、储能PCS和充电桩模块这些年Boost拓扑见过无数回但真正让它在工程上站稳脚跟的恰恰是“交错并联”这四个字。单管Boost到了几千瓦以上开关管应力、电感体积、输入输出纹波都变得很难看交错并联把这些痛点逐个拆掉而电流双闭环负责把拆掉痛点后的系统稳住让动态响应和稳压精度都拿得出手。Simulink仿真是把这个组合在烧钱、炸管之前验证清楚的最快路径。这篇文章不绕弯从原理、参数、建模、控制器整定到仿真排雷按我实际做项目的顺序一步步讲给正在做电力电子仿真课设、毕业设计或者刚接手大功率DC-DC项目的工程师做个参考。1. 三相交错并联Boost交错的价值与双闭环的职责划分1.1 为什么一定要“交错并联”而不是简单地把三个Boost并在一起很多初学者会问一句话既然电流应力大那就把三个Boost模块并联起来一起扛为什么还要强调“交错”直接并联确实能把电流分摊到三路但如果三路PWM的相位完全一致开关管同时导通、同时关断输入侧和输出侧的纹波不仅没有削掉反而在同一时刻叠加总纹波依然是单相那么大甚至因为PCB寄生参数不一样各路电流还会有动态不均流问题。交错并联的核心在于把三路PWM的载波错开360°/N的相位三相系统就是120°。这样每一相的开关时刻均匀分布在开关周期内电感电流纹波在叠加的时候互相抵消等效开关频率提升为相开关频率的3倍而开关管实际开关频率没变开关损耗一分没多花。从波形上看最直观。单相Boost当占空比D恰好为2/3时三相交错后输入电流纹波完全抵消理论上为零D为1/3或2/3附近也有很明显的抵消效果。即便不在这两个特殊占空比下三相叠加后的输入电流纹波幅值也能压到单相的三分之一左右纹波频率却翻了三倍。高频小纹波意味着输入EMI滤波器可以做得更小输出电容承受的纹波电流更小整个系统的体积和成本跟着下来。另一个好处是器件应力每个开关管、二极管、电感只处理总功率的1/3热源分散散热设计不用堆那么厚的铜基板和风扇这也是大功率场景更偏好交错并联的本质原因。1.2 电流双闭环电压外环盯目标电流内环冲在前面Boost要稳定输出电压最简单的是单电压环采输出电压和给定值比较经过PI直接输出占空比。这个方案在小功率、对动态性能要求低的场合能跑但负载突变的时候输出电压要先跌下去电压环才能反应而占空比变化到输出电压恢复又隔着电感和电容的储能过程动态响应拖得比较长还容易出现振荡。双闭环的结构是电压外环采输出电压和给定值比较经过电压PI产生电流指令电流内环采电感电流和电流指令比较经过电流PI产生调制波再送给PWM发生器。这样一改电压环只管“输出电压够不够”电流环管“电感电流跟得快不快”两个环各司其职。负载突然加重时输出电压往下掉电压环立刻抬升电流指令电流内环马上增大占空比让电感电流迅速跟上响应速度被电流环的带宽撑起来这就是双闭环在动态性能上明显优于单电压环的原因。关于标题里的“电流双闭环”我也得说明一下。不同资料对这个词的用法有差异有的场合指的就是“电压外环电流内环”这一整套双闭环也有的场合把电感电流内环和三相均流环都叫电流环形成“电压外环电流内环均流环”的多闭环结构。我下文按照主流的“电压外环电流内环”展开同时把均流环作为三相交错并联必须增加的辅助环节单独讲这样两种理解都能对上。1.3 三相均流交错并联不控制均流就会失控交错并联解决了纹波和器件应力却引出一个新的问题三路Boost的参数不可能完全一致。电感量有制造公差开关管饱和压降不同二极管正向压降不同PCB走线电阻也不同。这些差异叠加起来即使三路PWM占空比完全一样各相平均电流也会有偏差。偏差小的时候只是损耗分配不均个别相温升偏高偏差大的时候某一相电流过流热应力集中电感磁芯出现饱和整个系统稳定性直接崩掉。所以三相交错并联在实际工程里必须加均流措施。最常见的均流方案是先把电压环输出作为公共电流指令然后计算三相电流的平均值每相电流和平均值的误差经过一个比例环节或一个慢速PI得到一个占空比修正量叠加到公共占空比上。三相最终的调制波并不完全相同水泵效应消失各相电流被拉回到平均值附近。均流环的带宽不用太高因为三相电流不均衡主要是参数差异和温度漂移引起的慢变过程带宽过高反而会和电流内环耦合把动态都搅乱。一般取电流内环带宽的1/10左右足够。仿真里均流补偿量必须限幅我习惯限在占空比幅值±5%以内防止某一相补偿量过大把正常调压功能带偏。这个细节看着小调试的时候很关键。2. Simulink主电路建模器件、参数与移相PWM生成2.1 模型框架与器件选型Simulink里做电力电子仿真主流选择是Simscape Electrical早期版本叫SimPowerSystems再早叫Power System Blockset。搭模型时我习惯把整个系统分成四块主电路、控制电路、PWM生成与移相、测量与显示。四块之间用Goto/From或者Bus信号连接避免一根根线拉得满屏都是后期改参数、加debug模块会方便很多。开关器件方面如果研究目标是控制策略而不是开关暂态过程用理想MOSFET模块就行。Simscape Electrical里MOSFETIdeal或者带Ron的MOSFET都行不必纠结缓冲电路参数。因为交错并联拓扑开关管数量多每个都带复杂的缓冲网络会让仿真速度变得非常慢。磁性元件用电感模块直接设置电感值L和串联电阻R输出电容用带初始电压设置的电容模块。直流电源用DC Voltage Source负载用电阻或可控电流源都行验证负载阶跃响应时可控电流源更方便。还有一点值得提为了解决热搜里常出现的“simulink的数组读”问题在搭建测量通道时就要想好信号类型。三个Current Measurement的输出是标量我习惯先分别接“Vector Concatenate”组成一个三维向量然后在控制器里用Selector或MATLAB Function按索引取数据。如果直接拿Mux合并之后再用Demux或者Selector经常出现信号类型混用报错这是很常见的坑。2.2 主电路参数怎么算从占空比到L、C参数设计必须从具体指标出发。我举一个典型的例子输入电压Vin100V输出电压Vout200V额定功率P3kW开关频率fsw100kHz。先算理想Boost占空比D 1 - Vin / Vout 1 - 100/200 0.5额定输出电流Iout P / Vout 3000/200 15A输入电流Iin P / Vin 3000/100 30A。三相交错并联后每相分担的输入电流约为30/3 10A这就是每相电感的平均电流IL。电感值按纹波率设计。要求每相电感电流纹波系数不超过20%也就是ΔIL 2A。Boost电感纹波公式ΔIL (Vin × D) / (fsw × L)代进去得到L Vin × D / (fsw × ΔIL) 100 × 0.5 / (100000 × 2) 250μH工程上我会留一点裕量实际取220μH到270μH都可以。仿真时取250μH电感串联电阻可以设个毫欧级比如10mΩ太大会带来额外压降和损耗。输出电容按电压纹波指标设计。假设输出电压纹波ΔVout要求不超过1%也就是2V。工程上常用近似公式C ≥ (Iout × D) / (fsw × ΔVout) 15 × 0.5 / (100000 × 2) 37.5μF考虑电容ESR和负载瞬态响应我实际会取100μF左右。要注意交错并联后输出电容承受的有效纹波频率是3倍开关频率所以这个公式是保守估计仿真结果通常会比指标好这是合理的。2.3 相移120°的PWM载波怎么生成三相交错并联PWM生成的关键是让三路三角载波相位依次相差120°。载波周期Ts 1/fsw 10μs120°对应的时间偏移就是Ts/3 ≈ 3.333μs240°对应约6.667μs。Simulink里最省事的方法是用三个Repeating Sequence模块。每个模块生成三角波载波周期为10μs三角波幅值在0到1之间。第二路和第三路模块的Phase参数分别设为3.333e-6和6.667e-6。这里踩坑提醒一下Repeating Sequence的Phase参数单位是秒不是角度也不是周期比例。很多初学者填0.333或120仿真出来的三路PWM完全没有相位差这是常见错误。还有一种方法是统一用一个PWM发生器模块部分版本支持相位偏移设置但我觉得三个Repeating Sequence加三个比较器的透明度和可控性更高尤其配合均流补偿时每路调制波可以独立调整方便观察每一相的波形。比较逻辑上Boost开关管导通时电感储能输入电流上升。我习惯用“调制波大于载波”作为导通条件。但具体逻辑取决于三角波的斜率和比较器配置最稳的办法是先跑一个开环仿真固定占空比0.4看电感电流波形是不是一个正常Boost的电流波形确认逻辑无误后再切闭环。2.4 电流电压采样与Simulink数组读的注意点采样环节是仿真里最容易出问题的地方尤其是第一次做三相系统的人。Simscape的电压电流是物理信号必须经过Voltage Measurement和Current Measurement模块转成Simulink信号才能送进PI控制器。三相电流分别测量我前面说了三路输出接Vector Concatenate组成向量再进控制器。为什么不用MuxMux合并出来的信号在后续处理里经常被当成一个复合信号使用Selector时索引方式选不对就会报“Simulink数组读”相关的错误。比如Selector模块的Index Option如果选了“Starting index and distance”而输入被当成标量或矩阵维度就对不上。正确操作是把三相电流用“Vector Concatenate”明确拼成3×1向量然后在Selector或MATLAB Function里用u(1)、u(2)、u(3)读取。还有一个细节如果信号源于Simscape物理端口必须在测量模块之后加一个“Rate Limiter”或至少一个“Memory”否则容易引入代数环。这个点放后面“发散排查”再细说。输出电压和负载电流的测量相对简单用Voltage Measurement和Current Measurement各接一个就够。测量信号建议在进入控制器前加一个滤波模拟真实采样的低通特性也避免高频毛刺干扰PI调节。3. 电流双闭环与均流环的实现PI参数到底怎么整定3.1 电压外环PI先定响应带宽再反推参数电压外环的任务是维持输出电压恒定它的输出是电流指令。设计时要明确电压外环的带宽必须比电流内环低一般取电流内环带宽的1/5到1/10。假设电流内环带宽fci为5kHz那么电压环带宽fcv大概在500Hz到1kHz。理论设计可以用典型II型系统或者对称最优法但仿真里我更喜欢“振荡边界法”。思路是先把电流内环调稳然后把电压环Kp从0.05开始逐步增大观察输出电压波形。当Kp大到输出电压出现明显振荡时记下这个临界值取它的0.6到0.8倍作为最终Kp然后再从0开始加大Ki消除稳态误差直到输出电压在负载阶跃后能稳定回到200V。电压环PI的输出是电流指令必须做限幅。限幅上限设为三相总输入电流允许值比如1.2倍的额定输入电流36A下限设为0或略大于0。如果不限幅启动瞬间电流指令会冲到极大值仿真直接发散或者电流尖峰大到把开关管模型都逼出数值溢出的毛病。这个限幅和Boost二极管不反向的机制类似都是给控制器一个安全的“活动空间”。3.2 电流内环PI决定动态响应的关键电流内环的被控对象是电感简化传递函数近似为1/(sLR)其中R是电感串联电阻和回路等效电阻。工程整定思路是让电流环闭环后近似成一阶惯性系统带宽fci取开关频率的1/10到1/20。100kHz开关频率下5kHz左右的电流环带宽是合理选择。理论公式可以推导但仿真中我习惯采用更省事的“开环测试法”把电压环断开给电流指令一个固定值然后拨动Kp观察电感电流阶跃响应。Kp越大响应越快但Kp太大会出现电流振荡甚至发散Kp太小响应慢而且有静差。调到一个“尽量快且无明显超调”的位置后再加大Ki消除稳态误差。在我给的那个参数工况下电流环Kp通常在0.2到2之间Ki在10到100之间。不同版本的Simulink、不同开关频率、不同电路阻抗数值会有浮动但整定方法是一样的。先Kp后Ki每调一次就观察波形这个习惯能帮你省下大量冤枉时间。还有一点三路电流可以共用一个电流PI因为电流指令相同被控对象电感参数在三相仿真是相同的也可以每相一个PI微调各自参数来模拟实际差异。仿真阶段我建议共用PI先把控制结构验证清楚再做参数差异化的扩展实验。3.3 均流环的加入方式均流环我通常采用“占空比微调”方式而不是加一个完整的二次电流环。具体做法是对三相电流求平均得到Ia_avg每相误差e_i Ia_i - Ia_avgi1,2,3误差经过一个比例或缓慢PI得到占空比修正量Δd_i最终三路调制波分别等于公共占空比D加各自修正量。这里必须注意均流补偿方向某相电流大于平均值时要让该相占空比往哪个方向调Boost占空比增大输入电流是上升的因为导通时间变长电感储能更多。所以当某相电流偏大应该减小该相占空比也就是Δd_i取负号。如果方向搞反均流环会变成“正反馈”电流差异越来越大直到某一相过流。均流环增益很小Kp_share通常在0.01到0.05之间。如果加PIKi取0.1到1就够了。输出限幅我习惯设±0.02到±0.05占空比幅值比例。这个限幅能防止均流补偿干扰主调压环。调试时先看三相平均电流是否重合如果一相偏高检查补偿方向补偿方向没问题就慢慢加大Kp_share直到三相电流曲线基本重合。还有均流误差信号上可以加一个低通滤波器截止频率500Hz到1kHz这样三相电流波形更平滑均流环输出也更稳定不容易和电流环的开关纹波互相激励。3.4 完整控制链路与离散化注意事项把上面的环节串起来完整控制链路是输出电压反馈vs电压给定200V进电压PI输出电流指令Iref限幅Iref送给电流内环PI输出公共占空比D三相电流分别求平均误差进均流PI得到Δd1、Δd2、Δd3最终调制波为m1 D Δd1 m2 D Δd2 m3 D Δd3三路调制波分别与三路相移120°的三角载波比较生成三路PWM送给三个开关管。仿真时有两个离散化注意点。第一控制周期和PWM载波周期最好保持一致我用100kHz开关频率时控制周期直接设1e-5秒和载波周期同步避免因为采样率不一致出现高频抖动。第二求解器选项里变步长首选ode23tb或ode15s最大步长设定为1e-6到1e-5量级。最大步长设太大高速开关管导通/关断瞬间的数值跳变无法被捕捉容易发散设太小仿真时间又太长所以要在误差容忍和仿真速度之间取平衡。如果模型里出现了代数环报错优先检查测量模块之后是否加了Memory或Rate Limiter。这三个环节在调试时经常互相牵连我通常把“测量—控制—PWM—主电路”画在一张A4纸上信号走向一目了然改线也方便。4. 仿真实操与避坑从初始化到发散的排雷过程4.1 模型初始化与启动策略三相交错并联Boost的启动过程是一个大坑源。直接冷启动电容初始电压为0时双闭环为了把输出电压从0拉到200V电压误差很大电流指令会瞬间冲到限幅值占空比也接近最大系统处于低压大电流冲击状态。这时候开关管模型承受的di/dt极高仿真步长稍大一点就会发散或者电流尖峰大到让人怀疑模型出错。我的做法是给输出电容设置初始电压为额定值比如190V或200V相当于模拟系统已经预充好电。这样启动初始电压误差很小电流指令不会冲顶控制器从接近稳态的点开始调节整个过程平滑得多。另一个初始化技巧是把电流环PI的初始状态设为负载电流对应的值额定30A附近控制器启动时就已经接近稳态工作点。这种“预充电初始化”在仿真里很实用也对应实际工程中的预充电路。实际系统不会让变换器在零电压下直接带载启动仿真这么做反而是更贴近物理实际的。4.2 常见报错排查仿真发散、开关逻辑反、载波相移错仿真发散是高频问题现象是某个物理量冲到1e15量级或者Simulink报“Input computation not converged”之类的错误。排查顺序要固定先看求解器变步长用ode23tb或ode15s最大步长调小一个数量级再看代数环电流电压测量后有没有加Memory最后看PI参数把Kp降一个数量级试试。这三板斧能解决八成以上的发散问题。第二高频问题是“三相电流差异大但波形都正常”。第一步检查载波相位三路Repeating Sequence的Phase是否填对了秒值120°对应3.333e-6240°对应6.667e-6。第二步检查均流环节是否真的生效把均流补偿量摆动一下看三相电流是否朝收敛方向走。第三步检查均流补偿方向。这三步按顺序走完电流不均衡问题基本能定位。第三是开关逻辑反向。Boost开关管导通时间越长输入电流越大输出越高。如果PWM比较逻辑反了整个闭环反馈会变成正反馈输出电压不断飞升PWM输出看起来却“正常”。这种问题不看波形很难发现我建议正式闭环前必须做开环验证固定D0.4跑200μs用“输入能量输出能量电感储能”的物理关系检查电流电压是否合理确认逻辑无误后再接闭环。4.3 常见问题速查表整理一个我在实际调试中用得最多的速查表直接照着排查问题现象可能原因排查与处理方式仿真发散变量冲到1e15求解器步长过大、存在代数环、PI参数过强改用ode23tb/ode15s最大步长设1e-6检查测量模块后是否缺MemoryKp降一个数量级三相电流差异明显且固定载波相位错、均流环未生效或方向反检查Repeating Sequence的Phase是否为3.333e-6/6.667e-6检查均流补偿方向加大Kp_sharePWM无输出或一直导通比较逻辑反向、调制波超出三角波幅值开环固定占空比验证逻辑调制波加限幅范围设为0.05~0.95启动电流过冲严重输出电容初始电压为0、电流指令限幅过大电容设置预充电电压电流指令限幅设为额定值1.2倍数组读取报错Selector索引模式不对、Mux和向量混用用Vector Concatenate组向量Selector用Index vector模式控制周期与PWM不同步产生高频抖动控制周期和载波周期不一致控制周期设为1e-5与开关周期同步这张表我贴过好几个版本的笔记核心思想是一样的先从“信号链”排查再到“参数”排查最后到“物理逻辑”排查绝大多数问题都能按这个顺序找到根因。4.4 从仿真到工程后续可以扩展的点仿真跑通并稳定后这个模型还有很多扩展空间。比如Simulink模型可以导出FMU做和其他仿真工具的联合仿真可以用External模式把控制算法跑到实物控制器上做快速控制原型验证也可以把控制逻辑改写成C Function或S-Function方便后续自动代码生成移植到DSP或MCU。这些工作都依赖前期模型结构清晰、信号命名规范如果一开始就是一团乱线后面接工具链时会非常痛苦。我自己的习惯是在搭建三相交错并联Boost模型时就把每一相的电感电流、载波、PWM都引到一个Scope里多路波形同时观察。调试时对照着看比盯着一个孤立波形更容易发现问题。比如三相电流曲线分离一眼就能看出均流没有生效载波相位错了三路PWM的跳变沿会重叠也一眼能看出来。我在实际项目中反复体会到一个道理三相交错并联Boost的仿真真正的难点压根不在拓扑本身而是在采样、移相、PI整定和初始化这些“看起来不起眼”的环节。拓扑公式一页纸就写完了但把每个环节都调到物理上自洽需要耐心和系统性排查。后面我再遇到类似项目一定会先画好信号链图、算好初始参数、做好开环验证然后再碰闭环顺序不能乱。这个思路放进也好、项目也罢都能帮你少走很多冤枉路。
返回列表