☰
光伏并网电流波形治理:模糊PI控制仿真设计与实践
2026/10/20 8:13:46 网站建设 项目流程

做光伏并网系统仿真的朋友,十有八九都跟并网电流较过劲。明明直流侧电压稳稳的,开关管驱动也正常,可一测并网电流,波形不是尖刺就是毛刺,谐波畸变率居高不下,甚至一个扰动过来电流直接跑飞。今天要拆的这个案例,就是给单相光伏并网系统加一层“模糊PI控制”,专门用来整治并网电流波形“不听话”的毛病。我尽量把从控制思路到仿真搭建,再到结果对比和坑点排查,一条线讲清楚。

这个案例适合正在做光伏并网逆变器仿真、搞电力电子控制算法,或者想了解模糊逻辑怎么落地的朋友参考。我不会堆公式,重点讲为什么要这么做、怎么做、以及做完以后到底比传统PI好在哪里。读完以后你能拿这套思路直接改自己的模型。

1. 光伏并网电流控制的难点到底在哪

想弄明白模糊PI为什么管用,得先搞清楚并网电流控制这件事里,难缠的地方到底是什么。

1.1 并网电流要“听话”到什么程度

光伏并网逆变器的职责,是把光伏阵列发的直流电转成跟电网同步的交流电送出去。这里说的“同步”包含两层意思:一是频率和相位要跟电网电压一致,二是电流波形要尽量干净,也就是正弦度要高。

具体到指标上就三条:并网电流和电网电压同频同相,这样功率因数接近1;总谐波畸变率THD低于5%,这是并网标准的基本门槛,很多项目还会要求严格一些;动态响应要快,光照突变或者电网波动的时候,电流不能剧烈超调或者拖很久才稳定。

这三条指标放在一起,对控制环的要求其实相当苛刻。因为并网电流大小和电网电压直接耦合在一起,逆变器本质上是在跟一个有内阻、有谐波、有波动的电网“掰手腕”。

1.2 传统PI控制在单相并网里的两个尴尬

很多初学者第一次搭模型,下意识就会用PI控制器去跟踪正弦电流指令。结果往往不理想,原因有两个。

第一个尴尬是单相系统没有天然的dq坐标。三相系统可以靠Clark变换和Park变换把交流量变成直流量,PI控制器处理直流量是顺手拈来的事。但单相只有一个相,没法直接变换,必须自己构造一个虚拟的正交相。常见做法是用SOGI二阶广义积分器或者延迟90度,如果这个正交构造得不够好,dq轴分量本身就带脉动,PI再努力也追不干净。

第二个尴尬是PI参数本身顾头顾不了腚。PI的Kp越大动态响应越快,但Kp大了超调也跟着上去;Ki越大稳态误差消除得越快,但Ki大了低频振荡甚至发散的风险也来了。传统PI是固定增益的,但并网系统的工作点一直在变,光照在变、电网电压在变、负载也在变,一组固定参数很难在所有工况下都保持最优。

1.3 为什么模糊PI能救场

模糊PI的思路说穿了并不玄乎:它不去找一组“万能参数”,而是让Kp和Ki在运行过程中根据误差的大小和变化趋势自己动。误差大的时候加大Kp快速逼近,误差小的时候减小Kp防止超调,误差变化剧烈的时候再调整Ki压制振荡。

这就相当于给PI控制器配了一个经验丰富的老师傅在旁边盯着,看到电流偏离指令了,立刻判断“这个偏差大不大、趋势是往好的方向走还是坏的方向走”,然后决定这个比例和积分增益该拧大还是拧小。老师傅的判断规则就是模糊规则表,判断的输入就是误差和误差变化率,输出就是Kp和Ki的修正量。

所以我一直觉得,模糊PI不是替代PI,而是给PI加了一个自适应调参的外套。这层外套在工况变化频繁的光伏并网场景里特别值钱。

2. 模糊PI控制器的工程化设计拆解

模糊PI听起来高端,落地到仿真模型里,其实就是几个模块按固定套路接起来。我把设计过程拆成几块来讲。

