Лекции.Орг


Поиск:




Срабатывание перехода по условию




Введем вместо автоматического переключения светофора пешеходов кнопку, при нажатии которой пешеходами им разрешается переход после того, как светофор траффика остановит движение автомашин. Для этого активизируйте

окно редактора анимации и щелкните на кнопке панели инструментов.

Поместите этот графический объект куда-нибудь перед пешеходным перехо­дом. Назовите кнопку ЖДУ и определите ее действия так, что при каждом ее нажатии будет устанавливаться в истину булева переменная waiting (т. е. ус­тановим в поле Реакция на событие окна свойств этой кнопки команду waiting=true,-). Логическую переменную waiting нужно определить в поле редактора активного объекта Model с начальным значением false. Эта пере­менная должна фиксировать, ждет ли пешеход возможности перейти дорогу. Значение переменной будем сбрасывать в false каждый раз, как только све­тофор пешеходов переходит в состояние "мигающий зеленый", т. е. команда waiting=false; должна быть добавлена в поле Действие окна свойств перехо­да t1 стейтчарта pedestrian_light. Таким образом, наличие ожидающих


на переходе пешеходов (что обнаружится по нажатии кнопки ЖДУ) является условием переключения светофора traffic_light из состояния до в состоя-ние attention и далее в состояние запрещения движения транспорта.

При построении системы управления движением важно, чтобы постоянное нажимание кнопки ЖДУ пешеходами (или неким злоумышленником) не парализовало движение транспорта. Для этого в стейтчарте traffic_light измените состояние до, сделав его иерархическим с двумя простыми со­стояниями go1 и до2 так, как показано на рис. 6.20.

3 состоянии goi осуществляется непрерываемое движение транспорта, вы-ход из этого состояния происходит точно тогда, когда исчерпается выделен-ный таймаут (здесь 25 с), после чего светофор переходит в состояние пре­рываемого движения до2, переход т из которого срабатывает, когда будет выполнено условие наличия пешеходов, ожидающих переход. Если кнопка ЖДУ не была нажата до этого времени с момента последнего разрешения перехода (т. е. переменная waiting все еще имеет значение false), то транспорту будет разрешено продолжать двигаться до нажатия этой кнопки. Если кнопка уже была нажата (произвольное число раз), то переменная waiting уже имеет значение true и светофор traffic_light из состояния go2 мгновенно перейдет в состояние attention и затем остановит движение.


Окно наблюдения событий

Для отладки модели и понимания процессов, происходящих в системе, вы можете использовать окно наблюдения событий. Для открытия окна собы­тий щелкните кнопку панели инструментов.

На рис. 6.21 представлен момент после окончания интервала разрешения перехода пешеходов. Сравните вашу модель с моделью PedestrianCross4.

6.4. Системы массового обслуживания: использование библиотеки стандартных объектов

Рассмотренные ранее базовые средства AnyLogic для построения моделей дискретно-событийных систем могут быть использованы в широком диапа­зоне совершенно различных приложений имитационного моделирования. Существует, однако, область приложений дискретно-событийного модели­рования, в которой единая элегантная парадигма позволяет применить, фак­тически, одну и ту же методологию к решению множества важных практи­ческих проблем. Эта область — массовое обслуживание. Традиционным подходом к моделированию задач массового обслуживания является разра­ботка библиотеки многократно используемых объектов, из которых как дома при крупнопанельном строительстве могут быть собраны совершенно раз­личные модели, решающие разнообразные задачи этой области. В AnyLogic такой традиционный путь решения класса задач реализуется очень просто: создается библиотека типовых блоков, собирая которые в связанные струк­туры и настраивая их параметры можно значительно ускорить разработку моделей этого класса. Нужно помнить при этом, что все базовые средства AnyLogic могут быть использованы в случае, если функциональности биб­лиотечных объектов недостаточно для решения специфических проблем.

В данном разделе мы рассмотрим типичную проблему массового обслужи­вания и то, как эта проблема может быть легко решена с использованием одной из библиотек, разработанных в AnyLogic. Среда AnyLogic открыта для разработки библиотек совершенно различного назначения.





Поделиться с друзьями:


Дата добавления: 2018-10-15; Мы поможем в написании ваших работ!; просмотров: 686 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Так просто быть добрым - нужно только представить себя на месте другого человека прежде, чем начать его судить. © Марлен Дитрих
==> читать все изречения...

1011 - | 833 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.