:py:mod:`eelib.core.devices.ev.ev_model` ======================================== .. py:module:: eelib.core.devices.ev.ev_model .. autoapi-nested-parse:: eELib car models the mobility and charging behavior of EV. The EV's electricity demand is derived from profiles generated by the open-source tool emopby. The model calculates its soc in every step, based on the cars consumption and possible charging power derived from charging station. | Author: elenia@TUBS | Copyright 2024 elenia | This file is part of eELib, which is free software under the terms of the GNU GPL Version 3. Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: eelib.core.devices.ev.ev_model.EV Attributes ~~~~~~~~~~ .. autoapisummary:: eelib.core.devices.ev.ev_model._logger eelib.core.devices.ev.ev_model.TOLERANCE_OVER_UNDER_CHARGED .. py:data:: _logger .. py:data:: TOLERANCE_OVER_UNDER_CHARGED :value: '0.001' .. py:class:: EV(eid: str, start_time: str, file_emobpy: str, step_size: int = 60 * 15, n_steps: int = 1, soc_init: float = 0.5, set_emobpy_val: bool = False, soc_min: float = 0.02, e_max: int = 50000, p_nom_discharge_max: int = -11000, p_nom_charge_max: int = 11000, dcharge_efficiency: float = 0.95, charge_efficiency: float = 0.99) Models an electric vehicle and its change of soc depending on driving and charging. .. py:attribute:: _VALID_PARAMETERS .. py:attribute:: eid .. py:attribute:: start_time .. py:attribute:: step_size :value: '900' .. py:attribute:: timestep :value: '0' .. py:attribute:: p :value: '0' .. py:attribute:: p_cha .. py:attribute:: appearance :value: 'False' .. py:attribute:: signal_prognosis_ev_cs :value: '0' .. py:attribute:: soc :value: '0.5' .. py:attribute:: soc_min :value: '0.02' .. py:attribute:: e_max :value: '50000' .. py:attribute:: e_bat :value: '25000.0' .. py:attribute:: dcharge_efficiency :value: '0.95' .. py:attribute:: charge_efficiency :value: '0.99' .. py:attribute:: p_nom_discharge_max :value: '-11000' .. py:attribute:: p_nom_charge_max :value: '11000' .. py:attribute:: emobpy_data :value: 'None' .. py:method:: get_valid_parameters() -> dict :classmethod: Returns dictionary containing valid parameter types and values. :returns: valid parameters for this model :rtype: dict .. py:method:: _set_emobpy_data(n_steps: int) Collect data from the emobpy pickle file and save it into the model. :param n_steps: number of steps for the simulation :type n_steps: int :raises IndexError: When the time window of the pickle file does not match the simulation window :raises ValueError: when the time resolutions of simulation and pickle file do not match .. py:method:: _check_consumption_capacity() Check whether the consumption during one trip exceeds the batteries limits. This is based on the consumption and charging point profile. Logs an information, when the consumption during one trip exceeds 90% of the battery capacity. :raises ValueError: When the consumption during one trip exceeds the battery capacity. .. py:method:: step(timestep: int, check_energy_limits: bool = True) Performs simulation step of eELib ev model. :param timestep: Current simulation time :type timestep: int :param check_energy_limits: whether energy limits should be checked. This might be relevant for forecasts, where first no charging takes places and hence the energy limits do not need to be checked. Defaults to True. :type check_energy_limits: bool .. py:method:: _check_appearance() Check whether the EV is currently connected to the charging point or not. .. py:method:: _calc_power() Calculate the power at the current timestep within the (dis)charging limits. .. py:method:: _check_energy_within_limit() Check that battery energy limits are not surpassed. .. py:method:: _calc_power_limits() Calculate the maximum (dis)charging power for the ev battery depending on the power limits and the current stored energy.