nrel.hive.model.vehicle.mechatronics.mechatronics_interface

Module Contents

Classes

MechatronicsMixin

MechatronicsInterfaceABC

Interface for creating energy sources

MechatronicsInterface

Interface for creating energy sources

class nrel.hive.model.vehicle.mechatronics.mechatronics_interface.MechatronicsMixin[source]
mechatronics_id: nrel.hive.util.typealiases.MechatronicsId
class nrel.hive.model.vehicle.mechatronics.mechatronics_interface.MechatronicsInterfaceABC[source]

Bases: abc.ABC

Interface for creating energy sources

abstract classmethod from_dict(d: Dict[str, str]) MechatronicsInterface[source]

build from a dictionary

Parameters:

d – the dictionary to build from

Returns:

the built Mechatronics object

abstract valid_charger(charger: nrel.hive.model.energy.charger.Charger) bool[source]

check to see if the mechatronics instance can use a certain charger

Parameters:

charger – the charger to check

Returns:

true/false

abstract initial_energy(percent_full: nrel.hive.util.units.Ratio) immutables.Map[nrel.hive.model.energy.EnergyType, float][source]

construct an initial energy state for a Vehicle

Parameters:

percent_full – the amount of energy in the vehicle

Returns:

the Vehicle.energy at startup

abstract range_remaining_km(vehicle: nrel.hive.model.vehicle.vehicle.Vehicle) nrel.hive.util.units.Kilometers[source]

how much range remains, in kilometers :return:

abstract calc_required_soc(required_range: nrel.hive.util.units.Kilometers) nrel.hive.util.units.Ratio[source]

How much SOC needed to go required_range

abstract fuel_source_soc(vehicle: nrel.hive.model.vehicle.vehicle.Vehicle) nrel.hive.util.units.Ratio[source]

how much battery soc :return:

abstract is_empty(vehicle: nrel.hive.model.vehicle.vehicle.Vehicle) bool[source]

can the vehicle still move? :return:

abstract is_full(vehicle: nrel.hive.model.vehicle.vehicle.Vehicle) bool[source]

is the vehicle full of energy? :return:

abstract consume_energy(vehicle: nrel.hive.model.vehicle.vehicle.Vehicle, route: nrel.hive.model.roadnetwork.route.Route) nrel.hive.model.vehicle.vehicle.Vehicle[source]

consume energy over a route

Parameters:
  • vehicle

  • route

Returns:

the vehicle after moving;

abstract idle(vehicle: nrel.hive.model.vehicle.vehicle.Vehicle, time_seconds: nrel.hive.util.units.Seconds) nrel.hive.model.vehicle.vehicle.Vehicle[source]

idle for a set amount of time

Parameters:
  • vehicle

  • time_seconds

Returns:

abstract add_energy(vehicle: nrel.hive.model.vehicle.vehicle.Vehicle, charger: nrel.hive.model.energy.charger.Charger, time_seconds: nrel.hive.util.units.Seconds) Tuple[nrel.hive.model.vehicle.vehicle.Vehicle, nrel.hive.util.units.Seconds][source]

add energy into the system

Parameters:
  • vehicle

  • charger

  • time_seconds

Returns:

the updated vehicle, along with the time spent charging

class nrel.hive.model.vehicle.mechatronics.mechatronics_interface.MechatronicsInterface[source]

Bases: MechatronicsMixin, MechatronicsInterfaceABC

Interface for creating energy sources