View Javadoc
1   package org.opentrafficsim.road.gtu.lane.tactical.cacc;
2   
3   import static org.opentrafficsim.base.parameters.constraint.NumericConstraint.NEGATIVE;
4   import static org.opentrafficsim.base.parameters.constraint.NumericConstraint.POSITIVE;
5   
6   import org.djunits.unit.AccelerationUnit;
7   import org.djunits.unit.DurationUnit;
8   import org.djunits.unit.LengthUnit;
9   import org.djunits.unit.SpeedUnit;
10  import org.djunits.value.vdouble.scalar.Acceleration;
11  import org.djunits.value.vdouble.scalar.Duration;
12  import org.djunits.value.vdouble.scalar.Length;
13  import org.djunits.value.vdouble.scalar.Speed;
14  import org.opentrafficsim.base.parameters.ParameterTypeAcceleration;
15  import org.opentrafficsim.base.parameters.ParameterTypeDouble;
16  import org.opentrafficsim.base.parameters.ParameterTypeDuration;
17  import org.opentrafficsim.base.parameters.ParameterTypeLength;
18  import org.opentrafficsim.base.parameters.ParameterTypeSpeed;
19  
20  public class CaccParameters
21  {
22  
23      public static ParameterTypeDuration T_SYSTEM_CACC;
24  
25      public static final ParameterTypeDuration T_SYSTEM_ACC;
26  
27      public static final ParameterTypeDouble K;
28  
29      public static final ParameterTypeDouble K_A;
30  
31      public static final ParameterTypeDouble K_V;
32  
33      public static final ParameterTypeDouble K_D;
34  
35      public static final ParameterTypeAcceleration A_MIN;
36  
37      public static final ParameterTypeAcceleration A_MAX;
38  
39      public static final ParameterTypeDouble R_MIN;
40  
41      public static final ParameterTypeLength STANDSTILL;
42  
43      public static final ParameterTypeDuration T_GAP;
44  
45      public static ParameterTypeAcceleration A_REDUCED;
46  
47      public static ParameterTypeSpeed SET_SPEED;
48  
49      static
50      {
51          T_SYSTEM_CACC = new ParameterTypeDuration("TsystemCacc", "Constant time gap spacing",
52                  new Duration(0.5, DurationUnit.SI), POSITIVE);
53          T_SYSTEM_ACC = new ParameterTypeDuration("TsystemAcc", "Constant time gap spacing", new Duration(1.5, DurationUnit.SI),
54                  POSITIVE);
55          T_GAP = new ParameterTypeDuration("Tgap", "Gap acceptance headway", new Duration(0.56, DurationUnit.SI), POSITIVE);
56          K = new ParameterTypeDouble("k", "General gain", 0.3, POSITIVE);
57          K_A = new ParameterTypeDouble("ka", "Acceleration gain", 1.0, POSITIVE);
58          K_D = new ParameterTypeDouble("kd", "Spacing gain", 0.1, POSITIVE); // 0.1
59          K_V = new ParameterTypeDouble("kv", "Speed gain", 0.58, POSITIVE); // 0.58
60          A_MIN = new ParameterTypeAcceleration("Amin", "Maximum (comfortable) deceleration",
61                  new Acceleration(-5, AccelerationUnit.SI), NEGATIVE);
62          A_MAX = new ParameterTypeAcceleration("Amax", "Maximum (comfortable) accceleration",
63                  new Acceleration(1.25, AccelerationUnit.SI), POSITIVE); // was 2 m/s?
64          R_MIN = new ParameterTypeDouble("rmin", "Minimum spacing", 2, POSITIVE);
65          STANDSTILL = new ParameterTypeLength("Standstill", "Standstill distance", new Length(3.0, LengthUnit.METER), POSITIVE);
66          A_REDUCED = new ParameterTypeAcceleration("Areduced", "Reduction in acceleration to create gaps",
67                  new Acceleration(0, AccelerationUnit.SI));
68          SET_SPEED = new ParameterTypeSpeed("SetSpeed", "Free flow speed for leading platoon vehicle",
69                  new Speed(80, SpeedUnit.KM_PER_HOUR), POSITIVE);
70      }
71  }