LBNL-UCB-STI / beam

The Framework for Modeling Behavior, Energy, Autonomy, and Mobility in Transportation Systems
https://transportation.lbl.gov/beam
Other
145 stars 57 forks source link

Vehicles Part 2 - Managers and inputs #18

Closed colinsheppard closed 7 years ago

colinsheppard commented 7 years ago

Develop an input file format. For now, let's keep it simple and specify as 2 CSV files, vehicles.csv and vehicle-relations.csv. The vehicles would cover basic properties of each vehicle and the vehicle-relations.csv would assign vehicles to their owners.

Vehicles can only be owned by one VehicleManager, which is an abstract trait inherited by households and fleet managers (which are also BeamAgents). These classes need to be scaffolded as well.

colinsheppard commented 7 years ago

Note that households are defined as a part of MATSim. It would be good to stay consistent with the MATSim houeshold type, but feel free to extend as needed (in the same way we extend the MATSim person to a person agent, which isn't through actually extending a class, but rather we maintain Person Ids and let MATSim load the plans data which generates the population which is passed to AgentSim, let's do the same for households.

dserdyuk commented 7 years ago
id  vehicleTypeName vehicleClassName    electricEnergyConsumptionModelClassname petroleumEnergyConsumptionModelClassname    batteryCapacityInKWh    maxDischargingPowerInKW maxLevel2ChargingPowerInKW  maxLevel3ChargingPowerInKW  gasolineFuelConsumptionRateInJoulesPerMeter compatiblePlugTypesAsSpaceSeparatedText fuelEconomyInKwhPerMile equivalentTestWeight    targetCoefA targetCoefB targetCoefC

I wonder what does compatiblePlugTypesAsSpaceSeparatedText field mean ?

colinsheppard commented 7 years ago

You can ignore that column as well as the "targetCoef" columns and equivalentTestWeight.

colinsheppard commented 7 years ago

See updated UML for resource managers, vehicle managers, and the messages we want them to send to each other... some more design work needs to happen but this is getting closer:

ef01a65f58fa4a9357cd9492106f1d6e3956436b

dserdyuk commented 7 years ago

It's been decided to use MATSim vehicles.xm and household.xmll as base for BeamVehicle data.

colinsheppard commented 7 years ago

Thanks for the first PR.

As a next step, please refactor VehicleLoadExample into VehicleLoader and call from BeamSim during initialization.

Instead of just passing matSimHousehold to the HouseholdActor, please associate the appropriate PersonAgent ActorRefs (these are currently created in BeamSim.resetPop) in the same way you are doing for the BeamVehicleAgents.

Finally, once you've done the above, please think about how to define our ride hailing companies. You might want to take a similar approach and use MATSim taxis classes as the basis, see:

https://github.com/matsim-org/matsim/tree/master/contribs/taxi/src/main/java/org/matsim/contrib/taxi