1 package org.opentrafficsim.road.gtu.lane.tactical.following;
2
3 import org.djunits.unit.AccelerationUnit;
4 import org.djunits.value.vdouble.scalar.Acceleration;
5 import org.djunits.value.vdouble.scalar.Length;
6 import org.djunits.value.vdouble.scalar.Speed;
7 import org.djunits.value.vdouble.scalar.Time;
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 public class FixedAccelerationModel extends AbstractGTUFollowingModelMobil
23 {
24
25 private Acceleration acceleration;
26
27
28 private Time.Rel duration;
29
30
31
32
33
34
35 public FixedAccelerationModel(final Acceleration acceleration, final Time.Rel duration)
36 {
37 this.acceleration = acceleration;
38 this.duration = duration;
39 }
40
41
42
43
44
45 public final Time.Rel getDuration()
46 {
47 return this.duration;
48 }
49
50
51
52
53
54 public final Acceleration getAcceleration()
55 {
56 return this.acceleration;
57 }
58
59
60 @Override
61 public final Acceleration computeAcceleration(final Speed followerSpeed, final Speed followerMaximumSpeed,
62 final Speed leaderSpeed, final Length.Rel headway, final Speed speedLimit, final Time.Rel stepSize)
63 {
64 return this.acceleration;
65 }
66
67
68 @Override
69 public final Acceleration computeAcceleration(final Speed followerSpeed, final Speed followerMaximumSpeed,
70 final Speed leaderSpeed, final Length.Rel headway, final Speed speedLimit)
71 {
72 return this.acceleration;
73 }
74
75
76 @Override
77 public final Acceleration getMaximumSafeDeceleration()
78 {
79
80 return new Acceleration(2, AccelerationUnit.METER_PER_SECOND_2);
81 }
82
83
84 @Override
85 public final Time.Rel getStepSize()
86 {
87 return this.duration;
88 }
89
90
91 @Override
92 public final String getName()
93 {
94 return "Fixed";
95 }
96
97
98 @Override
99 public final String getLongName()
100 {
101 return "Fixed GTU following model";
102 }
103
104
105 public final String toString()
106 {
107 return "FixedAccelerationModel " + this.duration + ", " + this.acceleration;
108 }
109
110 }