ARTICLE DETAIL

资讯详情

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

双有源桥DAB闭环仿真实战:移相控制与PI参数整定完整指南

双有源桥DAB闭环仿真实战:移相控制与PI参数整定完整指南 做双有源桥DAB闭环控制仿真这件事能卡住人的往往不是拓扑本身而是从“开环能跑”到“闭环能稳”之间的那段路。很多朋友Simulink模型搭出来了开环波形也对一加反馈不是发散就是振荡要么PI参数乱调半天电感电流还在啸叫输出纹波比开环还难看。这篇文章把我做高频隔离型DCDC变换器DAB闭环仿真时踩过的坑、调参顺序、模块选型和排查思路完整写出来。无论你是刚接触电力电子仿真还是已经能搭开环模型但卡在闭环上这篇文章都能帮你少走几周弯路。文中的参数、公式、模块搭建方式都是可以直接复现的照着做就能跑出能看的闭环波形。1. DAB闭环仿真的整体设计思路1.1 DAB拓扑到底在干什么DAB全称是双有源桥Dual Active Bridge核心结构是两个H桥中间夹一个高频变压器再加上一个承担能量传输的等效电感通常利用变压器漏感漏感不足时外串电感。原边H桥把直流电压变成高频方波副边H桥再把变压器副边的高频方波整流成直流。两个H桥的方波之间存在一个相位差这个相位差在文献里通常叫移相角归一化之后写成D。功率大小和方向都由D控制D为正时能量从原边流向副边D为负时能量反向流动。这是DAB最迷人的地方——不需要改变电路结构只靠改变移相角就能实现能量的双向流动。DAB为什么值得做因为它具备三个同时很难得的特性高频隔离、双向能量流动、软开关能力。高频隔离意味着变压器体积可以做得很小功率密度高双向意味着它天然适合储能、电动汽车V2G、光伏储能系统这类需要能量回馈的场景软开关ZVS意味着开关损耗低开关频率可以往上提。数据中心电源、车载OBC、直流微电网里DAB是当前非常主流的高频隔离DCDC变换器方案。1.2 为什么控制目标是移相角而不是占空比做过Buck、Boost这类非隔离变换器的朋友刚开始接触DAB时最容易犯的错误是沿用“占空比调压”的思路。DAB两个H桥的开关占空比始终是50%电感两端的电压波形是正负对称的方波调占空比并不能有效调整输出电压反而会破坏对称性。真正决定功率传输量的是两个方波之间的相位差。移相角D从0增大到0.5的过程中传输功率先增大后减小在D0.5时达到最大值。这个特性决定了闭环控制器的输出量必须是移相角D而且必须做限幅否则D越过0.5之后功率反而下降系统会进入正反馈区控制直接乱掉。这个设计思路带来一个连锁要求所有控制器设计都要围绕“D到输出电压”这个通道来做。D是控制量输出电压是被控量纹波电流和变压器电流是系统的状态量。模拟量采集、PI计算、限幅、归一化、延时映射最终都服务于同一个目标——生成一个正确的移相角D。理解这一点整个Simulink模型的骨架就清楚了。1.3 仿真方案选型开关模型、均值模型怎么选Simulink里实现DAB闭环仿真有两种主流路线一种是完整开关模型所有MOSFET/二极管都建出来PWM发生器按开关频率工作波形细节完全真实但仿真速度慢。另一种是平均模型用受控源替代开关网络速度快一个量级适合做控制器参数整定但看不到真实的开关纹波和软开关过程。我个人的建议是如果你想验证控制算法、调PI参数先用平均模型跑通逻辑再用完整开关模型做最终验证。如果时间有限只能搭一套那就直接做完整开关模型但仿真步长和解算器设置必须小心否则很容易发散。下文我以完整开关模型为主线因为标题里说的是高频隔离型DCDC变换器仿真实现这个级别的仿真通常需要展示真实开关波形。仿真设置里求解器建议用变步长ode23tb或ode15s最大步长限制在开关周期的二十分之一以下这样既能捕捉开关纹波又不会因为事件太多卡死。2. DAB关键参数设计与建模细节2.1 功率传输公式与参数反推搭模型之前一定要先把功率传输公式写清楚因为变压器变比、电感取值、开关频率这些参数全都是从这张关系网里互相约束出来的。DAB单移相调制下传输功率的近似表达式为P n·V1·V2·D·(1-D) / (2·fs·L)其中n是变压器原边对副边的变比V1是原边直流电压V2是副边直流电压D是归一化移相角0到1之间fs是开关频率L是等效电感漏感加外串电感。这个公式的前提是忽略变压器激磁电流、开关管压降和死区影响工程估算完全够用。从公式可以推出两个关键结论。第一在额定电压下功率随D变化是一个开口向下的抛物线D在0.25到0.3附近的效率和控制裕量通常比较理想。第二L的取值直接决定额定功率点对应的D。假如我目标做一个原边400V、副边100V、额定功率1000W、开关频率100kHz的DAB仿真模型变压器变比取n2L取50μH。在D0.146附近传输功率约为1000W验证如下P 2×400×100×0.146×(1-0.146) / (2×100000×50×10^-6) ≈ 997W这个D值落在0.25以下说明电感取值可以再优化。如果希望额定点落在D0.25左右可以把L降到30μH左右。实际调试时我会先根据公式算一个初值然后在开环仿真里扫一下D从0到0.5的输出功率曲线看仿真结果是否和公式吻合确认建模没有方向性错误再进闭环。2.2 高频变压器在Simulink里的建模要点Simulink的Simscape/SimPowerSystems库里有专门的变压器模块支持设置变比、激磁电感、漏感、饱和特性等参数。对于DAB仿真最重要的是把漏感参数设对因为漏感就是这个电路的能量传递元件。很多人在这一步遇到的问题是变压器模块的漏感是以标幺值或百分比形式给出的换算不直观。我的做法是直接在模型里用一个独立电感串联在变压器原边或副边数值直接填亨利变压器本身的漏感设置成很小的值甚至忽略。这样的好处是参数直观改L的值时不用重新计算变压器内部参数。变比设置也要特别注意极性方向。变压器原边同名端接了原边H桥的桥臂中点副边同名端必须按图接对否则副边方波和原边方波反相移相控制的所有逻辑都会出问题。检查方法很简单开环给一个极小的移相角D比如0.01看输出电压是否有一个微小的正增量。如果输出反而降低或者出现大的相位倒置那多半是变压器同名端或者副边全桥方向反了。激磁电感在DAB里不是能量传递的主角取值只要远大于等效漏感即可。工程上激磁电感通常取漏感的5到10倍以上。仿真模型里如果把激磁电感设成无穷大即忽略激磁电流闭环动态响应会略微偏离真实但趋势正确仿真速度更快。我做控制参数整定的时候会忽略激磁电流做最终验证时再把激磁电感加回来看稳态波形。2.3 开关管建模与死区时间处理完整开关模型里开关管我建议用MOSFET模块而不是理想开关。MOSFET模块自带反并联二极管天然能反映体二极管续流路径这对DAB非常重要因为DAB在移相控制下电感电流会有一部分时段流过反并二极管。如果理想开关不带二极管电流断续后波形会严重失真甚至导致仿真发散。死区时间必须加。原边H桥同一桥臂上下两个管子不能同时导通副边也一样。Simulink里可以用Transport Delay模块配合逻辑门实现带死区的互补PWM用原始PWM信号直接驱动上管原信号经过一个小的延迟后取反驱动下管。延迟时间就是死区时间。死区时间取开关周期的2%到5%比较合适。100kHz开关频率下死区取200ns到500ns。死区设太长会明显影响移相精度尤其是小移相角时副边桥的相位误差会吃掉相当一部分控制量。开环测试时如果发现D很小但输出爬不起来先查死区是不是设太大了。模块选型上还有一个小技巧为了加快仿真速度可以用“Breaker电阻”组合替代完整的MOSFET模型但这个方法需要手动考虑二极管续流路径不适合新手。我建议第一版老老实实用MOSFET模型跑通后再考虑优化速度。3. 闭环控制器设计从开环辨识到PI整定3.1 先摸清被控对象开环阶跃辨识DAB的“D到输出电压”通道不是线性系统但在稳态工作点附近做小信号扰动它呈现出明显的惯性特性可以近似成一阶惯性环节G(s) K / (τ·s 1)K是稳态增益单位是V/移相角D是无量纲0~1τ是时间常数由输出滤波电容、负载电阻和DAB本身的传输特性决定。这个近似很粗糙但用来整定PI参数足够实用。具体做法在开环模型里让系统先在某个额定工作点稳定运行比如D0.146输出电压100V。稳定后把D阶跃增大0.005记录输出电压从100V爬升到接近新稳态103V的曲线。从曲线上读两个数一个是K ≈ (103-100)/0.005 600另一个是输出从10%变化到90%的时间除以2.2估算τ。假设读出来τ约1ms。这个K和τ就是后续整定PI的依据。注意负载变化时K和τ都会变轻载时τ可能变大重载时K可能变小所以PI参数要留下足够的稳定裕量不能只在某一个负荷点调参。3.2 PI参数整定与限幅策略一阶惯性系统用PI控制非常合适因为PI的零点可以对消对象的大惯性极点。工程上我习惯先确定期望的闭环带宽ωc一般取开关频率的十分之一以下100kHz开关频率对应带宽不超过10kHz实际考虑到仿真步长和采样延迟做到1kHz左右已经不错。整定公式可以按零极点对消法τ零点 1/τKp τ / (K·τc)Ki Kp / τ其中τc是期望的闭环时间常数τc 1/ωc。带入上面辨识的K600τ0.001s期望ωc2π×1000 ≈ 6283rad/s则τc≈0.000159sKp 0.001 / (600×0.000159) ≈ 0.0105Ki 0.0105 / 0.001 10.5。这组参数可以作为一个初值。实际操作中我不建议直接一步到位。建议先把Ki设为0只加Kp从小到大调到系统出现轻微振荡再退回一个数量级附近然后逐步加Ki消除稳态误差。下面是我在这个仿真模型里的实际调节记录表供参考参数组KpKi响应表现10.0030响应很慢稳态有约2V误差20.010响应变快仍有约0.8V误差30.015稳态误差基本消除超调约5%可接受40.0330响应快但出现衰减振荡超调接近15%50.0215超调约8%调节时间约2ms最终采用限幅必须做。PI输出是移相角DD的有效范围是0到0.5超过0.5系统进入功率下降区电压出现无法收敛的情况。所以PI模块后面要接一个饱和模块上限0.48下限0。负极值对应反向功率这里先不做双向限到0可以避免启动时输出反激。饱和之后还要考虑积分器的抗饱和问题Simulink里用PID Controller模块自带的Anti-windup功能或者手动在积分环节加反馈钳位。我的做法是直接用带限幅输出的PID Controller模块内部设置好抗饱和模式调试省心。3.3 电压采样与反馈滤波闭环反馈信号是输出电压。高频开关模型里输出电压有较大纹波直接采瞬时值喂给PI会引入100kHz的开关噪声控制器输出会抖动甚至导致波形恶化。信号进入PI之前必须先处理。处理方案有三种。第一种是取平均值可以用平均值模块或者滑动平均滤波器第二种是低通滤波一阶低通的截止频率远低于开关频率比如取1kHz到5kHz第三种是采样保持在PWM载波峰值处采样等效于滤除开关频率纹波。Simulink里最省事的是用一个一阶低通传递函数模块时间常数取开关周期的5到10倍。100kHz开关频率下时间常数取50μs到100μs对1kHz左右的闭环带宽不会造成明显相位滞后同时能压掉大部分开关纹波。采样周期和离散化方法也要注意。如果后续要往DSP移植建议仿真里就使用离散PI采样频率和PWM频率同步比如每个开关周期采样一次。Simulink里用Discrete PID Controller设置Ts等于1/fs离散化方法选Trapezoidal双线性变换即可。连续PI做纯仿真因为计算更快但移植性差按你的目标选一个。我的建议是既然标题里强调“闭环控制仿真”就用离散PI表示你已经考虑了数字控制的实现路径。4. Simulink模型搭建实操核心环节实现4.1 主电路模型搭建清单以一个可复现的仿真案例为例整体参数如下表参数名称数值备注输入直流电压V1400V原边侧输出电压目标V2100V闭环控制目标变压器变比n2:1原边匝数/副边匝数开关频率fs100kHzPWM频率等效串联电感L50μH外置电感漏感输出滤波电容C200μF电解电容等效负载电阻R10Ω额定1000W死区时间300ns100kHz下约3%开关周期主电路在Simulink里用Simscape Electrical搭直流电压源接到原边H桥H桥输出接到变压器原边绕组串联电感变压器副边接到副边H桥副边H桥输出经过整流滤波电容和负载。我习惯把四个开关管画成上两管下两管的结构方便测桥臂中点电压。注意输出电压采样点必须在滤波电容两端不要在副边H桥输出端直接采那个点是高频方波不能做反馈。4.2 移相PWM发生器的实现思路这是整个模型里最容易搞错的地方。原边H桥的四路PWM很好办生成两路互补的50%占空比方波其中一路加死区延迟然后取反就得到了原边四路驱动。副边H桥也要四路互补PWM难点在于这四路PWM要和原边存在可控的相位差。相位差换算成延迟时间的关系是这样推的开关周期Ts1/fs移相角D对应相位差D·180°也就是半个周期的D倍。所以延迟时间 D·Ts/2 D/(2fs)。以100kHz为例Ts10μs半个周期5μsD0.1时副边方波应该比原边延迟0.1×50.5μs。Simulink里实现这个延迟最简单的方法是用Transport Delay模块。把原边PWM信号送入Transport Delay延迟时间由外部常数或PI输出经过增益模块换算得到。延迟后的信号再取反配合死区生成副边四个管的驱动。控制流就是PI输出D → 乘以增益1/(2fs) → Transport Delay的delay time端口。有一个坑必须提醒Transport Delay的延迟时间不能为负。双向DAB需要负移相角也就是副边方波超前于原边。处理方法是把延迟时间做取模运算mod(neg_delay Ts, Ts)把负延迟映射到周期内的一个正延迟逻辑上等价于超前。如果只做单向恒压上限0.48限幅已经保证了延迟时间恒为正不用考虑这个坑。为了调试方便我强烈建议在模型里保留一个手动开关可以在“外部给定移相角D_ref”和“PI输出D”之间切换。开环测试时用手动给定加闭环时再切过去这样能快速定位是控制问题还是主电路问题不用反复拆连线。4.3 闭环环路搭建与仿真参数配置闭环反馈回路的连接顺序输出电压Vout采样 → 一阶低通滤波/均值 → 与参考值Vref比较得到误差 → 进离散PI控制器 → 输出限幅得到D → 增益模块换算成延迟时间 → Transport Delay产生副边移相PWM。启动过程必须做软启动。直接给100V的阶跃参考启动瞬间电感电流会冲到好几倍额定值不仅波形难看还有概率触发限流甚至发散。我的做法是给参考电压加一个斜坡信号比如0到100V斜坡时间设为5ms让输出电压慢慢爬上去。这个技巧在类似实际电源控制里也很常见Simulink里用Ramp模块或Signal Builder实现都行。仿真参数设置建议如下求解器变步长ode23tb最大步长1e-610μs开关周期的二十分之一仿真时长0到20ms观察启动和稳态数据记录用Scope加数组记录或者用To Workspace输出到MATLAB里画图仿真速度太慢时可以先固定步长1e-6跑20ms大概需要几分钟。如果想快速验证控制逻辑可以把开关频率降低到10kHz参数等比调整这是加快调试的常用偷懒手法控制逻辑完全一致跑通后再回到100kHz精调。4.4 从波形判断系统是否正常工作仿真结束后重点关注三个波形输出电压Vout、原边H桥输出方波v_p、副边H桥输出方波v_s、电感电流i_L。正常稳态时v_p和v_s都是±400V或±100V×变比的高频方波两者之间有明显的相位差相位差大小对应PI输出的D值。电感电流在一个开关周期里通常呈现4段或6段折线这是DAB工作的典型特征。输出电压稳定在100V附近纹波峰峰值控制在2V以内就算正常。如果v_p和v_s相位差为0且输出电压没有抬升多半是移相PWM生成逻辑没生效。如果v_p和v_s相位差为180°D0.5输出电压极高但失控说明PI输出已经顶到上限查一下限幅和积分是否正常工作。如果电感电流单向偏置且很大而没有回零说明变压器饱和或者模型里变压器激磁电感参数不对优先回头检查变压器MEASUREMENT和内部参数。5. 常见问题与排查技巧实录5.1 仿真发散、振荡、浪涌三大类问题我做DAB闭环仿真时踩过的坑基本都能归到以下三类。第一类是仿真直接发散要么报错“Input voltages contain NaN or Inf”要么波形直接拉到天文数字。最常见的原因是变步长求解器在开关切换瞬间无法收敛。解决办法是把最大步长限制到开关周期的十分之一到二十分之一同时检查开关管和二极管的反向恢复参数是不是设了默认值导致过度理想。还有一个容易被忽略的点变压器的激磁电感初始电流如果设为0而启动时开关状态给的相位不对会在前几个周期产生极大的励磁涌流。给电感初始电流设一个接近稳态估算值的初值能显著缓解启动冲击。第二类是闭环振荡输出电压呈现持续等幅振荡频率通常在几kHz到几十kHz。原因一般是PI参数过大或者反馈低通滤波的相位滞后太深。排查时先看误差信号和PI输出的波形如果误差信号高频抖动说明采样滤波不够如果误差信号平滑但PI输出振荡说明增益太大按第3.2节的调参表退回一组再试。我的教训是很多人喜欢把Ki调得很大去追求零稳态误差但DAB的电压环有固有的传输延迟移相角的改变要等到下一个周期才生效Ki过大等效于引入一个额外积分相位滞后系统必定振荡。Ki宁可小一点让稳态误差落在1%以内也不能顶着振荡跑。第三类是启动浪涌过大。输出电容初始电压为0闭环一使能PI输出的D瞬间顶到限幅上限电感电流有一个巨大的冲击尖峰。软启动斜坡是这个问题最直接的解药斜坡时间从2ms到10ms都行。有些人喜欢用“输出限流环电压环”双环也可以解决但对这个仿真来说软件斜坡足够。如果斜坡结束瞬间仍有谐振可以在参考斜坡的终点加一个一阶低通让斜率圆滑。5.2 调试顺序方法论总结下来我最推荐的调试顺序是开环额定点验证 → 开环阶跃辨识 → 纯P调试 → 加I消除稳态误差 → 加软启动 → 压力测试。开环额定点验证是最重要的一步这一步做不好后面所有闭环工作都白费。开环时手动给定D0.146看输出电压是否接近100V电感电流是否与公式预估一致。如果这一步偏了10%以上别急着进闭环先回头修参数。开环都不准闭环一定调不稳。压力测试指改变负载或输入电压参考看系统是否还能稳住。我通常在仿真末尾加一个负载阶跃比如额定10Ω突降到5Ω观察输出电压跌落量和恢复时间。如果恢复时间在几毫秒内超调在10%以内这个闭环基本就算合格。5.3 常见问题速查表故障现象可能原因解决办法仿真一开始就发散求解器步长过大最大步长设为开关周期的1/20改用ode23tb电感电流启动瞬间爆炸输出电容预充为0导致PI瞬间顶满加斜坡软启动参考值5ms内爬升无相位差输出不升Transport Delay未接移相角检查延迟时间端口是否接入D/(2fs)输出有等幅振荡PI增益过大或滤波太强降KpKp先减半再微调Ki副边方波与期望相差180°变压器同名端接反交换副边绕组A、B端口或全桥驱动信号取反移相角已经到0.48但输出仍不足电感偏大或变比不够按功率公式反算L或n重设参数仿真速度极慢变步长在频繁开关事件间陷入小步先用低开关频率调逻辑再回到100kHz输出电压纹波过大输出滤波电容偏小增大C至500μF~1000μF或加均值采样实际调试时还有一个检查技巧把PI断开手动给定一个D逆时针旋转D的数值从小到大看输出电压是否单调上升。如果输出出现非单调区说明D已经超出0.5的有效控制区限幅设置就不应该超过0.48。我个人在实际操作中的体会是DAB闭环仿真能否顺利跑通80%的功夫在开环建模阶段。开环模型的参数设置、移相PWM生成逻辑、变压器同名端方向这些细节一旦对了闭环控制器本质上就是加一个采样、一个PI、一个限幅的事。很多人在闭环里反复折腾PI其实是开环模型的某个静态偏差一直在干扰控制器输出导致PI怎么调都别扭。做这个仿真耐心和系统性的调试顺序比盲调参数重要得多。
返回列表