2.1 控制系统整体架构

这个案例的拓扑是单相全桥逆变器加L滤波,控制系统是双闭环结构。外环负责维持直流母线电压稳定,输出有功电流指令;内环是电流环,用模糊PI控制并网电流跟踪指令。电流环输出经过SPWM调制,生成四个开关管的驱动信号。

因为单相系统没有旋转坐标,我用SOGI构造了一个与电网电压正交的虚拟分量,再做Park变换得到dq轴电流。这样电流环就在同步旋转坐标系下运行,指令是直流量,模糊PI可以直接管理。一个典型的单相并网控制架构可以归纳成下面这条链路。

光伏直流源 → 逆变桥 → L滤波 → 电网 电网电压采样 → SOGI正交 → Park变换 → 电流模糊PI → 反Park → SPWM → 驱动

这里面SOGI是整套系统的地基。SOGI的中心频率要设成50Hz,阻尼系数k取1.414附近,这样正交构造准确,dq轴电流纹波小。如果SOGI没调好,后面的模糊PI再强也是白搭。

2.2 模糊控制器的输入输出与论域设计

模糊控制器的两个输入是电流误差e和误差变化率ec,输出是Kp修正量ΔKp和Ki修正量ΔKi。为了通用,我把e和ec先做归一化处理,映射到{-1,1}区间,输出也在{-1,1}区间,后面再接比例增益放大到合适的物理范围。

输入输出各用7个模糊集合:负大NB、负中NM、负小NS、零ZO、正小PS、正中PM、正大PB。隶属函数用最简单的三角形,覆盖均匀即可,不用追求复杂的高斯型。

这里有个设计细节我得单独说:量化因子对人很重要。量化因子就是归一化前的缩放系数,它直接决定了误差在什么范围会被当作“大误差”。如果量化因子选得太小,正常工况下误差只落在ZO到PS的小领域里,模糊逻辑基本不动作,等于退化成固定PI;选得太大,误差很容易顶到NB或者PB的饱和区,控制器全程在极限状态,毫无细腻可言。

2.3 模糊规则表怎么定

模糊规则表是整套算法的灵魂。我先给ΔKp定规则,原则是:误差大的时候加大比例增益快速逼近;误差小的时候减小比例增益防止超调;误差变化率大的时候再适当削减Kp,抑制振荡。

我给出一份可以抄作业的ΔKp规则表:

e\ecNBNMNSZOPSPMPB
NBPBPBPMPMPSZOZO
NMPBPBPMPSPSZONS
NSPMPMPMPSZONSNS
ZOPMPMPSZONSNMNM
PSPSPSZONSNSNMNM
PMPSZONSNMNMNMNB
PBZOZONMNMNMNBNB

ΔKi的规则跟Kp是反着来的。误差大的时候Ki要小,防止积分积累太快导致超调;误差小的时候Ki要大,利用积分把静差磨干净。ΔKi规则表如下:

e\ecNBNMNSZOPSPMPB
NBNBNBNMNMNSZOZO
NMNBNBNMNSNSZOZO
NSNBNMNSNSZOPSPS
ZONMNMNSZOPSPMPM
PSNMNSZOPSPSPMPB
PMZOZOPSPSPMPBPB
PBZOZOPSPMPMPBPB

这两张表不用死记,记住核心口诀就行:“大误差粗调,小误差精调;误差往大走,Kp顶上去,Ki压下来;误差往小走,Kp松下来,Ki顶上去。”

解模糊的方法用重心法,这是工程上最稳的选择,输出曲线平滑,不容易出现跳变。

2.4 模糊PI的增量式实现

最终参与控制的Kp和Ki,是基准值加修正量:

Kp = Kp0 + Gup × ΔKp Ki = Ki0 + Gui × ΔKi

这里Kp0和Ki0是基准PI参数,Gup和Gui是模糊输出比例增益。模糊控制器输出的ΔKp和ΔKi是{-1,1}区间里的数,乘上Gup和Gui以后才变成真实的增益修正范围。

