A dynamic, computation-driven platform for optimizing Electric Vehicle (EV) charging infrastructure and policy planning in localized urban systems.
This repository provides the source code for a novel Digital Twin framework designed to manage the complexities of accelerating EV adoption in urban environments. We advance beyond traditional static models by integrating agent-based decision support with embedded metaheuristic optimization.
Our core contribution is a flexible, computation-driven platform for EV infrastructure planning, with a transferable, modular design.
This project uses GAMA for agent-based simulation and Jupyter Notebook for post-simulation data analysis.
- GAMA Platform 1.9.3
- Python 3.8+ (for data analysis in Jupyter Notebook)
-
Clone the Repository:
git clone https://github.com/dolinh11/EV-Solar-Sim cd EV-Solar-Sim -
GAMA Import:
- Import the cloned
EvSolarSimrepository folder directly into the GAMA Platform workspace.
- Import the cloned
-
Install Python Dependencies:
- Install all required Python packages for data analysis.
-
Data Placement:
- Place all new data files (map, weather data, etc.) into the designated folder:
./includes
- Place all new data files (map, weather data, etc.) into the designated folder:
- To tune the model for a new location, modify the driver behavior in
./models/traffic.gamland charging station configurations in./models/charging_station.gaml.
Attention (Ensure variable names are consistent): The structure remains the same, but you can tune the logic and map to match your localized urban systems.
- Run Simulation:
- Run the main simulation file in the GAMA Platform:
./models/main.gaml
- Run the main simulation file in the GAMA Platform:
- Download Data:
- Download the simulation output data into the dedicated folder:
./res_data
- Download the simulation output data into the dedicated folder:
- Analysis:
- Run the analysis notebook in Jupyter Notebook:
Data Analysis.ipynb
- Run the analysis notebook in Jupyter Notebook:
If you use this framework or data in your research, please cite our corresponding work. We recommend citing the ArXiv preprint first:
