☰
Simulink复现SLSPC高阶PT-WPT无线电能传输系统全流程
2026/9/29 17:59:29 网站建设 项目流程

复现一区论文这件事,最磨人的往往不是理论看不懂,而是论文里的理想电路到了Simulink里就是跑不出对应的波形。这篇“基于SLSPC系列的高阶PT-WPT无线电能传输系统研究”,我刚拿到标题时也愣了几秒:SLSPC是什么拓扑,PT-WPT里的PT到底是哪种对称,高阶补偿到底高在哪。把这些概念捋清楚再动手建模,后面反而顺很多。这篇文章不聊虚的,就把我从等效电路推导到Simulink模型搭建、再从批量参数扫描到踩坑排查的完整流程拆给你看,希望能帮你少走弯路。

1. 复现一区论文之前,先把这两个概念吃透

1.1 SLSPC到底是一个什么补偿网络

无线电能传输(WPT)里,大家见得最多的就是SS补偿:原边一个串联补偿电容,副边一个串联补偿电容,结构简单,设计公式也漂亮。但SS拓扑有个老毛病——输出增益随负载变化明显,而且耦合系数一变就容易出现频率分裂,系统工作的稳定性比较差。LCC、LCL这些高阶拓扑就是为了解决这类问题被提出来的,用更多谐振元件换来了更丰富的设计自由度。

SLSPC从字母构成来看,可以理解成一种“串联-电感-串联-并联-电容”复合补偿结构的系列命名。按照高频补偿网络常见的命名习惯,S代表串联谐振元件,L代表电感,P代表并联谐振元件,C代表电容。所以“SLSPC系列”不只有单一拓扑,而是一类在原边和副边分别布置串联电感、串联电容、并联电容的组合,通过调整这些元件的连接位置和参数,让系统实现恒压输出、恒流输出、原边零相角(ZPA)工作等多种特性。

我复现时最大的感受是:不要试图死记硬背某个拓扑的元件位置,关键是会写输入阻抗表达式。把所有补偿电容、补偿电感、线圈自感、互感和负载等效电阻统一放到一个阻抗网络里,写出从逆变器输出端看进去的Z_in表达式。令它的虚部为零,就得到ZPA频率;令它的实部满足特定条件,就能得到负载无关的恒压或恒流输出。论文里的SLSPC之所以叫“系列”,本质就是在这个阻抗表达式上做文章。

1.2 PT-WPT里的“PT”在电路上意味着什么

PT-WPT最初的概念是从宇称-时间(Parity-Time)对称思想搬过来的。听起来很高深,但落到电路上其实可以转化成一个非常具体的设计条件:原边谐振网络和副边谐振网络参数对称,且系统工作在一个特定的临界耦合或特定频率下。在这个条件下,输入侧看到的阻抗对负载变化不敏感,输出电压或输出功率可以基本保持恒定。

可以这样理解:普通的SS补偿系统像两个人在传递一个球,一个人手稍微抖一下,接球的人就得跟着调整姿势;而PT对称工作点下的WPT系统则像是经过特殊调校的“跷跷板”,无论坐上去的人多重,两边摆动节奏都能自动保持一致。这个特性在动态负载场景下非常有用,比如电池充电过程中等效电阻一直在变,但系统不需要频繁调频调压,依然能维持稳定的能量传输。

在Simulink里复现PT-WPT,不需要真的去写量子力学方程。你需要做的,是让原副边线圈自感相等、补偿参数对称,并且把损耗(线圈ESR、开关管导通损耗、整流桥压降)控制在一定比例之下,使系统工作在PT对称区间。实际操作中,我会先计算系统的输入阻抗Z_in,扫频找到阻抗虚部为零且实部随负载变化较小的频率点,那个点基本就是PT工作点附近的频率。把工作频率定在这个点,后面的波形和效率曲线自然就会接近论文的结果。

1.3 复现目标:不只“跑通”,要能复现特性曲线

很多同学做论文复现,觉得模型能跑、示波器有波形就算成功,这个标准太低了。一区论文的仿真复现,核心是要复现出关键的特性曲线,比如输出随负载的变化曲线、效率随耦合系数的变化曲线、输入阻抗相角随频率的变化曲线。如果曲线趋势对不上,说明你的模型里某些损耗或某些寄生参数没有考虑进去。

