Ю. Карпов - Иммитационное моделирование систем с AnyLogic 5 (1124147), страница 12
Текст из файла (страница 12)
Введение новой переменной в активный объект ватт Рис. 4.11. Запоминание времени в момент отскока Часть!. Общие вопросы имитационного моделирования Переменная евонное имеет начальное значение — ! и при работе модели хранит значение момента времени последнего отскока. Для того чтобы каждый раз при отскоке мяча его цвет изменялся на красный (скажем, в течение О.! с), нужно установить в поле Цвет заливки графического изображения мяча в окне анимации динамическое значение цвета (рис. 4. ! 2): дектъте() < Ьа11.КВоипое+0.1З Со1ок.кегп Со1ок.Ь1ие Это условное выражение устанавливает цвет заливки изображения мяча ьа11 красным в течение О.! с после каждого отскока. Рис.
4.12. Запоминание времени а момент отскока 4.4.2. Введение второго мяча в модепь Введите в модель второй мяч. Для этого сделайте активным окно структурной диаграммы воок и перенесите в него еше один экземпляр мяча, шелк- НУВ ЛЕВОЙ КНОПКОЙ МЫШИ СиаЧапа ПО ИМЕНИ Ва11 В ОКНЕ ПрОЕКта, а ПОТОМ в окне структурной диаграммы воок. Появившийся объект автоматически получит имя ьа111 (рис.
4.)3). При этом справа откроется окно свойств вьшеленного объекта (нового экземпляра мяча), в котором установлены те значения параметров мяча, которые были определены лля активного объекта ва11. Установите начальные значения кс и уо координат к и у нового мяча равными 200 и 300 (рис. 4. (4).
Чтобы движение нового мяча отобразить в анимации, в окне анимации продублируйте изображение мяча. Для чего нажмите левой кнопкой мыши на изображении мяча и при нажатой клавише <Сгг)> перенеситс это изображение в другое место поля анимации. Для нового изображения круга в праной части окна редактора появится окно свойств, в котором динамические знаЧЕНИя ПараыстрОВ (КООрдниат И цВЕта) СВяЗаНЫ С ХараКтЕрИСтИКаМИ Шара Ьа11. Глава 4. Имитационное моделирование в среде Апу1.од)с.
Общие понятия Рис. 4.13. Введение нового экземпляра мяча в модель Рис. 4.14. Изменение параметров нового экземпляра мяча Рис. 4.16. Введение изображения ново~о экземпляра мяча копированием существующего изображения Часть 1 Общие вопросы имитационного моделирования Их нужно связать с новым объектом — шаром с именем ьап1. Иными словами, вместо ьап.х, ьап. у и ьап.
свсспсе в соответствуюших полях нуж- НО ПОСтаннтЬ Ьа111.х, Ьа111.у И Ъа111. Сясипсе (рне. 4.15). ТОЧНО таКжЕ На вкладке Овал этого окна лля значения радиусов валхус 1 и гаахус з нужно уСтаНОВИтЬ ЬаП1. х ВМЕСТО Ьа11.х. Запустите модель. В модели теперь будут имитироваться независимые движения двух шаров. Построенная вами модель должна соответствовать модели вапе1 папки Рап 1. 4.4.3. Произвопьные перемещения мяча В данной модели мячи движутся вертикально, отталкиваясь от поверхности с координатой О. Это происходит потому, что начальная скорость мячей по координате х равна О. Если мы изменим начальные скорости мячей по этой координате, сделав их, например, случайными, нам необходимо задать также, как мячи будут себя вести при встрече с потолком и вертикальными стенками.
Вернемся снова к экспериментам с одним мячом. Удалите из окна структурной диаграммы обьекта васс объект ьа111, а из окна внимании удалите Шар С ИМЕНЕМ с таП., ОтОбражаВШИй ЛВИжЕНИЕ Шара Ьа111. Сделаем сначала случайными начальные значения скоростей ух и уу мяча. Активизируйте окно структурной диаграммы активного объекта вап, выделите переменную ух и в поле Начальное значение этой переменной замените значение 0 на значение сайгсха1-1оо, 1оо>. Тем самым начальная скорость по координате х у различных экземпляров активного объекта вап будет выбираться случайно из диапазона ( — 100, +100) метров в секунду как реализация случайной величины, равномерно распределенной в этом диапазоне. То же самое сделайте для переменной уу.
Для учета отталкивания мяча от потолка нужно событие встречи препятствия мячом на переходе стейтчарта изменить. Размеры поля, в котором двигаются мячи, установлены 500х500 (м). В поле Событие окна свойств перехода стейтчарта активного объекта вап. выражение: у <= х йй чу < о следует дополнить: у <= х йй чу < 0 11 у >= >00 †йй <у > 0 Действие, которое выгюлняется и в том, и в другом случае, будет тем же: изменение направления скорости уу с частичной ее потерей. Для того чтобы учесть отталкивание мяча от вертикальных стен, нужно учесть это событие в стейтчарте введением дополнительного перехода. Сделайте окно стейтчарта активным и добавьте к состоянию мсуетепс дополни- Глава 4.
Имитационное моделирование в среде Ялур.сдс. 05(цие понятия 51 тельный переход, используя иконку Я панели инструментов. Щелкнув мышью на этой иконке, поместите указатель мыши на границе состояния и продвигайтесь по полю окна стейтчарта, щелкая кнопкой мыши в тех местах, где должны располагаться точки изгиба линии перехода.
Двойной щелчок мыши заканчивает рисование перехода стрелкой (рис. 4.1б). Рис. 4.16. Рисование перехода В появившемся справа окне свойств этого перехода в поле Происходит нужно выбрать вариант По событию, в поле Событие следует вставить условие наступления события касания мяча о вертикальную стенку: х <= х йй чх < 0 1( х >= 500-х йй чх> 0 а в поле Действие установить действия изменения направления составляющей чх скорости мяча и моментальное изменение цвета мяча при столкновении: ех=-(1-х)*чх; хнеппсе = оеетйгае(]: Это изображено на рис. 4.17. Запустите модель на исполнение. Используя слайдеры, можно изменять радиус мяча, коэффициент потери скорости при встрече с препятствием, ускорение свободного падения, превращая мяч в воздушный шар при я<о или а биллиардный шар при я=с. Построенная вами модель должна соответствовать модели ваттвз папки Раг( 1.
Часть д Общие вопросы имитационного моделирования бг Рис. 4Л т. Свойства нового перехода 4.5. Основные концепции имитационного моделирования в среде Апу~о91с Подведем итог нашего предварительного ознакомления с АпуЕоя!с. 4.5.1. Две фазы имитационного моделирования В АпуЕофс две фазы имитационного моделирования — разработка модели и ее анализ — явно разделены. Разработка модели выполняется в среде редактора АпуЕоя1с, анализ модели происходит в среде исполнения. В каждой фазе существуют свои средства управления.
Переход из одной фазы в другую производится очень легко. Можно многократно использовать переход между фазами редактирования и исполнения модели при разработке модели, что мы и делали в предыдущем разделе. 4.5.2. Активные объекты, классы и экземпляры активных объектов Класс в программировании является мощным средством, позволяющим структурировать сложную систему. Класс определяет шаблон, в соответствии с которым строятся отдельные экземпляры класса.
Эти экземпляры могут быть определены как объекты других активных объектов. В АпуЬщс основным структурным блоком при создании моделей являются классы активных обьеклюа. Использование активных объектов является естественным средством структуризации модели сложных систем: мир состоит из множества параллельно функционирующих и взаимодействующих между < Лава 4. Имитационное моделирование в среде Апу<.од<с.
Общие понятия бе собой сущностей. Различные типы этих сущностей и представляют разные активные объекты. Чтобы создать молель Авуаров<с, нужно создать классы активных объектов (или использовать объекты библиотек Апу(.оя<с). Определение активного объекта задает шаблон, и отдельные объекты, построенные в соответствии с этим шаблоном (экземпляры активного объекта), могут использоваться затем как элементы других активных объектов. В модели ва11в определены два класса активных объектов: ва11 и асес. В класс асос были включены два экземпляра класса ват1 с именем ьа1т и ьа11т, которые различались своими параметрами (началвными значениями координат х и у). Всегда один класс в модели является корневым. Для него в модели Апу(.од<с порождается один экземпляр с предопределенным именем соое, он и запускается исполнительной системой Алуштой<с на выполнение.
Имя класса корневого активного объекта можно менять в окне его свойств. Каждый активный обьект имеет сл<руктуру (совокупность включенных в него активных объектов и их связи), а также поведение, определяемое совокупностью переменных, параметров, стейтчартов и т. п, Каждый экземпляр активного объекта в работающей модели имеет свое собственное поведение, он может иметь свои значения параметров, он Функционирует независимо от других объектов„взаимодействуя с ними и с внешней средой. 4.5.3. Обьектно-ориентированный подход Апу).ой<с использует объектно-ориентированный подход к представлению сложных систем. Этот подход позволяет простым и естественным образом организовать и представить структуру сложной системы с помощью иерархии абстракций. Например, на некотором уровне абстракции автомобиль можно считать неким единым объектом.
Но более детально его можно представить как совокупность взаимодействующих подсистем: двигателя, рулевого управления, тормозной системы и т. п. Каждая из этих подсистем может быть представлена, если это необходимо, своей структурой взаимодействующих подсистем. Именно такую иерархию абстракций позволяет создать Алуштой<с при разработке моделей. В нашем примере ва11вт всю модель можно рассматривать как единый объект тпсс. При более детальном рассмотрении видно, что этот объект содержит два экземпляра класса ва11 с именами ьат1 и ьа1п. Сам класс ва11 может иметь свое сложное строение, которое будет скрыто в классе косе.
Такая иерархия структуры может быть произвольной глубины. 4.5.4. Визуальная разработка модели При построении модели ва1|в не использовано никаких других срелств, кроме средств визуальной разработки (введения состояний и переходов стейтчарта, введения пиктограмм переменных и т. и.), задания численных Часть Ь Общие вопросы имитационного моделирования 54 значений параметров, аналитических записей соотношений переменных и аналитических записей условий наступления событий. Основной парадигмой, принятой в АпуЕорс при разработке моделей, является визуальное проектирование — построение с помощью графических объектов и пиктограмм иерархий структуры и поведения активных объектов.
4.5.6. Встроенный язык уача АпуЕорс является надстройкой над языком Зауа — одним из самых мощных и в то же время простых современных объектно-ориентированных языков. Все объекты, определенные пользователем при разработке модели на Апу1оя|с с помощью его графического редактора, компилируются в конструкции языка Ьача, а затем происходит компиляция всей собранной программы на зача, задающей модель, в исполняемый код. Хотя при построении модели на АпуЕорс разработчик использует конструкции языка Зауа в большей или меньшей степени, в действительности он никогда не разрабатывает полные программы, он не программирует, а лишь вставляет фрагменты кода в специально предусмотренные лля этого поля окна Код и окон свойств обьектов модели.
Эти фрагменты выражают логику конкретных шагов или действий в модели. Например, событие касания мячом земли записано в модели ва11е так: у<= таауу< о что является просто логическим выражением языка 3ауа. Как и все другие включенные в модель программные фрагменты, это выражение должно быть синтаксически правильной конструкцией $ача, потому разработчик моделей АпуЕорс должен иметь некоторое представление об этом языке. 4.5.6.