-
Notifications
You must be signed in to change notification settings - Fork 1
/
quarter_truck.py
45 lines (29 loc) · 1.11 KB
/
quarter_truck.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
from ecospy import *
from ecospy.plotter import *
class MyListener(SimulationListener):
def __init__(self, sim: EcosSimulation):
self.sim = sim
def pre(self, info: SimulationInfo):
print(f"pre invoked @ t={info.time}")
if info.time > 5:
self.sim.remove_listener(self.name)
def main():
print(f"Ecoslib version: {EcosLib().version()}")
EcosLib().set_log_level("debug")
sspDir = f"{__file__}/../../../data/ssp/quarter_truck/"
resultFile = f"{__file__}/../results/python/quarter_truck.csv"
sim = EcosSimulation(ssp_path=f"{sspDir}", step_size=1.0 / 100)
sim.add_csv_writer(resultFile, f"{sspDir}/LogConfig.xml")
sim.add_listener("custom_listener", MyListener(sim))
sim.init(parameter_set="initialValues")
sim.step_until(time_point=10)
sim.terminate()
sim.destroy()
config = TimeSeriesConfig(
title="Quarter-truck",
y_label="Height[m]",
identifiers=["chassis::zChassis", "wheel::zWheel", "ground::zGround"])
plotter = Plotter(resultFile, config)
plotter.show()
if __name__ == "__main__":
main()