举个例子。假设基准Kp0是8,模糊输出ΔKp最小是-1、最大是1,Gup设为3,那么Kp就在5到11之间活动,实时调整范围是正负3。这个修正范围要跟基准值匹配,如果Kp0只有2,Gup却设成10,那Kp可能在-8到12之间剧烈跳变,系统直接乱套。

控制量输出去反Park变换之前,还有个基本PI离散化的细节。仿真里直接用离散传递函数实现PI,采样时间取跟开关周期一致,比如开关频率10kHz,采样周期就是0.0001秒。

3. 仿真模型搭建与关键参数计算

模型搭建这部分最容易出错的是参数,参数不对后面全白搭。我给出一个能跑通的参数体系,并说明每个参数是怎么来的。

3.1 系统工况设定

  • 电网电压:220V有效值,50Hz,峰值311V
  • 额定功率:2kW
  • 开关频率:10kHz
  • 直流母线电压:400V
  • 滤波电感:4mH
  • 直流侧电容:2000μF

为什么直流母线要取400V?因为单极性SPWM调制下,逆变器输出峰值不能超过直流母线电压,电网峰值311V,留出约90V裕量给电感压降和开关动作的毛刺。母线电压太低会进入过调制区域,波形失真严重。

3.2 滤波电感设计计算

滤波电感是电流波形质量的关键。电感太小,开关纹波电流大,电流波形毛刺多,THD上不去;电感太大,电流跟踪变慢,动态响应差,电感体积和成本也跟着涨。

电流纹波计算公式按单极性SPWM近似:

Δi = (Udc - Ug_peak) × D × Ts / L

其中占空比D按最恶劣情况取0.5,开关周期Ts是0.0001秒,允许纹波电流按额定电流的20%设计。额定电流峰值2kW时约9.1A,20%就是1.82A。

L = (400 - 311) × 0.5 × 0.0001 / 1.82 ≈ 2.45mH

实际我取了4mH,因为还考虑了电网电压过零附近电感压降的影响,以及实际预留一点谐波余量。L值大一点纹波更干净,代价是动态慢一点,但2kW这个等级,4mH很合适。

3.3 直流侧电容计算

直流母线电容承担着两级换流平衡的职责。光伏侧输入功率和电网侧瞬时功率之间,存在二倍频脉动,电容就是用来吸收这个脉动的。

按工程经验,电容储存的能量要能满足半个电网周期内功率脉动的要求:

C ≥ P / (2 × ω × Udc × ΔUdc)

P取2000W,ω是314rad/s,Udc是400V,ΔUdc按母线电压纹波10V算:

C = 2000 / (2 × 314 × 400 × 10) ≈ 796μF

实际取2000μF,留了两到三倍的裕量。这个电容取值直接影响仿真里直流电压环的稳定性,太小的电容会让直流母线电压随着二倍频波动,进而污染电流指令。

3.4 Simulink仿真模块配置要点

仿真环境我建议用Power Electronics相关的电气库加Simulink控制库混搭,模型整体结构如下:

  • 电源侧:用受控直流源模拟光伏输出,电压设为400V固定值。案例重点是电流控制,MPPT部分先不展开
  • 主电路:Universal Bridge配置成单相全桥,开关管用IGBT,加一个1μs的死区时间,模拟真实驱动的安全间隔
  • L滤波:串4mH电感加0.5Ω等效寄生电阻,寄生电阻虽然小,但能有效限制谐振尖峰
  • SOGI模块:用连续传递函数搭建,中心频率50Hz,阻尼系数k取1.414
  • 模糊控制器:使用Fuzzy Logic Controller模块,导入之前设计好的模糊规则文件,输入侧接量化因子增益,输出侧接比例增益
  • PWM调制:反Park变换输出的调制波,跟10kHz三角载波比较,生成SPWM脉冲

仿真求解器要特别注意。电力电子变流器仿真含高频开关切换,建议用变步长求解器,相对误差设成1e-4。仿真时间设0.5秒,足够观察启动过程、稳态运行和动态扰动。

