Class LmrsUtil

    • Field Detail

      • DT

        public static final org.opentrafficsim.base.parameters.ParameterTypeDuration DT
        Fixed model time step.
      • TMIN

        public static final org.opentrafficsim.base.parameters.ParameterTypeDuration TMIN
        Minimum car-following headway.
      • T

        public static final org.opentrafficsim.base.parameters.ParameterTypeDuration T
        Current car-following headway.
      • TMAX

        public static final org.opentrafficsim.base.parameters.ParameterTypeDuration TMAX
        Maximum car-following headway.
      • TAU

        public static final org.opentrafficsim.base.parameters.ParameterTypeDuration TAU
        Headway relaxation time.
      • BCRIT

        public static final org.opentrafficsim.base.parameters.ParameterTypeAcceleration BCRIT
        Maximum critical deceleration, e.g. stop/go at traffic light.
    • Method Detail

      • getLaneChangeDesire

        public static Desire getLaneChangeDesire​(org.opentrafficsim.base.parameters.Parameters parameters,
                                                 LanePerception perception,
                                                 CarFollowingModel carFollowingModel,
                                                 Iterable<MandatoryIncentive> mandatoryIncentives,
                                                 Iterable<VoluntaryIncentive> voluntaryIncentives,
                                                 Map<Class<? extends Incentive>,​Desire> desireMap)
                                          throws org.opentrafficsim.base.parameters.ParameterException,
                                                 GTUException,
                                                 OperationalPlanException
        Determines lane change desire for the given GtU. Mandatory desire is deduced as the maximum of a set of mandatory incentives, while voluntary desires are added. Depending on the level of mandatory lane change desire, voluntary desire may be included partially. If both are positive or negative, voluntary desire is fully included. Otherwise, voluntary desire is less considered within the range dSync < |mandatory| < dCoop. The absolute value is used as large negative mandatory desire may also dominate voluntary desire.
        Parameters:
        parameters - Parameters; parameters
        perception - LanePerception; perception
        carFollowingModel - CarFollowingModel; car-following model
        mandatoryIncentives - Iterable<MandatoryIncentive>; mandatory incentives
        voluntaryIncentives - Iterable<VoluntaryIncentive>; voluntary incentives
        desireMap - Map<Class<? extends Incentive>,Desire>; map where calculated desires are stored in
        Returns:
        lane change desire for gtu
        Throws:
        org.opentrafficsim.base.parameters.ParameterException - if a parameter is not defined
        GTUException - if there is no mandatory incentive, the model requires at least one
        OperationalPlanException - perception exception
      • acceptLaneChange

        static boolean acceptLaneChange​(LanePerception perception,
                                        org.opentrafficsim.base.parameters.Parameters params,
                                        SpeedLimitInfo sli,
                                        CarFollowingModel cfm,
                                        double desire,
                                        Speed ownSpeed,
                                        Acceleration ownAcceleration,
                                        LateralDirectionality lat,
                                        GapAcceptance gapAcceptance,
                                        LaneChange laneChange)
                                 throws org.opentrafficsim.base.parameters.ParameterException,
                                        OperationalPlanException
        Determine whether a lane change is acceptable (gap, lane markings, etc.).
        Parameters:
        perception - LanePerception; perception
        params - Parameters; parameters
        sli - SpeedLimitInfo; speed limit info
        cfm - CarFollowingModel; car-following model
        desire - double; level of lane change desire
        ownSpeed - Speed; own speed
        ownAcceleration - Acceleration; current car-following acceleration
        lat - LateralDirectionality; lateral direction for synchronization
        gapAcceptance - GapAcceptance; gap-acceptance model
        laneChange - LaneChange; lane change
        Returns:
        whether a gap is acceptable
        Throws:
        org.opentrafficsim.base.parameters.ParameterException - if a parameter is not defined
        OperationalPlanException - perception exception
      • setDesiredHeadway

        static void setDesiredHeadway​(org.opentrafficsim.base.parameters.Parameters params,
                                      double desire)
                               throws org.opentrafficsim.base.parameters.ParameterException
        Sets value for T depending on level of lane change desire.
        Parameters:
        params - Parameters; parameters
        desire - double; lane change desire
        Throws:
        org.opentrafficsim.base.parameters.ParameterException - if T, TMIN or TMAX is not in the parameters
      • resetDesiredHeadway

        static void resetDesiredHeadway​(org.opentrafficsim.base.parameters.Parameters params)
                                 throws org.opentrafficsim.base.parameters.ParameterException
        Resets value for T depending on level of lane change desire.
        Parameters:
        params - Parameters; parameters
        Throws:
        org.opentrafficsim.base.parameters.ParameterException - if T is not in the parameters
      • singleAcceleration

        public static Acceleration singleAcceleration​(Length distance,
                                                      Speed followerSpeed,
                                                      Speed leaderSpeed,
                                                      double desire,
                                                      org.opentrafficsim.base.parameters.Parameters params,
                                                      SpeedLimitInfo sli,
                                                      CarFollowingModel cfm)
                                               throws org.opentrafficsim.base.parameters.ParameterException
        Determine acceleration from car-following with desire-adjusted headway.
        Parameters:
        distance - Length; distance from follower to leader
        followerSpeed - Speed; speed of follower
        leaderSpeed - Speed; speed of leader
        desire - double; level of lane change desire
        params - Parameters; parameters
        sli - SpeedLimitInfo; speed limit info
        cfm - CarFollowingModel; car-following model
        Returns:
        acceleration from car-following
        Throws:
        org.opentrafficsim.base.parameters.ParameterException - if a parameter is not defined