• 大小: 1KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-12-03
  • 语言: Matlab
  • 标签: matlab  阴影条件  

资源简介

基于阴影下串联组件的最大功率追踪技术。基于阴影下串联组件的最大功率追踪技术。基于阴影下串联组件的最大功率追踪技术。基于阴影下串联组件的最大功率追踪技术。

资源截图

代码片段和文件信息

clear;
clc;
t_count0=cputime;
n=3;%电池片数
Dot_regon=100;%初始点数
Speed1=0.5;%此处应测试不同参数下的影响
Speed2=0.5;
P_max_all=0;
I_max_all=0;
P_max_sig=zeros(1Dot_regon+1);
I_max_sig=zeros(1Dot_regon+1);
Temp_L=30;%运行于最低温度的电池片环境温度
S_H=0;%运行于最高光强的电池片光照强度
Select_1=0;
Select_redom=1;
Temp_in=[25252525252525252525];
S_in=[100060040010001000100060040010001000];
for i=1:n
    if (Temp_L>Temp_in(i))
        Temp_L=Temp_in(i);
    end
    if (S_H        S_H=S_in(i);
    end
end
I_sc=8.58;%此参数为厂家提供参数,无需修正
I_m=7.94;
U_oc=22;
U_ocnm=0;
I_scnm=0;
U_m=17.7;
T_b=25;   %标准条件
S_b=1000;
a=0.0025;%默认参数,可尝试修正
b=0.5;
c=0.00288;
V_recal=0.05;
for i=1:n
    d_T(1i)=Temp_in(1i)-T_b;
    d_S(1i)=S_in(1i)-S_b;
    I_scn(1i)=I_sc*(S_in(1i)/S_b)*(1+a*d_T(1i));
    I_mn(1i)=I_m*(S_in(1i)/S_b)*(1+a*d_T(1i));
    U_ocn(1i)=U_oc*((1-c*d_T(1i))*log(exp(1)+b*d_S(1i)/S_b));
    U_mn(1i)=U_m*((1-c*d_T(1i))*log(exp(1)+b*d_S(1i)/S_b));
    if U_ocnm        U_ocnm=U_ocn(1i);
    end 
    if I_scnm       I_scnm=I_scn(1i);
    end 
end
C2=(U_m/U_oc-1)/(log(1-I_m/I_sc));
C1=(1-I_m/I_sc)*exp(-U_m/(C2*U_oc));
Dump=U_ocnm/Dot_regon;
U_regon(11:Dot_regon+1)=[0:Dump:U_ocnm];
I_regon=I_scnm*(1-C1*(exp(U_regon/(C2*U_ocnm))-1));
   
for j=1:200
    U_count=zeros(1Dot_regon+1);
    for i=1:Dot_regon+1
        for m=1:n
            if(I_regon(1i)<=I_scn(1m))
                U(mi)=log((1-I_regon(1i)/I_scn(1m))/C1+1)*(C2*U_ocn(1m));
                U_count(1i)=U_count(1i)+U(mi);
            end
        end
        P(1i)=U_count(1i)*I_regon(1i);
        if (P(1i)>P_max_sig(1i))
         P_max_sig(1i)=P(1i);
            I_max_sig(1i)=I_regon(1i);
        end
        if (P(1i)>P_max_all)
            P_max_all=P(1i);
            I_max_all=I_regon(1i);
            U_max_all=U_count(1i);
        end  
        Rand1=rand(13);
        V_1=Rand1(1)*V_recal+Rand1(2)*Speed1*(I_max_all-I_regon(1i))+Rand1(3)*Speed2*(I_max_sig(1i)-I_regon(1i))*5/j+0.005*rand(11)*Select_redom;
        I_regon(1i)=I_regon(1i)+V_1+0.005*rand(11);
        V_recal=V_1;
    end
    
    plot(U_countP‘.‘);
    axis([0 65 0 P_max_all+5 ]);
%      pause(1);
    if (j>8)
        Select_1=1;
        if (j>20)
           Select_redom=0; 
        end
    end
   if(Select_1)
    for p_sx1=1:Dot_regon %进行n次才可互换完
     for p_sx2=2:Dot_regon+1 %比较相邻两数的大小
         if( P(1p_sx2-1)             sx_TURN=P(1p_sx2);
             P(1p_sx2)=P(1p_sx2-1);
             P(1p_sx2-1)=sx_TURN; %比较相邻两数的大小,若前大后小则互换位置
                sx_TURN=I_regon(1p_sx2);
                I_regon(1p_sx2)=I_regon(1p_sx2-1);
                I_regon(1p_sx2-1)=sx_TURN; %比较相邻两数的大小,若前大后小则互换位置
            end
        end
    end
    if((P(11)-P(1101))<1) 
        t_count1=cputime-t_count0;
        disp([‘程序经过‘num2str(j)‘步达到精度要求‘]);
        disp([‘此时最佳功率控制点电压为‘num2str(U

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        3583  2018-09-11 18:44  finish_V1_1.m

评论

共有 条评论