Eclipse SUMO - Simulation of Urban MObility
HelpersMMPEVEM.h
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
3 // Copyright (C) 2002-2024 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials are made available under the
5 // terms of the Eclipse Public License 2.0 which is available at
6 // https://www.eclipse.org/legal/epl-2.0/
7 // This Source Code may also be made available under the following Secondary
8 // Licenses when the conditions for such availability set forth in the Eclipse
9 // Public License 2.0 are satisfied: GNU General Public License, version 2
10 // or later which is available at
11 // https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
12 // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
13 /****************************************************************************/
18 // The MMP's emission model for electric vehicles.
19 // If you use this model for academic research, you are highly encouraged to
20 // cite our paper "Accurate physics-based modeling of electric vehicle energy
21 // consumption in the SUMO traffic microsimulator"
22 // (DOI: 10.1109/ITSC48978.2021.9564463).
23 // Teaching and Research Area Mechatronics in Mobile Propulsion (MMP), RWTH Aachen
24 /****************************************************************************/
25 
26 
27 #pragma once
28 
29 
32 
33 #include <map>
34 
35 
36 
37 
44 private:
45  static const int MMPEVEM_BASE = 5 << 16;
46 
47 
48 public:
53 
58  std::string getFuel(const SUMOEmissionClass /* c */) const {
59  return "Electricity";
60  }
61 
78  double compute(const SUMOEmissionClass /* c */,
79  const PollutantsInterface::EmissionType e, const double v,
80  const double a, const double slope,
81  const EnergyParams* ptr_energyParams) const;
82 };
int SUMOEmissionClass
An upper class for objects with additional parameters.
Definition: EnergyParams.h:43
This helper class allows the PollutantsInterface to load and use different MMPEVEMs.
static const int MMPEVEM_BASE
HelpersMMPEVEM()
Constructor.
double compute(const SUMOEmissionClass, const PollutantsInterface::EmissionType e, const double v, const double a, const double slope, const EnergyParams *ptr_energyParams) const
Compute the amount of emitted pollutants for an emission class in a given state.
std::string getFuel(const SUMOEmissionClass) const
Returns the fuel type described by this emission class as described in the Amitran interface (Gasolin...
zero emission model, used as superclass for the other model helpers
EmissionType
Enumerating all emission types, including fuel.