Моделирование работы перекрестка в системе AnyLogic
7

с помощью функции uniform(4,8), равномерно распределяющей время прибытия от 1с до 5с.

  1. Блок SelectOutput1 – направляет заявки либо в направлении AB, либо на SelectOutput2, с заданной вероятностью 0,2.
  2. Блок SelectOutput – направляет заявки либо в направлении CА, либо в направлении СВ, с заданной вероятностью 0,6.
  3. Блок SelectOutput2 – направляет заявки, пришедшие с SelectOutput1 в направлениях AC и AD, с заданной вероятностью 0,675.
  4. Блоки Conveyor(0-4) – имитируют очередь перед светофором. Для них заданны следующие параметры:
  • Длинна – 100
  • Расстояние между заявками – 20
  • Скорость – 70

Параметры для блока Conveyor были выбраны экспериментальным путем.

  1. Блоки Hold(0-4) – служат для блокировки и разблокировки движения в зависимости от сигнала светофора. Блоки управляются событиями event и event1, которые описаны далее.
  2. Блок Hold5 – служит для того, чтобы поворачивающие в направлении АВ автомобили пропускали автомобили, следующие в направлении СА, как это известно из правил дорожного движения. Блок управляется блоком Delay3: при входе заявки в блок Delay3, Hold5 блокируется, пропуская заявку CA, а при освобождении Delay3 – Hold5 пропускает заявку в направлении AB. Это реализовано с помощью функций          hold5.setBlocked( true )  и hold5.setBlocked( false );
  3. Блоки Delay(0-4) – служат для имитации проезда перекрестка, и представляют собой задержку заявки на 2 секунды.
  4. Блоки Sink (ab, ac, ad, ca, cb) – служат для вывода заявок из модели
  5. Блок event – имитирует работу светофора. Данный блок циклически, каждые 20 секунд переводит блоки Hold(0-4) в заблокированное состояние, не давая тем самым заявкам пересекать перекресток.

hold.setBlocked( true );

hold1.setBlocked( true );

hold2.setBlocked( true );

hold3.setBlocked( true );

  hold4.setBlocked( true );

  1. Блок event1 работает в паре с блоком event, выполняя обратное действие – переводит блок hold в разблокированное состояние каждые 20 секунд