How erc-fhv/open-ev-fleet works
Open-EV-Fleet is a research framework for preparing electric-fleet data, modeling scenarios, and comparing charging simulations and optimization algorithms. A typical workflow converts operational data into fleet tables, constructs a scenario, runs a simulation or optimization, and examines analysis results. The tree and README document MILP, heuristic, greedy/lazy/FCFS/load-balanced simulation, charging scenarios, and VDV452/DIVA conversion; sampled source confirms scenario modeling, IVU conversion, simulation, preprocessing, and load-balancer responsibilities. Some subsystem connections are omitted where excerpts do not establish the caller or data flow.
Main entry points: abstract_infra.py Simulation engine · run_algorithm.py Run scripts · scenario.py Scenario · heuristic_minload.py Min-load heuristic
Components 19
Data conversion
- Input parsers
packages/openevfleet_io/src/openevfleet_io/parser - IVU conversion
packages/openevfleet_io/src/openevfleet_io/model/ivu_data_trans.py - GPS mapping
packages/openevfleet_io/src/openevfleet_io/gps/ivu_data_trans_gps.py
Fleet model
- Scenario
packages/openevfleet/src/openevfleet/system/scenario.py - Fleet tables
packages/openevfleet/src/openevfleet/data_tables/data_table.py - Fleet records
packages/openevfleet/src/openevfleet/data_sets
Simulation and optimization
- MILP preprocessing
packages/openevfleet/src/openevfleet/milp_utils/milp_preprocess.py - Simulation engine
packages/openevfleet/src/openevfleet/simulation/abstract_infra.py - Simulation variants
packages/openevfleet/src/openevfleet/simulation - Min-load heuristic
packages/openevfleet/src/openevfleet/optimization/heuristic_minload.py - MILP objectives
packages/openevfleet/src/openevfleet/optimization - Load balancers
packages/openevfleet/src/openevfleet/load_balancer - Event state
packages/openevfleet/src/openevfleet/state_machine
Analysis results
- Power timetables
packages/openevfleet/src/openevfleet/time_tables - Analysis
packages/openevfleet/src/openevfleet/system/analysis.py
Other components
- Researcher
- Run scripts
packages/openevfleet/scripts/public/run_algorithm.py - IVU data
- X10 files
Connections 22
- Researcher → Run scripts: starts run
- X10 files → Input parsers: parses X10
- IVU data → Input parsers: parses IVU
- Input parsers → IVU conversion: provides tables
- IVU conversion → Fleet tables: creates fleet data
- Fleet tables → Scenario: builds scenario
- Scenario → Fleet records: holds records
- Scenario → Simulation engine: supplies trips
- Run scripts → Scenario: selects scenario
- Run scripts → MILP objectives: selects algorithm
- Run scripts → Simulation variants: selects simulation
- Min-load heuristic → Simulation variants: runs reference simulation
- Min-load heuristic → MILP preprocessing: prepares optimization input
- Simulation engine → Event state: updates events
- Simulation variants → Simulation engine: implements engine
- Simulation engine → Load balancers: requests power allocation
- MILP objectives → MILP preprocessing: prepares MILP input
- MILP objectives → Load balancers: uses load balancing
- Simulation engine → Power timetables: records power results
- Analysis → Power timetables: exposes results
- Min-load heuristic → Analysis: creates analysis
- GPS mapping → IVU conversion: maps IVU locations