function [] = Waermeleitung_for_2_2(type,G,Ta,date2,t,hilfe)
%Waermeleitung simuliert ein thermisches Gebäudemodell Input -> [Gebäudetyp,
%Solarstrahlung G, Außentemperatur Ta, Datum date2, Zeit t und Hilfsvariable hilfe]
%Version for_2 = mit Cell Array und Schleife

%Adamek Modell mit Nachtabsenknung von 22-06 Uhr auf 16°C
%und mit Berücksichtigung der Heizgrenze von 12 °C

[num, txt]=xlsread('Deutsche_Gebaeudetypologie_2.xlsx','Daten','B5:AI58');

[z,s]=find(strcmp(txt, type));

Awall = num(z,s+15);
Aroof = num(z,s+13);
Awindow = num(z,s+20);
Uwall = num(z,s+25);
Uwindow = num(z,s+30);
Vdh = num(z,s+10);
Ti = num(54,1);
Cair = num(48,1);
Nair = num(50,1);
a = num(51,1);
g = num(52,1);
eta = num(53,1);
Ceff = 18.07;
m_c = Vdh*1.2*Cair+(Awall+Aroof)*Ceff+((Aroof+Awall)*0.256*900)*0.278;

WindowSize = 20; %20*0,25 entspricht einer Mittelung über 5 Stunden

%Ti_neu ist ein Array das benutzt wird um die jedesmal neu errechnete
%Innentemperatur zu speichern
Ti_neu = zeros(35039,1);
Ti_neu(1,1) = Ti;
Tm_a = zeros(35039,1);

%Vorbelegung des Ergebnisarrays "Daten" zur Verkürzung der
%Rechengeschwindigkeit

Daten = cell(35039,23);
 
Daten = {[],[],[],[],[],[],[],[],[],[],m_c,Awall,Aroof,Awindow,Uwall,Uwindow,Vdh,Ti,Cair,Nair,a,g,eta};


    for x=1:35039
        %gleitende Mittelwertbildung von Ta mit Hilfe der Filterfunktion
        Tm_a(x) = filter(ones(1,WindowSize)/WindowSize,1,Ta(x));
        
        if Tm_a(x) > 12
            qwall = Uwall*(Awall+Aroof)*(Ta(x)-Ti_neu(x,1))+Uwindow*Awindow*(Ta(x)-Ti_neu(x,1));
            qair = (Vdh*1.2*Cair*(Ta(x)-Ti_neu(x,1)))/Nair;
            qsol= G(x)*a*g*Awindow;
            Qges = qwall + qair + qsol; 
            Qheiz = 0; % keine Beheizung erforderlich
            Qres = qwall + qair + qsol + Qheiz*eta;
            Ti_neu(x+1,1) = Ti_neu(x,1) + Qres*0.25/m_c;
            Daten(x,1) = num2cell(date2(x));
            Daten(x,2) = num2cell(t(x));
            Daten(x,3) = num2cell(Ta(x));
            Daten(x,4) = num2cell(G(x));
            Daten(x,5) = num2cell(qwall);
            Daten(x,6) = num2cell(qair);
            Daten(x,7) = num2cell(qsol);
            Daten(x,8) = num2cell(Qges);
            Daten(x,9) = num2cell(Qheiz);
            Daten(x,10) = num2cell(Ti_neu(x,1));
        else if hilfe(x,1) >= 22 || hilfe(x,1) <= 6    
            Ti_neu(x,1) = 16;
            qwall = Uwall*(Awall+Aroof)*(Ta(x)-Ti_neu(x,1))+Uwindow*Awindow*(Ta(x)-Ti_neu(x,1));
            qair = (Vdh*1.2*Cair*(Ta(x)-Ti_neu(x,1)))/Nair;
            qsol= G(x)*a*g*Awindow;
            Qges = qwall + qair + qsol; 
            Qheiz = -(qwall + qair + qsol)/eta; %Heizen
            Qres = qwall + qair + qsol + Qheiz*eta;
            Ti_neu(x+1,1) = Ti_neu(x,1) + Qres*0.25/m_c;
            Daten(x,1) = num2cell(date2(x));
            Daten(x,2) = num2cell(t(x));
            Daten(x,3) = num2cell(Ta(x));
            Daten(x,4) = num2cell(G(x));
            Daten(x,5) = num2cell(qwall);
            Daten(x,6) = num2cell(qair);
            Daten(x,7) = num2cell(qsol);
            Daten(x,8) = num2cell(Qges);
            Daten(x,9) = num2cell(Qheiz);
            Daten(x,10) = num2cell(Ti_neu(x,1));
        else
            Ti_neu(x,1) = Ti;
            qwall = Uwall*(Awall+Aroof)*(Ta(x)-Ti_neu(x,1))+Uwindow*Awindow*(Ta(x)-Ti_neu(x,1));
            qair = (Vdh*1.2*Cair*(Ta(x)-Ti_neu(x,1)))/Nair;
            qsol= G(x)*a*g*Awindow;
            Qges = qwall + qair + qsol; 
            Qheiz = -(qwall + qair + qsol)/eta; %Heizen
            Qres = qwall + qair + qsol + Qheiz*eta;
            Ti_neu(x+1,1) = Ti_neu(x,1) + Qres*0.25/m_c;
            Daten(x,1) = num2cell(date2(x));
            Daten(x,2) = num2cell(t(x));
            Daten(x,3) = num2cell(Ta(x));
            Daten(x,4) = num2cell(G(x));
            Daten(x,5) = num2cell(qwall);
            Daten(x,6) = num2cell(qair);
            Daten(x,7) = num2cell(qsol);
            Daten(x,8) = num2cell(Qges);
            Daten(x,9) = num2cell(Qheiz);
            Daten(x,10) = num2cell(Ti_neu(x,1));
            end
        end
    end
        

xlswrite('Thermisches_Gebaeudemodell.xlsx',Daten,'Berechnung','A2:W35040')
                   
end

