hoffe ihr könnt mir einen tipp geben, wie ich mein programm richtig zum laufen bringe...
Problem:
gegen Ende des Codes soll in der for-schleife, Daten aus einer Datei entnommen werden. In dieser Datei sind 8760 Werte für die Einstrahlung und die Temperatur enthalten. Das Programm soll nun den 1. Wert aus der Datei nehmen und die dazugehörigen Werte berechnen...dann den 2 Wert Berechnen..usw. bis 8760. Mein Programm macht dies schon richtig, allerdings nur für die Werte 1 bis 24 und dann fängt er wieder mit dem Wert 1. an und wiederholt dies bis zum Ende.
TU= Umgebungstemperatur
Gh=EInstrahlung
Hoffe dass ich es einingermaßen verständlich rübergebracht habe was ich damit meine
Code: Alles auswählen
import numpy as np
##
gl= 10 #geografische Länge für Ulm
gb=48.4 #geografische Breite für Ulm
LK= 4*(15-gl) #gl ist der wert für die geo länge
rho = 0.2 # Albedo
uhrzeit = np.arange(0.,24,1) #uhrzeit = np.arange(0,24,1)
tag = np.arange(1,366)
pi = np.pi
eta_ref= 0.15 #Referenzmodulwirkungsgrad aus Datenbaltt
NOCT= 45 #Nominal operation cell temperature
TEMPKOEFF= 0.004#Temperaturkoeffizient der Leistung vom Moduls
beta = 30 # Neigung des Kollektors
gamma = 0 # Ausrichtung nach Himmelsrichtung
Flaeche1= 15. # Dachflächengröße 100%
tabelle2 = file('tabelle2.csv','w')
tabelle2.write('Tag;Uhrzeit;Gt;Deklination;B-Wert;ET-Wert;WOZ;w;Alpha S;Theta Z;K t; Gdh;Gbh;P_Modul;Temperatur\n')
l_dekl = []
l_B=[]
l_ET = []
l_WOZ = []
l_w = []
l_Theta_Z =[]
l_alphas =[]
l_kt = []
l_m=[]
l_gdh=[]
l_gbh=[]
l_gh=[]
l_tu=[]
l_theta=[]
l_gt=[]
l_tc=[]
l_etamodul=[]
l_pmod=[]
def read_gh(Dateiname):
ta, hgh = np.loadtxt(Dateiname,usecols=[4,8],skiprows=4,unpack=True)
return ta, hgh
TU,Gh = read_gh('Wetterdaten_Deutschland.dat')
def Deklination (tag):
return 23.45*np.sin(((360/365.)*(284.+tag))*(pi/180))
def B (tag):
return 360*((tag-1)/365.)
def ET(b):
return 229.2*(0.000075+0.001868*np.cos(b*(pi/180))-0.032077*np.sin(b*(pi/180))-0.014615*np.cos((2*b)*(pi/180))-0.040849*np.sin((2*b)*(pi/180)))
#anstattt b*(pi/180) np.degrees(b)
def WOZ(uhrzeit,LK, ET, d):
return 60*uhrzeit-LK+ ET
def w(WOZ):
return ((WOZ/60)-12)*15
def Theta_Z(gb,d,w):
return (np.arccos(((np.sin(d*(pi/180)))*(np.sin(gb*(pi/180)))+(np.cos(d*(pi/180)))*(np.cos(gb*(pi/180)))*(np.cos(w*(pi/180)))))*(180/pi))
def ALPHAs(tz):
return 90-tz
def KT(Gh, tag,alphas):
return Gh /(1353*(1+0.033*np.cos(((2*pi*tag)/365)*(pi/180)))*np.sin(alphas*(pi/180)))
def m(KT):
if KT <= 0.22:
return 1-0.09 *KT
elif 0.8 >= KT > 0.22:
return 0.9511- 0.1604*KT + 4.388 *KT**2 - 16.638*KT**3 + 12.336* KT**4
elif KT > 0.8:
return 0.165
def Gdh(m,Gh):return m*Gh
def Gbh(Gh,gdh):return Gh-gdh
def theta(d,gb,beta,gamma,w):
return np.arccos(np.sin(d*(pi/180))*np.sin(gb*(pi/180))*np.cos(beta*(pi/180))-np.sin(d*(pi/180))*np.cos(gb*(pi/180))*np.sin(beta*(pi/180))*np.cos(gamma*(pi/180))+np.cos(d*(pi/180))*np.cos(gb*(pi/180))*np.cos(beta*(pi/180))*np.cos(w*(pi/180))+np.cos(d*(pi/180))*np.sin(gb*(pi/180))*np.sin(beta*(pi/180))*np.cos(gamma*(pi/180))*np.cos(w*(pi/180))+np.cos(d*(pi/180))*np.sin(beta*(pi/180))*np.sin(gamma*(pi/180))*np.sin(w*(pi/180)))*(180/pi)
def Gt(tz,th,gbh,gdh,beta,gh,rho):
return (gbh/np.cos(tz*(pi/180)))*np.cos(th*(pi/180))+gdh*((1+np.cos(beta*(pi/180)))/2)+gh*rho*((1-np.cos(beta*(pi/180)))/2)
def T_C(kt, NOCT, TU):
return (219+832* kt)*((NOCT-20.)/800.)+ TU
def ETA_modul(tc,eta_ref,TEMPKOEFF):
return eta_ref*(1.-TEMPKOEFF*(tc-25.))
def P_Modul(etamodul, gt,Flaeche1):
return etamodul* gt* Flaeche1
def r(s):
return str(s).replace('.',',')
for i,j in enumerate(tag):
d = Deklination(j)
l_dekl.append(d)
b = B(j)
l_B.append(b)
et = ET(b)
l_ET.append(et)
for l,k in enumerate(uhrzeit):
woz = WOZ(k,LK,et, d)
l_WOZ.append(woz)
W = w(woz)
l_w.append(W)
tz = Theta_Z(gb,d,W)
l_Theta_Z.append(tz)
a_s = ALPHAs(tz)
l_alphas.append(a_s)
kt = KT(Gh[l],j,a_s)
l_kt.append(kt)
M= m(kt)
l_m.append(M)
gdh= Gdh(M,Gh[l])
l_gdh.append(gdh)
gbh= Gbh(Gh[l],gdh)
l_gbh.append(gbh)
th = theta(d,gb,beta,gamma,W)
l_theta.append(th)
gt = Gt(tz,th,gbh,gdh,beta,Gh[l],rho)
l_gt.append(gt)
tc= T_C(kt, NOCT, TU[l])
l_tc.append(tc)
etamodul= ETA_modul(tc,eta_ref,TEMPKOEFF)
l_etamodul.append(etamodul)
pm= P_Modul(etamodul,gt,Flaeche1)
l_pmod.append(pm)
tabelle2.write('%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s\n' % (j,r(k),r(gt),r(d),r(b),r(et),r(woz),r(W),r(a_s),r(tz),r(kt),r(gdh),r(gbh),r(pm),r(tc)))
tabelle2.close()