天天看点

【智能优化算法】基于粒子群求解光伏电池MPPT工程数学模型附matlab代码

1 简介

针对光伏发电系统最大功率点跟踪恒定电压法跟踪精度较低的缺点,提出了基于温度系数在线修正的改进恒定电压法与粒子群优化结合的光伏MPPT算法,即在系统偏离最大功率点时,采用改进恒定电压法快速确定一个新的工作点,再采用粒子群优化进行最大功率控制,使得MPPT确保跟踪速度的同时又提高了跟踪精度.最后通过Matlab/Simulink对该算法进行了仿真,结果表明该控制系统可快速跟踪最大功率点.

对于户型光伏一体化发电系统,局部遮阴情况是最为普遍和复杂的。由于建筑周围存在树木、电线杆、电缆线等障碍物,当光照角度随着季节、时间发生变化时,在光伏阵列上会产生局部阴影,造成太阳能发电系统功率输出的下降,严重时会引起“热斑”效应造成安全问题。在局部遮阴情况下,光伏阵列的输出特性会出现多个峰值点,使常规的最大功率跟踪控制算法失效。目前常用的解决方法仅限于对常规算法的改进或是引入较复杂的计算。本文利用粒子群优化(Particle Swarm Optimization, PSO)算法容易实现、在多峰函数寻优方面收敛速度快的优势,将 PSO 算法应用于太阳能独立组件的最大功率点跟踪 (Maximum Power Point Tracking, MPPT)中。对于太阳能独立组件并网发电结构,由于每个组件具有独立的 MPPT 控制器,因此不存在局部遮阴造成的光伏组件之间不匹配的问题。在独立组件结构中需要对每个模块进行独立的最大功率控制,其本质上是一个多变量控制问题,利用粒子群优化算法的多变量寻优特性,对光伏阵列的多个模块的最大功率点进行寻优,实现光伏模块能量管理的群控。

【智能优化算法】基于粒子群求解光伏电池MPPT工程数学模型附matlab代码
【智能优化算法】基于粒子群求解光伏电池MPPT工程数学模型附matlab代码
【智能优化算法】基于粒子群求解光伏电池MPPT工程数学模型附matlab代码

2 部分代码

clc

clear

close all

Uoc=43.6;

Ump=35;

Isc=8.35;

Imp=7.6;

%光伏组件参数

S=[1000 750 500 250];

T=[10 25 40 60];

%组件的温度、光照强度

for i=1:length(S)

    ipv=[];

    ppv=[];

    dS=S(i)/1000-1;

    dT=25-25;

    Iscn=Isc*S(i)/1000*(1+0.0025*dT);

    Impn=Imp*S(i)/1000*(1+0.0025*dT);

    Uocn=Uoc*(1-0.00288*dT)*log(exp(1)+0.5*dS);

    Umpn=Ump*(1-0.00288*dT)*log(exp(1)+0.5*dS);

    C2=(Umpn/Uocn-1)/log(1-Impn/Iscn);

    C1=(1-Impn/Iscn)*exp(-Umpn/C2/Uocn);

    upv=0:0.01:Uocn;

    for k=1:length(upv)

        U=upv(k);

        I=Iscn*(1-C1*(exp(U/C2/Uocn)-1));

        ipv(k)=I;

        ppv(k)=U*I;

    end

    figure(1)

    hold on

    plot(upv,ipv)

    xlim([0 Uoc*1.1])

    ylim([0 Isc*1.3])

    figure(2)

    hold on

    plot(upv,ppv)

    xlim([0 Uoc*1.1])

    ylim([0 Ump*Imp*1.1])

end

figure(1)

set(gcf,'NumberTitle','off','Name','25℃时不同光照条件下IU特性')

legend('S=1000W/m2','S=750W/m2','S=500W/m2','S=250W/m2')

figure(2)

set(gcf,'NumberTitle','off','Name','25℃时不同光照条件下PU特性')

legend('S=1000W/m2','S=750W/m2','S=500W/m2','S=250W/m2','location','northwest')

for i=1:length(T)

    ipv=[];

    ppv=[];

    dS=1000/1000-1;

    dT=T(i)-25;

    Iscn=Isc*1000/1000*(1+0.0025*dT);

    Impn=Imp*1000/1000*(1+0.0025*dT);

    Uocn=Uoc*(1-0.00288*dT)*log(exp(1)+0.5*dS);

    Umpn=Ump*(1-0.00288*dT)*log(exp(1)+0.5*dS);

    C2=(Umpn/Uocn-1)/log(1-Impn/Iscn);

    C1=(1-Impn/Iscn)*exp(-Umpn/C2/Uocn);

    upv=0:0.01:Uocn;

    for k=1:length(upv)

        U=upv(k);

        I=Iscn*(1-C1*(exp(U/C2/Uocn)-1));

        ipv(k)=I;

        ppv(k)=U*I;

    end

    figure(3)

    hold on

    plot(upv,ipv)

    xlim([0 Uoc*1.1])

    ylim([0 Isc*1.3])

    figure(4)

    hold on

    plot(upv,ppv)

    xlim([0 Uoc*1.1])

    ylim([0 Ump*Imp*1.1])

end

figure(3)

set(gcf,'NumberTitle','off','Name','1000W/m2时不同温度下IU特性')

legend('T=10℃','T=25℃','T=40℃','T=60℃')

figure(4)

set(gcf,'NumberTitle','off','Name','1000W/m2时不同温度下PU特性')

legend('T=10℃','T=25℃','T=40℃','T=60℃','location','northwest')

3 仿真结果

【智能优化算法】基于粒子群求解光伏电池MPPT工程数学模型附matlab代码
【智能优化算法】基于粒子群求解光伏电池MPPT工程数学模型附matlab代码

4 参考文献

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

继续阅读