Commit daaece0b authored by Maxime Vernhet's avatar Maxime Vernhet
Browse files

nouveaux critères

parent 375e0dc2
......@@ -18,6 +18,16 @@ h_lim_2 = 11.5 #heure a partir de laquelle on charge plus
nbr_limit_car_5 = 6
nbr_limit_car_6 = 8
tot_charge = 0
for car in cars:
tot_charge+= car.load
def compte_car(x):
res = 0
for car in cars:
if car.load_fourni/car.load >= x/100:
res+=1
return int(res)
def divise_pas(A,k): #Prend un tableau/liste et divise le pas par k en augmentant le nombre de valeurs du tableau
n = len(A)
......@@ -52,10 +62,10 @@ array_puiss_voitures = np.zeros(len(array_puissance_batiment)) #Consommation des
array_puiss_voitures_étalé = np.zeros(len(array_puissance_batiment)) #Consommation des voitures cas2
for car in cars: #Crée un tableau de consommation des véhicules électriques dans le cas1
for i in range(dis_arrival(car), dis_arrival(car) + nbValues(car)*step):
array_puiss_voitures[i] += puiss_charge_1 #On ajoute Pcharge à la conso des voitures tant que la voiture est pas chargée
array_puiss_voitures[i] += puiss_charge_1 #On ajoute Pcharge à la conso des voitures tant que la voiture est pas chargée
for car in cars: #Crée un tableau de consommation des véhicules électriques dans le cas2
puiss_charge_étalé = 60 * car.load /(dis_departure(car)-60-dis_arrival(car))
......@@ -98,6 +108,15 @@ for i in range(nbr_limit_car):
for i in range(nbr_limit_car,len(cars)):
if ordre_recharge.index(i) not in en_charge_3:
en_attente_3.append(ordre_recharge.index(i))
array_pourc_max_3 = np.zeros(len(array_temps))
array_pourc_min_3 = np.zeros(len(array_temps))
array_pourc_tot_3 = np.zeros(len(array_temps))
array_sup25_3 = np.zeros(len(array_temps))
array_sup50_3 = np.zeros(len(array_temps))
array_sup100_3 = np.zeros(len(array_temps))
max_3 = ordre_recharge.index(0)
min_3 = ordre_recharge.index(len(cars)-1)
for i in range(len(array_temps)):
for car in cars:
......@@ -105,13 +124,19 @@ for i in range(len(array_temps)):
if array_temps[i]*60 >= dis_arrival(car):
if car.load_fourni < car.load: #on regarde l'énergie fournie à la voiture pour savoir quand changer
array_voitures_3[i]+= puiss_charge_1
car.load_fourni+= puiss_charge_1*1/60
car.load_fourni+= puiss_charge_1*1/60
else:
en_charge_3.remove(car.id)
if len(en_attente_3)>0:
en_charge_3.append(en_attente_3[0])
en_attente_3.pop(0)
array_pourc_max_3[i] = cars[max_3].load_fourni/cars[max_3].load
array_pourc_min_3[i] = cars[min_3].load_fourni/cars[min_3].load
array_sup25_3[i] = compte_car(25)
array_sup50_3[i] = compte_car(50)
array_sup100_3[i] = compte_car(100)
en_charge_4 = [] #indices des x voitures à recharger en premier
en_attente_4 = [] #indices dans l'ordre des x voitures en attente
......@@ -120,6 +145,15 @@ array_voitures_4 = np.zeros(len(array_puissance_batiment))
for car in cars:
car.load_fourni = 0 #On doit remettre à zéro pour étudier les autres cas
array_pourc_max_4 = np.zeros(len(array_temps))
array_pourc_min_4 = np.zeros(len(array_temps))
array_pourc_tot_4 = np.zeros(len(array_temps))
array_sup25_4 = np.zeros(len(array_temps))
array_sup50_4 = np.zeros(len(array_temps))
array_sup100_4 = np.zeros(len(array_temps))
max_4 = ordre_recharge.index(0)
min_4 = ordre_recharge.index(len(cars)-1)
for i in range(len(array_temps)):
if array_temps[i]< h_lim_2 and array_temps[i]> h_lim_1: #avant h_lim_2, on charge x voitures en même temps au max
......@@ -164,13 +198,26 @@ for i in range(len(array_temps)):
if len(en_attente_4)>0:
en_charge_4.append(en_attente_4[0])
en_attente_4.pop(0)
array_pourc_max_4[i] = cars[max_4].load_fourni/cars[max_4].load
array_pourc_min_4[i] = cars[min_4].load_fourni/cars[min_4].load
array_sup25_4[i] = compte_car(25)
array_sup50_4[i] = compte_car(50)
array_sup100_4[i] = compte_car(100)
en_charge_5 = [] #indices des x voitures à recharger en premier après la demi charge
en_attente_5 = [] #indices dans l'ordre des x voitures en attente
array_voitures_5 = np.zeros(len(array_puissance_batiment))
array_load = np.zeros(len(cars))
array_pourc_max_5 = np.zeros(len(array_temps))
array_pourc_min_5 = np.zeros(len(array_temps))
array_pourc_tot_5 = np.zeros(len(array_temps))
array_sup25_5 = np.zeros(len(array_temps))
array_sup50_5 = np.zeros(len(array_temps))
array_sup100_5 = np.zeros(len(array_temps))
max_5 = ordre_recharge.index(0)
min_5 = ordre_recharge.index(len(cars)-1)
for car in cars:
......@@ -188,11 +235,11 @@ t_mid = int(t_mid/2)
for i in range (len(array_temps)):
if len(en_charge_5)==0:
for i in range(nbr_limit_car_5):
en_charge_5.append(ordre_recharge.index(i))
for i in range(nbr_limit_car_5,len(cars)):
if ordre_recharge.index(i) not in en_charge_5:
en_attente_5.append(ordre_recharge.index(i))
for j in range(nbr_limit_car_5):
en_charge_5.append(ordre_recharge.index(j))
for j in range(nbr_limit_car_5,len(cars)):
if ordre_recharge.index(j) not in en_charge_5:
en_attente_5.append(ordre_recharge.index(j))
if array_temps[i]*60 <= t_arriv + t_mid:
for car in cars:
......@@ -213,6 +260,14 @@ for i in range (len(array_temps)):
en_charge_5.append(en_attente_5[0])
en_attente_5.pop(0)
array_pourc_max_5[i] = cars[max_5].load_fourni/cars[max_5].load
array_pourc_min_5[i] = cars[min_5].load_fourni/cars[min_5].load
array_sup25_5[i] = compte_car(25)
array_sup50_5[i] = compte_car(50)
array_sup100_5[i] = compte_car(100)
en_charge_6 = [] #indices des x voitures à recharger en premier après la demi charge
en_attente_6 = [] #indices dans l'ordre des x voitures en attente
......@@ -221,6 +276,15 @@ array_load = np.zeros(len(cars))
moitié_1 = [] #on recharge une première moitié à p_min jusqu'a 25% de recharge, pareil avec l'autre moitié, puis on continue
moitié_2 = []
array_pourc_max_6 = np.zeros(len(array_temps))
array_pourc_min_6 = np.zeros(len(array_temps))
array_pourc_tot_6 = np.zeros(len(array_temps))
array_sup25_6 = np.zeros(len(array_temps))
array_sup50_6 = np.zeros(len(array_temps))
array_sup100_6 = np.zeros(len(array_temps))
max_6 = ordre_recharge.index(0)
min_6 = ordre_recharge.index(len(cars)-1)
for car in cars:
car.load_fourni = 0
......@@ -255,11 +319,11 @@ t_mid_2 = int(t_mid_2/4)
for i in range(len(array_temps)):
if len(en_charge_6)==0:
for i in range(nbr_limit_car_6):
en_charge_6.append(ordre_recharge.index(i))
for i in range(nbr_limit_car_6,len(cars)):
if ordre_recharge.index(i) not in en_charge_6:
en_attente_6.append(ordre_recharge.index(i))
for j in range(nbr_limit_car_6):
en_charge_6.append(ordre_recharge.index(j))
for j in range(nbr_limit_car_6,len(cars)):
if ordre_recharge.index(j) not in en_charge_6:
en_attente_6.append(ordre_recharge.index(j))
if array_temps[i]*60 <= t_arriv_1 + t_mid_1:
for car in cars:
......@@ -288,7 +352,12 @@ for i in range(len(array_temps)):
if len(en_attente_6)>0:
en_charge_6.append(en_attente_6[0])
en_attente_6.pop(0)
array_pourc_max_6[i] = cars[max_6].load_fourni/cars[max_6].load
array_pourc_min_6[i] = cars[min_6].load_fourni/cars[min_6].load
array_sup25_6[i] = compte_car(25)
array_sup50_6[i] = compte_car(50)
array_sup100_6[i] = compte_car(100)
array_conso_totale_1 = array_puissance_batiment + array_puiss_voitures #Consommation totale dans le cas 1
......@@ -320,8 +389,8 @@ plt.ylabel("Consommation énergétique (W)")
plt.legend()
plt.title("Cas 1")
plt.show()
"""
"""
plt.subplot(212) #Tracé du cas 2
plt.plot(array_temps,array_puissance_batiment,'--',label='Consommation du bâtiment')
plt.plot(array_temps,array_prod_solaire,'--',label='Production panneau solaires')
......@@ -348,6 +417,28 @@ plt.legend()
plt.title("Cas 3")
plt.show()
"""
plt.subplot(211)
plt.plot(array_temps,array_sup25_3, label=">25")
plt.plot(array_temps,array_sup50_3, label=">50")
plt.plot(array_temps,array_sup100_3, label=">100")
plt.xlabel("Temps (h)")
plt.ylabel("Nombre de voitures")
plt.legend()
plt.title("Cas 3")
plt.grid()
plt.subplot(212)
plt.plot(array_temps,array_pourc_max_3,"--",label="Voiture la plus chargée")
plt.plot(array_temps,array_pourc_min_3,label="Voiture la moins chargée")
plt.xlabel("Temps (h)")
plt.ylabel("Pourcentage de la charge fournie")
plt.legend()
plt.title("Cas 3")
plt.grid()
plt.show()
"""
plt.plot(array_temps,array_puissance_batiment,'--',label='Consommation du bâtiment')
plt.plot(array_temps,array_prod_solaire,'--',label='Production panneau solaires')
......@@ -362,6 +453,29 @@ plt.legend()
plt.title("Cas 4")
plt.show()
"""
plt.subplot(211)
plt.plot(array_temps,array_sup25_4, label=">25")
plt.plot(array_temps,array_sup50_4, label=">50")
plt.plot(array_temps,array_sup100_4, label=">100")
plt.xlabel("Temps (h)")
plt.ylabel("Nombre de voitures")
plt.legend()
plt.title("Cas 4")
plt.grid()
plt.subplot(212)
plt.plot(array_temps,array_pourc_max_4,"--",label="Voiture la plus chargée")
plt.plot(array_temps,array_pourc_min_4,label="Voiture la moins chargée")
plt.xlabel("Temps (h)")
plt.ylabel("Pourcentage de la charge fournie")
plt.legend()
plt.title("Cas 4")
plt.grid()
plt.show()
"""
plt.plot(array_temps,array_puissance_batiment,'--',label='Consommation du bâtiment')
plt.plot(array_temps,array_prod_solaire,'--',label='Production panneau solaires')
......@@ -377,18 +491,61 @@ plt.title("Cas 5")
plt.show()
"""
plt.subplot(211)
plt.plot(array_temps,array_sup25_5, label=">25")
plt.plot(array_temps,array_sup50_5, label=">50")
plt.plot(array_temps,array_sup100_5, label=">100")
plt.xlabel("Temps (h)")
plt.ylabel("Nombre de voitures")
plt.legend()
plt.title("Cas 5")
plt.grid()
plt.subplot(212)
plt.plot(array_temps,array_pourc_max_5,"--",label="Voiture la plus chargée")
plt.plot(array_temps,array_pourc_min_5,label="Voiture la moins chargée")
plt.xlabel("Temps (h)")
plt.ylabel("Pourcentage de la charge fournie")
plt.legend()
plt.title("Cas 5")
plt.grid()
plt.show()
"""
plt.plot(array_temps,array_puissance_batiment,'--',label='Consommation du bâtiment')
plt.plot(array_temps,array_prod_solaire,'--',label='Production panneau solaires')
plt.plot(array_temps,array_voitures_6,'--',label='Consommation des véhicules')
plt.plot(array_temps,array_conso_totale_6,'--',label='Consommation totale ')
plt.plot(array_temps,array_puissance_soutirée_6,label='Puissance soutirée au fournisseur')
plt.xlabel("Temps (h)")
plt.ylabel("Consommation énergétique (W)")
plt.legend()
plt.title("Cas 6")
plt.show()
"""
plt.subplot(211)
plt.plot(array_temps,array_sup25_6, label=">25")
plt.plot(array_temps,array_sup50_6, label=">50")
plt.plot(array_temps,array_sup100_6, label=">100")
plt.xlabel("Temps (h)")
plt.ylabel("Consommation énergétique (W)")
plt.ylabel("Nombre de voitures")
plt.legend()
plt.title("Cas 6")
plt.grid()
plt.subplot(212)
plt.plot(array_temps,array_pourc_max_6,"--",label="Voiture la plus chargée")
plt.plot(array_temps,array_pourc_min_6,label="Voiture la moins chargée")
plt.xlabel("Temps (h)")
plt.ylabel("Pourcentage de la charge fournie")
plt.legend()
plt.title("Cas 6")
plt.grid()
plt.show()
def delta_puiss(A):
......@@ -415,4 +572,53 @@ print("Delta peak 4 : " + str(int(delta_peak(array_puissance_batiment-array_prod
print("Delta peak 5 : " + str(int(delta_peak(array_puissance_batiment-array_prod_solaire,array_puissance_soutirée_5))) + " W")
print("Delta peak 6 : " + str(int(delta_peak(array_puissance_batiment-array_prod_solaire,array_puissance_soutirée_6))) + " W")
nbr_cas=6
array_cas = np.zeros(nbr_cas)
array_delta_puiss = np.zeros(nbr_cas)
array_delta_peak = np.zeros(nbr_cas)
array_max_puiss = np.zeros(nbr_cas)
for i in range(nbr_cas):
array_cas[i] = i+1
array_delta_puiss[0] = int(delta_puiss(array_puissance_soutirée_1))
array_delta_puiss[1] = int(delta_puiss(array_puissance_soutirée_étalée))
array_delta_puiss[2] = int(delta_puiss(array_puissance_soutirée_3))
array_delta_puiss[3] = int(delta_puiss(array_puissance_soutirée_4))
array_delta_puiss[4] = int(delta_puiss(array_puissance_soutirée_5))
array_delta_puiss[5] = int(delta_puiss(array_puissance_soutirée_6))
array_delta_peak[0] = int(delta_peak(array_puissance_batiment-array_prod_solaire,array_puissance_soutirée_1))
array_delta_peak[1] = int(delta_peak(array_puissance_batiment-array_prod_solaire,array_puissance_soutirée_étalée))
array_delta_peak[2] = int(delta_peak(array_puissance_batiment-array_prod_solaire,array_puissance_soutirée_3))
array_delta_peak[3] = int(delta_peak(array_puissance_batiment-array_prod_solaire,array_puissance_soutirée_4))
array_delta_peak[4] = int(delta_peak(array_puissance_batiment-array_prod_solaire,array_puissance_soutirée_5))
array_delta_peak[5] = int(delta_peak(array_puissance_batiment-array_prod_solaire,array_puissance_soutirée_6))
array_max_puiss[0] = int(max(array_puissance_soutirée_1))
array_max_puiss[1] = int(max(array_puissance_soutirée_étalée))
array_max_puiss[2] = int(max(array_puissance_soutirée_3))
array_max_puiss[3] = int(max(array_puissance_soutirée_4))
array_max_puiss[4] = int(max(array_puissance_soutirée_5))
array_max_puiss[5] = int(max(array_puissance_soutirée_6))
"""
plt.subplot(211)
plt.plot(array_cas, array_delta_puiss,label="Delta puissance")
plt.plot(array_cas,array_max_puiss, label="Consommation crête")
plt.grid()
plt.xlabel("Cas n°")
plt.ylabel("Puissance (W)")
plt.legend()
plt.title("Evolution de delta_puiss et de la puissance crête pour les différents cas ")
plt.subplot(212)
plt.plot(array_cas, array_delta_peak)
plt.grid()
plt.xlabel("Cas n°")
plt.ylabel("Delta Peak (W)")
plt.legend()
plt.title("Evolution de delta_peak pour les différents cas ")
plt.show()
"""
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment