Matlab/Simulink:单级式三相光伏并网系统(光伏板+LCL逆变器+电网) 组成部分及功能: 1.主电路:由光伏板+LCL逆变器+电网组成,由于是单级,因此没有了双级下的Boost变换器 2.控制模块,光伏的MPPT采用扰动增量法(标准光强、温度下最大功率约为10 kW)输出最大功率点电压作为电压环的输入,仿真里也含有电导增量法,可自行选取。 LCL逆变器采用电压电流双闭环解耦控制,将母线电压控制在最大功率点处电压 3.锁相环及坐标变换,从abc坐标轴到dq坐标轴 4.调制模块,采用SVPWM 5.观测模块,示波器观测,同时将数据输出到工作空间以便于画图。 仿真在2s处降低光照强度,因此光伏板输出功率和逆变器侧电流相应的降低,仿真包括两个文件,一个是引入功率前馈的仿真模型,另一个是未引入功率前馈的仿真模型,方便对比。 版本为Matlab2020b,由于部分模块低版本没有,因此只能用20b或以上版本,波形质量良好

最近在Matlab2020b上搭了个单级式三相光伏并网仿真,顺手记录几个有意思的实现细节。这个系统虽然比双级式少了个Boost变换器,但控制上反而更考验动态响应能力——毕竟光伏板电压直接和逆变器母线挂钩。

主电路建模时LCL滤波器参数是关键,这里取的是L1=3mH,L2=1mH,C=20μF。用Simscape Electrical搭的电网模型要注意短路容量设置,我直接用的默认10MVA配比:

Grid.Rs = 0.1;  % 电网等效电阻
Grid.Ls = 5e-3; % 电网等效电感
Grid.Vrms = 220;% 线电压有效值

控制模块里MPPT算法做了个双保险,扰动增量法和电导增量法用Switch模块做了手动切换。核心代码段长这样:

function [Vref, P_old] = IncCond(V, I, V_step, P_old)
    P_new = V * I;
    dP = P_new - P_old;
    dV = V_step;
    
    if dP ~=0
        if dP/dV > -I/V
            Vref = V - V_step;
        else
            Vref = V + V_step;
        end
    else
        Vref = V;
    end
    P_old = P_new;
end

这个实现里特别处理了dP为零的边界情况,实测能避免光照突变时的电压震荡。

双闭环控制有个骚操作——电流内环的dq轴解耦项直接用了电网电压前馈。在Simulink里用Algebraic Constraint模块实现的耦合项补偿:

!双闭环结构截图

电压外环PI参数建议从10Hz带宽开始调,我最后定在Kp=0.5,Ki=100,这个参数下母线电压波动能控制在±3V以内。

Matlab/Simulink:单级式三相光伏并网系统(光伏板+LCL逆变器+电网) 组成部分及功能: 1.主电路:由光伏板+LCL逆变器+电网组成,由于是单级,因此没有了双级下的Boost变换器 2.控制模块,光伏的MPPT采用扰动增量法(标准光强、温度下最大功率约为10 kW)输出最大功率点电压作为电压环的输入,仿真里也含有电导增量法,可自行选取。 LCL逆变器采用电压电流双闭环解耦控制,将母线电压控制在最大功率点处电压 3.锁相环及坐标变换,从abc坐标轴到dq坐标轴 4.调制模块,采用SVPWM 5.观测模块,示波器观测,同时将数据输出到工作空间以便于画图。 仿真在2s处降低光照强度,因此光伏板输出功率和逆变器侧电流相应的降低,仿真包括两个文件,一个是引入功率前馈的仿真模型,另一个是未引入功率前馈的仿真模型,方便对比。 版本为Matlab2020b,由于部分模块低版本没有,因此只能用20b或以上版本,波形质量良好

坐标变换部分踩过版本兼容的坑,2020b新增的Three-Phase PLL模块比之前自己搭的锁相环稳多了。注意PLL输出角度要加上30°相位补偿,否则dq轴对齐会跑偏。实测相位误差能控制在0.5°以内:

!PLL波形

SVPWM实现用了官方的Space Vector Generator,不过需要手动配置死区时间。这里有个隐藏技巧——把载波频率设为5kHz时,开关损耗和波形质量平衡得最好:

PWM.CarrierFreq = 5e3;  
PWM.DeadTime = 2e-6;    % 死区时间2μs

重点来了:功率前馈到底有多大用?在2秒时把光照从1000W/m²降到800W/m²,对比两组波形:

!前馈对比

有前馈的系统功率恢复时间快0.2秒,THD从3.1%降到2.7%。数据导出后用FFT工具看得清清楚楚:

% 波形分析代码
thd(I_inv,'psd'); 
xlim([0 2000]);

最后提醒:2020b的SVPWM模块低版本真的打不开!建议直接装个Runtime Libray备份。这个仿真跑下来最大的感悟——光伏系统里前馈补偿比反馈环更吃参数精度,下次试试模糊自适应应该更有意思。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