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 /****************************************************************************/
15 /****************************************************************************/
16 
17 #ifndef ENGINEPARAMETERS_H_
18 #define ENGINEPARAMETERS_H_
19 
20 #include <iostream>
21 #include <iomanip>
22 
23 //gravity force
24 #define GRAVITY_MPS2 9.81
25 //horsepower to watts conversion factor
26 #define HP_TO_W 745.699872
27 //maximum engine time constant
28 #define TAU_MAX 0.5
29 //maximum degree for the engine polynomial
30 #define MAX_POLY_DEGREE 9
31 
33 
34 public:
35 
43  int degree;
44  double x[MAX_POLY_DEGREE];
45  };
46 
55  double rpm;
56  double deltaRpm;
57  };
58 
59  //id of the type of vehicle
60  std::string id;
61  //number of gears
62  int nGears;
63  //gear ratios
64  double* gearRatios;
65  //differential ratio
67  //wheel diameter in meters
69  //mass of vehicle
70  double mass_kg;
71  //air friction parameters
72  double cAir, a_m2, rho_kgpm3;
73  //precomputed air friction coefficient
75  //tires parameters
76  double cr1, cr2;
77  //precomputed rolling resistance parameters
78  double __cr1, __cr2;
79  //road slope in degrees
80  double slope;
81  //precomputed gravitational force
82  double __gravity;
83  //tires friction coefficient
85  //precomputed maximum acceleration with no slip
87  //engine mapping
89  //gear shifting rule
91  //engine efficiency
93  //factor taking into account inertia of rotating masses, such as flywheel
94  double massFactor;
95  //number of cylinders of the engine
96  int cylinders;
97  //simulation timestep
98  double dt;
99  //min and max rpm
100  double minRpm, maxRpm;
101  //brakes actuation time constant in second
102  double brakesTau_s;
103  //engine time constants for exhaust and burning
105  //whether tauBurn_s is fixed or dynamic
107  //other precomputed coefficients
112  double __engineTau1;
113  double __engineTau2;
117  //todo: finish
118  double minSpeed;
119 
123  void computeCoefficients();
124 
128  void dumpParameters(std::ostream& out);
129 
131  EngineParameters(const EngineParameters& other);
133  virtual ~EngineParameters();
134 
135 };
136 
137 #endif /* ENGINEPARAMETERS_H_ */
EngineParameters::shiftingRule
struct GearShiftingRules shiftingRule
Definition: EngineParameters.h:90
EngineParameters::__rpmToSpeedCoefficient
double __rpmToSpeedCoefficient
Definition: EngineParameters.h:108
EngineParameters::cr2
double cr2
Definition: EngineParameters.h:76
EngineParameters::__airFrictionCoefficient
double __airFrictionCoefficient
Definition: EngineParameters.h:74
EngineParameters::gearRatios
double * gearRatios
Definition: EngineParameters.h:64
EngineParameters::__cr1
double __cr1
Definition: EngineParameters.h:78
EngineParameters::differentialRatio
double differentialRatio
Definition: EngineParameters.h:66
EngineParameters::rho_kgpm3
double rho_kgpm3
Definition: EngineParameters.h:72
EngineParameters::GearShiftingRules::rpm
double rpm
Definition: EngineParameters.h:55
EngineParameters::engineEfficiency
double engineEfficiency
Definition: EngineParameters.h:92
EngineParameters::id
std::string id
Definition: EngineParameters.h:60
EngineParameters::wheelDiameter_m
double wheelDiameter_m
Definition: EngineParameters.h:68
EngineParameters::EngineParameters
EngineParameters()
Definition: EngineParameters.cpp:24
EngineParameters::__speedToRpmCoefficient
double __speedToRpmCoefficient
Definition: EngineParameters.h:109
EngineParameters::__engineTauDe_s
double __engineTauDe_s
Definition: EngineParameters.h:114
EngineParameters::dt
double dt
Definition: EngineParameters.h:98
EngineParameters::__cr2
double __cr2
Definition: EngineParameters.h:78
EngineParameters::mass_kg
double mass_kg
Definition: EngineParameters.h:70
EngineParameters::minRpm
double minRpm
Definition: EngineParameters.h:100
EngineParameters::GearShiftingRules
Definition: EngineParameters.h:54
EngineParameters::tauBurn_s
double tauBurn_s
Definition: EngineParameters.h:104
EngineParameters::tiresFrictionCoefficient
double tiresFrictionCoefficient
Definition: EngineParameters.h:84
EngineParameters::cAir
double cAir
Definition: EngineParameters.h:72
EngineParameters::operator=
EngineParameters & operator=(const EngineParameters &other)
Definition: EngineParameters.cpp:68
EngineParameters::__brakesOneMinusAlpha
double __brakesOneMinusAlpha
Definition: EngineParameters.h:116
EngineParameters::massFactor
double massFactor
Definition: EngineParameters.h:94
EngineParameters::__brakesAlpha
double __brakesAlpha
Definition: EngineParameters.h:115
EngineParameters::tauEx_s
double tauEx_s
Definition: EngineParameters.h:104
EngineParameters::cylinders
int cylinders
Definition: EngineParameters.h:96
EngineParameters::PolynomialEngineModelRpmToHp::x
double x[MAX_POLY_DEGREE]
Definition: EngineParameters.h:44
EngineParameters::~EngineParameters
virtual ~EngineParameters()
Definition: EngineParameters.cpp:106
EngineParameters::slope
double slope
Definition: EngineParameters.h:80
EngineParameters::__engineTau1
double __engineTau1
Definition: EngineParameters.h:112
EngineParameters::nGears
int nGears
Definition: EngineParameters.h:62
EngineParameters::PolynomialEngineModelRpmToHp::degree
int degree
Definition: EngineParameters.h:43
EngineParameters::maxRpm
double maxRpm
Definition: EngineParameters.h:100
EngineParameters::PolynomialEngineModelRpmToHp
Definition: EngineParameters.h:42
EngineParameters
Definition: EngineParameters.h:32
EngineParameters::fixedTauBurn
bool fixedTauBurn
Definition: EngineParameters.h:106
EngineParameters::computeCoefficients
void computeCoefficients()
Definition: EngineParameters.cpp:110
EngineParameters::__engineTau2
double __engineTau2
Definition: EngineParameters.h:113
EngineParameters::minSpeed
double minSpeed
Definition: EngineParameters.h:118
EngineParameters::a_m2
double a_m2
Definition: EngineParameters.h:72
EngineParameters::dumpParameters
void dumpParameters(std::ostream &out)
Definition: EngineParameters.cpp:127
EngineParameters::cr1
double cr1
Definition: EngineParameters.h:76
EngineParameters::__maxAccelerationCoefficient
double __maxAccelerationCoefficient
Definition: EngineParameters.h:111
EngineParameters::GearShiftingRules::deltaRpm
double deltaRpm
Definition: EngineParameters.h:56
EngineParameters::__speedToThrustCoefficient
double __speedToThrustCoefficient
Definition: EngineParameters.h:110
EngineParameters::__maxNoSlipAcceleration
double __maxNoSlipAcceleration
Definition: EngineParameters.h:86
EngineParameters::brakesTau_s
double brakesTau_s
Definition: EngineParameters.h:102
MAX_POLY_DEGREE
#define MAX_POLY_DEGREE
Definition: EngineParameters.h:30
EngineParameters::engineMapping
struct PolynomialEngineModelRpmToHp engineMapping
Definition: EngineParameters.h:88
EngineParameters::__gravity
double __gravity
Definition: EngineParameters.h:82