Eclipse SUMO - Simulation of Urban MObility
EngineParameters.h
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2001-2019 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials
5 // are made available under the terms of the Eclipse Public License v2.0
6 // which accompanies this distribution, and is available at
7 // http://www.eclipse.org/legal/epl-v20.html
8 // SPDX-License-Identifier: EPL-2.0
9 /****************************************************************************/
14 /****************************************************************************/
15 
16 #ifndef ENGINEPARAMETERS_H_
17 #define ENGINEPARAMETERS_H_
18 
19 #include <iostream>
20 #include <iomanip>
21 
22 //gravity force
23 #define GRAVITY_MPS2 9.81
24 //horsepower to watts conversion factor
25 #define HP_TO_W 745.699872
26 //maximum engine time constant
27 #define TAU_MAX 0.5
28 //maximum degree for the engine polynomial
29 #define MAX_POLY_DEGREE 9
30 
32 
33 public:
34 
42  int degree;
43  double x[MAX_POLY_DEGREE];
44  };
45 
54  double rpm;
55  double deltaRpm;
56  };
57 
58  //id of the type of vehicle
59  std::string id;
60  //number of gears
61  int nGears;
62  //gear ratios
63  double* gearRatios;
64  //differential ratio
66  //wheel diameter in meters
68  //mass of vehicle
69  double mass_kg;
70  //air friction parameters
71  double cAir, a_m2, rho_kgpm3;
72  //precomputed air friction coefficient
74  //tires parameters
75  double cr1, cr2;
76  //precomputed rolling resistance parameters
77  double __cr1, __cr2;
78  //road slope in degrees
79  double slope;
80  //precomputed gravitational force
81  double __gravity;
82  //tires friction coefficient
84  //precomputed maximum acceleration with no slip
86  //engine mapping
88  //gear shifting rule
90  //engine efficiency
92  //factor taking into account inertia of rotating masses, such as flywheel
93  double massFactor;
94  //number of cylinders of the engine
95  int cylinders;
96  //simulation timestep
97  double dt;
98  //min and max rpm
99  double minRpm, maxRpm;
100  //brakes actuation time constant in second
101  double brakesTau_s;
102  //engine time constants for exhaust and burning
104  //whether tauBurn_s is fixed or dynamic
106  //other precomputed coefficients
111  double __engineTau1;
112  double __engineTau2;
116  //todo: finish
117  double minSpeed;
118 
122  void computeCoefficients();
123 
127  void dumpParameters(std::ostream& out);
128 
130  EngineParameters(const EngineParameters& other);
132  virtual ~EngineParameters();
133 
134 };
135 
136 #endif /* ENGINEPARAMETERS_H_ */
EngineParameters::shiftingRule
struct GearShiftingRules shiftingRule
Definition: EngineParameters.h:89
EngineParameters::__rpmToSpeedCoefficient
double __rpmToSpeedCoefficient
Definition: EngineParameters.h:107
EngineParameters::cr2
double cr2
Definition: EngineParameters.h:75
EngineParameters::__airFrictionCoefficient
double __airFrictionCoefficient
Definition: EngineParameters.h:73
EngineParameters::gearRatios
double * gearRatios
Definition: EngineParameters.h:63
EngineParameters::__cr1
double __cr1
Definition: EngineParameters.h:77
EngineParameters::differentialRatio
double differentialRatio
Definition: EngineParameters.h:65
EngineParameters::rho_kgpm3
double rho_kgpm3
Definition: EngineParameters.h:71
EngineParameters::GearShiftingRules::rpm
double rpm
Definition: EngineParameters.h:54
EngineParameters::engineEfficiency
double engineEfficiency
Definition: EngineParameters.h:91
EngineParameters::id
std::string id
Definition: EngineParameters.h:59
EngineParameters::wheelDiameter_m
double wheelDiameter_m
Definition: EngineParameters.h:67
EngineParameters::EngineParameters
EngineParameters()
Definition: EngineParameters.cpp:23
EngineParameters::__speedToRpmCoefficient
double __speedToRpmCoefficient
Definition: EngineParameters.h:108
EngineParameters::__engineTauDe_s
double __engineTauDe_s
Definition: EngineParameters.h:113
EngineParameters::dt
double dt
Definition: EngineParameters.h:97
EngineParameters::__cr2
double __cr2
Definition: EngineParameters.h:77
EngineParameters::mass_kg
double mass_kg
Definition: EngineParameters.h:69
EngineParameters::minRpm
double minRpm
Definition: EngineParameters.h:99
EngineParameters::GearShiftingRules
Definition: EngineParameters.h:53
EngineParameters::tauBurn_s
double tauBurn_s
Definition: EngineParameters.h:103
EngineParameters::tiresFrictionCoefficient
double tiresFrictionCoefficient
Definition: EngineParameters.h:83
EngineParameters::cAir
double cAir
Definition: EngineParameters.h:71
EngineParameters::operator=
EngineParameters & operator=(const EngineParameters &other)
Definition: EngineParameters.cpp:67
EngineParameters::__brakesOneMinusAlpha
double __brakesOneMinusAlpha
Definition: EngineParameters.h:115
EngineParameters::massFactor
double massFactor
Definition: EngineParameters.h:93
EngineParameters::__brakesAlpha
double __brakesAlpha
Definition: EngineParameters.h:114
EngineParameters::tauEx_s
double tauEx_s
Definition: EngineParameters.h:103
EngineParameters::cylinders
int cylinders
Definition: EngineParameters.h:95
EngineParameters::PolynomialEngineModelRpmToHp::x
double x[MAX_POLY_DEGREE]
Definition: EngineParameters.h:43
EngineParameters::~EngineParameters
virtual ~EngineParameters()
Definition: EngineParameters.cpp:105
EngineParameters::slope
double slope
Definition: EngineParameters.h:79
EngineParameters::__engineTau1
double __engineTau1
Definition: EngineParameters.h:111
EngineParameters::nGears
int nGears
Definition: EngineParameters.h:61
EngineParameters::PolynomialEngineModelRpmToHp::degree
int degree
Definition: EngineParameters.h:42
EngineParameters::maxRpm
double maxRpm
Definition: EngineParameters.h:99
EngineParameters::PolynomialEngineModelRpmToHp
Definition: EngineParameters.h:41
EngineParameters
Definition: EngineParameters.h:31
EngineParameters::fixedTauBurn
bool fixedTauBurn
Definition: EngineParameters.h:105
EngineParameters::computeCoefficients
void computeCoefficients()
Definition: EngineParameters.cpp:109
EngineParameters::__engineTau2
double __engineTau2
Definition: EngineParameters.h:112
EngineParameters::minSpeed
double minSpeed
Definition: EngineParameters.h:117
EngineParameters::a_m2
double a_m2
Definition: EngineParameters.h:71
EngineParameters::dumpParameters
void dumpParameters(std::ostream &out)
Definition: EngineParameters.cpp:126
EngineParameters::cr1
double cr1
Definition: EngineParameters.h:75
EngineParameters::__maxAccelerationCoefficient
double __maxAccelerationCoefficient
Definition: EngineParameters.h:110
EngineParameters::GearShiftingRules::deltaRpm
double deltaRpm
Definition: EngineParameters.h:55
EngineParameters::__speedToThrustCoefficient
double __speedToThrustCoefficient
Definition: EngineParameters.h:109
EngineParameters::__maxNoSlipAcceleration
double __maxNoSlipAcceleration
Definition: EngineParameters.h:85
EngineParameters::brakesTau_s
double brakesTau_s
Definition: EngineParameters.h:101
MAX_POLY_DEGREE
#define MAX_POLY_DEGREE
Definition: EngineParameters.h:29
EngineParameters::engineMapping
struct PolynomialEngineModelRpmToHp engineMapping
Definition: EngineParameters.h:87
EngineParameters::__gravity
double __gravity
Definition: EngineParameters.h:81