☰
11kW车载充电机OBC仿真:单三相兼容两电平PFC+CLLC建模与调参
2026/10/22 11:45:28 网站建设 项目流程

做车载充电机仿真的同学,对“前级PFC加后级隔离DC-DC”这套架构应该都不陌生。我手上整理了一套11kW OBC的两电平PFC+CLLC仿真模型,源文件和参数脚本都跑得通。这套文件原本以三相输入为主,后来为了平时调试方便,我把它重构成了单相、三相兼容版,一个模式开关就能切,不用维护两套模型。项目适合正在做OBC预研、想复现PFC和CLLC控制逻辑,或者准备把仿真往控制代码迁移的朋友参考,参数脚本、模型结构和调参过程我尽量都讲细一点。

11kW这个功率段,前级用两电平PFC、后级用CLLC谐振变换器,算是最主流也最适合学习的组合之一。下面我会把各个部分的参数计算、控制思路、模型搭建技巧和遇到的坑全部拆开说,尤其会讲清楚“单三相兼容版”到底是怎么实现的,以及两种模式下PFC母线电压不同、后级CLLC如何跟着适配。

1. 项目背景与整体设计思路

1.1 为什么选两电平PFC+CLLC这套组合

OBC要做的就是把市电交流变成动力电池能够接受的直流电,整个过程有两个硬指标绕不开:一是输入侧的功率因数要高、谐波要小,二是输入和输出之间必须隔离。所以常见方案都是两级结构,前级AC-DC负责功率因数校正和母线稳压,后级隔离DC-DC负责电压变换和电气隔离。

两电平PFC是这类拓扑里最基础也最成熟的选择。单相输入时就是Boost PFC,三相输入时就是三相两电平PWM整流器。这两种本质上都是升压型,都能让输入电流和输入电压保持同相,单位功率因数不是问题。三相两电平PWM整流器说白了就是把不控整流的二极管桥换成六个IGBT或者MOSFET,再用dq旋转坐标系下的双闭环去控制输入电流。相比VIENNA结构,两电平少一个钳位支路,不用处理中点电位平衡,对刚接触OBC仿真的人友好很多。

后级选CLLC而不是LLC,是因为OBC的输出电压范围通常很宽,比如200V到500V甚至更高。CLLC相当于在变压器原边和副边各串了一个谐振电容,增益曲线比传统LLC更平缓,能在宽输入、宽输出条件下兼顾满载和轻载效率。更关键的是,CLLC天然支持能量双向流动,后续如果要做V2G或者充放电一体机,这套拓扑可以直接沿用,不用推翻重来。

1.2 11kW功率等级的需求拆解

11kW属于当前交流充电桩和车载充电机的主流功率段。这里要注意,11kW不是把5kW的参数简单乘个2就完事,每一级都要重新核算。

单相220V输入时,满载输入电流有效值大概50A,峰值接近70A,母线电容要扛住二倍工频纹波;三相380V输入时,线电压峰值为537V,PFC母线一般要抬升到650V以上,否则输入电流畸变会很明显。仿真阶段至少要把PF、THD、母线电压纹波、输出电压精度和启动过冲这几项指标都盯住。

整个项目我按三层来做:第一层算参数,用公式把PFC电感、母线电容、CLLC谐振槽初值算出来;第二层搭控制,把电压外环、电流内环、PFM频率环全部搭好;第三层加保护逻辑和工况测试,模拟满载启动、负载阶跃、输入电压跌落这些场景。三层都跑通了,这个仿真才算真正能用。

2. 两电平PFC设计与Simulink仿真实现

2.1 单相Boost PFC的电感电容怎么算

单相模式对应的拓扑是Boost PFC,控制上我直接用了平均电流模式,这也是工业上最常见的方式。输入侧一个正弦参考信号和乘法器组成电流指令,电压外环稳定母线电压,电流内环跟踪指令电流。

电感值按电流纹波来定,最恶劣点出现在输入电压峰值附近。公式可以写成:

L = Vin_rms × sqrt(2) × D/(fsw × ΔI)

其中D是峰值附近的占空比,ΔI是允许的峰值纹波电流,fsw是开关频率。以单相220V、11kW、开关频率100kHz来算,峰值电流大约70A,纹波系数取20%,算出来的电感大概在50μH到60μH之间。但实际我仿真里用的是220μH,为什么比计算值大这么多?因为控制带宽、轻载下的电流断续、以及启动冲击电流都要考虑,电感取大一点可以把轻载THD压得更低,代价是体积稍微大一点,但对仿真验证没影响。

母线电容按电压纹波参数来算,单相PFC的纹波频率是二倍工频,也就是100Hz。公式:

C = Pout/(2π × 100 × Vbus × ΔV)