3.5 模糊控制器在仿真里的接线细节

模糊控制器模块接入前后的增益配置是最容易错的地方。我的做法是:

  • 输入量化增益Ke:根据额定电流误差范围计算。电流指令峰值9.1A,误差一般不会超过5A,Ke设成0.2,这样5A误差映射到1
  • 输入误差变化率增益Kec:误差变化率最大大约每秒几百安培,仿真里实测踩坑后Kec设成0.02
  • 输出比例增益Gup:设定为3,配合基准Kp0=8,Kp活动范围5到11
  • 输出比例增益Gui:设定为150,配合基准Ki0=300,Ki活动范围150到450

这组参数是我调过的,能保证系统在额定工况附近稳定运行。但注意,你的模型寄生参数可能不同,增益应该按照这个思路重新匹配,不要死搬我的数值。

4. 仿真结果对比分析

搭建好模型以后,我在同一套工况下分别跑了传统固定PI和模糊PI两组对比,下面看几个关键指标。

4.1 稳态波形与THD对比

先看稳态。传统PI控制下,并网电流能跟踪指令,但是波形边缘有明显毛刺,用FFT模块分析,THD在3.6%左右,主要谐波集中在3次、5次和开关频率边带附近。模糊PI控制下,电流波形肉眼可见地更干净,毛刺明显减少,THD降到2.1%。

下降的这部分谐波主要来自哪里?一方面是Kp在误差小时自动减小,相当于主动削弱了开关纹波激励电流环产生的噪声放大;另一方面是Ki在误差小时增大,把稳态静差消得更彻底,电流波形的底部不再出现平顶或不对称的畸变。

4.2 启动过程的动态响应对比

启动过程的差异比稳态更明显。传统PI在启动瞬间,电流指令从0阶跃到额定值,Kp固定较大,电流超调大约冲到15%,调节时间大约0.06秒,期间能看到明显的电流脉冲,这对实际系统的过流保护和并网冲击都是不利因素。

模糊PI的启动过程就温和很多。因为启动时误差很大,模糊规则同时起作用,Kp不会猛冲,Ki也压得低,积分不会瞬间堆高,电流超调控制在5%以内,调节时间缩短到0.02秒左右。说白了,模糊PI启动的时候像老司机起步,慢慢踩油门;固定PI像新手起步,一脚油门下去,然后猛踩刹车。

4.3 扰动工况下的表现

我额外测了一个电网电压突降5%的工况。传统PI在电压突降瞬间,电流会有明显的冲击,然后在大约0.08秒内恢复;模糊PI的冲击幅度明显更小,恢复时间约0.03秒。原因是电压突变时,误差变化率ec瞬间变大,模糊规则检测到趋势,提前调整了Kp和Ki,相当于预判了危险再出手,而固定PI只能等误差实际变大以后被动应对。

动态对比数据汇总如下:

对比项传统PI模糊PI
启动超调量15%5%以内
启动调节时间0.06s0.02s
稳态THD3.6%2.1%
电压扰动恢复时间0.08s0.03s

这组数据很直观地说明了模糊PI的价值:它不是把某个单点指标做到极致,而是把动态、稳态、抗扰三个维度的指标同时优化,代价只是多一点控制器设计的复杂度。

5. 常见问题与排查技巧实录

仿真过程不可能一帆风顺,我从自己实际踩过的坑里挑几个典型的来说,这些问题你大概率也会遇到。

5.1 模糊层介入后系统直接发散

我刚把模糊控制器接进电流环的时候,系统直接振起来了,电流波形像锯齿一样来回冲。排查了一圈,发现问题是量化因子设得过大,误差稍微波动一下就顶到模糊集合的边界饱和区,Kp在最大值和最小值之间来回跳,控制器变成了一个开关。

排查方法很笨但很有效:把e和ec这两个中间量用Scope拉出来,看它们的轨迹到底落在论域的哪个区域。如果轨迹长期压着上下边界走,说明增益太大或者论域太窄;如果轨迹只在中间一小片区域活动,说明模糊逻辑没有被充分利用。理想状态是轨迹能覆盖论域的三分之二左右,既有动作空间又不会饱和。