我在开始之前会先列一个目标参数表,把论文里最重要的指标拆成可以验证的条目,后面每一步仿真都对着表格检查。这张表也决定了模型应该建到什么精细程度。如果论文重点在补偿网络设计,逆变桥的开关暂态细节可以简化;如果论文重点在效率优化,那么开关管损耗、线圈ESR、整流二极管压降都得建模进去,否则效率曲线怎么算都偏高。

2. Simulink建模全流程:从零搭一个能仿真的WPT系统

2.1 模块选型:别用普通Simulink元件搭电力电子电路

第一次搭WPT模型的人经常会用基础Simulink库里的传递函数和数学运算搭个“等效模型”,这么做控制算法验证可以,但无法看到真实的开关波形和谐振过程。正确做法是用Simscape Electrical里的Simscape Specialized Power Systems(SPS),也就是以前常说的SimPowerSystems。这里面有MOSFET、IGBT、二极管、互感耦合、RLC支路、Universal Bridge等元件,专门用于电力电子和电力系统时域仿真。

耦合线圈这块,我推荐直接用Mutual Inductance模块。它有原边自感、副边自感、互感三个参数,对应到论文里就是L_p、L_s和M。耦合系数k和互感M的关系是k=M/sqrt(L_p * L_s),建模时你给两个自感和一个k值,软件会自动把互感算出来。需要注意,Mutual Inductance模块的输出端口本身不带电流测量功能,如果需要观测线圈电流,要在支路上串联电流测量模块(Current Measurement),再送入Scope或To Workspace。

整流侧我一般用Universal Bridge选二极管模式,或者直接找Diode Bridge模块。整流桥后面的滤波电容大小会影响输出电压纹波。如果电容取得太小,纹波大,效率计算平均值时会有偏差;取得太大,启动瞬态会很长。我通常先用经验值100μF左右起步,再根据输出功率调整。

2.2 主电路搭建步骤与关键设置

搭建顺序我建议从负载侧往前推,这样边搭边能看到信号,避免一次连到最后发现信号线断在中间。具体步骤是这样:

第一步,新建模型后先从Simscape → Electrical → Specialized Power Systems里拖入Powergui模块,这是整个SPS仿真的基础,没有它模型跑不了。求解器类型我建议先选Discrete,把采样步长设为1e-7秒。高频WPT开关频率一般做到85kHz甚至更高,一个周期大约11.76微秒,每个周期有100个左右采样点才能看到比较平滑的波形,步长太粗波形会很难看。

第二步,搭副边。拖入副边补偿电感、补偿电容、副边线圈自感、互感模块的副边绕组、整流桥、滤波电容和负载电阻。为了让参数可批量扫描,这一侧的所有参数值都不能直接写数字,而是写成变量名,比如R_load、C_s、L_s等。这一点非常关键,否则后面要用parsim批量扫负载时,你就要一个一个改模型,效率极低。

第三步,搭原边。直流源(DC Voltage Source)接全桥逆变器,逆变器输出接原边补偿网络和原边线圈。逆变器的驱动信号用Pulse Generator或者用两个Pulse Generator分别给上管和下管,设置导通占空比接近50%,注意加入死区时间。死区时间太小容易直通,太大波形失真明显,对于85kHz系统我一般设100ns到200ns。

第四步,加测量。在原边逆变器输出端加电压和电流测量,在负载端也加电压和电流测量。所有测量信号经过To Workspace模块保存到MATLAB工作区,方便后处理计算功率和效率。不要只在Scope里用肉眼看波形,Scope里的数据很难直接做批量分析和绘图。

全部连好后,先跑一次看基本的谐振波形是否正常。正常情况是原边电流接近正弦,逆变器输出电压是方波,副边整流后电压平稳。如果电流一直是零或者噪声很大,大概率是补偿参数没对上或者互感同名端接反。

2.3 驱动信号与闭环控制预留接口

论文如果只做开环特性分析,Pulse Generator固定频率就够。如果论文涉及变频控制或者锁相环跟踪ZPA频率,那就不能再用固定脉冲了。我习惯用PLL的思路:测量原边线圈电流的过零点,再经过一个简单的PI调节器去调整压控振荡器频率,让逆变桥的输出频率始终跟踪电流谐振频率。

这个闭环结构用基础Simulink模块搭出来也不难。电流测量信号进Zero-Order Hold,过零检测可以用Relay模块或者直接用MATLAB Function判断符号变化,然后输出频率给Pulse Generator。如果你想把控制部分做得更规范,可以封装成子系统,或者用S-Function Builder写一个自定义PLL模块。这里有个经验:使用多个S-Function Builder时,每次对其中一个重新编译,另一个的生成代码有时会被意外覆盖,表现就是参数已经改了但仿真结果没变。解决方法是把每个S-Function Builder的模型文件名和输出目录分开,不要都留在默认的slprj目录里。

