2024-05-04 09:59:27 +02:00
|
|
|
{
|
|
|
|
"cells": [
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
2024-05-06 19:23:42 +02:00
|
|
|
"execution_count": 31,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"import os\n",
|
|
|
|
"import glob\n",
|
|
|
|
"import shutil\n",
|
|
|
|
"\n",
|
|
|
|
"def clear_folder_make_ess_pv(folder_path):\n",
|
|
|
|
" shutil.rmtree(folder_path)\n",
|
|
|
|
" os.makedirs(folder_path)\n",
|
|
|
|
" os.makedirs(os.path.join(folder_path,'ess'))\n",
|
|
|
|
" os.makedirs(os.path.join(folder_path,'pv'))\n",
|
|
|
|
"\n",
|
|
|
|
"folder_path = 'plots'\n",
|
|
|
|
"clear_folder_make_ess_pv(folder_path)"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 32,
|
2024-05-04 09:59:27 +02:00
|
|
|
"metadata": {},
|
2024-05-04 16:35:55 +02:00
|
|
|
"outputs": [],
|
2024-05-04 09:59:27 +02:00
|
|
|
"source": [
|
|
|
|
"import matplotlib.pyplot as plt\n",
|
|
|
|
"import seaborn as sns\n",
|
|
|
|
"import numpy as np\n",
|
|
|
|
"import pandas as pd\n",
|
|
|
|
"from EnergySystem import EnergySystem\n",
|
|
|
|
"from config import pv_config, grid_config, ess_config\n",
|
2024-05-06 19:23:42 +02:00
|
|
|
"figure_size = (10,8)\n"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 33,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
2024-05-04 09:59:27 +02:00
|
|
|
"data = pd.read_csv('combined_data.csv')\n",
|
|
|
|
"time_interval = 15 / 60\n",
|
|
|
|
"\n",
|
|
|
|
"pv_loss = 0.98\n",
|
|
|
|
"pv_cost_per_kW = 200\n",
|
2024-05-06 19:23:42 +02:00
|
|
|
"pv_lifetime = 15\n",
|
2024-05-04 09:59:27 +02:00
|
|
|
"\n",
|
|
|
|
"ess_loss = 0.98\n",
|
|
|
|
"ess_cost_per_kW = 300\n",
|
2024-05-06 19:23:42 +02:00
|
|
|
"ess_lifetime = 8\n",
|
2024-05-04 09:59:27 +02:00
|
|
|
"\n",
|
|
|
|
"grid_loss = 0.98\n",
|
2024-05-06 19:23:42 +02:00
|
|
|
"sell_price = 0.2 #kWh\n",
|
2024-05-04 09:59:27 +02:00
|
|
|
"grid_capacity = 5000 #kWh\n",
|
|
|
|
"\n",
|
2024-05-06 19:23:42 +02:00
|
|
|
"pv_capacities = np.linspace(30000, 50000, 5)\n",
|
|
|
|
"ess_capacities = np.linspace(50000, 100000, 5)\n",
|
|
|
|
"results = pd.DataFrame(index=pv_capacities, columns= ess_capacities)\n",
|
|
|
|
"affords = pd.DataFrame(index=pv_capacities, columns= ess_capacities)\n",
|
|
|
|
"overload_cnt = pd.DataFrame(index=pv_capacities, columns= ess_capacities)\n"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 34,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"hour_demand = []\n",
|
|
|
|
"for index, row in data.iterrows():\n",
|
|
|
|
" time = row['time']\n",
|
|
|
|
" demand = row['demand']\n",
|
|
|
|
" if time.endswith('00'):\n",
|
|
|
|
" hour_demand.append(demand)\n",
|
|
|
|
"plt.figure(figsize=(10,8))\n",
|
|
|
|
"plt.plot(hour_demand)\n",
|
|
|
|
"plt.ylabel('Demand Power / kW')\n",
|
|
|
|
"plt.savefig('plots/demand.png')\n",
|
|
|
|
"plt.close()"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 35,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"def cal_profit(es: EnergySystem, saved_money):\n",
|
|
|
|
" profit = saved_money - es.ess.get_cost_per_year() - es.pv.get_cost_per_year()\n",
|
|
|
|
" return profit"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 36,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"name": "stdout",
|
|
|
|
"output_type": "stream",
|
|
|
|
"text": [
|
|
|
|
"pv_capacity:6000.0\n",
|
|
|
|
"ess_capacity:20000.0\n",
|
|
|
|
"ess_capacity:40000.0\n",
|
|
|
|
"ess_capacity:60000.0\n",
|
|
|
|
"ess_capacity:80000.0\n",
|
|
|
|
"ess_capacity:100000.0\n",
|
|
|
|
"pv_capacity:12000.0\n",
|
|
|
|
"ess_capacity:20000.0\n",
|
|
|
|
"ess_capacity:40000.0\n",
|
|
|
|
"ess_capacity:60000.0\n",
|
|
|
|
"ess_capacity:80000.0\n",
|
|
|
|
"ess_capacity:100000.0\n",
|
|
|
|
"pv_capacity:18000.0\n",
|
|
|
|
"ess_capacity:20000.0\n",
|
|
|
|
"ess_capacity:40000.0\n",
|
|
|
|
"ess_capacity:60000.0\n",
|
|
|
|
"ess_capacity:80000.0\n",
|
|
|
|
"ess_capacity:100000.0\n",
|
|
|
|
"pv_capacity:24000.0\n",
|
|
|
|
"ess_capacity:20000.0\n",
|
|
|
|
"ess_capacity:40000.0\n",
|
|
|
|
"ess_capacity:60000.0\n",
|
|
|
|
"ess_capacity:80000.0\n",
|
|
|
|
"ess_capacity:100000.0\n",
|
|
|
|
"pv_capacity:30000.0\n",
|
|
|
|
"ess_capacity:20000.0\n",
|
|
|
|
"ess_capacity:40000.0\n",
|
|
|
|
"ess_capacity:60000.0\n",
|
|
|
|
"ess_capacity:80000.0\n",
|
|
|
|
"ess_capacity:100000.0\n"
|
|
|
|
]
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
2024-05-04 09:59:27 +02:00
|
|
|
"for pv_capacity in pv_capacities:\n",
|
|
|
|
" print(f\"pv_capacity:{pv_capacity}\")\n",
|
|
|
|
" for ess_capacity in ess_capacities:\n",
|
|
|
|
" print(f\"ess_capacity:{ess_capacity}\")\n",
|
|
|
|
" pv = pv_config(capacity=pv_capacity, \n",
|
|
|
|
" cost_per_kW=pv_cost_per_kW,\n",
|
|
|
|
" lifetime=pv_lifetime, \n",
|
|
|
|
" loss=pv_loss)\n",
|
|
|
|
" ess = ess_config(capacity=ess_capacity, \n",
|
|
|
|
" cost_per_kW=ess_cost_per_kW, \n",
|
|
|
|
" lifetime=ess_lifetime, \n",
|
|
|
|
" loss=ess_loss,\n",
|
|
|
|
" charge_power=ess_capacity,\n",
|
|
|
|
" discharge_power=ess_capacity)\n",
|
|
|
|
" grid = grid_config(capacity=grid_capacity, \n",
|
|
|
|
" grid_loss=grid_loss,\n",
|
|
|
|
" sell_price= sell_price)\n",
|
|
|
|
" energySystem = EnergySystem(pv_type=pv, \n",
|
|
|
|
" ess_type=ess, \n",
|
|
|
|
" grid_type= grid)\n",
|
|
|
|
" benefit = energySystem.simulate(data, time_interval)\n",
|
2024-05-06 19:23:42 +02:00
|
|
|
" results.loc[pv_capacity,ess_capacity] = cal_profit(energySystem, benefit)\n",
|
|
|
|
" affords.loc[pv_capacity,ess_capacity] = energySystem.afford\n",
|
|
|
|
" overload_cnt.loc[pv_capacity,ess_capacity] = energySystem.overload_cnt\n",
|
|
|
|
" pv_generated = energySystem.day_generated\n",
|
|
|
|
" ess_generated = energySystem.hour_stored\n",
|
|
|
|
" ess_generated_2 = energySystem.hour_stored_2\n",
|
|
|
|
" plt.figure(figsize=(10,8));\n",
|
|
|
|
" plt.plot(ess_generated)\n",
|
|
|
|
" plt.xlabel('day #')\n",
|
|
|
|
" plt.ylabel('SoC %')\n",
|
|
|
|
" plt.title(f'14:00 ESS SoC \\n PV cap:{pv_capacity}, ESS cap:{ess_capacity}')\n",
|
|
|
|
" plt.savefig(f'plots/ess/1400-{pv_capacity}-{ess_capacity}.png')\n",
|
|
|
|
" plt.close()\n",
|
|
|
|
" plt.figure(figsize=(10,8));\n",
|
|
|
|
" plt.plot(ess_generated_2)\n",
|
2024-05-04 16:35:55 +02:00
|
|
|
" plt.xlabel('day #')\n",
|
2024-05-06 19:23:42 +02:00
|
|
|
" plt.ylabel('SoC%')\n",
|
|
|
|
" plt.title(f'08:00 ESS SoC \\n PV cap:{pv_capacity}, ESS cap:{ess_capacity}')\n",
|
|
|
|
" plt.savefig(f'plots/ess/0800-{pv_capacity}-{ess_capacity}.png')\n",
|
|
|
|
" plt.close()\n",
|
|
|
|
"\n",
|
|
|
|
" spring_week_start = energySystem.season_start\n",
|
|
|
|
" spring_week_end = spring_week_start + energySystem.week_length\n",
|
|
|
|
" summer_week_start = energySystem.season_start + 1 * energySystem.season_step\n",
|
|
|
|
" summer_week_end = summer_week_start + energySystem.week_length\n",
|
|
|
|
" autumn_week_start = energySystem.season_start + 2 * energySystem.season_step\n",
|
|
|
|
" autumn_week_end = autumn_week_start + energySystem.week_length\n",
|
|
|
|
" winter_week_start = energySystem.season_start + 3 * energySystem.season_step\n",
|
|
|
|
" winter_week_end = winter_week_start+ energySystem.week_length\n",
|
|
|
|
"\n",
|
|
|
|
" spring_consume_data = []\n",
|
|
|
|
" summer_consume_data = []\n",
|
|
|
|
" autumn_consume_data = []\n",
|
|
|
|
" winter_consume_data = []\n",
|
|
|
|
" for index, row in data.iterrows():\n",
|
|
|
|
" if index in range(spring_week_start, spring_week_end):\n",
|
|
|
|
" spring_consume_data.append(row['demand'])\n",
|
|
|
|
" elif index in range(summer_week_start, summer_week_end):\n",
|
|
|
|
" summer_consume_data.append(row['demand'])\n",
|
|
|
|
" elif index in range(autumn_week_start, autumn_week_end):\n",
|
|
|
|
" autumn_consume_data.append(row['demand'])\n",
|
|
|
|
" elif index in range(winter_week_start, winter_week_end):\n",
|
|
|
|
" winter_consume_data.append(row['demand'])\n",
|
|
|
|
"\n",
|
|
|
|
" spring_week_time = list(range(spring_week_start, spring_week_end))\n",
|
|
|
|
" summer_week_time = list(range(summer_week_start, summer_week_end))\n",
|
|
|
|
" autumn_week_time = list(range(autumn_week_start, autumn_week_end))\n",
|
|
|
|
" winter_week_time = list(range(winter_week_start, winter_week_end))\n",
|
|
|
|
"\n",
|
|
|
|
" spring_pv_generated = energySystem.spring_week_gen\n",
|
|
|
|
" summer_pv_generated = energySystem.summer_week_gen\n",
|
|
|
|
" autumn_pv_generated = energySystem.autumn_week_gen\n",
|
|
|
|
" winter_pv_generated = energySystem.winter_week_gen\n",
|
|
|
|
"\n",
|
|
|
|
" plt.plot(spring_week_time, spring_pv_generated, label = 'pv generation')\n",
|
|
|
|
" plt.plot(spring_week_time, spring_consume_data, label = 'factory consume')\n",
|
|
|
|
" plt.ylabel('Power / kW')\n",
|
|
|
|
" plt.xlabel('15 min #')\n",
|
|
|
|
" plt.title(f'ess: {energySystem.ess.capacity/1000 } MWh pv: {energySystem.pv.capacity/1000 } MW spring week generate condition')\n",
|
|
|
|
" plt.legend()\n",
|
|
|
|
" plt.savefig(f'plots/{energySystem.ess.capacity}-{energySystem.pv.capacity}-spring.png')\n",
|
|
|
|
" plt.close()\n",
|
|
|
|
"\n",
|
|
|
|
" plt.plot(summer_week_time, summer_pv_generated, label = 'pv generation')\n",
|
|
|
|
" plt.plot(summer_week_time, summer_consume_data, label = 'factory consume')\n",
|
|
|
|
" plt.ylabel('Power / kW')\n",
|
|
|
|
" plt.xlabel('15 min #')\n",
|
|
|
|
" plt.title(f'ess: {energySystem.ess.capacity/1000 } MWh pv: {energySystem.pv.capacity/1000 } MW summer week generate condition')\n",
|
|
|
|
" plt.legend()\n",
|
|
|
|
" plt.savefig(f'plots/{energySystem.ess.capacity}-{energySystem.pv.capacity}-summer.png')\n",
|
|
|
|
" plt.close()\n",
|
|
|
|
"\n",
|
|
|
|
" plt.plot(autumn_week_time, autumn_pv_generated, label = 'pv generation')\n",
|
|
|
|
" plt.plot(autumn_week_time, autumn_consume_data, label = 'factory consume')\n",
|
|
|
|
" plt.ylabel('Power / kW')\n",
|
|
|
|
" plt.xlabel('15 min #')\n",
|
|
|
|
" plt.title(f'ess: {energySystem.ess.capacity/1000 } MWh pv: {energySystem.pv.capacity/1000 } MW autumn week generate condition')\n",
|
|
|
|
" plt.legend()\n",
|
|
|
|
" plt.savefig(f'plots/{energySystem.ess.capacity}-{energySystem.pv.capacity}-autumn.png')\n",
|
|
|
|
" plt.close()\n",
|
|
|
|
"\n",
|
|
|
|
" plt.plot(winter_week_time, winter_pv_generated, label = 'pv generation')\n",
|
|
|
|
" plt.plot(winter_week_time, winter_consume_data, label = 'factory consume')\n",
|
|
|
|
" plt.ylabel('Power / kW')\n",
|
|
|
|
" plt.xlabel('15 min #')\n",
|
|
|
|
" plt.title(f'ess: {energySystem.ess.capacity/1000 } MWh pv: {energySystem.pv.capacity/1000 } MW winter week generate condition')\n",
|
|
|
|
" plt.legend()\n",
|
|
|
|
" plt.savefig(f'plots/{energySystem.ess.capacity}-{energySystem.pv.capacity}-winter.png')\n",
|
|
|
|
" plt.close()\n",
|
|
|
|
"\n",
|
|
|
|
" plt.figure();\n",
|
|
|
|
" plt.plot(pv_generated)\n",
|
|
|
|
" plt.xlabel('day #')\n",
|
|
|
|
" plt.ylabel('Electricity kWh')\n",
|
|
|
|
" plt.title(f'PV generated pv cap:{pv_capacity}, ess cap:{ess_capacity}')\n",
|
|
|
|
" plt.savefig(f'plots/pv/{pv_capacity}-{ess_capacity}.png')\n",
|
|
|
|
" plt.close()\n",
|
|
|
|
"\n",
|
|
|
|
"\n",
|
2024-05-04 16:35:55 +02:00
|
|
|
" # plt.show()\n",
|
|
|
|
"\n",
|
2024-05-06 19:23:42 +02:00
|
|
|
"\n",
|
2024-05-04 16:35:55 +02:00
|
|
|
" \n",
|
|
|
|
"\n",
|
|
|
|
"# results = results.astype(float)\n",
|
2024-05-04 09:59:27 +02:00
|
|
|
"\n",
|
|
|
|
"\n",
|
|
|
|
"# pv = pv_config(capacity=100000,cost_per_kW=200,lifetime=25,loss=0.95)\n",
|
|
|
|
"# ess = ess_config(capacity=100000,cost_per_kW=300,lifetime=25,loss=0.95,charge_power=100000,discharge_power=100000)\n",
|
|
|
|
"# grid = grid_config(price_schedule=price_schedule, capacity=5000, grid_loss=0.95, sell_price=0.4)\n",
|
|
|
|
"# grid = grid_config(capacity=50000, grid_loss=0.95, sell_price=0.4)\n",
|
|
|
|
"\n",
|
|
|
|
"\n",
|
|
|
|
" # print(benefit)\n"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
2024-05-06 19:23:42 +02:00
|
|
|
"execution_count": 37,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
|
|
|
"text/plain": [
|
|
|
|
"[0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 44.342174850492,\n",
|
|
|
|
" 88.684349700987,\n",
|
|
|
|
" 133.026524551482,\n",
|
|
|
|
" 177.368699401977,\n",
|
|
|
|
" 522.961840445871,\n",
|
|
|
|
" 868.554981489768,\n",
|
|
|
|
" 1214.148122533662,\n",
|
|
|
|
" 1559.741263577559,\n",
|
|
|
|
" 1520.900288840973,\n",
|
|
|
|
" 1482.059314104387,\n",
|
|
|
|
" 1443.218339367804,\n",
|
|
|
|
" 1404.377364631218,\n",
|
|
|
|
" 1709.94874089744,\n",
|
|
|
|
" 2015.520117163662,\n",
|
|
|
|
" 2321.091493429884,\n",
|
|
|
|
" 2626.662869696106,\n",
|
|
|
|
" 2660.4389569179416,\n",
|
|
|
|
" 2694.2150441397807,\n",
|
|
|
|
" 2727.99113136162,\n",
|
|
|
|
" 2761.767218583456,\n",
|
|
|
|
" 2784.772791993816,\n",
|
|
|
|
" 2807.778365404173,\n",
|
|
|
|
" 2830.78393881453,\n",
|
|
|
|
" 2853.789512224887,\n",
|
|
|
|
" 2874.2931532484426,\n",
|
|
|
|
" 2894.796794271996,\n",
|
|
|
|
" 2915.300435295552,\n",
|
|
|
|
" 2935.8040763191084,\n",
|
|
|
|
" 2559.1106952524283,\n",
|
|
|
|
" 2182.417314185751,\n",
|
|
|
|
" 1805.723933119074,\n",
|
|
|
|
" 1429.0305520523968,\n",
|
|
|
|
" 1632.480371018265,\n",
|
|
|
|
" 1835.930189984133,\n",
|
|
|
|
" 2039.3800089500007,\n",
|
|
|
|
" 2242.829827915869,\n",
|
|
|
|
" 1913.0446279646878,\n",
|
|
|
|
" 1583.259428013504,\n",
|
|
|
|
" 1253.4742280623232,\n",
|
|
|
|
" 923.689028111142,\n",
|
|
|
|
" 705.8311297343461,\n",
|
|
|
|
" 487.97323135755,\n",
|
|
|
|
" 270.115332980757,\n",
|
|
|
|
" 52.257434603961,\n",
|
|
|
|
" 39.19307595297,\n",
|
|
|
|
" 26.128717301978998,\n",
|
|
|
|
" 13.064358650988,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 67.47894715430401,\n",
|
|
|
|
" 134.957894308611,\n",
|
|
|
|
" 202.436841462918,\n",
|
|
|
|
" 269.915788617222,\n",
|
|
|
|
" 1326.689312883933,\n",
|
|
|
|
" 2383.462837150644,\n",
|
|
|
|
" 3440.236361417355,\n",
|
|
|
|
" 4497.009885684063,\n",
|
|
|
|
" 5265.316708026522,\n",
|
|
|
|
" 6033.623530368984,\n",
|
|
|
|
" 6801.930352711443,\n",
|
|
|
|
" 7570.237175053902,\n",
|
|
|
|
" 8621.29286847565,\n",
|
|
|
|
" 9672.3485618974,\n",
|
|
|
|
" 10723.404255319147,\n",
|
|
|
|
" 11774.459948740896,\n",
|
|
|
|
" 12267.645742646757,\n",
|
|
|
|
" 12760.831536552621,\n",
|
|
|
|
" 13254.017330458482,\n",
|
|
|
|
" 13747.203124364343,\n",
|
|
|
|
" 13299.601318091207,\n",
|
|
|
|
" 12851.999511818067,\n",
|
|
|
|
" 12404.397705544929,\n",
|
|
|
|
" 11956.795899271794,\n",
|
|
|
|
" 11577.295472112606,\n",
|
|
|
|
" 11197.795044953418,\n",
|
|
|
|
" 10818.29461779423,\n",
|
|
|
|
" 10438.794190635042,\n",
|
|
|
|
" 9966.661242423008,\n",
|
|
|
|
" 9494.528294210975,\n",
|
|
|
|
" 9022.395345998944,\n",
|
|
|
|
" 8550.26239778691,\n",
|
|
|
|
" 7461.433627598552,\n",
|
|
|
|
" 6372.604857410196,\n",
|
|
|
|
" 5283.776087221836,\n",
|
|
|
|
" 4194.9473170334795,\n",
|
|
|
|
" 3475.855335421665,\n",
|
|
|
|
" 2756.763353809851,\n",
|
|
|
|
" 2037.6713721980368,\n",
|
|
|
|
" 1318.579390586223,\n",
|
|
|
|
" 1003.149790488588,\n",
|
|
|
|
" 687.7201903909499,\n",
|
|
|
|
" 372.290590293315,\n",
|
|
|
|
" 56.860990195677005,\n",
|
|
|
|
" 42.645742646757,\n",
|
|
|
|
" 28.430495097837,\n",
|
|
|
|
" 14.215247548916999,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 96.376266221877,\n",
|
|
|
|
" 192.752532443757,\n",
|
|
|
|
" 289.128798665634,\n",
|
|
|
|
" 385.505064887514,\n",
|
|
|
|
" 1589.2793214271169,\n",
|
|
|
|
" 2793.05357796672,\n",
|
|
|
|
" 3996.8278345063263,\n",
|
|
|
|
" 5200.602091045929,\n",
|
|
|
|
" 6076.217403685773,\n",
|
|
|
|
" 6951.832716325617,\n",
|
|
|
|
" 7827.448028965461,\n",
|
|
|
|
" 8703.063341605304,\n",
|
|
|
|
" 9907.957365444854,\n",
|
|
|
|
" 11112.851389284406,\n",
|
|
|
|
" 12317.745413123956,\n",
|
|
|
|
" 13522.639436963505,\n",
|
|
|
|
" 14081.607745819942,\n",
|
|
|
|
" 14640.576054676376,\n",
|
|
|
|
" 15199.544363532808,\n",
|
|
|
|
" 15758.512672389244,\n",
|
|
|
|
" 15631.890484520565,\n",
|
|
|
|
" 15505.268296651886,\n",
|
|
|
|
" 15378.646108783203,\n",
|
|
|
|
" 15252.023920914524,\n",
|
|
|
|
" 14834.933485212152,\n",
|
|
|
|
" 14417.843049509782,\n",
|
|
|
|
" 14000.752613807408,\n",
|
|
|
|
" 13583.66217810504,\n",
|
|
|
|
" 12905.058785240632,\n",
|
|
|
|
" 12226.455392376225,\n",
|
|
|
|
" 11547.851999511815,\n",
|
|
|
|
" 10869.248606647407,\n",
|
|
|
|
" 9910.245718237662,\n",
|
|
|
|
" 8951.242829827914,\n",
|
|
|
|
" 7992.239941418166,\n",
|
|
|
|
" 7033.237053008417,\n",
|
|
|
|
" 5689.02811114275,\n",
|
|
|
|
" 4344.819169277082,\n",
|
|
|
|
" 3000.610227411414,\n",
|
|
|
|
" 1656.401285545746,\n",
|
|
|
|
" 1263.84260200968,\n",
|
|
|
|
" 871.283918473617,\n",
|
|
|
|
" 478.72523493755097,\n",
|
|
|
|
" 86.16655140148801,\n",
|
|
|
|
" 64.624913551116,\n",
|
|
|
|
" 43.083275700744004,\n",
|
|
|
|
" 21.541637850372002,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 30.691387657131,\n",
|
|
|
|
" 61.382775314265004,\n",
|
|
|
|
" 92.074162971399,\n",
|
|
|
|
" 122.765550628533,\n",
|
|
|
|
" 357.217973231355,\n",
|
|
|
|
" 591.67039583418,\n",
|
|
|
|
" 826.122818437002,\n",
|
|
|
|
" 1060.575241039827,\n",
|
|
|
|
" 1190.492656930149,\n",
|
|
|
|
" 1320.410072820468,\n",
|
|
|
|
" 1450.32748871079,\n",
|
|
|
|
" 1580.244904601112,\n",
|
|
|
|
" 1718.3698791749698,\n",
|
|
|
|
" 1856.494853748828,\n",
|
|
|
|
" 1994.6198283226859,\n",
|
|
|
|
" 2132.744802896544,\n",
|
|
|
|
" 2821.630527643299,\n",
|
|
|
|
" 3510.5162523900567,\n",
|
|
|
|
" 4199.401977136812,\n",
|
|
|
|
" 4888.287701883567,\n",
|
|
|
|
" 4453.775273585288,\n",
|
|
|
|
" 4019.2628452870076,\n",
|
|
|
|
" 3584.75041698873,\n",
|
|
|
|
" 3150.237988690449,\n",
|
|
|
|
" 2891.776168585491,\n",
|
|
|
|
" 2633.3143484805328,\n",
|
|
|
|
" 2374.852528375572,\n",
|
|
|
|
" 2116.3907082706137,\n",
|
|
|
|
" 2033.6438712826982,\n",
|
|
|
|
" 1950.8970342947791,\n",
|
|
|
|
" 1868.150197306863,\n",
|
|
|
|
" 1785.403360318944,\n",
|
|
|
|
" 1835.777633131278,\n",
|
|
|
|
" 1886.1519059436152,\n",
|
|
|
|
" 1936.526178755949,\n",
|
|
|
|
" 1986.9004515682832,\n",
|
|
|
|
" 1694.479476018063,\n",
|
|
|
|
" 1402.05850046784,\n",
|
|
|
|
" 1109.637524917617,\n",
|
|
|
|
" 817.216549367397,\n",
|
|
|
|
" 628.141857532239,\n",
|
|
|
|
" 439.067165697081,\n",
|
|
|
|
" 249.99247386192303,\n",
|
|
|
|
" 60.917782026767995,\n",
|
|
|
|
" 45.688336520076,\n",
|
|
|
|
" 30.458891013383997,\n",
|
|
|
|
" 15.229445506691999,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 78.627801960864,\n",
|
|
|
|
" 157.255603921728,\n",
|
|
|
|
" 235.883405882592,\n",
|
|
|
|
" 314.511207843456,\n",
|
|
|
|
" 1421.616289003701,\n",
|
|
|
|
" 2528.721370163946,\n",
|
|
|
|
" 3635.826451324191,\n",
|
|
|
|
" 4742.931532484439,\n",
|
|
|
|
" 5190.31975916358,\n",
|
|
|
|
" 5637.707985842724,\n",
|
|
|
|
" 6085.096212521865,\n",
|
|
|
|
" 6532.484439201005,\n",
|
|
|
|
" 6983.503518978072,\n",
|
|
|
|
" 7434.522598755135,\n",
|
|
|
|
" 7885.541678532198,\n",
|
|
|
|
" 8336.560758309262,\n",
|
|
|
|
" 8360.115536389894,\n",
|
|
|
|
" 8383.670314470524,\n",
|
|
|
|
" 8407.225092551156,\n",
|
|
|
|
" 8430.779870631786,\n",
|
|
|
|
" 8348.887352019849,\n",
|
|
|
|
" 8266.994833407914,\n",
|
|
|
|
" 8185.102314795979,\n",
|
|
|
|
" 8103.209796184044,\n",
|
|
|
|
" 8466.935844758145,\n",
|
|
|
|
" 8830.661893332246,\n",
|
|
|
|
" 9194.387941906347,\n",
|
|
|
|
" 9558.113990480451,\n",
|
|
|
|
" 9651.417761685854,\n",
|
|
|
|
" 9744.721532891255,\n",
|
|
|
|
" 9838.025304096656,\n",
|
|
|
|
" 9931.329075302061,\n",
|
|
|
|
" 9211.047150237988,\n",
|
|
|
|
" 8490.765225173913,\n",
|
|
|
|
" 7770.48330010984,\n",
|
|
|
|
" 7050.2013750457645,\n",
|
|
|
|
" 5721.400675318335,\n",
|
|
|
|
" 4392.5999755909015,\n",
|
|
|
|
" 3063.799275863469,\n",
|
|
|
|
" 1734.998576136039,\n",
|
|
|
|
" 1325.1698466295081,\n",
|
|
|
|
" 915.34111712298,\n",
|
|
|
|
" 505.51238761644896,\n",
|
|
|
|
" 95.683658109921,\n",
|
|
|
|
" 71.76274358244,\n",
|
|
|
|
" 47.841829054959,\n",
|
|
|
|
" 23.920914527478,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 58.011268866194996,\n",
|
|
|
|
" 116.022537732393,\n",
|
|
|
|
" 174.03380659859099,\n",
|
|
|
|
" 232.045075464789,\n",
|
|
|
|
" 963.2409177820259,\n",
|
|
|
|
" 1694.436760099263,\n",
|
|
|
|
" 2425.6326024164996,\n",
|
|
|
|
" 3156.828444733737,\n",
|
|
|
|
" 3208.301126886618,\n",
|
|
|
|
" 3259.773809039502,\n",
|
|
|
|
" 3311.246491192383,\n",
|
|
|
|
" 3362.7191733452637,\n",
|
|
|
|
" 4177.372767584718,\n",
|
|
|
|
" 4992.0263618241715,\n",
|
|
|
|
" 5806.6799560636255,\n",
|
|
|
|
" 6621.333550303077,\n",
|
|
|
|
" 7153.238273463243,\n",
|
|
|
|
" 7685.142996623408,\n",
|
|
|
|
" 8217.047719783572,\n",
|
|
|
|
" 8748.952442943737,\n",
|
|
|
|
" 9280.43000691591,\n",
|
|
|
|
" 9811.907570888085,\n",
|
|
|
|
" 10343.385134860257,\n",
|
|
|
|
" 10874.862698832429,\n",
|
|
|
|
" 10390.128554574669,\n",
|
|
|
|
" 9905.394410316909,\n",
|
|
|
|
" 9420.660266059152,\n",
|
|
|
|
" 8935.92612180139,\n",
|
|
|
|
" 9149.536227167324,\n",
|
|
|
|
" 9363.146332533255,\n",
|
|
|
|
" 9576.756437899188,\n",
|
|
|
|
" 9790.366543265121,\n",
|
|
|
|
" 8137.443553964443,\n",
|
|
|
|
" 6484.520564663763,\n",
|
|
|
|
" 4831.597575363085,\n",
|
|
|
|
" 3178.674586062405,\n",
|
|
|
|
" 2619.578129449572,\n",
|
|
|
|
" 2060.4816728367423,\n",
|
|
|
|
" 1501.385216223912,\n",
|
|
|
|
" 942.288759611079,\n",
|
|
|
|
" 715.235649485373,\n",
|
|
|
|
" 488.182539359667,\n",
|
|
|
|
" 261.129429233961,\n",
|
|
|
|
" 34.076319108251994,\n",
|
|
|
|
" 25.557239331189,\n",
|
|
|
|
" 17.038159554125997,\n",
|
|
|
|
" 8.519079777062998,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 163.046662056057,\n",
|
|
|
|
" 326.093324112117,\n",
|
|
|
|
" 489.13998616817696,\n",
|
|
|
|
" 652.186648224237,\n",
|
|
|
|
" 1975.6539603759,\n",
|
|
|
|
" 3299.12127252756,\n",
|
|
|
|
" 4622.5885846792235,\n",
|
|
|
|
" 5946.055896830882,\n",
|
|
|
|
" 6886.019690004474,\n",
|
|
|
|
" 7825.983483178063,\n",
|
|
|
|
" 8765.947276351653,\n",
|
|
|
|
" 9705.91106952524,\n",
|
|
|
|
" 10967.037549326717,\n",
|
|
|
|
" 12228.164029128186,\n",
|
|
|
|
" 13489.290508929656,\n",
|
|
|
|
" 14750.416988731131,\n",
|
|
|
|
" 15390.545543305803,\n",
|
|
|
|
" 16030.674097880476,\n",
|
|
|
|
" 16670.80265245515,\n",
|
|
|
|
" 17310.931207029822,\n",
|
|
|
|
" 17292.624384687362,\n",
|
|
|
|
" 17274.317562344902,\n",
|
|
|
|
" 17256.010740002443,\n",
|
|
|
|
" 17237.703917659983,\n",
|
|
|
|
" 16844.1072372971,\n",
|
|
|
|
" 16450.510556934216,\n",
|
|
|
|
" 16056.913876571334,\n",
|
|
|
|
" 15663.317196208453,\n",
|
|
|
|
" 14872.767584719904,\n",
|
|
|
|
" 14082.217973231358,\n",
|
|
|
|
" 13291.668361742808,\n",
|
|
|
|
" 12501.11875025426,\n",
|
|
|
|
" 11335.767462674423,\n",
|
|
|
|
" 10170.416175094584,\n",
|
|
|
|
" 9005.064887514747,\n",
|
|
|
|
" 7839.7135999349075,\n",
|
|
|
|
" 6367.417924413162,\n",
|
|
|
|
" 4895.12224889142,\n",
|
|
|
|
" 3422.826573369675,\n",
|
|
|
|
" 1950.5308978479297,\n",
|
|
|
|
" 1492.057585126722,\n",
|
|
|
|
" 1033.584272405514,\n",
|
|
|
|
" 575.110959684309,\n",
|
|
|
|
" 116.637646963101,\n",
|
|
|
|
" 87.478235222325,\n",
|
|
|
|
" 58.318823481548996,\n",
|
|
|
|
" 29.159411740773,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0,\n",
|
|
|
|
" 0.0]"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"execution_count": 37,
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "execute_result"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"energySystem.spring_week_gen"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": null,
|
2024-05-04 09:59:27 +02:00
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
2024-05-06 19:23:42 +02:00
|
|
|
"source": [
|
|
|
|
"\n"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 38,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
|
|
|
"text/plain": [
|
|
|
|
"Text(95.72222222222221, 0.5, 'PV Capacity (MW)')"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"execution_count": 38,
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "execute_result"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"data": {
|
|
|
|
"image/png": "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
|
|
|
|
"text/plain": [
|
|
|
|
"<Figure size 1000x800 with 2 Axes>"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "display_data"
|
|
|
|
}
|
|
|
|
],
|
2024-05-04 09:59:27 +02:00
|
|
|
"source": [
|
|
|
|
"df=results\n",
|
2024-05-04 16:35:55 +02:00
|
|
|
"df = df.astype(float)\n",
|
2024-05-06 19:23:42 +02:00
|
|
|
"df.index = df.index / 1000\n",
|
|
|
|
"df.columns = df.columns / 1000\n",
|
|
|
|
"plt.figure(figsize=figure_size)\n",
|
|
|
|
"sns.heatmap(df/1000, annot=True, fmt=\".1f\", cmap='viridis')\n",
|
|
|
|
"plt.title('Benefit Heatmap Based on PV and ESS Capacities (kEUR/year)')\n",
|
|
|
|
"plt.gca().invert_yaxis()\n",
|
|
|
|
"plt.xlabel('ESS Capacity (MWh)')\n",
|
|
|
|
"plt.ylabel('PV Capacity (MW)')\n"
|
2024-05-04 09:59:27 +02:00
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
2024-05-06 19:23:42 +02:00
|
|
|
"execution_count": 39,
|
2024-05-04 09:59:27 +02:00
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
2024-05-04 16:35:55 +02:00
|
|
|
"text/plain": [
|
2024-05-06 19:23:42 +02:00
|
|
|
"Text(95.72222222222221, 0.5, 'PV Capacity (MW)')"
|
2024-05-04 16:35:55 +02:00
|
|
|
]
|
|
|
|
},
|
2024-05-06 19:23:42 +02:00
|
|
|
"execution_count": 39,
|
2024-05-04 16:35:55 +02:00
|
|
|
"metadata": {},
|
|
|
|
"output_type": "execute_result"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"data": {
|
2024-05-06 19:23:42 +02:00
|
|
|
"image/png": "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
|
2024-05-04 09:59:27 +02:00
|
|
|
"text/plain": [
|
2024-05-06 19:23:42 +02:00
|
|
|
"<Figure size 1000x800 with 2 Axes>"
|
2024-05-04 09:59:27 +02:00
|
|
|
]
|
|
|
|
},
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "display_data"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
2024-05-06 19:23:42 +02:00
|
|
|
"\n",
|
|
|
|
"df = affords\n",
|
|
|
|
"df = df.astype(bool)\n",
|
|
|
|
"df.index = df.index / 1000\n",
|
|
|
|
"df.columns = df.columns / 1000\n",
|
|
|
|
"\n",
|
|
|
|
"plt.figure(figsize=figure_size)\n",
|
|
|
|
"sns.heatmap(df, annot=True, fmt=\".1f\", cmap='viridis')\n",
|
2024-05-04 09:59:27 +02:00
|
|
|
"plt.title('Benefit Heatmap Based on PV and ESS Capacities')\n",
|
|
|
|
"plt.gca().invert_yaxis()\n",
|
|
|
|
"plt.xlabel('ESS Capacity (MWh)')\n",
|
|
|
|
"plt.ylabel('PV Capacity (MW)')\n",
|
2024-05-04 16:35:55 +02:00
|
|
|
"\n",
|
2024-05-04 09:59:27 +02:00
|
|
|
"\n",
|
|
|
|
" # pv = pv_config(capacity=100000,cost_per_kW=200,lifetime=25,loss=0.95)\n",
|
|
|
|
" # ess = ess_config(capacity=100000,cost_per_kW=300,lifetime=25,loss=0.95,charge_power=100000,discharge_power=100000)\n",
|
|
|
|
" # grid = grid_config(price_schedule=price_schedule, capacity=5000, grid_loss=0.95, sell_price=0.4)\n",
|
|
|
|
" # grid = grid_config(capacity=50000, grid_loss=0.95, sell_price=0.4)\n",
|
|
|
|
"\n",
|
|
|
|
"\n",
|
|
|
|
" # print(benefit)"
|
|
|
|
]
|
2024-05-06 19:23:42 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 40,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
|
|
|
"text/plain": [
|
|
|
|
"Text(95.72222222222221, 0.5, 'PV Capacity (MW)')"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"execution_count": 40,
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "execute_result"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"data": {
|
|
|
|
"image/png": "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
|
|
|
|
"text/plain": [
|
|
|
|
"<Figure size 1000x800 with 2 Axes>"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "display_data"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"\n",
|
|
|
|
"df = overload_cnt\n",
|
|
|
|
"df = df.astype(int)\n",
|
|
|
|
"df.index = df.index / 1000\n",
|
|
|
|
"df.columns = df.columns / 1000\n",
|
|
|
|
"\n",
|
|
|
|
"plt.figure(figsize=figure_size)\n",
|
|
|
|
"sns.heatmap(df, annot=True, fmt=\".1f\", cmap='viridis')\n",
|
|
|
|
"plt.title('Number of unmet electricity demands')\n",
|
|
|
|
"plt.gca().invert_yaxis()\n",
|
|
|
|
"plt.xlabel('ESS Capacity (MWh)')\n",
|
|
|
|
"plt.ylabel('PV Capacity (MW)')"
|
|
|
|
]
|
2024-05-04 09:59:27 +02:00
|
|
|
}
|
|
|
|
],
|
|
|
|
"metadata": {
|
|
|
|
"kernelspec": {
|
|
|
|
"display_name": "Python 3",
|
|
|
|
"language": "python",
|
|
|
|
"name": "python3"
|
|
|
|
},
|
|
|
|
"language_info": {
|
|
|
|
"codemirror_mode": {
|
|
|
|
"name": "ipython",
|
|
|
|
"version": 3
|
|
|
|
},
|
|
|
|
"file_extension": ".py",
|
|
|
|
"mimetype": "text/x-python",
|
|
|
|
"name": "python",
|
|
|
|
"nbconvert_exporter": "python",
|
|
|
|
"pygments_lexer": "ipython3",
|
2024-05-04 16:35:55 +02:00
|
|
|
"version": "3.11.9"
|
2024-05-04 09:59:27 +02:00
|
|
|
}
|
|
|
|
},
|
|
|
|
"nbformat": 4,
|
|
|
|
"nbformat_minor": 2
|
|
|
|
}
|