Ю. Карпов - Иммитационное моделирование систем с AnyLogic 5 (1124147), страница 36
Текст из файла (страница 36)
В описываемой модели будут использованы только методы явах и явпт этого класса, которые возвращают соответствующие координаты. В структуру активного объекта тп ск входят стейтчарт а~с ~ассптпс1, управляющий движением объекта, и переменная ааьп, которая установлена как ссылка на объект-владелец экземпляров активного объекта ттсск. Поскольку грузовик может и двигаться, и нагружаться/разгружаться, то этот активный объект также включает по одному экземпляру акгинных объектов нс ° т (с именем и ак) и нссск (с именем впсск).
Для объекта спек установлены следующие параметры — рис. 8.б. Скорость движения, передаваемая объекту пампас, — это скорость самого грузоника, координаты, определяющие начальное положение грузоника,— зто координаты парконки. По прибытии в конечную точку движения пюпап должен выполнить код: пюпеоспспс1.Икавпепс("ЛРЛХчею"); т. е. известить стейтчарт, управлявший движением грузовика, послан ему сигнал "лватчео". На анимации грузовик будет представлен стилизованным изображением (СМ. ОбЪЕКт апттпаптсп ЭТОГО аКтИННОГО ОбЪЕКта).
В аНИМацИИ ГруЗОВИК рае- Глава 8. Лримеры моделей, разработанных с использованием языка Гака Г7З положен вертикально, в его начальном положении он развернут на 90 градусов по часовой стрелке. Именно зто значение установлено длл параметра Апа1е1пгеаа1. Объект всоси, включенный в активный объект ткпск, моделирует процессы загрузки/разгрузки. Значения параметров объекта всоси очевидны. По достижении верхнего и нижнего пределов объема кузова при загрузке и разгрузке этот объект информирует стейтчарт, управлающий движением грузовика„посылая ему сигналы "ила." и "внвтт, Рис. 8.6. Параметры объекта лютгек, включенного в активный объект ткпск Рис. 8.7. Стейтчарт гкотгесопг со1 активного объекта ткпси 574 Часть 55. Средства Апусод(с для имитационного моделирования систем Функционированием всех активных объектов модели управляют стейтчарты.
Переходы в стейтчартах происходят н основном при приеме событий, которые либо инициируются при нажатии кнопок интерактивного управления на анимации модели, либо возникают но включенных н данный активный объект экземплярах объектов еосе и всосх. События могут возникать и при переходах н стейтчартах тех объектов, которые нзаимодейстнуют в модели.
Стейтчарт, управляющий функциями грузовика, представлен на рис. 8.7. Вначале грузовик находится в поле, где он может либо ждать трактор для загрузки, либо загружать из трактора собранный урожай. Сигналы "втхлт ьохптнс" и "Ртнгвн ьолпт((п", которые посылаются трактором, управляют процессом выгрузки из трактора собранного в нем урожая. Два события могут вывести грузовик из этого состояния: прием сигнала "ао то вт(т", возникающего при нажатии соответствующей кнопки пользо- ВатЕЛЕМ, И СИГНаЛа "РПЬЬ", КОтсрЫй ВОЗНИКаЕт В ОбЪЕКтЕ всоск Прн ЗаПОЛНЕ- нии емкости. Оба события заставляют грузовик двигаться к бункеру.
Движение к бункеру моделируется следующим образом. При входе в состояние ао1пдтовтп стейтчарта вызывается метод ео.его()объекта ео ес, включенного в активный объект тппск, с указанием координат точки назначения. Эта точка — координаты графического объекта ньп, являющегося параметром активного объекта тспсх. Поскольку движение к бункеру не будет ничем прервано, грузовик перейдет из состояния ооьпятонтп в следую- ШЕЕ СОСтОяНИЕ Пп1оадтпд В тст МОМЕНТ, КОГда ОН дОСтИГНЕт КОНЕЧНОЙ ТОЧКИ, о чем он узнает, получив от своего внутреннего объекта посев сигнал "лвдпгнп". После получения этого сигнала грузовик должен развернуться у бункера и начать разгрузку.
Поворот моделируется приснаинанием параметру лпо1е объекта посев значения — л/2. При входе в состояние пп1оас)1пя должны быть запущены два процесса: процесс разгрузки грузовика и процесс загрузки бункера. Для этого просто устанавливается одно и то же значение пп1оастьпдвасе у параметра интенсивности разгрузки н объекте ьгп грузоника и параметра интенсивности загрузки в объекте ып корневого объекта модели, включающего грузовик: всоск.вее ОоСР1ои( Пп1оадьпсааее ); еа1п.ьтп.вес тпР1ои( пп1оаетпднаее ); ПрИ ЭТОМ НЫЗЫВаЮтея СООтнстетНуЮШИЕ фуНКцИИ опСЬапне ОоСР1ои() И опевапое гпнтои() В ЭТИХ ОбЬЕКтаХ, ЗаПуСКаЮщИЕ НужНЫЕ ПрсцЕССЫ.
ВЫХОД из данного состояния происходит либо по сигналу "нивтт", который порождается при прекращении процесса разгрузки грузовика во включенном В НЕГО ОбЪЕКтЕ Ьгп, ЛИбО ПО СИГНаЛу "ОО тО Р1РЬП", ПОрОждаЮШЕМуея ПрИ нажатии кнопки н окне анимации. При ныходе из состояния параметры со- ОтВЕтСтВуЮщИХ ЕМКОСтЕй гпн1ои И ОпЕР1ои уСтакаВЛИВаЮтея В О, т.
Е. Оба процесса останавливаются: всоск.вес ОиЕР1ое( 0 ); араго.'отп.вее 1пР1ое( О ); Глава В. Примеры моделей, рааработаннык с использованием языка .)ака 175 Активный обьект Сагт (Трактор) Объект сего построен полностью аналогично тому, как и активный объект ттос]т. Он включает экземпляры объектов носат и всосх, а также перемен- НуЮ ваьп, КОтарая ПрИМЕт ЗНаЧЕНИЕ уКаэатЕЛя На ОбЪЕКт (На1п), ВКЛЮЧаЮ- щий экземпляр трактора.
Стейтчарт активного объекта сете отражает динамику его "жизни" (рис. 8.8). Рис. 8.8. Стейтчарт вот. есопсто1 активного объекта сакс Вначале трактор стоит на парковке, ожидая команды. Команда приходит как сигнал "оо то сома)]тн", который порождается при нажатии пользователем кнопки поля анимации, При входе в состояние ао1пдтосовьаапе вычисляются текушие координаты комбайна и запускается процесс движения трактора к точке, левее на 40 пикселов места расположения комбайна: дооЬ1е х = вагп.совЬ1пе.вооет.хпои(] — 40; гтооЬ1е у = ваъп.совЬ1пе.вочес.упон(); вооек.ваоесо( х, у ); Часть И. Средства дпуьод[с для имитационного моделирования систем Комбайн может при этом двигаться, и его координаты могут меняться.
Вследствие этого трактор придет к месту, в 'котором комбайн был в момент НаЧаЛа дянжсиня. ДЛя ТОГО ЧтОбЫ уЧЕСтЬ ЭтО, ИЗ СОСтОяиня аотпдтоеовазаьпе в себя проведен переход, срабатывающий с интервалом единица модельного ВРЕМЕНИ. Прн КаждОМ ПОВтОрНОМ ВХОдс В СОСтОяНИЕ ао] пдтоеоеьаъпе будЕт производиться опрелеление текущих координат комбайна и перезапускаться процесс движения трактора к новому месту нахождения комбайна.
Этим моделируется коррекция направления движения трактора его водителем, периодически поглядывающим из кабины на поле. Все остальные действия трактора понятны из анализа его стейтчарта. Анализ модели комбайна оставляем читателю в качестве упражнения. 8.2.6. Анимация Изображение каждой из участвующих в уборке машин построено с помощью графики Апу[.од[с (тонкие детали строились при увеличенном масштабе окна анимации).
Изображения машин расположены в анимационном окне так, чтобы центр координат находился в центре изображения. Именно к данной точке будут привязаны меняющиеся координаты машин в окне анимации корневого объекта при их движении. Координаты машин для их отображения в процессе анимации получаются как значения, возвращаемые функциями хпои и упои каждый раз, когда необходимо нарисовать объект в окне анимации. Обращение к этим функциям позволяет получить текущие координаты объектов (повторим, что никакие параметры этих объектов непрерывно не изменяются).
Аналогично этому, заполненность емкостей отображается в анимации столбцовыми индикаторами с уровнем заполненности, вычисляемым с помощью функции ~пои. На поле анимации в объекте ма[о введен зеленый прямоугольник размером ЗХЗ, Именно экземпляры данного реплицированного объекта, хаотично разбросанные по полю, изображают выращенный урожай. Координаты Х и )' этих объектов объявлены в окне Код анимации в поле Дополнительный код класса как два одномерных массива: с)оиь1е хппзтв[] = пеьз ззопь1е[2000]з оопЫе тппьев[] = пеи оопЫе[2000) з Значения этим координатам присваиваются в поле Код инициализации того же окна: гоп( ьпс 1=0) 1<хипьсв.1епдсьз 1+ь ) ( хипьсв[1) = ипьготзь( апыпастоп.тз.е1с].деснзс]сь() — 2 типаев[1) = опттотззз( вптзьасаоп.Ие1т).деснегд)зс Π— 2 )з ) с помощью графического элемента группа осъеитов (вьоос) на поле анимации зафиксированы точки места парковки машин и разгрузки грузовика.
Глава 8. Примеры моделей, разработанных с ислольаованивм языка,3а'га 177 С такой же осью связаны прямоугольники, моделирующие состояние поля, и все координаты движения по полю отсчитываются относительно центра данного объекта. С координатами комбайна связаны высота и координаты прямоугольных полос, моделирующих уборку поля. Наложение этих прямоугольников поверх прямоугольника, представляющего "неубранное" поле, синхронно с продвижением комбайна по полю визуально представляет уборку урожая изменением цвета части этого прямоугольника. 8.3.
Заключение Как показывают два рассмотренных в этой главе примера, возможность включения фрагментов программного кода на языке 3ата в модели АпуЕорс создает поистине неограниченные возможности для моделирования систем со сложными алгоритмами поведения и взаимодействия объектов. Часть! И Методологические вопросы использования моделей Глава 9. Компьютерный эксперимент Глава 10.
Разработка и анализ стохастических моделей в среде Апу1 оус Глава 11. Организация взаимодействия Апу~ оя~с с другими приложениями 580 Часть 555. 5Иетодопогичесиие вопросы использования моделей Эта часть состоит нз трех глав. В главе 9 рассматриваются вопросы постановки компьютерного эксперимента и поиска оптимальных вариантов решений.