CaccParameters.java
package org.opentrafficsim.road.gtu.lane.tactical.cacc;
import static org.opentrafficsim.base.parameters.constraint.NumericConstraint.NEGATIVE;
import static org.opentrafficsim.base.parameters.constraint.NumericConstraint.POSITIVE;
import org.djunits.unit.AccelerationUnit;
import org.djunits.unit.DurationUnit;
import org.djunits.unit.LengthUnit;
import org.djunits.unit.SpeedUnit;
import org.djunits.value.vdouble.scalar.Acceleration;
import org.djunits.value.vdouble.scalar.Duration;
import org.djunits.value.vdouble.scalar.Length;
import org.djunits.value.vdouble.scalar.Speed;
import org.opentrafficsim.base.parameters.ParameterTypeAcceleration;
import org.opentrafficsim.base.parameters.ParameterTypeDouble;
import org.opentrafficsim.base.parameters.ParameterTypeDuration;
import org.opentrafficsim.base.parameters.ParameterTypeLength;
import org.opentrafficsim.base.parameters.ParameterTypeSpeed;
public class CaccParameters
{
public static ParameterTypeDuration T_SYSTEM_CACC;
public static final ParameterTypeDuration T_SYSTEM_ACC;
public static final ParameterTypeDouble K;
public static final ParameterTypeDouble K_A;
public static final ParameterTypeDouble K_V;
public static final ParameterTypeDouble K_D;
public static final ParameterTypeAcceleration A_MIN;
public static final ParameterTypeAcceleration A_MAX;
public static final ParameterTypeDouble R_MIN;
public static final ParameterTypeLength STANDSTILL;
public static final ParameterTypeDuration T_GAP;
public static ParameterTypeAcceleration A_REDUCED;
public static ParameterTypeSpeed SET_SPEED;
static
{
T_SYSTEM_CACC = new ParameterTypeDuration("TsystemCacc", "Constant time gap spacing",
new Duration(0.5, DurationUnit.SI), POSITIVE);
T_SYSTEM_ACC = new ParameterTypeDuration("TsystemAcc", "Constant time gap spacing", new Duration(1.5, DurationUnit.SI),
POSITIVE);
T_GAP = new ParameterTypeDuration("Tgap", "Gap acceptance headway", new Duration(0.56, DurationUnit.SI), POSITIVE);
K = new ParameterTypeDouble("k", "General gain", 0.3, POSITIVE);
K_A = new ParameterTypeDouble("ka", "Acceleration gain", 1.0, POSITIVE);
K_D = new ParameterTypeDouble("kd", "Spacing gain", 0.1, POSITIVE); // 0.1
K_V = new ParameterTypeDouble("kv", "Speed gain", 0.58, POSITIVE); // 0.58
A_MIN = new ParameterTypeAcceleration("Amin", "Maximum (comfortable) deceleration",
new Acceleration(-5, AccelerationUnit.SI), NEGATIVE);
A_MAX = new ParameterTypeAcceleration("Amax", "Maximum (comfortable) accceleration",
new Acceleration(1.25, AccelerationUnit.SI), POSITIVE); // was 2 m/s?
R_MIN = new ParameterTypeDouble("rmin", "Minimum spacing", 2, POSITIVE);
STANDSTILL = new ParameterTypeLength("Standstill", "Standstill distance", new Length(3.0, LengthUnit.METER), POSITIVE);
A_REDUCED = new ParameterTypeAcceleration("Areduced", "Reduction in acceleration to create gaps",
new Acceleration(0, AccelerationUnit.SI));
SET_SPEED = new ParameterTypeSpeed("SetSpeed", "Free flow speed for leading platoon vehicle",
new Speed(80, SpeedUnit.KM_PER_HOUR), POSITIVE);
}
}