Eclipse SUMO - Simulation of Urban MObility
HelpersMMPEVEM.cpp File Reference
Include dependency graph for HelpersMMPEVEM.cpp:

Go to the source code of this file.

Functions

bool calcPowerConsumption (double m, double r_wheel, double Theta, double c_rr, double c_d, double A_front, double i_gear, double eta_gear, double M_max, double P_max, double M_recup_max, double P_recup_max, double R_battery, double U_battery_0, double P_const, const CharacteristicMap &ref_powerLossMap, double dt, double v, double a, double alpha, double &ref_powerConsumption)
 Compute the power consumption of an EV powertrain in a certain state. More...
 

Detailed Description

Function Documentation

◆ calcPowerConsumption()

bool calcPowerConsumption ( double  m,
double  r_wheel,
double  Theta,
double  c_rr,
double  c_d,
double  A_front,
double  i_gear,
double  eta_gear,
double  M_max,
double  P_max,
double  M_recup_max,
double  P_recup_max,
double  R_battery,
double  U_battery_0,
double  P_const,
const CharacteristicMap ref_powerLossMap,
double  dt,
double  v,
double  a,
double  alpha,
double &  ref_powerConsumption 
)

Compute the power consumption of an EV powertrain in a certain state.

The model assumes that the driver recuperates as much energy as possible, meaning that he perfectly employs the mechanical brakes such that only what lies beyond the motor's capabilities is dissipated. If the new state is invalid, that is the demanded acceleration exceeds what the electric motor can manage or the power loss map is not defined for a given point, the torque and/or power are capped to the motor's limits or the power loss is set to zero.

Parameters
[in]mVehicle mass [kg]
[in]r_wheelWheel radius [m]
[in]ThetaMoment of inertia [kg*m^2]
[in]c_rrRolling resistance coefficient [1]
[in]c_dDrag coefficient [1]
[in]A_frontCross-sectional area of the front of the car [m^2]
[in]i_gearGear ratio (i_gear = n_motor/n_wheel) [1]
[in]eta_gearGear efficiency [1]
[in]M_maxMaximum torque of the EM [Nm]
[in]P_maxMaximum power of the EM [W]
[in]M_recup_maxMaximum recuperation torque [Nm]
[in]P_recup_maxMaximum recuperation power [W]
[in]R_batteryInternal battery resistance [Ohm]
[in]U_battery_0Nominal battery voltage [V]
[in]P_constConstant power consumption of ancillary devices [W]
[in]ref_powerLossMapPower loss map of the EM + inverter
[in]dtSimulation timestep [s]
[in]vVehicle speed at the end of a timestep [m/s]
[in]aConstant acceleration during a timestep [m/s^2]
[in]alphaConstant incline during a timestep [deg]
[out]ref_powerConsumptionPower consumption during the last timestep [W]
Returns
true if the new state is valid, else false

Definition at line 72 of file HelpersMMPEVEM.cpp.

References DEG2RAD, CharacteristicMap::eval(), GRAVITY, and M_PI.

Referenced by HelpersMMPEVEM::compute().

Here is the caller graph for this function: