Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
HelpersEnergy.h
Go to the documentation of this file.
1/****************************************************************************/
2// Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
3// Copyright (C) 2001-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/****************************************************************************/
19// Helper methods for HBEFA-based emission computation
20/****************************************************************************/
21#pragma once
22#include <config.h>
23
24#include <vector>
25#include <limits>
26#include <cmath>
30#include "PollutantsInterface.h"
31#include "EnergyParams.h"
32
33
34// ===========================================================================
35// class definitions
36// ===========================================================================
42private:
43 static const int ENERGY_BASE = 4 << 16;
44
45public:
49
54 std::string getFuel(const SUMOEmissionClass /* c */) const {
55 return "Electricity";
56 }
57
63 double getWeight(const SUMOEmissionClass /* c */) const {
64 return myDefaultMass;
65 }
66
78 double compute(const SUMOEmissionClass c, const PollutantsInterface::EmissionType e, const double v, const double a, const double slope, const EnergyParams* param) const;
79
89 double acceleration(const SUMOEmissionClass c, const PollutantsInterface::EmissionType e, const double v, const double P, const double slope, const EnergyParams* param) const;
90
91private:
92 // default values from https://sumo.dlr.de/docs/Models/Electric.html#kia_soul_ev_2020
93 static constexpr double myDefaultMass = 1830.;
94 static constexpr double myDefaultFrontSurfaceArea = 2.6;
95 static constexpr double myDefaultAirDragCoefficient = 0.35;
96 static constexpr double myDefaultRotatingMass = 40.;
97 static constexpr double myDefaultRadialDragCoefficient = 0.1;
98 static constexpr double myDefaultRollDragCoefficient = 0.01;
99 static constexpr double myDefaultConstantPowerIntake = 100.;
100 static constexpr double myDefaultPropulsionEfficiency = 0.98;
101 static constexpr double myDefaultRecuperationEfficiency = 0.96;
103
104};
int SUMOEmissionClass
An upper class for objects with additional parameters.
Helper methods for energy-based electricity consumption computation based on the battery device.
static constexpr double myDefaultRadialDragCoefficient
double compute(const SUMOEmissionClass c, const PollutantsInterface::EmissionType e, const double v, const double a, const double slope, const EnergyParams *param) const
Computes the emitted pollutant amount using the given speed and acceleration.
static constexpr double myDefaultFrontSurfaceArea
static constexpr double myDefaultRollDragCoefficient
double acceleration(const SUMOEmissionClass c, const PollutantsInterface::EmissionType e, const double v, const double P, const double slope, const EnergyParams *param) const
Computes the achievable acceleration using the given speed and amount of consumed electric power.
static constexpr double myDefaultRecuperationEfficiency
double getWeight(const SUMOEmissionClass) const
Returns a reference weight in kg described by this emission class This implementation returns the def...
HelpersEnergy()
Constructor (initializes myEmissionClassStrings)
static constexpr double myDefaultMass
static constexpr double myDefaultRotatingMass
static constexpr double myDefaultRecuperationEfficiencyByDeceleration
std::string getFuel(const SUMOEmissionClass) const
Returns the fuel type described by this emission class as described in the Amitran interface (Gasolin...
static constexpr double myDefaultAirDragCoefficient
static const int ENERGY_BASE
static constexpr double myDefaultConstantPowerIntake
static constexpr double myDefaultPropulsionEfficiency
zero emission model, used as superclass for the other model helpers
EmissionType
Enumerating all emission types, including fuel.