clear

Testmatrix = zeros(24,30);

P_benoetigt = zeros(1,5);

Test_Werte_zur_Berechnung;

i = 1;
for j = 1:6:30
    for k = 1:24
        PV_Produktion = Testmatrix(k,j);
        Last = Testmatrix(k,j+1);
        PV_Ueberschuss = Testmatrix(k,j+2);
        Speicherstand = Testmatrix(k,j+3);
        P_aus = Testmatrix(k,j+4);
        P_defizit = Testmatrix(k,j+5);
    
    PV_Produktion = Wertematrix1(k,i);
    Last = Wertematrix2(k,i);
    if i < 5
       i = i+1; 
    end
             
        if PV_Produktion > Last
           vector1 = PV_Produktion - Last;
           PV_Ueberschuss = vector1;
        else 
           vector1 = 0;
           PV_Ueberschuss = vector1;
        end
        
        if k == 1
          Speicherstand = Ladewirkungsgrad*PV_Ueberschuss;
        else
        vector2 = Ladewirkungsgrad*PV_Ueberschuss + Testmatrix(k-1,j+3);                                                                                                                       % PV Überschuss wird aufadiert
        Speicherstand = vector2;                                                                                                                                                              % und in Batterie gespeichert.
            if PV_Ueberschuss > 0                                                                                                                                                            % Wenn PV Überschuss vorliegt
               vector3 = 0;                                                                                                                                                                     % wird keine Energie aus Speicher
               Testmatrix(k,j+3+1) = vector3;                                                                                                                                                     % bezogen.
            elseif PV_Ueberschuss == 0
                if Last - PV_Produktion >= Entladewirkungsgrad*Entladung_maximal
                   if Speicherstand >= Entladewirkungsgrad*Entladung_maximal 
                      vector3 = Entladung_maximal;
                      P_aus = Entladewirkungsgrad*vector3;
                      Speicherstand = Speicherstand - vector3;
                   elseif Speicherstand < Entladewirkungsgrad*Entladung_maximal
                          vector3 = Speicherstand;
                          P_aus = Entladewirkungsgrad*vector3;
                          Speicherstand = Speicherstand - vector3;
                   end
                elseif Last - PV_Produktion < Entladewirkungsgrad*Entladung_maximal                    
                   if Speicherstand >= Entladewirkungsgrad*Entladung_maximal
                      vector3 = (Last - PV_Produktion)/Entladewirkungsgrad;
                      P_aus = vector3;
                      Speicherstand = Speicherstand - vector3;
                   elseif Speicherstand < Entladewirkungsgrad*Entladung_maximal
                       if Speicherstand >= Last - PV_Produktion     
                          vector3 = (Last - PV_Produktion)/Entladewirkungsgrad;
                          P_aus = vector3;
                          Speicherstand = Speicherstand - vector3;
                       elseif Speicherstand < Last - PV_Produktion 
                              vector3 = Speicherstand;
                              P_aus = Entladewirkungsgrad*vector3;
                              Speicherstand = Speicherstand - vector3;
                       end    
                   end
                    
                end
                
                
            end          
        end
        
        if PV_Ueberschuss == 0 && P_aus < (Last - PV_Produktion) 
           P_defizit = Last - PV_Produktion - P_aus;
        end
        
    end
    vector4 = sum(Testmatrix(:,j+5));
    P_benoetigt(1,(1/6)*(j+5)) = vector4;
end