Files
CACER-simulator/CACER_simulator.ipynb
2025-06-16 09:31:15 +02:00

575 lines
11 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### **Import all functions and libraries**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from src.Functions_General import *\n",
"from src.Functions_Energy_Model import *\n",
"from src.Functions_Financial_Model import *\n",
"from src.Functions_Load_Emulator_and_DSM import *"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n",
"---"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## **External inputs to set before to run the simulation**\n",
"\n",
"Before to run the simulation be sure to have set correctly the following input files:\n",
" \n",
"- config.yml [[link yaml](config.yml)]\n",
"\n",
"- users CACER.xlsx [[link excel](users%20CACER.xlsx)]\n",
"\n",
"- inputs_FM.xlsx [[link excel](files/inputs_FM.xlsx)]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n",
"---"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## **Initializing CACER configuration**"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n",
"---"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### **1. Generating the calendar file**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"generate_calendar()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### **2. Generating the yaml and csv files with all the inputs of the CACER configuration**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"initialization_users()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### **3. Generating the emulated load profile of the users**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"flag_last_dict = False # if false we create the appliance start time dictionary; if true we import the last one created (default: False)\n",
"flag_optDSM = False # if true we simulate the optimized DSM case (default: False)\n",
"flag_all_appliance = True # if true we use all appliance for the load profile emulation (default: True)\n",
"flag_daily_activation = True # if false we dont'use a daily usage activation for some specified appliances (only washing machine at the moment, default: True)\n",
"flag_multi_use = True # if true we activate the possibility to have multiple activations for the selected appliances during the day (default: True)\n",
"\n",
"create_emulated_users(flag_last_dict, flag_optDSM, flag_all_appliance, flag_daily_activation, flag_multi_use)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### **4. Generating all load profile of the users (domestic users, commercial users, industrial users, etc.)**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"load_profile_all_users()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### **5. Generating productivity of the photovoltaic generators**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"simulate_configuration_productivity()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### **6. Generating all energy flows of the single users**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"CACER_energy_flows()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n",
"---"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## **Simulate CACER configuration**"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n",
"---"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### **7. Calculate the electricity bills for each user types**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"create_users_bill()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### **8. Setting name and type of the configuration and editing of the incentive repartition**\n",
" "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"case_denomination = \"prova\"\n",
"CACER_type = \"CER\" # CER; AUD; AID; NO_CACER\n",
"repartition_scheme = \"Egualitario\" # Egualitario; Prosumer; PNRR; Equitario; Misto CER; Misto AUC; Misto - ESCo; Social Fund; Misto - Social Fund; Misto - Social Fund 2; Misto - Social Fund PA; Misto - PA; CACER\n",
"\n",
"setting_CACER_scenario(case_denomination, CACER_type, repartition_scheme)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### **9. Calculate CACER energy shared**\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"CACER_shared_energy()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### **10. Calculate energy sold revenues**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"RID_calculation()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### **11. Aggregate bills costs and energy sold revenues for the entire CACER configuration**\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"aggregate_CACER_bills()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"aggregate_CACER_RID()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### **12. Generating the xlsx and csv files with all the financial inputs of the CACER configuration**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"FM_initialization()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### **13. Calculate incentives revenues**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"incentives()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### **14. All the economic cash flows for each users and for each stakeholders are calculated**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"cash_flows_for_all_plants() # plants first..."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"cash_flows_for_all_users() # ...then users..."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### **15. All the economic cash flows are aggregated for the project and for the CACER configuration (<u>for single primary station</u>)**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"aggregate_FM() # ...then configurations!"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### **16.1 The simulation results are organized for the export and for the creation of the report**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"organize_simulation_results_for_reporting()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### **16.2 Creating the report with results**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"%run Reporting.ipynb"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### **16.3 Creating the report with results**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"save_simulation_results(simulation_name = case_denomination)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### **17. Killing all excel processes in background**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"kill_excel_processes()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n",
"---"
]
}
],
"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",
"version": "3.10.11"
},
"orig_nbformat": 4
},
"nbformat": 4,
"nbformat_minor": 2
}