母线400V、允许纹波±20V、满载11kW,算出来大概是2.2mF左右,实际取了2200μF。这个容量对仿真来说非常富余,硬件上一般会再做一次成本和体积的折中,但仿真里往大取的好处是母线动态更稳,不容易因为电压波动干扰后级CLLC的判断。

2.2 三相两电平PWM整流器和dq双闭环

三相模式下,PFC从单相Boost切换成三相两电平PWM整流器,输出母线电压目标也从400V抬到650V,输入侧三相380V/50Hz。这块控制我用的是经典的电压外环加dq电流内环,SVPWM调制。

三相PWM整流器有一个特别重要的特点:同样的电压纹波要求下,母线电容可以比单相小很多。因为三相整流输出的纹波基频是300Hz,不是100Hz。再按上面的公式估算:

C = Pout/(2π × 300 × 650 × 20)

算出来大约450μF,仿真中我取了470μF,比单相模式小了接近五倍。这也说明单三相兼容版的母线电容不能一刀切,必须在参数脚本里分别配置。

dq控制的核心是把三相电流通过Park变换变成直流量,d轴电流控制有功功率,q轴电流控制无功功率。单位功率因数模式下,q轴电流指令给0,d轴电流指令由电压外环给出。仿真中PLL锁定电网相位,pi/q变换和SVPWM全部自己搭,没有用现成的电机控制模块,这样方便后面C代码生成。

2.3 PFC模型搭建的实操要点

在Simulink里搭PFC,最麻烦的是微秒级开关动作和毫秒级系统响应同时存在。我建议使用离散求解器、固定步长1e-6秒,功率部分如果用Simscape Electrical器件模型,要留意导通电阻设太小会让数值收敛特别慢。如果只是验证控制逻辑,直接用理想开关加一个小导通电阻就行,跑得快,波形也不差。

另外一个容易被忽略的点是电流传感器的方向。单相PFC里电流采样方向反了,控制环会立即发散,Scope里看到的不是震荡就是越跑越大。我做模型的时候在传感器后面加了一个模拟的采样保持环节,同时把反馈信号的符号对齐到控制方向,这个问题就稳定了。

仿真中最好把关键信号通过To Workspace导出,别只放Scope。后面做THD分析和效率对比时,把数据回到MATLAB里处理会方便很多,尤其是输入电流波形,用powergui的FFT工具能直接看各次谐波含量。

3. CLLC谐振变换器的设计与仿真细节

3.1 谐振槽参数设计思路和增益特性

到了后级CLLC,很多同学第一反应是直接把谐振参数代进去就能跑,实际上要先做一次基波近似估算。CLLC的增益取决于输入电压、输出电压、变压器变比和负载,设计目标是让工作频率落在谐振频率附近,同时覆盖整体增益范围。

变压器变比先按输入输出电压的额定比来定。在单相模式下,母线400V、输出目标400V,变比可以取1左右。三相模式下母线变成650V,这时候如果还想让输出电压是400V,变比得相应变大,按650比400折算,大约1.6倍。也就是说,单三相兼容不是只切换PFC那么简单,后级谐振参数和变比必须跟着模式联动,否则CLLC根本稳不住电压。

谐振参数初值用品质因数Q来卡。一般来说Q取0.3到0.6,励磁电感Lm取主谐振电感Lr的4到6倍。以单相模式为例,满载等效电阻约16Ω,谐振频率取100kHz,Cr取150nF,对应的Lr大约17μH,Lm取80μH。这三个参数作为初值放进模型后,再从增益曲线上微调,最终确保输出电压范围都能被覆盖。

3.2 PFM闭环和软启动设计

CLLC的控制是用频率调制实现的,和PFC的PWM完全不同。频率升高,谐振网络增益下降,输出电压降低,所以从控制角度来说,被控对象是反向增益,PI调节器要用负增益,或者把误差取反再进PI。我在模型里用的就是负Kp,频率指令直接由PI输出叠加到基准频率上。

频率范围必须限幅,一般放在0.7倍谐振频率到1.3倍谐振频率之间。如果频率低于谐振点太远,变换器可能跑到容性区,开关管会硬开关,轻则发热严重,重则炸管,仿真里表现为电流急剧上升然后报错。

CLLC启动瞬间的冲击电流是另一个大坑。第一次跑仿真时,我没有做软启动,结果谐振电容充电瞬间电流达到稳态的好几倍。解决办法是在启动时把频率给定到1.5倍谐振频率以上,再通过斜坡把频率慢慢降到工作点,频率从高往低走,谐振阻抗先大后小,电流就压住了。模型里可以用一个斜坡函数接限幅器实现,简单有效。

3.3 变压器、死区时间和同步整流怎么处理