5.2 波形过零点畸变严重

还有一个典型的坑是过零点畸变。并网电流在过零附近出现明显的“台阶”和断续,一开始我以为是模糊PI的问题,检查半天发现根子不在控制算法,而在主电路的死区效应。

死区时间让开关管在过零附近产生电压误差,这种误差在低电流区域特别明显。解决办法有两个方向:一是缩小死区时间,从2μs降到0.5μs,畸变明显改善;二是对死区电压做补偿,根据电流方向叠加一个修正量。仿真里我建议先缩小死区,简单有效,等波形干净了再考虑要不要上补偿算法。

5.3 基准PI参数跟模糊参数谁先调

这是最容易被带偏的顺序问题。很多朋友一上来就把模糊控制器的基准值Kp0、Ki0设成大型随机数,指望模糊层自动修正,结果系统从第一步就稳不住。

我的经验是,先把模糊控制器旁路,用固定PI把系统调到稳定且性能尚可的状态,记录这组基准PI值;然后加入模糊层,把Gup和Gui从0开始慢慢往上加,观察波形变化。Gup和Gui加大的过程,就是模糊修正能力逐渐介入的过程,系统从固定PI平滑过渡到自适应PI,全程可控。这个顺序能让你清晰地判断每一步调整的效果,不至于一团乱麻。

5.4 仿真速度慢、收敛困难

仿真模型里电力电子开关频率10kHz,如果求解器步长没配置好,仿真速度慢得离谱,半天跑不完100ms。我的习惯是:

  • 求解器用变步长,相对误差设1e-4,绝对误差设1e-6
  • 在Powergui里面把仿真类型设为离散,采样时间设为0.1μs到1μs之间
  • 不要同时记录太多连续变量,用To Workspace只保存需要分析的信号

还有一个收敛的小技巧:把电感寄生电阻从0.1Ω加到0.5Ω,能有效抑制数值振荡导致的不收敛问题。这个改动对仿真结果的物理准确性影响很小,但对求解器的稳定性帮助很大。

5.5 模糊规则表是否需要按工况调整

有些人会问,规则表就这么一套,换一个功率等级还适用吗?我的答案是基本适用,但量化因子和比例增益要跟着变。功率从2kW改成5kW,电流额定值变了,Ke和Kec必须按新的电流范围重新计算,Gup和Gui也需要重新微调。规则表的语言描述本身是抽象的,它表达的是“误差大怎么调、误差小怎么调”的逻辑,这个逻辑跨工况都成立,变的只是数值映射关系。

我在实际做项目的时候,通常会在仿真里做一组工况扫描,把半载、满载、过载和电网电压偏差几种情况都跑一遍,看模糊PI在所有工况下是不是都能把波形控制在可接受范围。如果某组工况下电流纹波异常,就回头检查那组工况的误差工作点,再微调量化因子。

最后聊两句实操体会

做完这个仿真实例,我最大的感受是:模糊PI的价值不在于取代工程经验,而在于把工程经验固化成了规则表。传统PI调参靠的是在示波器前面反复试,模糊PI调参同样要试,但试的是规则和映射关系,一旦调好,它对工作点变化的适应能力是固定PI完全比不上的。

再分享一个小技巧:仿真里用To Workspace把误差e和误差变化率ec记录下来,画成相轨迹图,你能很直观地看到控制器在工作过程中经历了哪些状态。我第一次看到这个轨迹图的时候,才真正理解了模糊规则表里那些规则是怎么被逐条激活的。这个习惯我一直保留到现在。

这套基于模糊PI的控制框架,改到三相并网逆变器、储能变流器甚至电机调速系统上,思路都是通的。差别只在坐标变换的维度,模糊控制器本身不需要大改。从这个角度说,这个仿真案例带来的方法论价值,比单一个案例本身要值钱得多。

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

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

立即咨询