Examples of MOBIL


Examples of org.movsim.simulator.vehicles.lanechange.MOBIL

        final double thresholdAcceleration = 0.2;
        final double rightBiasAcceleration = 0.3;

        // set up a vehicle in most inner lane (left lane)
        final Vehicle v1 = newVehicle(900.0, 0.0, Lanes.LANE1, lengthCar);
        final MOBIL m1 = new MOBIL(v1, createModelParameterMOBIL(minimumGap, safeDeceleration, politeness,
                thresholdAcceleration, rightBiasAcceleration));
        final LaneChangeModel lcm1 = new LaneChangeModel(v1, createLaneChangeModelType(m1.getParameter()));
        v1.setLaneChangeModel(lcm1);
        roadSegment.addVehicle(v1);

        // set up a vehicle in right lane
        final Vehicle v2 = newVehicle(900.0 - lengthCar - tooSmallGap, 0.0, Lanes.LANE2, lengthCar);
        final MOBIL m2 = new MOBIL(v2, createModelParameterMOBIL(minimumGap, safeDeceleration, politeness,
                thresholdAcceleration, rightBiasAcceleration));
        final LaneChangeModel lcm2 = new LaneChangeModel(v2, createLaneChangeModelType(m2.getParameter()));
        v2.setLaneChangeModel(lcm2);
        roadSegment.addVehicle(v2);

        // vehicles too close together, so acceleration balance should be large negative
        double balance = m1.calcAccelerationBalance(v1, Lanes.TO_RIGHT, roadSegment);
        assertEquals(-Double.MAX_VALUE, balance, delta);
        balance = m2.calcAccelerationBalance(v2, Lanes.TO_LEFT, roadSegment);
        assertEquals(-Double.MAX_VALUE, balance, delta);

        // now set up with sufficient gap between vehicles, but v2 needs to decelerate, so it is not
        // favourable to change lanes
        roadSegment.clearVehicles();
        v2.setFrontPosition(v1.getRearPosition() - 2 * minimumGap);
        v2.setSpeed(80.0 / 3.6);
        roadSegment.addVehicle(v1);
        roadSegment.addVehicle(v2);
        balance = m2.calcAccelerationBalance(v2, Lanes.TO_LEFT, roadSegment);
        assertTrue(balance < 0.0);

        // now set up with sufficient gap between vehicles, but v1 needs to brake heavily, so it is not
        // safe to change lanes
        roadSegment.clearVehicles();
        v2.setRearPosition(v1.getFrontPosition() + 2 * minimumGap);
        v2.setSpeed(80.0 / 3.6); // 80 km/h
        v1.setSpeed(120.0 / 3.6); // 120 km/h
        roadSegment.addVehicle(v1);
        roadSegment.addVehicle(v2);
        balance = m2.calcAccelerationBalance(v2, Lanes.TO_LEFT, roadSegment);
        assertEquals(-Double.MAX_VALUE, balance, delta);
    }
View Full Code Here

Examples of org.movsim.simulator.vehicles.lanechange.MOBIL

        final Vehicle v1 = newVehicle(293.1, 26.983, Lanes.LANE1, lengthCar);
        // final MOBIL m1 = new MOBIL(v1, minimumGap, safeDeceleration, politeness, thresholdAcceleration, rightBiasAcceleration);
        r0.addVehicle(v1);

        final Vehicle v2 = newVehicle(6.3, 5.589, Lanes.LANE2, lengthCar);
        final MOBIL m2 = new MOBIL(v2, createModelParameterMOBIL(minimumGap, safeDeceleration, politeness,
                thresholdAcceleration, rightBiasAcceleration));
        r1.addVehicle(v2);
        final LaneSegment sls = r1.sourceLaneSegment(Lanes.LANE1);
        assertEquals(1, sls.vehicleCount());

        final Vehicle v3 = newVehicle(25.0, 4.0, Lanes.LANE2, lengthCar);
        // final MOBIL m3 = new MOBIL(v3, minimumGap, safeDeceleration, politeness, thresholdAcceleration, rightBiasAcceleration);
        r1.addVehicle(v3);

        final Vehicle rV = r1.rearVehicle(Lanes.LANE1, v2.getRearPosition());
        assertEquals(v1.getId(), rV.getId());

        double balance = m2.calcAccelerationBalance(v2, Lanes.TO_LEFT, r1);
        assertTrue(balance < 0.0);
    }
View Full Code Here

Examples of org.movsim.simulator.vehicles.lanechange.MOBIL

     * Test method for {@link org.movsim.simulator.vehicles.lanechange.MOBIL#getMinimumGap()}.
     */
    @Test
    public final void testGetMinimumGap() {
        final double minimumGap = 2.1;
        final MOBIL mobil = new MOBIL(null, createModelParameterMOBIL(minimumGap, 0.0, 0.0, 0.0, 0.0));
        assertEquals(minimumGap, mobil.getParameter().getMinimumGap(), delta);
    }
View Full Code Here

Examples of org.movsim.simulator.vehicles.lanechange.MOBIL

     * Test method for {@link org.movsim.simulator.vehicles.lanechange.MOBIL#getSafeDeceleration()}.
     */
    @Test
    public final void testGetSafeDeceleration() {
        final double safeDeceleration = 4.3;
        final MOBIL mobil = new MOBIL(null, createModelParameterMOBIL(0.0, safeDeceleration, 0.0, 0.0, 0.0));
        assertEquals(safeDeceleration, mobil.getParameter().getSafeDeceleration(), delta);
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.