仿真中的变压器我用的是漏感外置模型,主谐振电感Lr在变压器外部加,励磁电感Lm并联在原边,这样比直接埋进变压器模型更容易观察谐振电流波形,也方便调参。

死区时间按开关周期的1%设置,100kHz对应100纳秒。CLLC对死区相对宽容,但死区太大或者太小会直接影响波形对称度。仿真里可以用离散变步长去试,但最终还是要回到固定步长来看趋势。

同步整流在仿真里实现很简单,副边用四个MOSFET代替二极管,驱动信号和原边同一频率,且整流侧驱动信号相对原边驱动做适当的相移补偿。单相模式与三相模式下的副边波形差异不大,重点在于整流MOS管要保留体二极管或者并联二极管,否则死区期间电流没有续流回路,仿真会直接发散。

4. 单三相兼容版的改造过程

4.1 为什么要把单相和三相放在一套模型里

这套模型最早只有三相版本,调试时发现很多场景其实只关心单相OBC的逻辑,比如单相220V家充场景、PFC电流波形、CLLC轻载性能。于是我把原来的三相模型改成单相版,但又不舍得丢掉三相功能,最后干脆做成了单三相兼容版。

兼容版的模型组织方式和直觉不太一样。我最初尝试用Manual Switch直接切换单相PFC和三相PFC两个子系统,结果模型编译时所有分支都会参与,控制信号采样周期不同,经常出现代数环和状态维度报错。后来换了一种更稳妥的思路:把单相Boost PFC和三相两电平PWM整流器做成两个完全独立的子系统,参数脚本通过模式变量OBC_Mode决定哪个子系统生效,同时一并把母线电压参考、母线电容、CLLC变比这些参数全部联动设置。这样切换时不会出现状态变量维度突变,仿真稳定性好很多。

4.2 模式切换的实现细节和参数联动

参数脚本开头有一段模式选择,1代表单相220V,2代表三相380V。切换方式可以直接改脚本里的常量,也可以在MATLAB命令窗口用assignin动态赋值。对应的参数脚本结构如下:

%% 模式选择 OBC_Mode = 1; % 1=单相220Vac 2=三相380Vac %% 系统级参数 Pout = 11000; Vout_ref = 400; fsw_pfc = 100e3; fsw_cllc = 100e3; %% 按模式自动配置PFC参数 if OBC_Mode == 1 Vbus_ref = 400; L_pfc = 220e-6; C_bus = 2200e-6; n_cllc = 1.0; Cr_cllc = 150e-9; Lr_cllc = 17e-6; Lm_cllc = 80e-6; else Vbus_ref = 650; L_pfc = 500e-6; C_bus = 470e-6; n_cllc = 1.6; Cr_cllc = 180e-9; Lr_cllc = 20e-6; Lm_cllc = 90e-6; end

从这段脚本可以看得很清楚:单三相兼容不只是换一个电源输入,CLLC的变比、谐振电容、谐振电感和母线电容全部要跟着变。三相模式下变比1.6是因为输入母线从400V变成了650V,如果还保持1的变比,输出电压精度和增益范围都会出问题。

这里有一个工程上容易误解的点:仿真里可以通过参数脚本自动切换CLLC变比,但实际硬件不能这样“自动换变压器”。兼容仿真更多是为了验证拓扑和控制逻辑的可行性,真实产品通常会做成两套硬件方案,或者前级PFC输出统一到一个接近的电压等级,再靠后级宽范围设计去覆盖。仿真阶段很少被硬件约束卡脖子,但我们心里要清楚哪个参数是“仿真特权”,哪个是“实物可落地”。

4.3 两种模式跑出来的波形差异

单相模式满载11kW时,PFC输入电流会呈现标准的正弦包络,母线电压400V稳定,但一定有二倍工频纹波,Scope里能看到明显的波动,在硬件上这就是需要后级CLLC去抑制的低频纹波来源。三相模式满载时,母线650V的纹波很小,因为纹波频率变成了300Hz,而且幅值本身也低很多。

后端CLLC输出在两种模式下都能稳定在400V,满载电流27.5A。用FFT工具看输入电流THD,三相模式明显优于单相模式,大约在5%以内,单相模式一般6%到8%波动,关键看电感取值和控制带宽。如果发现THD偏高,先看电流传感器采样噪声和电感电流纹波是否过大,这两个因素占了多半。

为了直观对比,我习惯把单三相两种模式的仿真结果各导出一组数据,放到同一个后处理脚本里画图。这样调PFC参数时能一眼看到哪种模式下指标变差了,不用反复切换Scope截图。

5. 源代码使用说明与调参经验

5.1 模型结构和运行步骤

仿真文件的结构分成三层,拿到手后建议按下面的树状图快速定位:

OBC_11kW_Sim/ ├── 01_Params_11kW.m ├── 02_Run_Model.m ├── OBC_11kW_SingleThree.slx │ ├── AC Source (单相/三相切换) │ ├── PFC_Subsystem │ │ ├── 单相Boost PFC │ │ ├── 三相两电平PWM整流器 │ │ └── PFC控制器 │ ├── DC_Bus_Capacitor │ ├── CLLC_Converter_Subsystem │ │ ├── Full_Bridge_Inverter │ │ ├── Resonant_Tank (Lr/Cr/Lm) │ │ ├── Full_Bridge_Rectifier │ │ ├── Output_Filter │ │ └── PFM_Controller │ ├── 保护与软启动逻辑 │ └── Scopes / To Workspace └── README.md

运行顺序是固定的:先打开01_Params_11kW.m设置OBC_Mode并运行,再打开模型,确认求解器是固定步长1e-6、离散模式,最后运行仿真。不要先跑仿真再跑去初始化参数,工作区变量缺失的话模型里会报一长串错误。

02_Run_Model.m脚本里封装了自动把参数加载到工作区、初始化模型、开始仿真、再把Scope数据导出到变量中的流程,适合做批量参数扫描。比如想对比不同Lr值对CLLC增益的影响,直接在脚本里套个for循环改Lr_cllc,每次跑完把输出数据存到不同变量里,最后统一画图。

5.2 高频踩坑点和排查方案

调这套仿真的时候,我记录了几类特别典型的报错和现象,很多人第一次跑大概率会碰到。这里直接用表格整理出来,照着排查会快很多。

现象可能原因排查解决办法
母线电压发散或振荡PFC电压外环带宽太高、抗饱和缺失电压外环带宽控制在10到20Hz,加抗饱和积分
电流波形畸变严重电感偏小或电流内环增益过高增大电感或者降低电流环Kp/Ki
CLLC输出电压稳不住频率偏移谐振点太远、变比错误检查频率限幅范围,核对变比和母线电压是否匹配
启动瞬间电流巨大没有软启动或者母线电容初始电压设成目标值CLLC先从高频斜坡降频启动,母线电容初始电压设为0
切换到三相模式报状态维度错误手动切换子系统导致状态数不一致改成参数脚本联动,用独立子系统而非Manual Switch
仿真速度极慢变步长求解器加上硬开关动作改成离散求解器,固定步长1e-6,功率管用理想开关模型

最后两条尤其值得强调。CLLC这类谐振变换器对步长敏感,用变步长求解器时开关动作频繁触发步长收缩,仿真时间轻松慢三倍以上,固定步长虽然看起来“笨”,但反而稳定高效。还有代数环问题,只要控制环路里存在采样直通,Simulink就会爆一长串红色错误,最直接的解决办法是在电流采样后插一个单位延迟,相当于把控制周期和功率周期隔离。

5.3 PI参数整定和后续扩展方向

根据实测,这套模型的PI参数可以从下面这组初值开始微调。电压环尽量慢,电流环可以快一个数量级,CLLC的频率环要特别注意负号。

环路KpKi说明
单相PFC电压外环0.025带宽10Hz左右
单相PFC电流内环0.5100带宽5kHz左右
三相PFC电流内环5.0500带宽3kHz左右
三相PFC电压外环0.058带宽15Hz左右
CLLC频率环-200-2000输出直接作为频率指令偏差

CLLC频率环的Kp是负值这件事,初次接触的人很容易忽略。输出电压偏低了,本来应该降低频率把增益抬起来,但PI输出的正误差叠加到基准频率上反而会继续拉高频率,电压更低,形成正反馈发散。所以要么Kp取负,要么在误差通道上取反,效果是一样的。

后续扩展方向也比较明确。想摸效率的话,可以给开关管加入导通电阻和开关损耗模型,对比不同开关频率下的损耗分布;想控制层落地,可以把PFC和CLLC控制器用离散状态机写得更完整,然后导成C代码,为后续嵌入式平台做准备。CLLC如果想支持双向工作,把副边整流桥从不可控桥改成全控桥,再在控制里增加反向模式的状态切换,拓扑上本身不需要大幅改动。

最后说点个人体会。仿真做到后面你会发现,模型能跑只是第一步,能把启动过程搞软、能把保护逻辑塞进去、能在不同模式之间切换而不出数值问题,才是真正费时间的部分。这套11kW两电平PFC+CLLC的单三相兼容模型就是我在反复改结构和调参数中一点一点磨出来的,坑远不止上面列出的这些。如果你正准备复现,建议先拿单相模式把闭环跑通,再切三相,这样一旦发散也能快速判断问题到底在PFC还是CLLC,不要一上来就挑战最高配置。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询