A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
generic-battery-discharge-example.cc
Go to the documentation of this file.
1/*
2 * Copyright (c) 2023 Tokushima University
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation;
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 *
17 * Author: Alberto Gallegos Ramonet <alramonet@is.tokushima-u.ac.jp>
18 */
19
20#include <ns3/core-module.h>
21#include <ns3/energy-module.h>
22#include <ns3/gnuplot.h>
23
24#include <fstream>
25#include <sstream>
26#include <string>
27
28using namespace ns3;
29
30/**
31 * This example shows the use of batteries in ns-3.
32 * 5 batteries of different chemistries are discharged
33 * using a constant current. Batteries can be configured
34 * manually using the necessary parameters or using
35 * presets.
36 *
37 * In this example, only the first battery uses parameters
38 * to form a NiMh battery. The rest of the batteries in this
39 * example use defined presets with already tested parameters.
40 *
41 * Users can make their own battery presets by setting
42 * the necessary parameters as in the example in the first
43 * battery.
44 *
45 * Plot files are produced as a result of this example.
46 * Graphs can be obtained from the plot using:
47 * \code{.sh}
48 $> gnuplot <plotname>.plt
49 \endcode
50 *
51 */
52
53Gnuplot battDischPlot1 = Gnuplot("BattDisch1.eps");
55std::ofstream battDischFile1("BattDischCurve1.plt");
56
57Gnuplot battDischPlot2 = Gnuplot("BattDisch2.eps");
59std::ofstream battDischFile2("BattDischCurve2.plt");
60
61Gnuplot battDischPlot3 = Gnuplot("BattDisch3.eps");
63std::ofstream battDischFile3("BattDischCurve3.plt");
64
65Gnuplot battDischPlot4 = Gnuplot("BattDisch4.eps");
67std::ofstream battDischFile4("BattDischCurve4.plt");
68
69Gnuplot battDischPlot5 = Gnuplot("BattDisch5.eps");
71std::ofstream battDischFile5("BattDischCurve5.plt");
72
73void
75{
76 // NiMh battery Panasonic HHR650D NiMH
77 double cellVoltage = es->GetSupplyVoltage();
78 Time currentTime = Simulator::Now();
79 battDischDataset1.Add(currentTime.GetMinutes(), cellVoltage);
80 // battDischDataset1.Add(currentTime.GetHours(), cellVoltage);
81
83 {
85 }
86}
87
88void
90{
91 // CSB GP1272 Lead Acid
92 double cellVoltage = es->GetSupplyVoltage();
93 Time currentTime = Simulator::Now();
94 battDischDataset2.Add(currentTime.GetMinutes(), cellVoltage);
95 // battDischDataset2.Add(currentTime.GetHours(), cellVoltage);
96
98 {
100 }
101}
102
103void
105{
106 // Panasonic CGR18650DA Li-on
107 double cellVoltage = es->GetSupplyVoltage();
108 double dischargeCapacityAh = es->GetDrainedCapacity();
109 battDischDataset3.Add(dischargeCapacityAh * 1000, cellVoltage);
110
112 {
114 }
115}
116
117void
119{
120 // Rs Pro LGP12100 Lead Acid
121 double cellVoltage = es->GetSupplyVoltage();
122 Time currentTime = Simulator::Now();
123 battDischDataset4.Add(currentTime.GetMinutes(), cellVoltage);
124 // battDischDataset4.Add(currentTime.GetHours(), cellVoltage);
125
127 {
129 }
130}
131
132void
134{
135 // Panasonic N-700AAC NiCd
136 double cellVoltage = es->GetSupplyVoltage();
137 Time currentTime = Simulator::Now();
138 // battDischDataset5.Add(currentTime.GetMinutes(), cellVoltage);
139 battDischDataset5.Add(currentTime.GetHours(), cellVoltage);
140
142 {
144 }
145}
146
147int
148main(int argc, char** argv)
149{
150 CommandLine cmd(__FILE__);
151 cmd.Parse(argc, argv);
152
153 LogComponentEnable("GenericBatteryModel", LOG_LEVEL_DEBUG);
154
155 Ptr<Node> node;
156 GenericBatteryModelHelper batteryHelper;
157 Ptr<GenericBatteryModel> batteryModel;
158 Ptr<SimpleDeviceEnergyModel> devicesEnergyModel;
159
160 //////////////////////// PANASONIC HHR650D NiMH discharge 1C,2C,5C ////////////////////
161
162 // Discharge 6.5A (1C)
163 battDischDataset1 = Gnuplot2dDataset("Panasonic NiMH HHR650D 6.5 A (1C)");
164
165 node = CreateObject<Node>();
166 devicesEnergyModel = CreateObject<SimpleDeviceEnergyModel>();
167 batteryModel = CreateObject<GenericBatteryModel>();
168
169 batteryModel->SetAttribute("FullVoltage", DoubleValue(1.39)); // Vfull
170 batteryModel->SetAttribute("MaxCapacity", DoubleValue(7.0)); // Q
171
172 batteryModel->SetAttribute("NominalVoltage", DoubleValue(1.18)); // Vnom
173 batteryModel->SetAttribute("NominalCapacity", DoubleValue(6.25)); // QNom
174
175 batteryModel->SetAttribute("ExponentialVoltage", DoubleValue(1.28)); // Vexp
176 batteryModel->SetAttribute("ExponentialCapacity", DoubleValue(1.3)); // Qexp
177
178 batteryModel->SetAttribute("InternalResistance", DoubleValue(0.0046)); // R
179 batteryModel->SetAttribute("TypicalDischargeCurrent", DoubleValue(1.3)); // i typical
180 batteryModel->SetAttribute("CutoffVoltage", DoubleValue(1.0)); // End of charge.
181
182 // Capacity Ah(qMax) * (Vfull) voltage * 3600 = (7 * 1.39 * 3.6) = 35028
183 batteryModel->SetAttribute("BatteryType", EnumValue(NIMH_NICD)); // Battery type
184
185 // The Generic battery model allow users to simulate different types of
186 // batteries based on some parameters. However, presets of batteries are
187 // included in ns-3, for example, the previous battery values can be
188 // configured using a helper to set a NiMh battery preset:
189
190 // batteryModel = DynamicCast<GenericBatteryModel>
191 // (batteryHelper.Install(node,PANASONIC_HHR650D_NIMH));
192
193 devicesEnergyModel->SetEnergySource(batteryModel);
194 batteryModel->AppendDeviceEnergyModel(devicesEnergyModel);
195 devicesEnergyModel->SetNode(node);
196
197 devicesEnergyModel->SetCurrentA(6.5);
198
199 GraphBattery1(batteryModel);
200
202 // 18717 secs around 5.3hrs, 750secs for 32.5 current, or (4200 70 mins)
206
207 // Discharge 13A (2C)
208 battDischDataset1 = Gnuplot2dDataset("Panasonic NiMH HHR650D 13 A (2C)");
209 node = CreateObject<Node>();
210 batteryModel =
211 DynamicCast<GenericBatteryModel>(batteryHelper.Install(node, PANASONIC_HHR650D_NIMH));
212
213 devicesEnergyModel = CreateObject<SimpleDeviceEnergyModel>();
214 devicesEnergyModel->SetEnergySource(batteryModel);
215 batteryModel->AppendDeviceEnergyModel(devicesEnergyModel);
216 devicesEnergyModel->SetNode(node);
217
218 devicesEnergyModel->SetCurrentA(13);
219
220 GraphBattery1(batteryModel);
221
226
227 // Discharge 32.5A (5C)
228 battDischDataset1 = Gnuplot2dDataset("Panasonic NiMH HHR650D 32.5 A (5C)");
229 node = CreateObject<Node>();
230 batteryModel = CreateObject<GenericBatteryModel>();
231 batteryModel =
232 DynamicCast<GenericBatteryModel>(batteryHelper.Install(node, PANASONIC_HHR650D_NIMH));
233
234 devicesEnergyModel = CreateObject<SimpleDeviceEnergyModel>();
235 devicesEnergyModel->SetEnergySource(batteryModel);
236 batteryModel->AppendDeviceEnergyModel(devicesEnergyModel);
237 devicesEnergyModel->SetNode(node);
238
239 devicesEnergyModel->SetCurrentA(32.5);
240
241 GraphBattery1(batteryModel);
243
247
248 battDischPlot1.SetTerminal("postscript eps color enh \"Times-BoldItalic\"");
249 battDischPlot1.SetLegend(" Time (minutes)", "Voltage (V)");
250 battDischPlot1.SetExtra("set xrange[0:70]\n\
251 set yrange [0.8:1.8]\n\
252 set xtics 10\n\
253 set ytics 0.1\n\
254 set grid\n\
255 set style line 1 linewidth 5\n\
256 set style line 2 linewidth 5\n\
257 set style line 3 linewidth 5\n\
258 set style line 4 linewidth 5\n\
259 set style line 5 linewidth 5\n\
260 set style line 6 linewidth 5\n\
261 set style line 7 linewidth 5\n\
262 set style line 8 linewidth 5\n\
263 set style increment user\n\
264 set key reverse Left");
265
267 battDischFile1.close();
268 std::cout << "The end, plotting now\n";
269
270 //////////////////////// CSB GP1272 Lead Acid discharge 0.5C, 0.9C ////////////
271
272 // Discharge 0.36A (0.05C)
273 battDischDataset2 = Gnuplot2dDataset("CSB GP1272 0.36 A (0.05C)");
274 node = CreateObject<Node>();
275 batteryModel =
276 DynamicCast<GenericBatteryModel>(batteryHelper.Install(node, CSB_GP1272_LEADACID));
277
278 devicesEnergyModel = CreateObject<SimpleDeviceEnergyModel>();
279 devicesEnergyModel->SetEnergySource(batteryModel);
280 batteryModel->AppendDeviceEnergyModel(devicesEnergyModel);
281 devicesEnergyModel->SetNode(node);
282
283 devicesEnergyModel->SetCurrentA(0.36);
284
285 GraphBattery2(batteryModel);
287
288 Simulator::Stop(Seconds(55000));
291
292 // Discharge 0.648A (0.09C)
293 battDischDataset2 = Gnuplot2dDataset("CSB GP1272 0.648 A (0.09C)");
294 node = CreateObject<Node>();
295 batteryModel =
296 DynamicCast<GenericBatteryModel>(batteryHelper.Install(node, CSB_GP1272_LEADACID));
297
298 devicesEnergyModel = CreateObject<SimpleDeviceEnergyModel>();
299 devicesEnergyModel->SetEnergySource(batteryModel);
300 batteryModel->AppendDeviceEnergyModel(devicesEnergyModel);
301 devicesEnergyModel->SetNode(node);
302
303 devicesEnergyModel->SetCurrentA(0.648);
304
305 GraphBattery2(batteryModel);
307
308 Simulator::Stop(Seconds(30000));
311
312 battDischPlot2.SetTerminal("postscript eps color enh \"Times-BoldItalic\"");
313 battDischPlot2.SetLegend(" Time (Minutes)", "Voltage (V)");
314 battDischPlot2.SetExtra("set xrange[1:1800]\n\
315 set yrange [7:14]\n\
316 set logscale x \n\
317 set tics scale 3\n\
318 set xtics (1,2,3,5,10,20,30,60,120,180,300,600,1200,1800)\n\
319 set ytics (0,8,9,10,11,12,13,14)\n\
320 set grid\n\
321 set style line 1 linewidth 5\n\
322 set style line 2 linewidth 5\n\
323 set style line 3 linewidth 5\n\
324 set style line 4 linewidth 5\n\
325 set style line 5 linewidth 5\n\
326 set style line 6 linewidth 5\n\
327 set style line 7 linewidth 5\n\
328 set style line 8 linewidth 5\n\
329 set style increment user\n\
330 set key reverse Left");
332 battDischFile2.close();
333 std::cout << "The end, plotting now\n";
334
335 //////////////////////// Panasonic Li-on CGR18650DA, discharge 0.2C,1C,2C ///////////
336
337 // Discharge 0.466A (0.2C)
338 battDischDataset3 = Gnuplot2dDataset("Panasonic Li-on CGR18650DA 0.466 A (0.2C)");
339 node = CreateObject<Node>();
340 batteryModel =
341 DynamicCast<GenericBatteryModel>(batteryHelper.Install(node, PANASONIC_CGR18650DA_LION));
342
343 devicesEnergyModel = CreateObject<SimpleDeviceEnergyModel>();
344 devicesEnergyModel->SetEnergySource(batteryModel);
345 batteryModel->AppendDeviceEnergyModel(devicesEnergyModel);
346 devicesEnergyModel->SetNode(node);
347
348 devicesEnergyModel->SetCurrentA(0.466);
349
350 GraphBattery3(batteryModel);
352
353 Simulator::Stop(Seconds(17720));
356
357 // Discharge 2.33A (1C)
358 battDischDataset3 = Gnuplot2dDataset("Panasonic Li-on CGR18650DA 2.33 A (1C)");
359 node = CreateObject<Node>();
360 batteryModel =
361 DynamicCast<GenericBatteryModel>(batteryHelper.Install(node, PANASONIC_CGR18650DA_LION));
362
363 devicesEnergyModel = CreateObject<SimpleDeviceEnergyModel>();
364 devicesEnergyModel->SetEnergySource(batteryModel);
365 batteryModel->AppendDeviceEnergyModel(devicesEnergyModel);
366 devicesEnergyModel->SetNode(node);
367
368 devicesEnergyModel->SetCurrentA(2.33);
369
370 GraphBattery3(batteryModel);
372
376
377 // Discharge 4.66A (2C)
378 battDischDataset3 = Gnuplot2dDataset("Panasonic Li-on CGR18650DA 4.66 A (2C)");
379 node = CreateObject<Node>();
380 batteryModel =
381 DynamicCast<GenericBatteryModel>(batteryHelper.Install(node, PANASONIC_CGR18650DA_LION));
382
383 devicesEnergyModel = CreateObject<SimpleDeviceEnergyModel>();
384 devicesEnergyModel->SetEnergySource(batteryModel);
385 batteryModel->AppendDeviceEnergyModel(devicesEnergyModel);
386 devicesEnergyModel->SetNode(node);
387
388 devicesEnergyModel->SetCurrentA(4.66);
389
390 GraphBattery3(batteryModel);
392
396
397 battDischPlot3.SetTerminal("postscript eps color enh \"Times-BoldItalic\"");
398 battDischPlot3.SetLegend(" Discharge Capacity (mAh)", "Voltage (V)");
399 battDischPlot3.SetExtra("set xrange[0:2400]\n\
400 set yrange [2.6:4.4]\n\
401 set xtics 400\n\
402 set ytics 0.2\n\
403 set grid\n\
404 set style line 1 linewidth 5\n\
405 set style line 2 linewidth 5\n\
406 set style line 3 linewidth 5\n\
407 set style line 4 linewidth 5\n\
408 set style line 5 linewidth 5\n\
409 set style line 6 linewidth 5\n\
410 set style line 7 linewidth 5\n\
411 set style line 8 linewidth 5\n\
412 set style increment user\n\
413 set key reverse Left");
415 battDischFile3.close();
416 std::cout << "The end, plotting now\n";
417
418 //////////////////////// Rs PRO LGP12100 Lead Acid discharge 0.05C, 1C ///////////////
419
420 // Discharge 0.36A (0.05C)
421 battDischDataset4 = Gnuplot2dDataset("Rs PRO LGP12100 5A (0.05C)");
422 node = CreateObject<Node>();
423 batteryModel =
424 DynamicCast<GenericBatteryModel>(batteryHelper.Install(node, RSPRO_LGP12100_LEADACID));
425
426 devicesEnergyModel = CreateObject<SimpleDeviceEnergyModel>();
427 devicesEnergyModel->SetEnergySource(batteryModel);
428 batteryModel->AppendDeviceEnergyModel(devicesEnergyModel);
429 devicesEnergyModel->SetNode(node);
430
431 devicesEnergyModel->SetCurrentA(5);
432
433 GraphBattery4(batteryModel);
435
436 Simulator::Stop(Seconds(65000));
439
440 // Discharge 100A (1C)
441 battDischDataset4 = Gnuplot2dDataset("Rs PRO LGP12100 100A (1C)");
442 node = CreateObject<Node>();
443 batteryModel =
444 DynamicCast<GenericBatteryModel>(batteryHelper.Install(node, RSPRO_LGP12100_LEADACID));
445
446 devicesEnergyModel = CreateObject<SimpleDeviceEnergyModel>();
447 devicesEnergyModel->SetEnergySource(batteryModel);
448 batteryModel->AppendDeviceEnergyModel(devicesEnergyModel);
449 devicesEnergyModel->SetNode(node);
450
451 devicesEnergyModel->SetCurrentA(100);
452
453 GraphBattery4(batteryModel);
455
459
460 battDischPlot4.SetTerminal("postscript eps color enh \"Times-BoldItalic\"");
461 battDischPlot4.SetLegend(" Time (Minutes)", "Voltage (V)");
462 battDischPlot4.SetExtra("set xrange[1:1800]\n\
463 set yrange [7:13]\n\
464 set logscale \n\
465 set tics scale 3\n\
466 set xtics (1,2,4,6,8,10,20,40,60,120,240,360,480,600,1200)\n\
467 set ytics (7,8,9,10,11,12,13)\n\
468 set grid\n\
469 set style line 1 linewidth 5\n\
470 set style line 2 linewidth 5\n\
471 set style line 3 linewidth 5\n\
472 set style line 4 linewidth 5\n\
473 set style line 5 linewidth 5\n\
474 set style line 6 linewidth 5\n\
475 set style line 7 linewidth 5\n\
476 set style line 8 linewidth 5\n\
477 set style increment user\n\
478 set key reverse Left");
480 battDischFile4.close();
481 std::cout << "The end, plotting now\n";
482
483 //////////////////////// Panasonic N-700AAC NiCd discharge ///////////////////////////
484
485 // Discharge 0.7A (0.1C)
486 battDischDataset5 = Gnuplot2dDataset("Panasonic N-700AAC 0.7A (0.01C)");
487 node = CreateObject<Node>();
488 batteryModel =
489 DynamicCast<GenericBatteryModel>(batteryHelper.Install(node, PANASONIC_N700AAC_NICD));
490
491 devicesEnergyModel = CreateObject<SimpleDeviceEnergyModel>();
492 devicesEnergyModel->SetEnergySource(batteryModel);
493 batteryModel->AppendDeviceEnergyModel(devicesEnergyModel);
494 devicesEnergyModel->SetNode(node);
495
496 devicesEnergyModel->SetCurrentA(0.07);
497
498 GraphBattery5(batteryModel);
500
501 Simulator::Stop(Seconds(38500));
504
505 // Discharge 0.14A (0.2C)
506 battDischDataset5 = Gnuplot2dDataset("Panasonic N-700AAC 0.14A (0.2C)");
507 node = CreateObject<Node>();
508 batteryModel =
509 DynamicCast<GenericBatteryModel>(batteryHelper.Install(node, PANASONIC_N700AAC_NICD));
510
511 devicesEnergyModel = CreateObject<SimpleDeviceEnergyModel>();
512 devicesEnergyModel->SetEnergySource(batteryModel);
513 batteryModel->AppendDeviceEnergyModel(devicesEnergyModel);
514 devicesEnergyModel->SetNode(node);
515
516 devicesEnergyModel->SetCurrentA(0.14);
517
518 GraphBattery5(batteryModel);
520
521 Simulator::Stop(Seconds(19200));
524
525 // Discharge 0.35A (0.5C)
526 battDischDataset5 = Gnuplot2dDataset("Panasonic N-700AAC 0.35A (0.5C)");
527 node = CreateObject<Node>();
528 batteryModel =
529 DynamicCast<GenericBatteryModel>(batteryHelper.Install(node, PANASONIC_N700AAC_NICD));
530
531 devicesEnergyModel = CreateObject<SimpleDeviceEnergyModel>();
532 devicesEnergyModel->SetEnergySource(batteryModel);
533 batteryModel->AppendDeviceEnergyModel(devicesEnergyModel);
534 devicesEnergyModel->SetNode(node);
535
536 devicesEnergyModel->SetCurrentA(0.35);
537
538 GraphBattery5(batteryModel);
540
544
545 battDischPlot5.SetTerminal("postscript eps color enh \"Times-BoldItalic\"");
546 battDischPlot5.SetLegend(" Time (Hours)", "Voltage (V)");
547 battDischPlot5.SetExtra("set xrange[0:16]\n\
548 set yrange [0.7:1.5]\n\
549 set tics scale 3\n\
550 set xtics 2\n\
551 set ytics 0.1\n\
552 set grid\n\
553 set style line 1 linewidth 5\n\
554 set style line 2 linewidth 5\n\
555 set style line 3 linewidth 5\n\
556 set style line 4 linewidth 5\n\
557 set style line 5 linewidth 5\n\
558 set style line 6 linewidth 5\n\
559 set style line 7 linewidth 5\n\
560 set style line 8 linewidth 5\n\
561 set style increment user\n\
562 set key reverse Left");
564 battDischFile5.close();
565 std::cout << "The end, plotting now\n";
566 return 0;
567}
Parse command-line arguments.
Definition: command-line.h:232
This class can be used to hold variables of floating point type such as 'double' or 'float'.
Definition: double.h:42
Hold variables of type enum.
Definition: enum.h:62
Creates and assign an assortment of BatteryModels to Nodes.
Ptr< EnergySourceContainer > Install(NodeContainer c) const
This function installs energy sources in a group of nodes in a node container.
Class to represent a 2D points plot.
Definition: gnuplot.h:116
void Add(double x, double y)
Definition: gnuplot.cc:377
a simple class to generate gnuplot-ready plotting commands from a set of datasets.
Definition: gnuplot.h:370
void AddDataset(const GnuplotDataset &dataset)
Definition: gnuplot.cc:796
void SetLegend(const std::string &xLegend, const std::string &yLegend)
Definition: gnuplot.cc:776
void SetTerminal(const std::string &terminal)
Definition: gnuplot.cc:764
void GenerateOutput(std::ostream &os)
Writes gnuplot commands and data values to a single output stream.
Definition: gnuplot.cc:802
void SetExtra(const std::string &extra)
Definition: gnuplot.cc:783
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:77
static EventId Schedule(const Time &delay, FUNC f, Ts &&... args)
Schedule an event to expire after delay.
Definition: simulator.h:571
static void Destroy()
Execute the events scheduled with ScheduleDestroy().
Definition: simulator.cc:142
static bool IsFinished()
Check if the simulation should finish.
Definition: simulator.cc:171
static Time Now()
Return the current simulation virtual time.
Definition: simulator.cc:208
static void Run()
Run the simulation.
Definition: simulator.cc:178
static void Stop()
Tell the Simulator the calling event should be the last one executed.
Definition: simulator.cc:186
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:105
double GetMinutes() const
Get an approximation of the time stored in this instance in the indicated unit.
Definition: nstime.h:398
double GetHours() const
Get an approximation of the time stored in this instance in the indicated unit.
Definition: nstime.h:393
std::ofstream battDischFile1("BattDischCurve1.plt")
Gnuplot2dDataset battDischDataset2
void GraphBattery1(Ptr< GenericBatteryModel > es)
std::ofstream battDischFile3("BattDischCurve3.plt")
void GraphBattery4(Ptr< GenericBatteryModel > es)
std::ofstream battDischFile5("BattDischCurve5.plt")
void GraphBattery2(Ptr< GenericBatteryModel > es)
std::ofstream battDischFile4("BattDischCurve4.plt")
Gnuplot battDischPlot1
This example shows the use of batteries in ns-3.
Gnuplot2dDataset battDischDataset5
void GraphBattery5(Ptr< GenericBatteryModel > es)
Gnuplot2dDataset battDischDataset1
void GraphBattery3(Ptr< GenericBatteryModel > es)
Gnuplot2dDataset battDischDataset3
Gnuplot2dDataset battDischDataset4
std::ofstream battDischFile2("BattDischCurve2.plt")
@ NIMH_NICD
Nickel-metal hydride and Nickel cadmium batteries.
@ PANASONIC_CGR18650DA_LION
Panasonic CGR18650DA Li-Ion battery.
@ CSB_GP1272_LEADACID
CSB GP1272 Lead acid battery.
@ PANASONIC_HHR650D_NIMH
Panasonic HHR650D NiMh battery.
@ RSPRO_LGP12100_LEADACID
RS Pro LGP12100 Lead acid battery.
@ PANASONIC_N700AAC_NICD
Panasonic N700AAC NiCd battery.
Time Seconds(double value)
Construct a Time in the indicated unit.
Definition: nstime.h:1319
Every class exported by the ns3 library is enclosed in the ns3 namespace.
void LogComponentEnable(const std::string &name, LogLevel level)
Enable the logging output associated with that log component.
Definition: log.cc:302
@ LOG_LEVEL_DEBUG
LOG_DEBUG and above.
Definition: log.h:113
ns cmd
Definition: second.py:40