如果你后续要做更复杂的控制策略,比如恒流恒压切换、最大效率点跟踪,我建议在模型里预留两个接口:一个是原边输入电压控制量,一个是开关频率控制量。后面无论接PI控制器还是接状态观测器,直接把控制器输出接到这两个接口上就行,不用再动主电路。

3. 参数计算、批量扫描与论文曲线复现

3.1 谐振参数计算:先算准再进模型

高阶补偿网络的参数不能像SS补偿那样简单地让C等于1/(ω²L),因为多个谐振元件之间会互相影响。但作为起点,单支路谐振频率公式仍然好使。假设线圈自感L=100μH,系统谐振频率f=85kHz,那么角频率ω=2πf≈534krad/s。一个串联补偿电容要在这个频率谐振,需要满足ω²LC=1,所以C=1/(ω²L)。代进去算一下:ω²约等于2.85×10^11,乘以L=1×10^-4 H得到2.85×10^7,再取倒数,结果约等于35nF。

这是SS补偿的电容值。SLSPC这种高阶网络加入并联电容后,等效谐振频率会被拉低。一个常见的做法是先保留这个SS参数作为初值,再根据论文里的输入阻抗表达式用牛顿迭代或直接扫频调整。我的操作习惯是先在纸上写出Z_in的符号表达式,把未知的电容值设成变量,用MATLAB的solve函数求解Im(Z_in)=0这个方程,把找到的参数代入模型再微调。

为了验证理论参数,可以在Simulink里加一个Impedance Measurement模块。这个模块放在Powergui组件下面,它可以对指定端口做阻抗频率扫描,输出阻抗幅值和相角随频率变化的曲线。把理论计算的谐振频率和相角过零点跟仿真扫频结果对比,如果偏差在1%以内,说明参数没问题,后面就可以放心做负载扫描。

3.2 用parsim做负载扫描,复现恒压恒流曲线

论文里最常出现的曲线之一,就是负载从轻载到重载变化时,输出电压或输出电流的变化曲线。如果系统设计成恒压输出,这条曲线应该接近水平;如果是恒流输出,电流曲线接近水平。复现这条曲线最笨的方法是改一次负载跑一次仿真,但那样不仅慢,而且容易漏记录数据。正确做法是用Simulink的parsim并行仿真。

写批量仿真前,先在模型里把负载电阻参数设为变量R_load,再写一段MATLAB脚本构建仿真输入。每一组仿真都通过Simulink.SimulationInput来指定R_load的值。简单来说,这种并行仿真方法能自动把多组负载条件分给多个工作进程同时跑,十几组参数几分钟就能跑完。

数据后处理有个很容易踩的坑:整流后的电压电流包含大量纹波,不能直接用瞬时值算功率,否则效率可能超过100%。我一般先把仿真时间序列截掉前面一部分瞬态,只保留稳态段,然后用mean计算平均电压电流,用rms计算有效值。对于输出功率,用直流侧平均电压乘平均电流;对于输入功率,用直流源输出电压乘输入电流的平均值。如果输入侧是方波电流,还要先滤波再取平均,不然数值会跳得厉害。

把不同负载下的输出电压、输出电流、输入功率、输出功率、效率都算出来,用plot绘图,再跟论文里的曲线叠在一起对比。曲线趋势一致就说明主电路拓扑和参数基本对上了。

3.3 效率与ZPA曲线复现,注意数据后处理

效率曲线比增益曲线更难复现,因为仿真模型里默认的器件都是理想的,开关管没有导通压降,线圈没有铜损,磁芯没有铁损。如果论文效率在92%,而你直接拿理想模型仿真,效率可能算出98%以上,这时候就要给模型加损耗。

我复现效率曲线时的具体做法是:给线圈自感串联一个交流电阻,模拟铜损和磁芯损耗;给MOSFET设置导通电阻Ron;给整流二极管设置正向导通压降Vf。这几个参数不一定能从论文里直接读到,需要根据曲线反推。比如论文效率在满载时是90%,我先把理想模型效率调到95%,再逐步增加线圈ESR,直到满载效率降到90%左右。这个过程看起来像“凑数据”,但实际上是在反演论文里没有交代的寄生参数,属于合理的复现手段。

