MATLAB全桥或者半桥LLC谐振DC/DC变换器的设计与仿真 内含开环仿真、电压闭环仿真两个仿真文件 并含有电路参数仿真计算过程 支持最高版本2018b

最近在折腾快充电源项目发现个有意思的现象——LLC谐振变换器这玩意儿就像个会变魔术的电工,能在不同负载下自动切换工作模式。今天咱们就拿MATLAB 2018b开刀,手把手造个能抗400V输入/48V输出的半桥LLC变换器,从参数计算到闭环控制一锅端。

参数设计这档子事

先来算算谐振腔参数,咱直接上代码省口水:

Vin = 400;      % 输入电压
Vout = 48;      % 输出电压
Pout = 500;     % 输出功率
fs = 100e3;     % 开关频率
k = 4;          % 电感比(Lm/Lr)

% 计算变压器变比
n = Vin/(2*Vout);  % 半桥结构要除2

% 计算特征阻抗
Zo = (Vin^2)/(8*Pout) * (1 + 1/k); 

% 谐振频率计算
wr = 2*pi*fs;
Lr = Zo/(wr);
Cr = 1/(wr^2*Lr);
Lm = k*Lr;

disp(['Lr=',num2str(Lr*1e6),'uH  Cr=',num2str(Cr*1e9),'nF  Lm=',num2str(Lm*1e3),'mH'])

跑完这串代码你会得到类似Lr=24uH、Cr=36nF这样的参数。注意这里的电感比k值是个玄学参数,取值3~6之间比较稳妥,调大了容易进入容性区翻车。

MATLAB全桥或者半桥LLC谐振DC/DC变换器的设计与仿真 内含开环仿真、电压闭环仿真两个仿真文件 并含有电路参数仿真计算过程 支持最高版本2018b

开环仿真搭积木

Simulink里拖出半桥电路模块,重点配置三个地方:

  1. MOSFET的体二极管记得勾选,不然仿真炸给你看
  2. 谐振腔参数按计算结果填,变压器设置变比为n
  3. 负载先用电阻代替,后面闭环再换恒流源

给个驱动信号的骚操作:

carrier = sawtooth(2*pi*fs*t); 
driveA = (carrier > 0.5);  % 50%占空比方波
driveB = ~driveA;          % 互补驱动

跑起来后在Powergui里看波形,重点盯三个点:

  • 谐振电流是否正弦光滑(有毛刺得查死区时间)
  • 输出电压是否稳定在48V±10%内
  • 开关管ZVS是否实现(关断瞬间Vds是否降到0)

闭环控场时刻

开环稳不住?上电压环!在原有模型基础上:

  1. 负载换成动态变化的电流源
  2. 加入PID控制器,采样输出电压
  3. 用PWM生成模块替代固定占空比驱动

PID参数整定可以用这个暴力美学:

pidtune(pidstd(1), 'PID')  % 自动整定
% 或者手动调教
Kp = 0.05; 
Ki = 200;
Kd = 0;

实测时发现积分项太大容易振荡,建议先用传递函数模型验证后再上实物参数。闭环跑起来后做个负载阶跃测试,从半载切到满载时电压波动控制在2%以内就算合格。

踩坑备忘录

  • 遇到仿真不收敛?把开关管snubber电阻从1e6改成1e3试试
  • 输出电压稳不住?检查变压器漏感是否没被计入谐振电感
  • 效率曲线异常?看看是否进入容性工作区导致硬开关
  • 2018b版本特有的坑:别用太新的MOSFET模型,可能会报错

最后给个骚操作——在仿真里直接调用.m文件调参:

set_param('LLC_ClosedLoop/Lr', 'L', num2str(Lr_new))
sim('LLC_ClosedLoop')  % 热更新参数继续仿真

这么玩可以快速扫频找谐振点,比手动改参数快十条街。搞完这套流程,你的LLC仿真基本能扛住老板的灵魂拷问了,实测和仿真结果误差控制在10%内问题不大。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