资讯动态

基于SRF算法的并联有源滤波器Simulink仿真:谐波治理与无功补偿实践

发布时间:2026/10/16 5:55:11 来源:尧图企业网站定制
做电能质量治理的工程师最头疼的波形大概就是那种电流“尖峰叠毛刺”的样子。明明是50Hz的工频系统谐波却让电流总谐波畸变率冲到百分之二三十功率因数表读数跟着掉到0.8上下。这种现场十有八九是变频器、整流电源、充电桩这类非线性负载造成的电流不是正弦波变压器和电缆却要硬扛于是设备发热、保护误动、补偿电容鼓包这些问题开始轮番冒头。这几年的主流治理思路是给负载旁的电网并一台并联有源滤波器Shunt Active Power FilterSAPF实时检测电流畸变并注入反向补偿电流把谐波和无功一起清掉。而检测谐波最成熟的工程算法就是本文要说的SRFSynchronous Reference Frame同步旋转坐标系算法。这篇文章围绕“采用SRF算法的并联有源滤波器Simulink仿真”这个项目展开我会把检测原理、控制策略、Simulink搭建步骤、参数计算、波形分析以及调试中常见的坑一条条拆开讲。准备做毕业设计或者刚接触APF的工程师照着这套流程能快速跑通一个能出THD数据的仿真模型只想了解原理的也可以只看前两章。内容涉及Clarke变换、Park变换、低通滤波器、滞环电流控制、直流电压控制每一块我都会用实际的操作逻辑串起来。另外很多入门文档讲APF仿真只讲“滤谐波”不提无功补偿。我会顺便说明白SRF算法里q轴电流直接对应无功补谐波的同时把q轴控制住无功也就一起降下来了不需要额外再挂电容柜。这个点理解到位整个仿真项目的价值就体现出来了。1. 方案选型为什么并联APF和SRF算法是主流1.1 谐波和无功从哪里来又该怎么治不控整流桥和相控整流装置是工业现场谐波大户。三相不控整流带平波电感时网侧电流是带导通死区的脉冲波形用傅里叶拆开看5、7、11、13次这些特征次谐波占大头实测THD很容易超过25%。谐波电流在系统阻抗上形成电压畸变导致并联电容柜里的电容器被谐波放大而鼓包也造成变压器绕组和电缆导体附加损耗。与此同时整流装置换相的过程让电流相位滞后位移功率因数并不理想再叠加谐波畸变因数总功率因数经常只有0.8左右。无源滤波器LC调谐支路确实能滤特定次谐波但它只能针对固定频率电网阻抗一变就可能谐振而且不能动态跟随负载波动。并联有源滤波器是主动器件——它测量负载电流里“不该有的分量”再自己造一路相反的电流并到电网里去抵消等于电网看到的是一个趋于纯正弦的等效负载。谐波和无功是同一个设备产生的现场要是只投电容、只滤某一次谐波往往治标不治本APF能同时在d、q两个轴做闭环这是它最大的价值。提示谐波和无功虽然在dq坐标系下是两种分量但APF只要对d轴和q轴分别控制就能同时把畸变和无功电流一起抵消。这也是SRF算法在工程里应用如此广泛的原因。1.2 SRF检测原理坐在基波上看电流要抵消谐波首先得知道谐波长什么样。最直接的思路是FFT逐次分解但FFT需要一个完整周期的数据动态响应慢一拍模拟带通滤波器的中心频率又会随电网频率漂移而失准。SRF的办法比这两者都聪明它把三相机电流搬到和基波同步旋转的坐标系里再滤出基波分量。具体来说把ia、ib、ic做个Clarke变换变成αβ静止坐标系下的iα、iβ再用锁相环跟踪到的电网相位θ做Park变换得到dq旋转坐标系下的id和iq。在这个同步旋转的坐标里观察电流基波正序有功分量是一个恒定的直流d轴基波无功是一个恒定的直流q轴谐波则还是交流分量围绕零值来回波动。打个比方你坐在一辆和基波同速前进的车上观察路上的行人基波就像路边静止的树谐波像在路上来回跑的人。人相对你是有速度的这时候只要用一个低通滤波器把“静止的树”滤出来剩下的“来回跑的人”就是要补偿的畸变成分。这个思路实现成本低、延时小而且d轴和q轴天然分离了有功与无功所以SRF同时处理谐波和无功特别顺手。1.3 整个系统由哪几部分构成一个完整的并联APF仿真模型从拓扑上讲分三大块主电路、检测与控制、驱动与采样。主电路是三相IGBT桥式逆变器交流侧通过滤波电感L并联在公共连接点PCC上直流侧挂一个支撑大电容。检测部分采集PCC电压和负载电流控制部分用PLL锁相、SRF模块算补偿指令、电流控制器生成PWM脉冲。驱动信号进入IGBT桥让桥臂按指令电流输出补偿电流。需要理解的是APF的能量流动它并不是从头到尾只输出电能而是通过直流电容做能量缓冲。IGBT开关来回切换电容像蓄水池一样吞吐能量电压环保证电容电压维持在参考值附近缺了就从电网吸一点有功多了就把能量送回电网。这套机制决定了APF既能补偿谐波也能补偿无功而不用像静止无功补偿器那样装一堆电容器或电抗器。并联结构的好处是检修方便、不影响负载供电、扩容也好加机这也是它成为市场主流的重要原因。模型搭建好后用户能直接看到三相电流波形从尖峰变成正弦THD从百分之二三十降到个位数以下同时电网侧电压电流相位差接近零。仿真结果和生产现场看到的现象是吻合的这也是这个仿真项目的直观意义。2. SRF算法核心模块拆解锁相、变换、指令合成与电流跟踪2.1 锁相环整个坐标变换的基准SRF一切计算都依赖坐标角度θ这个角度不是臆造的是从电网电压实时提取的。电网电压过零点和相位一旦变化θ必须跟着变否则d、q轴会“偏”检测出来的基波分量混入谐波补偿方向也会歪。工程上普遍用三相锁相环把三相电压变换到dq坐标系让q轴电压闭环收敛到0这样d轴就和a相电压对齐PI输出加上额定角频率后积分得到实时相位。在Simulink里可以直接使用Simscape/Simulink控件库里的Three-Phase PLL模块它会输出wt和sin/cos值供Park变换使用。我习惯把它的PI参数调到带宽30~50Hz太高会放大电网电压畸变和噪声的影响太低则相位跟踪慢。电压畸变严重的现场建议在PLL前加一个简单的低通或只取基波正序电压否则相位本身就会抖动后面SRF模块再准也白搭。实际调试时可以给PLL输出单独加一路Scope跟A相电压波形叠在一起看。锁定时PLL输出的角度时刻对应A相电压过零翻转点如果角度与电压波形的对应关系肉眼可见地漂移那就是还没锁住优先调PI再往后面查。2.2 Clarke/Park变换与低通滤波器的取舍变换公式已经是教科书式的内容架起来并不难。常用的幅值不变形式是iα (2/3)(ia - ib/2 - ic/2)iβ (2/3)(√3/2 ib - √3/2 ic)。Park变换再用θ转到dqid iα cosθ iβ sinθiq -iα sinθ iβ cosθ。在Simulink里用几个Gain和Sum模块就能搭或者把公式写进MATLAB Function模块读起来更干净。搭完后最需要注意的不是变换本身而是低通滤波器。这里的低通用来分离dq轴上的直流分量和纹波分量。工程上我优先用一阶或二阶低通截止频率定在20~40Hz。30Hz时时间常数约5.3ms对50Hz基波来说能把基波当成直流看但要注意截止频率越低滤波越干净动态响应也越慢。如果负载突变检测到的谐波指令会滞后几个毫秒补偿波形出现短暂缺口。所以不要一味求“干净”。有些进阶方案用自适应陷波器或者把dq轴上的50Hz、100Hz分量单独陷掉再用一个小惯性环节兼顾动态和滤波。入门仿真先用LPF足够等调试时发现动态性能不足再换陷波方案也不迟。2.3 补偿指令怎么合成d轴、q轴与电压环检测到谐波分量后补偿指令的合成分两步。以d轴为例负载电流的d轴瞬时值是id经过低通滤波后得到基波有功分量id_lpf谐波有功部分就是id - id_lpf。补偿时要把这部分反相输出于是谐波补偿指令大约是-(id - id_lpf)。直流电压环的PI输出要叠加进来直流电压若低于750V参考值PI就输出一个正分量表示APF要从电网吸收有功给电容充电若高于参考值则输出负分量。所以d轴最终指令大致是“电压环输出 - (id - id_lpf)”。q轴就简单了如果目标是“降低无功”把整个iq都拿来抵消指令取-iq即可如果只想滤谐波、不想动基波无功则只取-(iq - iq_lpf)。这里方向符号很容易错错了补偿就变成给系统“添乱”原来畸形的电流会更畸形。实际调试时建议先在开环状态给一个已知方向的直流指令验证主电路极性再接入闭环。我见过不少人栽在这个符号上实测波形一塌糊涂还以为是LPF参数选错其实只是方向反了。2.4 电流跟踪滞环和载波两条路线怎么选补偿指令是三相电流的参考波形接下来要控制APF桥臂输出真实电流去跟踪它。入门仿真我用滞环控制把“指令电流 - 实际补偿电流”的误差送入滞环比较器误差超出上带就开上管跌破下带就关管误差一直被关在滞环带内。优点是算法只有一行动态响应极快管子在电流“跑偏”时立即动作缺点是开关频率不固定器件开关损耗和输出滤波器设计都跟着麻烦。滞环带设得越窄追踪精度越高开关频率也越高一般起始参数取额定电流幅值的2%~5%。这个参数模型里取0.2A左右。如果要固定开关频率的工程版就换成PI调节器加三角载波PWM电流误差进PI输出调制波与三角波比较产生PWM。PI参数需要按电流环带宽整定Kp大概取几到十几Ki取几百到几千调试时观察实际电流和指令之间的跟踪误差。两种方案在Simulink里都能跑但滞环逻辑少、可读性强适合刚接触APF的人逐模块验证。后面想做SVPWM或者重复控制也是在“电流跟踪”这个环节做替换前端的SRF检测模块不用变。3. Simulink仿真搭建全程从主电路到FFT分析3.1 主电路建模电源、整流负载与APF桥新建模型后先把powergui拖进去。仿真算法我习惯选变步长求解器ode23tb最大步长1e-5这样可以兼顾IGBT高频开关和仿真速度。若模型太慢可以把步长放到2e-5但波形毛刺会明显一些。主电路用Simscape Electrical里的模块下面这几个是核心电源Three-Phase Source线电压有效值380V频率50Hz内阻按0.01Ω、电感0.1mH设置非线性负载Universal Bridge选择Diode类型直流侧接R20Ω、L5mH的串联负载这是典型的不控整流谐波源APF主电路另一只Universal Bridge选择IGBT/Diodes交流输出端串联三只电感L1.5mH后并接到PCC直流侧用一个电容C2200μF跨接在IGBT桥直流两端ESR设0.01Ω让直流电压有释放通道。负载和APF都并联在母线上APF桥直流电容初始电压可以设成400V或者直接设750V否则仿真启动会经历较长的预充电过程。第一次跑模型时可以先不使能APF只观察整流负载的电流波形确认谐波源工作正常再合入APF。这样出了问题能快速定位是主电路还是控制部分。3.2 控制回路搭建模块连接顺序与观察点控制部分我按下面顺序加模块每一步都用示波器观察不要一口气全部接完再一起看否则波形乱了根本分不清是哪一环的锅。PLL拖入Three-Phase PLL模块输入三相母线电压输出wt和sin/cos值角度信号送给Park变换模块。如果用自带PLL模块更省事需要自己搭的场合也就是一个q轴电压PI闭环。坐标变换负载三相电流ia、ib、ic用Gain和Sum实现Clarke变换再结合cosθ、sinθ实现Park变换得到id和iq。这步如果嫌Gain太多写成MATLAB Function函数最清楚。低通id、iq分别经过Transfer Fcn分母写成[0.0053 1]对应30Hz截止输出就是基波d、q分量。指令合成用Sum模块把id减去id_lpf得到谐波d分量再减掉电压环输出q轴取负值作为无功补偿指令两个指令一起送进电流控制器。滞环电流控制每相补偿电流实测值与指令求差接入Relay模块开通点0.2A、关断点-0.2A输出逻辑电平1/0这一路作为上桥臂脉冲另一路用1减去它作为下桥臂脉冲六个脉冲一起进Universal Bridge的G输入端。电压外环直流电压Udc与750V参考值求差过PI调节器输出作为d轴指令的一部分。接完以后从电源侧观察电网电流波形。如果相位正确原本畸变的电流会逐渐变正弦如果波形更差多半是方向或者PLL相位没对先从第2步开始排查。千万别跳过开环验证直接全闭环那个排查成本会翻好几倍。3.3 关键参数计算直流电压、电感、电容与PI取值先给一组可直接复现的基准参数参数数值说明线电压380V / 50Hz三相系统整流负载R20ΩL5mH不控整流THD约26%APF电感1.5mH电阻0.05Ω交流滤波/储能电感直流电容2200μF直流支撑直流电压参考750V高于线电压峰值滞环带宽0.2A决定开关频率电压环PIKp0.4Ki15启动参数直流电压为什么取750V最低要保证IGBT桥能输出补偿电流直流侧电压必须高于交流侧线电压峰值√2×380约等于537V留出余量后取700~800V。太低补偿电流会在电压峰值附近削顶太高开关损耗和电容压力都变大。电感是补偿电流的“油门”取值大则电流纹波小但响应慢小则响应快但开关纹波大。常见工程估算按允许纹波电流ΔI和开关频率来L约等于Udc除以4倍开关频率乘纹波电流。代入750V、10kHz和1A纹波大概18mH但仿真里补偿电流不大1.5mH这个数量级就能观察到较好的跟踪效果。我更推荐以纹波波形为准跑完看补偿电流毛刺毛刺大就加大电感响应慢就减小电感。电容和电感类似作用在于支撑直流电压。工程经验是额定补偿电流每安培对应几百到几千微法这个模型10A级用2200μF能保证直流电压波动在±5%以内。电压环PI从Kp0.4、Ki15开始观察Udc波形有没有振荡有振荡就成对降低Kp和Ki再细调。3.4 跑仿真看波形THD与无功怎么分析模型里加一个三相电流测量模块把电网侧电流、负载电流送进Scope。运行0.1s前0.01s是预充电和暂态后面看稳态波形。补偿前在Scope里看电网电流明显是整流特征波一个周期两个大峰加平顶用powergui的FFT工具分析——打开FFT Analysis选稳态中的一个完整周期基频设50Hz起始时间选0.04s左右THD通常在25%~30%。补偿后电流接近正弦THD会掉到5%以下如果滞环带宽收紧甚至可以压到2%~3%。直流电压波形会先上涨然后稳定在750V超调量控制在10%以内都算正常。无功补偿效果用两个量验证一是母线电压与电网电流相位差接近零二是有功和无功的功率读数里Q明显降低。用这个模型实测下来SRF加滞环这套方案在0.06s以后补偿效果基本稳定说明算法动态响应完全够用。4. 踩坑记录并联APF仿真调试中的问题与排查4.1 直流电压建立不起来先查方向现象是Udc要么趴在地要么反复跌落补偿电流也很小。先检查电压环方向断开电压环PI给d轴一个固定的正电流指令如果Udc还在下降说明d轴电流方向和预期相反把电压环PI输出的极性或Park变换矩阵符号反过来。其次检查IGBT驱动信号是否有效进入桥臂Universal Bridge的G输入端要求脉冲按顺序对应各管接错顺序会让桥臂直通或者半臂不动作。排查这类问题我的做法是先不理会谐波检测用开环指令验证主电路给每一相一个恒定的电流指令看桥臂是否按命令输出对应电流方向对不对电流大小是否受控。主电路极性确认以后再把SRF检测合进来这样能把“主电路问题”和“控制问题”彻底隔离开比自己闷头瞎猜快得多。4.2 PLL相位不稳dq波形到处抖dq波形出现很慢的振荡或者id、iq在基波频率抖动多半是PLL没锁住。常见原因是电网电压在非线性负载下已经畸变PLL输入直接取了带畸变的电压。可以看PLL输出wt和A相电压波形锁定时两者过零点对齐且wt线性增长没有抖动。如果不对给PLL的PI降低带宽或者先对电压做基波提取。还有一种隐蔽情况是αβ变换方向反了d、q定义反了表现是iq稳态有直流而id振荡。这时候换一下β方向就能解决。PLL相位问题在整个仿真里属于“牵一发动全身”它错了SRF检测、指令合成、补偿方向全都会跟着错所以发现问题后优先确认PLL而不是去调后面的一大堆参数。4.3 补偿后THD仍然偏高按这个顺序排查这是大家问得最多的。排查顺序固定如下先看补偿后电网电流是否平滑。还有明显锯齿说明电流跟踪带宽不够——减小滞环带宽或减小APF电感。波形平滑但THD还高重点查低通滤波器的截止频率。截止频率太高的坏处前面说过会把基波分量也混进补偿指令APF反而往电网里补基波电流太低则高次谐波没被完全滤出补偿指令漏掉了部分谐波。用30Hz起步慢慢调到20~40Hz看THD变化。检查SRF检测对象是不是负载电流。有些人把检测接成了电网侧电流等于想补偿已经补偿过的电流环路逻辑肯定乱这时APF不仅不消谐还会导致系统振荡。在FFT分析里看残余谐波的次数。如果残余集中在开关频率附近那是主电路纹波不是SRF的问题如果残余还有5次、7次多半是PLL相位滞后或LPF延迟导致补偿相位不够理想。按这个流程走下来大部分THD不达标的问题都能定位到具体环节。尤其是第4点很多人不看谐波次数就去乱调参数结果越调越差。4.4 调试顺序与参数微调经验按“主电路→开环跟踪→闭环SRF→电压环”四步走每步提前留一个Scope观察点。我最开始做这个项目时直接全闭环一顿接结果波形完全是乱的花了大量时间排查后来改成开环验证主电路五分钟就定位到是PLL相位方向问题。参数调整经验是先定直流电压再定电感电容然后调电流环最后调电压环。电压环的PI宁小勿大Kp太大直流电压会振荡Ki太大稳态会出现等幅波动。补偿效果达标后如果想看动态性能可以在仿真中给整流负载加一个阶跃观察补偿电流能不能在一个周期内跟上。这个画面也适合录成演示视频做成动态响应的展示素材。如果想再深入可以把滞环换成固定开关频率PWM加入延迟补偿和数字滤波器模型会离工程更近一步后端还可以接着做SVPWM开关策略对比。最后分享一点个人体会。SRF加滞环这组方案属于“原理简单、工程上到处都在用”的典型你把它搭通一次以后再去看SVPWM、重复控制、无差拍这些更高级的电流控制器思路都是相通的——谐波检测给参考电流控制追参考直流电压稳住能量。调试时印象最深的是方向符号问题反复踩坑后来我养成了一个习惯每个反馈和指令都在Scope里标上极性再和负载电流波形放在一起对比宁可多花两分钟看波形也不要靠猜。这篇文章给的参数足够跑通一个完整的并联APF仿真如果你想在此基础上加入固定开关频率的PWM、延迟补偿或者自适应滤波器前文的边界条件都已经解释过了有心的话可以继续往深里做。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