Routing and Infrastructure simulation for Shared Electric vehicles (RISE) is an agent-based model that efficiently routes vehicles in an electric fleet to serve demand and charge. It can be used to estimate the minimum requirements for charging infrastructure, battery range, and fleet size given demand for trips, as well as compare the cost of electrification under different scenarios.
[ ] Service NearestCharger
RegisterCharger(charger)
[ ] Charger Object
How big are charegers?
What are their capacities?
[ ] Agent Object
[ ] Dispatcher
[ ] Initialization
Read GTFS
Build RouteInfoModule
Pass RouteInfoModule to RoutingService
Set up bus agents
Set up charger agents
Register RouteInfoModule with NearestCharger service
Register chargers with NearestCharger service
Add initial trips to PriorityQueue
while PriorityQueue is not empty:
get Event from Queue
Event has a car in it
Call to Dispatcher
do stuff with car
Add Event(s) to queue
Main Loop
Trip queue
Trip assigner
Managing and dispatching agents
Output results
This is just stream-of-conciousness notes from our last meeting. I'll be using this to create issues and place them in the project kanban.
Story definition:
Basic variables we'll want to track:
Run for EV buses
Run for ICE buses
These should be defined in a yml/json file that can be read in.
[x] TripInfo function Get your GTFS Data - Download this from http://transitfeeds.com/p/actv/630 or any other source Massage GTFS Data return RouteInfoModule
[x] BaseClass RoutingService( #6) Provides Optimal routes and travel times between origin and destination
[ ] Specialization ODMatrix:RoutingService Specialization
[ ] Create Origin-Destination Matrix
Use GTFS data for cities Use for intracity buses
[ ] Service NearestCharger RegisterCharger(charger)
[ ] Charger Object How big are charegers? What are their capacities?
[ ] Agent Object
[ ] Dispatcher
[ ] Initialization Read GTFS Build RouteInfoModule Pass RouteInfoModule to RoutingService Set up bus agents Set up charger agents Register RouteInfoModule with NearestCharger service Register chargers with NearestCharger service Add initial trips to PriorityQueue
while PriorityQueue is not empty: get Event from Queue Event has a car in it Call to Dispatcher do stuff with car Add Event(s) to queue
Main Loop
Trip queue Trip assigner Managing and dispatching agents Output results