diff --git a/EnergySystem.py b/EnergySystem.py index 408b9ad..cbbd6aa 100644 --- a/EnergySystem.py +++ b/EnergySystem.py @@ -39,7 +39,8 @@ class EnergySystem: total_gen = 0 for index, row in data.iterrows(): time = row['time'] - sunlight_intensity = row['sunlight'] + # sunlight_intensity = row['sunlight'] + pv_yield = row['PV yield[kW/kWp]'] factory_demand = row['demand'] electricity_price = row['buy'] sell_price = row['sell'] @@ -55,7 +56,7 @@ class EnergySystem: soc = self.ess.storage / self.ess.capacity self.hour_stored_2.append(soc) - generated_pv_power = self.pv.capacity * sunlight_intensity # 生成的功率,单位 kW + generated_pv_power = self.pv.capacity * pv_yield# 生成的功率,单位 kW generated_pv_energy = generated_pv_power * time_interval * self.pv.loss # 生成的能量,单位 kWh self.generated += generated_pv_energy # pv生成的能量如果比工厂的需求要大 diff --git a/main.py b/main.py index 1764f13..4c6b341 100644 --- a/main.py +++ b/main.py @@ -1,9 +1,5 @@ #!/usr/bin/env python # coding: utf-8 - -# In[ ]: - - import os import glob import shutil @@ -28,9 +24,6 @@ folder_path = 'plots' clear_folder_make_ess_pv(folder_path) -# In[ ]: - - import matplotlib.pyplot as plt import seaborn as sns import numpy as np @@ -38,10 +31,6 @@ import pandas as pd from EnergySystem import EnergySystem from config import pv_config, grid_config, ess_config - -# In[ ]: - - import json print("Version 0.0.5") @@ -49,9 +38,6 @@ print("Version 0.0.5") with open('config.json', 'r') as f: js_data = json.load(f) - - - time_interval = js_data["time_interval"]["numerator"] / js_data["time_interval"]["denominator"] print(time_interval) @@ -132,9 +118,6 @@ plt.savefig('plots/demand.png') plt.close() -# In[ ]: - - def draw_results(results, filename, title_benefit, annot_benefit=False, figure_size=(10, 10)): df=results df = df.astype(float) @@ -220,10 +203,6 @@ def draw_roi(costs, results, filename, title_roi, days=365, annot_roi=False, fig plt.ylabel('PV Capacity (MW)') plt.savefig(filename) - -# In[ ]: - - def draw_cost(costs, filename, title_cost, annot_cost=False, figure_size=(10, 10)): df = costs df = df.astype(int) @@ -255,9 +234,6 @@ def draw_cost(costs, filename, title_cost, annot_cost=False, figure_size=(10, 10 plt.savefig(filename) -# In[ ]: - - def draw_overload(overload_cnt, filename, title_unmet, annot_unmet=False, figure_size=(10, 10), days=365, granularity=15): df = overload_cnt print(days, granularity) @@ -305,18 +281,10 @@ def draw_overload(overload_cnt, filename, title_unmet, annot_unmet=False, figure plt.ylabel('PV Capacity (MW)') plt.savefig(filename) - -# In[ ]: - - def cal_profit(es: EnergySystem, saved_money, days): profit = saved_money - es.ess.get_cost_per_year() / 365 * days - es.pv.get_cost_per_year() / 365 * days return profit - -# In[ ]: - - def generate_data(pv_capacity, pv_cost_per_kW, pv_lifetime, pv_loss, ess_capacity, ess_cost_per_kW, ess_lifetime, ess_loss, grid_capacity, grid_loss, sell_price, time_interval, data, days): pv = pv_config(capacity=pv_capacity, cost_per_kW=pv_cost_per_kW, @@ -341,9 +309,6 @@ def generate_data(pv_capacity, pv_cost_per_kW, pv_lifetime, pv_loss, ess_capacit return (results, overload_cnt, costs, netto_benefit, gen_energy, energySystem.generated) -# In[ ]: - - months_results = [] months_costs = [] months_overload = [] @@ -434,17 +399,11 @@ draw_overload(overload_cnt=annual_overload, figure_size=figure_size) -# In[ ]: - def save_data(data, filename): data.to_csv(filename+'.csv') data.to_json(filename + '.json') - -# In[ ]: - - if not os.path.isdir('data'): os.makedirs('data') @@ -452,15 +411,8 @@ save_data(annual_result, f'data/{pv_begin}-{pv_end}-{pv_groups}-{ess_begin}-{ess save_data(annual_costs, f'data/{pv_begin}-{pv_end}-{pv_groups}-{ess_begin}-{ess_end}-{ess_groups}-costs') save_data(annual_overload, f'data/{pv_begin}-{pv_end}-{pv_groups}-{ess_begin}-{ess_end}-{ess_groups}-overload_cnt') - -# In[ ]: - - draw_results(annual_result, 'plots/test.png', 'test', False) -# In[ ]: - - draw_roi(annual_costs, annual_nettos, 'plots/annual_roi.png', title_roi, 365, annot_benefit, figure_size)