ZPA曲线的复现方法则是扫频率:保持负载和耦合系数不变,把开关频率从比如80kHz扫描到90kHz,记录输入阻抗的相角。相角为零的点就是ZPA频率点。用Simple方法扫频比较慢,更高效的方式是用Impedance Measurement模块直接对端口做频域扫描,一步到位,不用真的跑多个时域仿真。

论文里常说“在ZPA频率下,系统无功分量最小、效率最高”,你可以把仿真频率设在ZPA点和非ZPA点各跑一次,对比输入电流大小和整机效率。这个对比做出来,论文里那段理论分析就有直观支撑了。

4. 高频WPT仿真高频踩坑记录与排查技巧

4.1 仿真卡死、不收敛、波形畸变的排查速查表

高频谐振变换器的仿真问题和普通电路不太一样,很多问题看着是波形不对,根源在数值计算或者参数设置。我把这段时间遇到的高频问题整理成了表格,基本可以覆盖大多数复现场景:

现象可能原因解决办法
仿真速度极慢,几十分钟跑不完几个毫秒步长太小、连续求解器遇到强刚性系统改用离散求解器,步长先设1e-7s,增大再多周期后稳定
波形高频振荡、根本看不出谐振正弦波采样步长过大,谐波被折叠把离散步长缩小到开关周期的1/100以下
副边输出电压为零互感同名端接反或耦合系数设置错误检查Mutual Inductance端口极性,确认k值不等于0
输出电压远高于理论值整流桥后面滤波电容和负载电阻形成了峰值检波确认测量的是平均电压还是有效值,按论文定义对应
效率计算超过100%功率测量窗口包含了瞬态,或输入电流用了瞬时值截掉瞬态段,用平均功率法重新计算
输入阻抗相角扫不出来阻抗测量端口接在了开关桥而不是谐振网络前端把Impedance Measurement改接在逆变输出端,且断开开关桥影响

4.2 几个让我浪费过时间的细节

第一个教训是数值初始条件。LC谐振电路在没有初始储能时,启动瞬间会有很长的振荡建立过程,尤其是高阶网络,可能需要几百个开关周期才能进入稳态。我一开始没注意,每次都在前几个周期采样,结果效率曲线乱得没法看。后来固定做法是仿真时间至少跑0.02秒,也就是1700个85kHz周期,数据只取最后0.005秒,这样数据稳定多了。

第二个教训是Powergui的求解器设置。默认的连续求解器在带开关器件时容易选择变步长算法,而变步长算法在开关频繁切换时会自动把步长缩得很小,仿真速度极慢。后来我改用离散求解器,把采样时间设成1e-7s,开关切换时刻由算法自动处理,速度提升非常明显,波形也完全没有失真。

第三个教训是整流桥二极管模型的影响。默认二极管可能是理想模型,没有反向恢复和导通压降,效率会偏高。研究效率特性时一定要把二极管的Ron和Vf设置成实际器件数值,否则重载工况下仿真效率比论文高几个百分点,怎么调都下不来。

4.3 仿真结果可信度自检

复现不是画完一张图就结束,我习惯做三个自检。第一个是能量守恒自检:在稳态段,直流输入功率应该等于负载输出功率加上所有损耗功率,误差一般在2%以内。如果误差超过5%,说明有测量环节漏了或者仿真没有真正进入稳态。第二个是步长无关性自检:把仿真步长从1e-7改成5e-8,再跑一次关键工况,如果输出电压和效率变化很小,说明数值计算是收敛的;如果变化明显,说明系统存在数值刚性,需要检查是不是有容值或电感值过小的高频极点。第三个是理论对照:把ZPA频率、输出电压增益和公式计算结果做对比,偏差超过3%就要回头查参数,不要觉得“仿真嘛有点误差正常”。

做完这三个自检,你的模型才算真正具备和论文对话的资格。再往后无论你要对比不同SLSPC变体,还是修改负载指标重新设计参数,心里都有底。

最后再分享一个我自己的习惯:搭建WPT模型时,永远从最基础的SS补偿拓扑开始跑通,再逐步加高阶元件。高阶网络的问题往往不是某一条支路独立作用的结果,而是多个谐振元件互相耦合出来的。先把基础模型的波形、增益、效率全部验证一遍,每加一个元件就检查一次阻抗特性变化,这样出了问题你才能快速锁定是哪个元件引起的。这套方法不只适用于SLSPC,换成LCC-LCC、双边LCL这些补偿网络也完全通用。

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

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

立即咨询