Моделирование работы перекрестка в системе AnyLogic
7
с помощью функции uniform(4,8), равномерно распределяющей время прибытия от 1с до 5с.
- Блок SelectOutput1 – направляет заявки либо в направлении AB, либо на SelectOutput2, с заданной вероятностью 0,2.
- Блок SelectOutput – направляет заявки либо в направлении CА, либо в направлении СВ, с заданной вероятностью 0,6.
- Блок SelectOutput2 – направляет заявки, пришедшие с SelectOutput1 в направлениях AC и AD, с заданной вероятностью 0,675.
- Блоки Conveyor(0-4) – имитируют очередь перед светофором. Для них заданны следующие параметры:
- Длинна – 100
- Расстояние между заявками – 20
- Скорость – 70
Параметры для блока Conveyor были выбраны экспериментальным путем.
- Блоки Hold(0-4) – служат для блокировки и разблокировки движения в зависимости от сигнала светофора. Блоки управляются событиями event и event1, которые описаны далее.
- Блок Hold5 – служит для того, чтобы поворачивающие в направлении АВ автомобили пропускали автомобили, следующие в направлении СА, как это известно из правил дорожного движения. Блок управляется блоком Delay3: при входе заявки в блок Delay3, Hold5 блокируется, пропуская заявку CA, а при освобождении Delay3 – Hold5 пропускает заявку в направлении AB. Это реализовано с помощью функций hold5.setBlocked( true ) и hold5.setBlocked( false );
- Блоки Delay(0-4) – служат для имитации проезда перекрестка, и представляют собой задержку заявки на 2 секунды.
- Блоки Sink (ab, ac, ad, ca, cb) – служат для вывода заявок из модели
- Блок event – имитирует работу светофора. Данный блок циклически, каждые 20 секунд переводит блоки Hold(0-4) в заблокированное состояние, не давая тем самым заявкам пересекать перекресток.
hold.setBlocked( true );
hold1.setBlocked( true );
hold2.setBlocked( true );
hold3.setBlocked( true );
hold4.setBlocked( true );
- Блок event1 работает в паре с блоком event, выполняя обратное действие – переводит блок hold в разблокированное состояние каждые 20 секунд