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