Eclipse SUMO - Simulation of Urban MObility
MSDevice_Battery.h
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2013-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 /****************************************************************************/
16 // The Battery parameters for the vehicle
17 /****************************************************************************/
18 #ifndef MSDevice_Battery_h
19 #define MSDevice_Battery_h
20 
21 
22 // ===========================================================================
23 // included modules
24 // ===========================================================================
25 #include <config.h>
26 
28 #include <microsim/MSVehicle.h>
30 #include <utils/common/SUMOTime.h>
31 
32 
33 // ===========================================================================
34 // class declarations
35 // ===========================================================================
36 class SUMOVehicle;
37 
38 
39 // ===========================================================================
40 // class definitions
41 // ===========================================================================
47 public:
51  static void insertOptions(OptionsCont& oc);
52 
63  static void buildVehicleDevices(SUMOVehicle& v, std::vector<MSVehicleDevice*>& into);
64 
65 public:
68 
71 
80  bool notifyMove(SUMOTrafficObject& veh, double oldPos, double newPos, double newSpeed);
82 
84  const std::string deviceName() const {
85  return "battery";
86  }
87 
89  std::string getParameter(const std::string& key) const;
90 
92  void setParameter(const std::string& key, const std::string& value);
93 
94 private:
102  MSDevice_Battery(SUMOVehicle& holder, const std::string& id, const double actualBatteryCapacity, const double maximumBatteryCapacity,
103  const double powerMax, const double stoppingTreshold, const std::map<int, double>& param);
104 
105  void checkParam(const SumoXMLAttr paramKey, const double lower = 0., const double upper = std::numeric_limits<double>::infinity());
106 
107 public:
109  double getActualBatteryCapacity() const;
110 
112  double getMaximumBatteryCapacity() const;
113 
115  double getMaximumPower() const;
116 
118  bool isChargingStopped() const;
119 
121  bool isChargingInTransit() const;
122 
124  double getChargingStartTime() const;
125 
127  double getConsum() const;
128 
130  std::string getChargingStationID() const;
131 
133  double getEnergyCharged() const;
134 
136  int getVehicleStopped() const;
137 
139  double getStoppingTreshold() const;
140 
142  void setActualBatteryCapacity(const double actualBatteryCapacity);
143 
145  void setMaximumBatteryCapacity(const double maximumBatteryCapacity);
146 
148  void setPowerMax(const double new_Pmax);
149 
151  void setStoppingTreshold(const double stoppingTreshold);
152 
154  void resetChargingStartTime();
155 
158 
161 
164 
165 protected:
168 
171 
173  double myPowerMax;
174 
177 
179  std::map<int, double> myParam;
180 
182  double myLastAngle;
183 
186 
189 
192 
194  double myConsum;
195 
198 
201 
204 
205 private:
208 
211 };
212 
213 #endif
214 
void setParameter(const std::string &key, const std::string &value)
try to set the given parameter for this device. Throw exception for unsupported key ...
bool notifyMove(SUMOTrafficObject &veh, double oldPos, double newPos, double newSpeed)
Checks for waiting steps when the vehicle moves.
MSChargingStation * myActChargingStation
Parameter, Pointer to current charging station in which vehicle is placed (by default is NULL) ...
double getStoppingTreshold() const
Get stopping treshold.
double getMaximumBatteryCapacity() const
Get the total vehicle&#39;s Battery Capacity in kWh.
std::map< int, double > myParam
Parameter collection.
double myActualBatteryCapacity
Parameter, The actual vehicles&#39;s Battery Capacity in kWh, [myActualBatteryCapacity <= myMaximumBatter...
void increaseVehicleStoppedTimer()
Increase myVehicleStopped.
double getChargingStartTime() const
Get charging start time.
double getActualBatteryCapacity() const
Get the actual vehicle&#39;s Battery Capacity in kWh.
MSDevice_Battery(SUMOVehicle &holder, const std::string &id, const double actualBatteryCapacity, const double maximumBatteryCapacity, const double powerMax, const double stoppingTreshold, const std::map< int, double > &param)
Constructor.
void checkParam(const SumoXMLAttr paramKey, const double lower=0., const double upper=std::numeric_limits< double >::infinity())
int myVehicleStopped
Parameter, How many timestep the vehicle is stopped.
std::string getChargingStationID() const
Get current Charging Station ID.
SumoXMLAttr
Numbers representing SUMO-XML - attributes.
int getVehicleStopped() const
Get number of timestep that vehicle is stopped.
bool myChargingStopped
Parameter, Flag: Vehicles it&#39;s charging stopped (by default is false)
void setPowerMax(const double new_Pmax)
Set maximum power when accelerating.
bool isChargingStopped() const
Get true if Vehicle is charging, false if not.
void setMaximumBatteryCapacity(const double maximumBatteryCapacity)
Set total vehicle&#39;s Battery Capacity in kWh.
void setActualBatteryCapacity(const double actualBatteryCapacity)
Set actual vehicle&#39;s Battery Capacity in kWh.
void resetVehicleStoppedTimer()
Reset myVehicleStopped.
double myChargingStartTime
Parameter, Moment, wich the vehicle has beging to charging.
Representation of a vehicle.
Definition: SUMOVehicle.h:61
void resetChargingStartTime()
Reset charging start time.
std::string getParameter(const std::string &key) const
try to retrieve the given parameter from this device. Throw exception for unsupported key ...
double getEnergyCharged() const
Get charged energy.
static void buildVehicleDevices(SUMOVehicle &v, std::vector< MSVehicleDevice *> &into)
Build devices for the given vehicle, if needed.
MSDevice_Battery & operator=(const MSDevice_Battery &)
Invalidated assignment operator.
double myMaximumBatteryCapacity
Parameter, The total vehicles&#39;s Battery Capacity in kWh, [myMaximumBatteryCapacity >= 0]...
const std::string deviceName() const
return the name for this type of device
void setStoppingTreshold(const double stoppingTreshold)
Set vehicle&#39;s stopping treshold.
bool myChargingInTransit
Parameter, Flag: Vehicles it&#39;s charging in transit (by default is false)
double myConsum
Parameter, Vehicle consum during a time step (by default is 0.)
Battery device for electric vehicles.
double getMaximumPower() const
Get the maximum power when accelerating.
Representation of a vehicle or person.
double myStoppingTreshold
Parameter, stopping vehicle treshold [myStoppingTreshold >= 0].
void increaseChargingStartTime()
Increase Charging Start time.
double myLastAngle
Parameter, Vehicle&#39;s last angle.
static void insertOptions(OptionsCont &oc)
Inserts MSDevice_Example-options.
A storage for options typed value containers)
Definition: OptionsCont.h:90
Abstract in-vehicle device.
bool isChargingInTransit() const
Get true if Vehicle it&#39;s charging, false if not.
double myEnergyCharged
Parameter, Energy charged in each timestep.
double getConsum() const
Get consum.
double myPowerMax
Parameter, The Maximum Power when accelerating, [myPowerMax >= 0].
~MSDevice_Battery()
Destructor.