1 package org.opentrafficsim.road.gtu.lane.control;
2
3 import org.djunits.value.vdouble.scalar.Acceleration;
4 import org.djunits.value.vdouble.scalar.Duration;
5 import org.opentrafficsim.base.parameters.ParameterTypeDuration;
6 import org.opentrafficsim.base.parameters.constraint.NumericConstraint;
7 import org.opentrafficsim.road.gtu.lane.LaneBasedGTU;
8
9
10
11
12
13
14
15
16
17
18
19
20
21 public interface DelayedActuation
22 {
23
24
25 DelayedActuation NONE = new DelayedActuation()
26 {
27
28 @Override
29 public Acceleration delayActuation(final Acceleration desiredAcceleration, final LaneBasedGTU gtu)
30 {
31 return desiredAcceleration;
32 }
33 };
34
35
36 ParameterTypeDuration TAU =
37 new ParameterTypeDuration("tau_actuation", "Actuation delay", Duration.createSI(0.1), NumericConstraint.POSITIVE);
38
39
40 DelayedActuation TAUDELAYED = new DelayedActuation()
41 {
42
43 @Override
44 public Acceleration delayActuation(final Acceleration desiredAcceleration, final LaneBasedGTU gtu)
45 {
46
47 return desiredAcceleration.minus(gtu.getAcceleration());
48 }
49 };
50
51
52
53
54
55
56
57 Acceleration delayActuation(Acceleration desiredAcceleration, LaneBasedGTU gtu);
58
59 }