Решение дифференциальных уравнений в anylogic

AnyLogic 6 Лабораторный практикум
    Владислав Гарасимов 5 лет назад Просмотров:

1 МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное образовательное учреждение среднего профессионального образования «Поволжский государственный колледж» А.Е.Осоргин AnyLogic 6 Лабораторный практикум Самара 2011

2 Печатается по решению редакционно-издательского совета ФГОУ СПО «Поволжский государственный колледж». Рецензенты: Осоргин А.Е. AnyLogic 6. Лабораторный практикум/ А.Е.Осоргин. Самара: ПГК, Курс лабораторно-практических работ предназначен для студентов, изучающих дисциплину «Компьютерное моделирование» с использованием программы AnyLogic. Данный курс также может быть полезен преподавателям и аспирантам, желающим повысить свой профессиональный уровень в области имитационного моделирования. Материал курса изложен в доступной форме, снабжен большим количеством иллюстраций и заданий для самоподготовки. Все лабораторные работы проверены автором на выполнимость и могут быть использован для самостоятельного освоения мощного инструмента имитационного моделирования AnyLogic. ФГОУ СПО «ПГК», 2011 Осоргин А.Е.,

3 ОГЛАВЛЕНИЕ Стр. Введение 5 Благодарности 5 Задание 1. Первая модель на AnyLogic Интерфейс программы Режим выполнения модели Контрольные вопросы 16 Задание 2. Доработка модели Balls Изменение цвета мяча при отскоке Модель с двумя мячами Произвольные перемещения мяча Контрольные задания 22 Задание 3. Построение модели сердца Постановка задачи Создание нового проекта Построение модели Запуск модели Графики и диаграммы Презентация модели Контрольные вопросы 35 Задание 4. Дискретно-событийная модель счетчика Дискретная модель счетчика Постановка задачи Модель Контрольные задания 42 Задания 5 6. Стейтчарты: модель пешеходного перехода Описание проблемы Построение модели Презентация модели Срабатывание перехода по сигналу Срабатывание перехода по условию Контрольные задания 52 Задание 7. Физический маятник Содержательная постановка задачи Концептуальная постановка задачи Математическая постановка задачи Описание модели Презентация Контрольные задания 57 Задание 8. Маятник с ограничителем Описание проблемы Описание модели Презентация Контрольные задания 62 Задание 9. Оптимизационная модель полета ядра Содержательная постановка задачи Концептуальная постановка задачи Математическая постановка задачи 65 3

4 9.4. Описание модели Запуск модели Контрольные задания 70 Задания Агентное моделирование: броуновское движение Описание проблемы Описание модели Презентация Изменение числа шаров Изменение модели Billiard_Balls 77 Задание 12. Модель сегрегации Т.Шеллинга Описание проблемы Модель Контрольные задания 90 Задания Enterprise Library: моделирование транспортных систем Постановка задачи Модель Перекресток Контрольные задания 98 Литература 100 Интернет-ресурсы 100 4

5 ВВЕДЕНИЕ В настоящее время моделирование составляет неотъемлемую часть современной фундаментальной и прикладной науки. Поэтому при изучении данного курса представляется целесообразным использовать пакеты прикладных программ для математических и научных расчетов, ориентированных на широкие круги пользователей. Одним из таких пакетов является AnyLogic, сочетающий в себе мощный инструмент объектно-ориентированного моделирования с интерфейсом визуального программирования. Версия 6, на которой базируется данный практикум, существенно переработана, имеет более удобный и логичный интерфейс, значительно повышена устойчивость работы и улучшена диагностика ошибок. К сожалению, модели, разработанные в предыдущей 5 версии практически не совместимы с новой 6 версией AnyLogic, что и послужило одним из побудительных мотивов к написанию данного практикума. В AnyLogic модели представляются визуально-иерархическими. Простой графический язык моделирования оперирует понятиями объектов и связей между ними. AnyLogic позволяет легко и быстро создавать агентные модели на профессиональном уровне, благодаря языковым конструкциям для задания поведения агентов, их взаимодействия, моделирования среды, а также богатейшим анимационным возможностям. При разработке учебных моделей, не удается обойтись без написания некоторого объема программного кода. Доля программирования при построении учебных моделей составила менее 10% общих трудозатрат на разработку модели, что позволило студентам не тратить время на базовые функции, а сосредоточиться на логике имитационной модели. Использование программы AnyLogic позволяет студенту за ограниченное количество учебных часов научиться строить достаточно сложные и интересные компьютерные модели и в конечном итоге глубже изучить курс компьютерного моделирования. БЛАГОДАРНОСТИ При написании практикума автор использовал идеи некоторых моделей и их описания, изложенные в книге Юрия Карпова «Имитационное моделирование систем. Введение в моделирование с AnyLogic 5», а также документацию к AnyLogic 6, разработанную сотрудниками фирмы XJ Technologies. Автор приносит искреннюю благодарность за предоставленные материалы и возможности. 5

6 ЗАДАНИЕ 1 ПЕРВАЯ МОДЕЛЬ НА ANYLOGIC ЦЕЛИ ЗАНЯТИЯ знакомство с программой AnyLogic на примере модели Balls, освоение интерфейса программы, ознакомление с технологией имитационного моделирования, реализованной в программе AnyLogic. ФОРМА ОРГАНИЗАЦИИ ЗАНЯТИЯ Фронтальная. СТУДЕНТ ДОЛЖЕН ЗНАТЬ понятия: модель, имитационное моделирование, основы одного из алгоритмических языков: Java, Pascal или Basic, СТУДЕНТ ДОЛЖЕН УМЕТЬ пользоваться операционной системой Windows, ориентироваться в многооконном интерфейсе прикладных программ. ОБЕСПЕЧЕННОСТЬ компьютер с установленной программой AnyLogic версии 6, модель Balls, настоящий курс лабораторно-практических работ. ПРАКТИЧЕСКОЕ ЗАДАНИЕ 1.1. ИНТЕРФЕЙС ПРОГРАММЫ Когда Вы первый раз запустите AnyLogic, Вы увидите начальную страницу. Начальная страница содержит краткое описание основных возможностей программы, ссылки на примеры моделей, поставляемые вместе с AnyLogic, а также ссылки на веб-сайт компании XJ technologies (разработчика этого программного продукта) и на форму обратной связи с компанией. Чтобы закрыть начальную страницу, щелкните мышью по кнопке («X») панели заголовка начальной страницы. в С помощью кнопки Открыть модель панели инструментов или команды Файл / Открыть в главном меню выберите файл Balls. Это несложная модель прыгающего мяча. На экране Вы увидите следующее окно — рис AnyLogic при открытии проекта открывает несколько панелей: проекты, диаграмма, палитра, ошибки и свойства. Рисунок 1.1 показывает основные составляющие 6

7 пользовательского интерфейса. Рассмотрим их поочередно. Панель Проекты обеспечивает навигацию по элементам открытых моделей. Поскольку модель организована иерархически, то она отображается в виде дерева: сама модель образует верхний уровень дерева; классы активных объектов и эксперименты образуют следующий уровень и т.д. Панель Проекты по умолчанию прикреплена к левой части рабочей области AnyLogic. Полужирным шрифтом в дереве выделяется тот элемент, редактор которого активен в текущий момент. Если Вы внесете в модель какие-то изменения и не сохраните их, то такая модель будет сразу же выделена в дереве — к имени модели будет добавлена звездочка (*). Вы можете разворачивать и сворачивать ветви дерева элементов модели с помощью кнопок + и -. У каждого класса активного объекта и эксперимента есть своя диаграмма, которая редактируется в графическом редакторе. На диаграммах Вы можете: Нарисовать презентацию с помощью фигур и элементов управления. Задать поведение активного объекта с помощью событий и диаграмм действий. Задать структуру класса, добавив вложенные объекты. Добавить на презентацию визуализирующие графики, диаграммы. Панель Палитра содержит элементы, которые могут быть добавлены на диаграмму класса активного объекта или эксперимента. По умолчанию она прикреплена к правому краю окна приложения. Панель Палитры состоит из нескольких вкладок (палитр), каждая из которых содержит элементы, относящиеся к определенной задаче: Основная содержит основные элементы, с помощью которых Вы можете задать динамику модели, ее структуру и данные. Системная динамика содержит: элементы диаграммы потоков и накопителей, а также параметр, соединитель и табличную функцию. Диаграмма состояний содержит блоки диаграмм, позволяющих графически задавать поведение объекта. Диаграмма действий содержит блоки структурированных блок-схем, позволяющих задавать алгоритмы визуально. Статистика содержит элементы, используемые для сбора, анализа и отображения результатов моделирования. Презентация содержит элементы для рисования презентаций: примитивные фигуры, а также элементы управления, для придания презентации интерактивности. Внешние данные содержит инструменты для работы с базами данных и текстовыми файлами. Картинки содержит набор картинок наиболее часто моделируемых объектов: 7

8 человек, грузовик, фура, погрузчик, склад, завод и т. д. Панель Свойства используется для просмотра и изменения свойств выбранного в данный момент элемента модели. Панель Свойства содержит несколько вкладок. Каждая вкладка содержит элементы управления, такие как поля ввода, флажки, переключатели, кнопки и т.д., с помощью которых Вы можете просматривать и изменять свойства элементов модели. Число вкладок и их внешний вид зависит от типа выбранного элемента. Вы можете, как Вам угодно перемещать панели в пределах окна AnyLogic. Для восстановления принятых по умолчанию настроек расположения панелей нужно в главном меню вызвать Окно / Восстановить расположение панелей. Панель проектов Диаграмма класса активного объекта Панель палитры Рис. 1.1 Панель ошибок Панель свойств На этапе компиляции модели AnyLogic производит проверку синтаксиса диаграмм, типов и параметров. Все обнаруженные на этапе компиляции и построения модели ошибки отображаются в панели Ошибки. Для каждой ошибки показывается ее описание и местоположение — имя элемента модели, при задании которого эта ошибка была допущена. Активный объект является основным структурным элементом модели в AnyLogic. Активным объектом называется сущность, которая включает в себя данные, функции и 8

9 поведение как единое целое. Активный объект строится как класс, который может включать в качестве составных элементов экземпляры других классов активных объектов. Наш проект Balls включает два класса активных объектов: класс Ball и класс Root. На дереве проекта (рис. 1.2) как составные элементы класса Ball показаны Параметры, Динамические переменные и Диаграммы состояний, у класса Root составными его элементами показаны Вложенные объекты и Презентация. Рис. 1.2 Одна из ветвей в дереве проекта имеет название Simulation, это эксперимент, который может быть выполнен с моделью. С помощью экспериментов задаются конфигурационные настройки модели. AnyLogic поддерживает несколько типов экспериментов, каждый из которых соответствует своей задаче моделирования. AnyLogic поддерживает следующие типы экспериментов: Простой эксперимент Варьирование параметров Оптимизация Сравнение «прогонов» Монте-Карло Анализ чувствительности Калибровка Нестандартный Эксперименты: Сравнение «прогонов», Монте- Карло, Анализ чувствительности, Калибровка и Нестандартный доступны только в AnyLogic Professional ДИАГРАММА КЛАССА АКТИВНОГО ОБЪЕКТА В нашей модели диаграмма класса активного объекта мяча задается в окне с именем Ball, в котором содержатся его переменные (координаты мяча х, у и его скорости Vx и Vу), параметры (g, r, k, x0 и y0) и диаграмма состояний с именем statechart (рис. 1.3). AnyLogic отображает получившиеся зависимости между переменными с помощью тонких голубых стрелок. Рис. 1.3 Стрелка, направленная от переменной Vx к переменной x означает, что переменная 9

10 Vx упоминается в формуле переменной x. Стрелки зависимостей рисуются автоматически, всегда синхронизированы с формулами переменных и автоматически появляются или исчезают на диаграмме, как только переменная появится в формуле или будет исключена. Для улучшения наглядности можно редактировать внешний вид стрелок зависимостей, а именно изменять их цвет и радиус закругления. Структура корневого активного объекта Root задана в окне с именем Root. В модели (рис. 1.1) активный объект Root содержит иконку с именем ball один экземпляр активного объекта Ball и анимацию ПАНЕЛЬ СВОЙСТВ ОБЪЕКТОВ МОДЕЛИ Каждый элемент модели обладает теми или иными свойствами или параметрами. При выделении какого-либо элемента в панели Проекта или Диаграммы внизу появляется окно свойств именно этого выделенного элемента. Окно Свойства (рис. 1.4) используется для просмотра и изменения свойств элементов. Рис. 1.4 Например, при выборе параметра g в окне редактора диаграммы объекта Ball внизу в панели свойств появятся 4 вкладки: Общие, Массив, Редактор и Описание. На вкладке Общие кроме имени этого объекта указаны его параметры: тип (double), значение по умолчанию (9.81) и отмечено, что следует показывать этот параметр на презентации и отображать его имя на диаграмме объекта Ball ПОВЕДЕНИЕ АКТИВНОГО ОБЪЕКТА Поведение мяча представлено в стейтчарте, рис. 1.3, который состоит из Начала диаграммы состояний, одного состояния с именем Movement и одного перехода. Переход срабатывает при выполнении условия касания поверхности земли при движении мяча вниз, которое можно записать выражением: 10 у 11 Это выражение записано в поле При выполнении условия окна свойств перехода (рис. 1.5). При выполнении данного условия мяч отскакивает, то есть его скорость меняет свой знак на противоположный и уменьшается на долю k, моделирующую потерю энергии при отскоке. Это отражено в поле Действие окна свойств перехода ПРЕЗЕНТАЦИЯ Именно так, стейтчарты следят за событиями. При наступлении нужного события выполняется необходимое действие. И условие наступления события, и само действие, меняющее переменные модели, записываются операторами языка Ява. Рис. 1.5 В нашей модели строится двумерное динамическое представление, которое показывает, что происходит с моделью с течением времени. Для модели Balls в диаграмме Root построено изображение мяча в виде закрашенной окружности. Презентация позволяет более наглядно представить динамику моделируемой системы, т. е. поведение ее во времени. Для презентации геометрических фигур, например окружности, их параметры координаты, радиус, цвет и т. п., связываются с переменными и параметрами модели. Изменение переменных модели во времени приводит к изменению во времени внешнего вида геометрических фигур, что позволяет наглядно представить динамику моделируемой системы. Рис. 1.6 На рис. 1.6 показано, что в окне свойств зеленого круга координаты Х и Y его центра и 11

12 радиус r имеют динамические значения, которые связаны с переменными х, у и r экземпляра ball класса активного объекта Ball. Таким образом, изменение данных переменных будет вызывать перемещение центра и изменение радиуса окружности, моделирующей мяч, при работе модели. Щелкните мышью на различных анимационных объектах в панели диаграммы Root. Вы увидите, что для различных элементов модели окно свойств содержит различные параметры, характеризующие именно данный элемент. Например, щелкните мышью в презентации на слайдере. В окне свойств на вкладке Основные будет представлена информация о связи слайдера с конкретным параметром модели и геометрическими параметрами самого слайдера. Обратите внимание, что в качестве координаты Y мы взяли значение переменной y со знаком минус и смещением 500 единиц. Это сделано потому, что ось Y на презентации направлена вниз, а не вверх, и знак минус позволяет нам перевернуть ось Y и опустить ее до нужного уровня. Итак, модель Balls построена и готова к запуску РЕЖИМ ВЫПОЛНЕНИЯ МОДЕЛИ При запуске модели можно выполнять различные эксперименты с моделью. Рассмотрим основные средства управления экспериментом ЗАПУСК МОДЕЛИ Запуск модели производится кнопкой Запустить на панели инструментов. При запуске эксперимента AnyLogic автоматически производит построение запускаемой модели. Поэтому в случае обнаружения ошибки Вам будет показано сообщение об ошибке, а более подробная информация будет выведена в панель Консоль. 12 Рис. 1.7 При отсутствии ошибок откроется окно презентации эксперимента, рис. 1.7., которое содержит кнопку Запустить модель и открыть презентацию класса Main. Когда Вы запустите модель с помощью этой кнопки, откроется окно презентации либо эксперимента, либо одного из активных объектов запущенной модели, рис На презентации будут видны все элементы, в свойствах которых были установлены флажки На презентации.

13 При проведении компьютерных экспериментов можно использовать все кнопки, показанные в верхней части окна рис. 1.8: запуск или продолжение моделирования запуск выполнения модели по шагам пауза останов модели и возврат в окно презентации эксперимента В нижней части окна виден статус модели (пауза или выполнение, прогона и др. информация). Рис ЭКСПЕРИМЕНТЫ С МОДЕЛЬЮ На рис кроме движущегося изображения мяча видны текстовый комментарий и «бегунки» или «слайдеры» подвижные указатели для изменения параметров модели во время ее выполнения. Перемещая бегунки слайдеров, можно менять три параметра ускорение свободного падения, долю потери скорости мяча при каждом отскоке и радиус мяча. Изменение параметров позволяет исследовать поведение модели в различных условиях это и есть компьютерный эксперимент. 13

14 Проведите несколько экспериментов с моделью, изменяя параметры модели УПРАВЛЕНИЕ СКОРОСТЬЮ ВЫПОЛНЕНИЯ МОДЕЛИ И ИЗОБРАЖЕНИЕМ Модель AnyLogic может выполняться либо в режиме виртуального, либо в режиме реального времени. В режиме виртуального времени модель выполняется без привязки к физическому времени она просто выполняется настолько быстро, насколько это возможно. Этот режим лучше всего подходит в том случае, когда требуется моделировать работу системы в течение достаточно длительного периода времени. В режиме реального времени задается связь модельного времени с физическим, то есть задается количество единиц модельного времени, выполняемых в одну секунду. Это часто требуется, когда Вы хотите, чтобы презентация модели отображалась с той же скоростью, что и в реальной жизни. Переключение между виртуальным и реальным временем исполнения модели осуществляется кнопкой Виртуальное/реальное время панели управления окна презентации, а уменьшение масштаба времени выполняется с помощью двух кнопок Замедлить, Ускорить и расположенного между ними поля. Это поле указывает коэффициент ускорения модельного времени относительно физического (здесь 1х означает единичный коэффициент ускорения). Выполните несколько экспериментов с различными скоростями выполнения модели, используя кнопки управления НАСТРОЙКА ПРЕЗЕНТАЦИИ Для повышения качества изображения можно использовать настройки презентации: Обновить вид Адаптивная частота отрисовки Уменьшить частоту отрисовки Приоритет (частота отрисовки: скорость выполнения) Увеличить частоту отрисовки Отрисовка со сглаживанием Обновляет содержимое окна презентации. Устанавливает режим адаптивной частоты отрисовки. Уменьшает частоту отрисовки кадров. Отображает текущее значение частоты отрисовки кадров. Вы можете изменить это значение с помощью кнопок Уменьшить частоту отрисовки и Увеличить частоту отрисовки. Увеличивает частоту отрисовки кадров. Включает/выключает режим сглаживания. Кнопка отображается нажатой, если режим сглаживания выбран НАВИГАЦИЯ ПО МОДЕЛИ Расположенный в панели управления окна презентации выпадающий список Навигация открывает организованный в виде дерева список объектов модели, 14

15 обеспечивая простую навигацию по модели и быстрый доступ к любым ее объектам, рис.1.9. Корнем дерева объектов является корневой объект запущенного эксперимента. Если структура модели меняется во время выполнения модели, то эти изменения тут же отображаются в дереве объектов модели. Рис. 1.9 Если выбрать объект Ball, то мы увидим его структурную диаграмму с динамично изменяющимися значениями переменных Y и Vy. AnyLogic поддерживает различные инструменты для сбора, отображения и анализа данных во время выполнения модели. Простейшим способом просмотра текущего значения и истории изменения значений переменной или параметра во время выполнения модели является использование окна инспекта. Щелкните мышью по значку переменной в окне презентации. Будет отображено небольшое желтое окно — это и есть окно инспекта, рис Установите подходящий размер окна путем перетаскивания мышью нижнего правого угла окна инспекта. Если нужно, переместите окно, перетаскивая его мышью за панель названия окна. Рис Чтобы переключить окно инспекта в режим графика щелкните мышью по символу графика, находящегося в правом верхнем углу окна инспекта. 15

16 1.3. КОНТРОЛЬНЫЕ ВОПРОСЫ 1. В чем назначение стейтчартов? 2. Какие классы активных объектов включает проект balls? 3. Продемонстрируйте на примере модели balls что такое структурная диаграмма. 4. Каким образом в модели balls реализован отскок мяча? 5. Для чего применяются динамические значения параметров в окне презентации? 6. Как запустить модель на выполнение? 7. В чем назначение слайдеров? 8. Что такое виртуальное время? 9. Как изменить цвет мяча на презентации? 10. Как переключиться из режима виртуального времени в реальное? 11. Как изменить скорость выполнения модели? 12. Как изменяются режимы отрисовки изображения? 13. В чем смысл эксперимента в программе AnyLogic? 14. Какие типы экспериментов поддерживаются программой AnyLogic? 15. Как изменить текущие значения переменных и параметров модели при ее выполнении? 16. Как показать график изменения переменной модели? 17. Как в модели balls задается потеря энергии при отскоке? 16

17 ЗАДАНИЕ 2 ДОРАБОТКА МОДЕЛИ BALLS ЦЕЛИ ЗАНЯТИЯ продолжение знакомства с программой AnyLogic на примере модели Balls, освоение методов редактирования модели, ознакомление с технологией обработки событий (стейтчартами). ФОРМА ОРГАНИЗАЦИИ ЗАНЯТИЯ Фронтальная. СТУДЕНТ ДОЛЖЕН ЗНАТЬ понятия: модель, имитационное моделирование, стейтчарт. основы алгоритмического языка Java СТУДЕНТ ДОЛЖЕН УМЕТЬ пользоваться операционной системой Windows, ориентироваться в интерфейсе программы AnyLogic. ОБЕСПЕЧЕННОСТЬ компьютер с установленной программой AnyLogic версии 6, модель Balls, настоящий курс лабораторно-практических работ. ПРАКТИЧЕСКОЕ ЗАДАНИЕ Выполним ряд упражнений с моделью Balls, которые дадут представление о средствах разработки моделей в AnyLogic ИЗМЕНЕНИЕ ЦВЕТА МЯЧА ПРИ ОТСКОКЕ Дополним анимационное представление мяча динамическим цветом, так, чтобы при отскоке его цвет на несколько секунд изменялся на красный. Для этого нужно запомнить момент отскока и установить красный цвет окружности в презентации на небольшой интервал времени, следующий за этим моментом. Создайте переменную t0, которая будет фиксировать момент отскока. Для этого перейдите на диаграмму класса активного объекта Ball, затем в панели Палитра откройте вкладку Системная динамика и перенесите иконку (Параметр) на диаграмму. В поле Имя открывшегося окна свойств этого параметра введите t0, а в поле Значение по умолчанию введите -1 (рис. 2.1). Для того чтобы параметр t0 фиксировал момент отскока, нужно значение текущего времени в модели при выполнении условия «отскок» запомнить в этом параметре. За наступлением данного условия следит стейтчарт, 17

18 поэтому выделите мышью переход стейтчарта (рис. 2.2), и в поле Действие добавьте выражение: t0 = time(); При каждом вызове функция time() возвращает текущее значение модельного времени. Рис. 2.1 Параметр t0 имеет начальное значение -1, а при работе модели хранит значение момента времени последнего отскока. Для того чтобы каждый раз при отскоке мяча его цвет изменялся на красный (в течение 0.3 сек.), нужно перейти на диаграмму класса Root, выделить зеленый овал (мяч), в панели свойств этого овала открыть вкладку Динамические и установить в поле Цвет заливки динамическое значение цвета (рис. 2.3): time() 19 2.2. МОДЕЛЬ С ДВУМЯ МЯЧАМИ Добавим в модель второй мяч. Перейдите на диаграмму класса активного объекта Root и перенесите мышью на него еще один экземпляр мяча. Появившийся объект автоматически получит имя ball1 (рис. 2.4). При этом в окне свойств нового экземпляра мяча мы увидим те же значения параметров мяча, которые были определены для активного объекта Ball. Рис. 2.3 Рис. 2.4 Установите начальные значения х0 и у0 нового мяча равными 200 и 300 соответственно. Чтобы на презентации показать движение второго мяча, продублируйте изображение 19

20 первого мяча с помощью клавиш и . Параметры нового изображения овала (координаты и цвета) связаны с характеристиками объекта ball. Их нужно связать с новым объектом шаром с именем Ball1. То есть, вместо Bаll.x, Ball.у и Bаll.t0 в соответствующих полях нужно записать Bаll1.x, Ball1.у и Bаll1.t0 (рис. 2.5). А для значения радиусов Радиус X и Радиус Y нужно установить Ball1.r вместо Ball.r. Рис. 2.5 Теперь при запуске модели будут имитироваться независимые движения двух шаров. Продемонстрируйте свою модель преподавателю ПРОИЗВОЛЬНЫЕ ПЕРЕМЕЩЕНИЯ МЯЧА В нашей модели мячи движутся строго вертикально, отскакивая от горизонтальной поверхности. Это происходит потому, что начальная скорость мячей по координате x равна 0. Если мы изменим начальные скорости мячей по x, нам необходимо будет описать поведение мячей при столкновении с вертикальными стенками и потолком. Зададим случайные начальные значения скоростей Vx и Vy. Для этого перейдите на диаграмму класса активного объекта Ball, выделите переменную Vx и в поле Начальное значение этой переменной замените значение 0 на значение uniform(-100, 100). При этом у различных экземпляров активного объекта Ball начальная скорость по координате 20

22 Рис КОНТРОЛЬНЫЕ ЗАДАНИЯ 1. Измените модель таким образом, чтобы слайдеры действовали на оба мяча одновременно. (5+) 2. Измените модель таким образом, чтобы подсчитывалось время, прошедшее с момента последнего отскока мяча. (5) 3. Измените модель таким образом, чтобы при отскоке от горизонтальных стенок мяч становился желтым на 0,5 сек., а при отскоке от боковых зеленым. (5) 4. Измените модель таким образом, чтобы на один мяч сила тяжести действовала по оси Х, а на другой по оси Y. (5) 5. Измените модель таким образом, чтобы в верхней-правой четверти пространства мячи были синего цвета, а в остальном пространстве голубого, а при отскоке цвет менялся на желтый на 0,5 сек. (5) 6. Измените модель таким образом, чтобы при каждом отскоке изменялся диаметр мяча на 20%. (4) 7. Измените модель таким образом, чтобы мяч 1 менял свой цвет тогда, когда мяч 2 соударяется со стенками. (4) 8. Измените модель таким образом, чтобы в верхней половине пространства мячи были желтого цвета, а в нижней голубого, при отскоке цвет не меняется. (4) 9. Измените модель таким образом, чтобы при полете вправо мяч был зеленого цвета, а при полете влево — пурпурного, при отскоке цвет не меняется. (4) 10. Измените модель таким образом, чтобы подсчитывалось количество отскоков мяча. (4) 11. Измените модель таким образом, чтобы при полете вверх мяч был красного цвета, а при полете вниз — голубого, при отскоке цвет не меняется. (4) 12. Измените модель таким образом, чтобы моделировалось движение мяча в правой половине пространства. (4) 13. Измените модель таким образом, чтобы моделировалось движение мяча в верхней 22

23 половине пространства. (4) 14. Измените направление движения мяча на горизонтальное. (3) 15. Измените модель таким образом, чтобы при отскоке цвет одного из мячей становился зеленым, а другого желтым. (3) 16. Измените модель таким образом, чтобы мяч вначале выполнения модели был в правом верхнем углу. (3) 17. Измените модель таким образом, чтобы при отскоке мячи меняли цвет на 1 сек. (3) 18. Измените направление движения мяча на вертикальное. (3) 23

24 ЗАДАНИЕ 3 ПОСТРОЕНИЕ МОДЕЛИ СЕРДЦА ЦЕЛИ ЗАНЯТИЯ Научиться создавать модели с нуля. Создавать графики в презентации модели. Создавать слайдеры для управления параметрами модели. ФОРМА ОРГАНИЗАЦИИ ЗАНЯТИЯ Фронтальная. СТУДЕНТ ДОЛЖЕН ЗНАТЬ понятия: проект, активный объект, переменная, параметр, презентация, эксперимент, основы алгоритмического языка Java, интерфейс программы AnyLogic. СТУДЕНТ ДОЛЖЕН УМЕТЬ выполнять лабораторно-практическое задание 2, редактировать параметры модели в программе AnyLogic, ОБЕСПЕЧЕННОСТЬ компьютер с установленной программой AnyLogic версии 6, настоящий курс лабораторно-практических работ. ПРАКТИЧЕСКОЕ ЗАДАНИЕ 3.1. ПОСТАНОВКА ЗАДАЧИ Мы рассмотрим простейшую математическую модель, описывающую процессы, похожие на биение сердца. Эта модель описана двумя дифференциальными уравнениями первого порядка: 3 dx ( x x b) db = ; = x x 0, dt ε dt где: х радиус сердца, х0 его начальное значение, b переменная, а ε параметр eps. В этой модели мы исследуем характер зависимостей переменных х и b от времени при разных значениях параметра eps, а также построим фазовую диаграмму зависимости радиуса х от переменной b. 24

25 3.2. СОЗДАНИЕ НОВОГО ПРОЕКТА Запустите AnyLogic. Для построения нового проекта щелкните кнопку Создать панели инструментов, либо выберите в основном меню Файл / Создать / Модель. В появившемся диалоговом окне установите рабочую папку: рабочий_диск:номер_группыфиостудента, наберите heart как имя модели и щелкните Далее. В следующем окне оставьте выбранным по умолчанию Начать создание модели с «нуля» и щелкните Готово. Новый проект под названием heart будет создан. Окно редактора нового проекта содержит несколько панелей. Слева в панели проектов автоматически строится дерево проекта. Оно обеспечивает навигацию по всем элементам проекта, которые будут создаваться при построении модели. Для нашего проекта в нем уже создан корневой класс активного объекта с именем Main, а для проведения экспериментов с моделью уже создан один эксперимент с именем Simulation. Центральная панель панель графического редактора класса активного объекта в которой мы будем производить основные построения модели. Нижняя панель это панель свойств выделенного элемента модели. В данном случае панель показывает свойства класса корневого объекта с именем Main, если окно его структуры активно. Измените имя корневого объекта нашей модели, назвав его Heart (вместо установленного по умолчанию имени Main). Для этого в поле Имя вкладки Основные панели Свойства корневого объекта введите Heart вместо Main. В панели проектов имя корневого объекта сразу изменится. Поскольку AnyLogic создает для каждого класса активного объекта соответствующий Java класс, при задании имени класса активного объекта нужно руководствоваться правилами названия классов в Java. Пожалуйста, начинайте имя класса с заглавной буквы ПОСТРОЕНИЕ МОДЕЛИ В нашей модели должны присутствовать две переменные состояния х и b, и два параметра х0 и eps, где х0 — начальное значение х. Начальное значение переменной b зададим константой. В модели переменная х определяется дифференциальным уравнением: dx/dt = (х х 3 — b)/eps с начальным значением х, равным х0. В AnyLogic можно подобные зависимости задавать именно в таком аналитическом виде. Для того чтобы таким образом определить переменную х, зададим ее в форме накопителя. Для этого перетащите мышью элемент Накопитель, расположенный во вкладке Системная динамика панели Палитра на диаграмму класса активного объекта Heart. Пиктограмма появится в поле редактора с именем stock. Одновременно внизу вместо окна свойств объекта Heart появится окно свойств выделенного накопителя. В это окно в поле имени Имя вместо предопределенного имени stock введите х (рис. 3.1) и нажмите клавишу . 25

26 Затем, определим формулу для вычисления х в поле dx/dt = следующим образом: (x — х*x*x — b) /eps В поле Начальное значение введите х0, (рис. 3.1). При выделенной пиктограмме накопителя его имя можно перемещать по диаграмме класса. Саму пиктограмму накопителя также можно перемещать при нажатой на ней левой кнопке мыши. Вторая переменная b задана дифференциальным уравнением db/dt = х х0. Ее создадим в модели аналогичным образом. Установим начальное значение b равное 0. В поле Начальное значение окна свойств переменной b величину 0 можно не записывать: если это поле пусто, по умолчанию значение переменной считается нулевым. Рис. 3.1 На диаграмму класса активного объекта можно помещать текстовые комментарии. Для этого перетащите элемент Текст со вкладки Презентация панели палитр на диаграмму класса, рядом с накопителями. Введите следующий комментарий: Структура активного объекта. Его можно редактировать в поле Текст окна свойств этого комментария. Для проверки правильности синтаксиса (модели можно использовать кнопку Построить модель панели инструментов или нажать клавишу F7. Если щелкнуть на этой кнопке, то выполнится компиляция разрабатываемой модели в программный код на языке Java. Щелкните по кнопке Построить модель. В нашем примере обнаружились ошибки (рис. 26

Видео:7. Линейные дифференциальные уравнения первого порядка. Метод Бернулли.Скачать

7. Линейные дифференциальные уравнения первого порядка. Метод Бернулли.

27 3.2): действительно, нами не определены параметры х0 и eps. Рис. 3.2 Рис

28 На наличие ошибки указывает появившиеся символы [Х] в панели Ошибки. Для каждой ошибки показывается ее описание и местоположение — имя элемента модели, при задании которого эта ошибка была допущена. Двойной щелчок мышью по ошибке, в зависимости от того, где она была совершена, приведет к открытию того или иного редактора или панели. Если, например, это графическая ошибка, то будет открыт графический редактор, отображающий диаграмму соответствующего класса активного объекта, в котором будут выделены фигуры, которые были неправильно нарисованы. Для завершения построения модели указанные пропущенные параметры нужно задать. Пусть х0 = 0.5, eps = Перетащите мышью пиктограмму Параметр с вкладки Основная панели Палитры на диаграмму класса активного объекта Heart. Назовите его х0, затем на вкладке Основные панели свойств этого параметра введите в поле Значение по умолчанию 0.5. Остальные поля оставьте без изменения. Переменная eps со значением 0.01 задается так же. Снова выполните проверку синтаксиса: нажмите кнопку Построить модель. В результате на экране вы получите следующее — рис Надпись «Построение удачно завершено» в левом нижнем углу свидетельствует о том, что синтаксис модели правильный. окна программы 3.4. ЗАПУСК МОДЕЛИ Щелкнув на кнопке запуска модели, после компиляции откроется окно презентации эксперимента. Запустив эксперимент, увидим структуру активного объекта: переменные и параметры с их значениями (рис. 3.4). Переменные b и х в этом окне начнут изменяться в соответствии с определенными для них уравнениями. Рис. 3.4 Рис. 3.5 Системы дифференциальных и алгебраических уравнений, при выполнении модели, 28

29 решаются одним из встроенных численных методов. Сам метод и необходимая точность решения выбираются автоматически, но можно изменить предварительные установки во вкладке Дополнительные панели свойств объекта Simulation, рис По умолчанию выполнение модели закончится, когда счетчик модельного времени дойдет до 100, это условие остановки эксперимента также может быть изменено во вкладке Модельное время панели свойств объекта Simulation, рис Рис ГРАФИКИ И ДИАГРАММЫ Проведите несколько экспериментов с различными скоростями выполнения данной модели, используя кнопки останова и запуска. AnyLogic позволяет наглядно представить поведение модели, в частности, представить изменения во времени всех ее переменных. Существуют два способа просмотра графиков: с помощью окон инспекта и с помощью диаграмм. Окна инспекта мы подробно рассмотрели в работе 1, здесь отметим лишь то, что эти графики строятся на базе автоматически создаваемых наборов данных, в которые периодически записываются новые и новые значения переменных. Если кривая Вашего графика покажется Вам не гладкой, а «рваной», то причина этого может заключаться в том, что AnyLogic недостаточно часто обновляет наборы данных новыми значениями. Чтобы изменить частоту обновления автоматически создаваемых для переменных наборов данных перейдите на страницу свойств Дополнительные того класса активного объекта, на диаграмме которого находится переменная и измените период обновления данных в поле Период, рис Для получения полнофункциональных графиков лучше воспользоваться диаграммами AnyLogic, которые позволяют динамически визуализировать данные, собираемые в результате работы модели. Набор диаграмм схож с тем, что предлагается программой MS Excel. Рис

30 Построим графики зависимостей переменных b и х от времени и фазовую диаграмму b от х. Перетащите элемент График из палитры Статистика в то место графического редактора, где Вы хотите нарисовать график. Перейдите на страницу Основные панели Свойства. Рис. 3.8 Щелкните мышью по кнопке Добавить элемент данных. При этом над кнопкой появится новая секция свойств, задающая настройки нового элемента данных, который будет отображаться на данном графике. В поле Значение по оси X введите имя переменой Х, а в поле Значение по оси Y имя переменной b. Задайте заголовок Фазовая диаграмма для этого элемента данных в поле Заголовок. Для того чтобы получить гладкую диаграмму нужно уменьшить период обновления данных в поле Период, рис Рис. 3.9 Аналогично постройте временной график для переменных x и b, разместив их на одном графике. Временной диапазон укажите равным 10, рис

31 AnyLogic позволяет настраивать внешний вид и функциональность диаграмм. Поэкспериментируйте с установкой цвета графиков, опциями отображения наборов данных, размерами отображаемого окна, прозрачностью, легендой, и т. п. Проведите серию экспериментов с моделью, перезапуская ее с различными параметрами. Для изменения параметров в процессе выполнения модели, нужно в окне инспекта этого параметра щелкнуть мышью по кнопке с карандашом в верхней части окна, рис Рис ПРЕЗЕНТАЦИЯ МОДЕЛИ Для лучшего понимания динамики модели и наблюдения за процессами, в AnyLogic можно строить анимированные изображения, состоящие из динамических элементов. Графические элементы называются динамическими, поскольку все их параметры — координаты, размер, цвет и даже их видимость в процессе выполнения модели можно сделать зависимыми от переменных и параметров, которые меняются со временем при выполнении модели. Остановите выполнение модели и вернитесь на диаграмму класса Heart. Прямо на диаграмме мы будем рисовать презентацию сердца ОБЪЕКТЫ В ПРЕЗЕНТАЦИИ Построим презентацию сердца в виде изображения овала, радиус которого будет меняться. 31

32 Этот радиус является функцией от значения переменной х модели. Для построения изображения овала перетащите мышью из вкладки Презентация панели Палитра пиктограмму Овал на диаграмму класса. Внизу появится окно свойств этого овала. По умолчанию имя этого объекта будет oval, координаты Х и Y соответствуют месту, куда мы поместили овал, а радиус X и радиус Y соответствуют тому, что мы нарисовали ДИНАМИЧЕСКИЕ ПАРАМЕТРЫ ГРАФИЧЕСКИХ ОБЪЕКТОВ Запустив модель, мы увидим, неподвижный овал, находящийся в заданном месте. В AnyLogic принята следующая концепция: каждая характеристика графического элемента имеет два значения: статическое и динамическое. Статическое значение определяет параметр (координату, угол поворота, цвет и т. п.) объекта как константу. Динамическое определяет значение этого параметра в процессе выполнения модели и может быть определено как значение любой переменной модели. Поэтому у графических объектов в панели свойств имеются вкладки Основные и Дополнительные для статических значений, и вкладка Динамические для динамических значений параметров. Если динамическое значение не определено, графический объект сохранит свое статическое значение. Выделите овал, представляющий динамику сердца. Статические значения его параметров задайте так: в панели свойств овала на вкладке Основные цвет заливки определите бордовым, цвет линии границы — красным; толщину линии границы установите 2. Изменение объема сердца представим радиусами овала на вкладке Динамические как функцию от переменной х, как показано на рис Рис

33 Запустите модель. Проведите эксперименты с установкой различных параметров модели (х0 и eps) и наблюдайте, как изменяется характер сердцебиения СЛАЙДЕРЫ В ПРЕЗЕНТАЦИИ В AnyLogic существует элемент управления, позволяющий пользователю графически выбирать число из заданного диапазона значений путем перетаскивания рукоятки бегунок. Бегунки или их еще называют слайдеры, обычно используются для изменения значений численных переменных и параметров во время выполнения модели. Перетащите мышью с вкладки Элементы управления панели Палитра пиктограмму Бегунок на диаграмму класса Heart между структурой и анимационным овалом. В поле Связать с панели свойств введите имя параметра x0, а минимальное и максимальное значения, которые можно регулировать слайдером, установите 0 и 1. Добавить подписи к слайдеру можно простым нажатием кнопки Добавить метки, рис Запустите модель и проверьте действие слайдера. Аналогично сделайте слайдер для параметра eps, установив ограничения от 0,01 до 0,5. Рис ТЕКСТ В ПРЕЗЕНТАЦИИ В верхнюю часть диаграммы класса Heart введите поясняющий текст. Для этого перетащите мышью пиктограмму Текст с вкладки Презентация панели Палитра. В поле Текст вкладки Основные введите текст Модель сердца, выберите шрифт Century 33

34 Gothic, стиль Полужирный, размер 22. На вкладке Дополнительные установите координаты (Х, Y) этого объекта (20, 10). Следующий текст, содержащий пояснение к модели, введите чуть ниже и правее: Это упрощенная модель динамики сердечных сокращений. Модель описывается двумя дифференциальными уравнениями: dx/dt=(x-х^3-b)/ерs и db/dt=х-х0. Модель позволяет изменять параметры и наблюдать изменение ритма и формы пульсаций. При значении х0 = 0.6 сердце останавливается. Установите выравнивание по правому краю, все другие параметры текста можете оставить по умолчанию. Для того чтобы текст уместился по ширине, в нужных местах следует вставить перевод строки. Элемент Текст также имеет динамические свойства, как и другие графические элементы. Это значит, что можно в процессе выполнения модели динамически изменять положение и ориентацию текста, его цвет, и даже сам текст. Рис Введите в поле презентации прямоугольники, как показано на рис. 3.13, и поместите их на задний план, чтобы они выделяли функциональные блоки построенной модели. Для того чтобы фигура была фоном и не закрывала другие изображения, в контекстном меню 34

35 данного прямоугольника выполните команду Порядок / На задний план. Сделайте подписи к слайдерам, чтобы было понятно, какими параметрами мы управляем. Наша модель построена. Продемонстрируйте ее преподавателю КОНТРОЛЬНЫЕ ВОПРОСЫ 1. Измените презентацию сердца так, чтобы сплюснутый овал, имитирующий сердце вращался вокруг своей оси. (5+) 2. Перечислите параметры графических элементов, которые могут динамически изменяться в процессе выполнения модели? (5) 3. Как изменить период обновления графика в окне инспекта? (5) 4. Поместите на изображение сердца текст с динамическим значением переменной Х. (5) 5. Поместите в поле презентации текущее значение времени. (5) 6. Измените презентацию сердца так, чтобы овал, сжимаясь по оси, Y расширялся по оси X. (5) 7. Какие существуют способы построения графика изменения переменной? (4) 8. Как построить фазовую диаграмму? (4) 9. Как изменять параметры модели в процессе ее выполнения? (4) 10. Как изменить условие остановки выполнения модели? (4) 11. Как выбрать численный метод решения системы обыкновенных дифференциальных уравнений? (4) 12. Как ввести в модель слайдер и связать его с переменной? (4) 13. Как изменить период обновления графика? (4) 14. Как создать подписи к слайдеру? (3) 15. Как создать переменную, определяемую дифференциальным уравнением? (3) 16. Как открыть график в окне инспекта? (3) 17. Как запустить компиляцию модели в программный код на языке Java? (3) 18. Как создать параметр и присвоить ему значение? (3) 35

36 ЗАДАНИЕ 4 ДИСКРЕТНО-СОБЫТИЙНАЯ МОДЕЛЬ СЧЕТЧИКА ЦЕЛИ ЗАНЯТИЯ В результате построения этой модели будут рассмотрены следующие новые вопросы: Создание нового класса активного объекта. События. Значки активного объекта. Порты и сообщения; Действия при получении сообщений. ФОРМА ОРГАНИЗАЦИИ ЗАНЯТИЯ Фронтальная. СТУДЕНТ ДОЛЖЕН ЗНАТЬ понятия: проект, активный объект, переменная, параметр, презентация, эксперимент, основы алгоритмического языка Java, интерфейс программы AnyLogic. СТУДЕНТ ДОЛЖЕН УМЕТЬ выполнять лабораторно-практическое задание 3, создавать модели в программе AnyLogic, ОБЕСПЕЧЕННОСТЬ компьютер с установленной программой AnyLogic версии 6, настоящий курс лабораторно-практических работ. ПРАКТИЧЕСКОЕ ЗАДАНИЕ В данной работе мы построим дискретно-событийную модель средствами AnyLogic. Системы называются дискретно-событийными, если изменения переменных состояния в них происходят только в явно определенные моменты времени или под влиянием явно определенных событий. Находясь в некотором состоянии, дискретная система сохраняет его до наступления очередного события, под воздействием которого переменные системы и, следовательно, ее состояние изменяются скачком. Например, при построении модели банка состояние системы может быть представлено количеством клиентов в помещении банка и числом занятых кассиров. Состояние системы изменяется, если новый клиент входит в банк или освобождается кассир, а это условно можно считать мгновенными событиями. 36

37 4.1. ДИСКРЕТНАЯ МОДЕЛЬ СЧЕТЧИКА В счетчике генератор посылает устройству отображения какой-то сигнал («тик»). Каждый разряд десятичного счетчика считает число пришедших на его вход «тиков» по модулю 10 и передает на свой выход сигнал переполнения после прихода на его вход каждого десятого сигнала. При построении модели такого счетчика нужно использовать средства, характерные для моделей дискретно-событийных систем. Здесь нам достаточно трех таких средств: события, порта и передаваемых через порт сообщений ПОСТАНОВКА ЗАДАЧИ Рис. 4.1 Нужно построить модель трехразрядного десятичного счетчика, работающего от импульсного генератора. На рис. 4.1 представлен счетчик, насчитавший 258 импульсов от генератора МОДЕЛЬ Для реализации имитационной модели нужно построить генератор «тиков», работающий с заданной частотой, и три одинаковых десятичных разряда счетчика. Следовательно, модель должна содержать три класса активных объектов: генератор «тиков», разряд счетчика по модулю 10 и, кроме того, корневой активный объект, который будет включать в себя один экземпляр генератора и три одинаковых экземпляра одноразрядного счетчика, связанные подходящим образом. Создайте в своей рабочей директории новый проект под названием DCounter. Корневой объект назовите Model. Модель будет состоять из нескольких подсистем, связанных между собой ПРЕДСТАВЛЕНИЕ СИГНАЛА КАК СООБЩЕНИЯ Генератор посылает сигналы с определенной частотой разряду счетчика. Для этого предназначен специальный пакет данных сообщение. Сообщения принимаются и посылаются через специальные элементы активных объектов порты. Обмен сообщениями возможен только между портами, соединенными соединителями элементами, играющими роль путей движения сообщений. В нашей модели счетчика важен только сам факт передачи сообщений, а не содержимое. Прием сообщения будет вызывать увеличение значения разряда счетчика ГЕНЕРАТОР ТИКОВ Постройте новый активный объект Gen. Для этого в панели Проекты щелкните правой кнопкой мыши по имени проекта DCounter и в появившемся контекстном меню выберите команду Создать/Класс активного объекта. Назовите новый класс Gen. 37

38 Класс активного объекта Gen должен посылать сообщения первому разряду счетчика с заданной частотой. Для генерации таких сообщений создадим Событие, для этого перетащите элемент Событие из палитры Основная на диаграмму класса активного объекта Gen. В окне свойств этого события нужно оставить Тип события По таймауту без изменений, а Режим установить Циклический. Циклический режим события позволяет пользователю выполнять некоторые действия с требуемой периодичностью, например, каждое утро или ежегодно. Период срабатывания обратно-пропорционален частоте, поэтому в поле Период запишите 1/frequency. В нашей модели frequency это частота следования импульсов генератора, ее нужно объявить как параметр модели. Создайте в классе Gen параметр frequency со значением по умолчанию равным ПРЕЗЕНТАЦИЯ ГЕНЕРАТОРА Внешний вид генератора, а точнее объекта Gen представим прямоугольником, содержащим изображение импульса, как показано в правой части рис Откройте палитру Презентация и перетащите на диаграмму класса Gen прямоугольник, в свойствах укажите ширину этого прямоугольника 80 единиц, а высоту 100. Залейте его желтым цветом, цвет линии границы сделайте красным, а толщину линии равной 1. Рис. 4.2 Сделайте двойной щелчок мышью по элементу Ломаная в палитре (при этом его значок должен поменяться на этот: ). Теперь Вы можете рисовать ломаную точка за точкой, последовательно щелкая мышью в тех точках диаграммы, куда Вы хотите поместить вершины ломаной. Чтобы завершить рисование, добавьте последнюю точку ломаной двойным щелчком мыши. Нарисуйте в поле прямоугольника импульс в соответствии с рис

Создание потоковой диаграммы в AnyLogic

В AnyLogic потоковая диаграмма создается с помощью структурной диаграммы. На диаграмме графически задаются накопители, потоки и вспомогательные переменные.

1. Создайте новый проект для будущей модели и сохраните его в своей папке. Откройте структурную диаграмму двойным щелчком мыши по элементу дерева Main в окне Проект.

2. Создайте два накопителя для того, чтобы смоделировать численности потребителей и потенциальных потребителей продукта. Для этого перетащите элемент Накопитель из палитры Системная динамика на диаграмму класса активного объекта. На диаграмме появится маленький голубой прямоугольник, обозначающий переменную-накопитель (что соответствует классической нота­ции системной динамики).

Измените имя накопителя — окно Свойства, вкладка Основные, введите PotentialAdopters в поле редактирования Имя.

Таким же образом создайте еще один накопитель, назовите его Adopters (рис. 2).

Решение дифференциальных уравнений в anylogic

Рис. 2. Накопители

3. Создайте поток приобретения продукта, увеличивающий число потребителей продукта и уменьшающий численность потенциальных потребителей.

В AnyLogic поток создается с помощью специального инструмента задания потоков. Инструмент задания потоков создает переменную-поток и автоматически конфигурирует накопители, в которые входит или из которых исходит данный поток, таким образом, что их значения изменяются в соответствии со значением этого потока.

Чтобы создать поток, сделайте двойной щелчок мыши по накопителю PotentialAdopters, а потом щелкните по накопителю Adopters. AnyLogic создаст новую переменную-поток и сделает ее исходящим потоком для накопителя PotentialAdopters и входящим — для Adopters. На диаграмме появятся стрелки, которые будут обозначать образовавшиеся зависимости между потоком и этими накопителями (рис. 3). Выделите созданную переменную в графическом редакторе и измените имя этого потока на AdoptionRate.

Решение дифференциальных уравнений в anylogic

4. Посмотрите свойства накопителей. Формулы накопителей должны выглядеть следующим образом (рис. 4).

Решение дифференциальных уравнений в anylogic

Рис. 4. Свойства накопителей

Эти формулы были автоматически заданы инструментом задания потоков.

5. Создайте константы модели. Перетащите элемент Параметр Решение дифференциальных уравнений в anylogicиз палитры Системная динамика на диаграмму класса активного объекта (рис. 5).

Решение дифференциальных уравнений в anylogic

Рис. 5. Диаграмма накопителей и потоков

Видео:Откуда появляются дифференциальные уравнения и как их решатьСкачать

Откуда появляются дифференциальные уравнения и как их решать

1) Создайте константу, задающую общую численность населения. Для этого создайте новый параметр и измените его свойства. В поле Имя введите TotalPopulation. В поле По умолчанию введите 100000. Можно задать также краткое описание константы в поле Описание;

2) в нашей модели интенсивность рекламы и вероятность того, что продукт будет приобретен под ее влиянием, полагаются постоянными. Создайте константу, задающую эффективность рекламы. Назовите ее AdEffectiveness. Задайте значение по умолчанию 0.011;

3) частота, с которой потенциальные потребители общаются с потребителями, принимается как постоянная величина. Поэтому задайте частоту контактов константой. Назовите константу ContactRate. Предположим, что каждый потенциальный потребитель в среднем встречается со 100 постоянными потребителями в год. Задайте значение по умолчанию 100;

4) задайте константой силу убеждения владельцев продукта, определяющую ту долю контактов, которая приводит к продажам продукта. Назовите константу AdoptionFraction. Задайте значение 0.015.

6. Задайте начальные значения накопителей.

Начальное число потребителей нашего продукта равно нулю, поэтому в окне свойств накопителя Adopters введите 0 в поле редактирования Начальное значение.

Начальное количество потенциальных потребителей будет равно общей численности населения. В окне свойств накопителя PotentialAdopters введите TotalPopulation в поле редактирования Начальное значение. Вы можете сделать это с помощью Мастера (Ctrl + пробел).

7. Создайте две вспомогательные переменные, которые будут соответствовать двум составляющим потока приобретения продукта — приобретениям, совершенным под влиянием рекламы и под влиянием потребителей продукта соответственно (рис.5).

1) Перетащите элемент Вспомогательная переменная Решение дифференциальных уравнений в anylogicиз палитры Системная динамика на диаграмму класса активного объекта и назовите ее AdoptionFromAd. В поле AdoptionFromAd = введите AdEffectiveness * PotentialAdopters.

Влияние рекламы моделируется следующим образом: некий постоянный процент потенциальных клиентов AdEffectiveness всё время переходит в разряд клиентов. Их доля в AdoptionRate равна PotentialAdopters * AdEffectiveness;

2) создайте еще одну переменную и назовите ее AdoptionFromWOM. Задайте формулу интенсивности продаж продукта под влиянием устного общения потребителей продукта с теми, кто данный продукт еще не приобрел: ContactRate * AdoptionFraction * PotentialAdopters * Adopters / TotalPopulation.

Проанализируйте данную формулу.

8. Задайте формулу для потока приобретения продукта. Значение потока определяется суммой двух его независимых составляющих — продаж в резуль­тате рекламного влияния и продаж под влиянием общения с потребителями продукта. В окне свойств переменной AdoptionRate на вкладке Основные введите формулу, по которой будет вычисляться значение потока, в поле AdoptionRate= : AdoptionFromAd + AdoptionFromWOM

Создайте связи между элементами. Диаграмма накопителей и потоков должна выглядеть, как показано на рис. 5. Создание модели завершено.

9. Просмотрите причинно-следственные зависимости между накопителями, потоками и вспомогательными переменными в модели.

Зависимости будут показаны стрелками, как в общепринятой системно-динамической нотации. Стрелка, направленная от потока к накопителю, означает, что этот поток является входящим потоком для данного накопителя. Стрелка, направленная от накопителя к потоку, означает, что поток является исходящим. Тонкая стрелка, направленная от переменной A к переменной B, означает, что изменение значения переменной A вызовет изменение значения переменной B.

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

10. Просмотрите код модели. Для этого постройте модель (клавиша F7), а потом на панели Проект выберите Модель, нажмите правую кнопку мыши и из ниспадающего меню выберите Открыть в. и затем — в Java редакторе.

11. Сконфигурируйте выполнение модели, для этого необходимо настроить текущий эксперимент модели.

Если сейчас запустить модель, то она будет работать бесконечно. Поскольку мы хотим наблюдать поведение модели только тогда, когда происходит процесс распространения продукта, поэтому нам нужно остановить модель, когда система придет в точку равновесия. Процесс распространения продукта в этой модели длится примерно 8 лет. Поэтому задайте остановку модели после 8 единиц модельного времени.

Для этого в окне свойств эксперимента Simulation:Main перейдите на вкладку Модельное время, выберите В заданное время из выпадающего списка Остановить. В расположенном ниже поле введите 8. Модель остановится после того, как истекут 8 единиц модельного времени (рис. 6.).

Задайте выполнение модели в режиме реального времени. Задайте скорость выполнения — 2.

Решение дифференциальных уравнений в anylogic

Рис. 6. Модельное время

Вы можете изменить метод, используемый для решения системы дифференциальных уравнений. Если вы не укажете никакого конкретного метода, т. е. оставите выбранный по умолчанию метод Automatic, то во время работы модели AnyLogic будет автоматически выбирать численный метод в соответствии с поведением системы. На вкладке Модельв спискеЧисленные методы выберите метод RK4 из выпадающего списка Дифференциальные уравнения(рис. 7).

Решение дифференциальных уравнений в anylogic

Рис. 7. Численные методы

12. Проверьте ошибки и запустите модель. Для проверки ошибок постройте проект с помощью кнопки панели инструментов Построить (или клавиша F7). В окне Ошибки появится список всех ошибок, обнаруженных в проекте, если таковые имеются. Двойным щелчком мыши по ошибке в этом списке вы можете перейти к предполагаемому месту ошибки, чтобы исправить ее. После построения проекта запустите модель.

13. Просмотрите значения переменных в окне работающей модели.

Видео:2. Дифференциальные уравнения с разделяющимися переменными. Часть 1.Скачать

2. Дифференциальные уравнения с разделяющимися переменными. Часть 1.

14. Исследуйте динамику обеих составляющих потока продаж. Для этого откройте окно инспекта для переменной AdoptionFromAd в окне презентации. Вы можете переключить окно инспекта в режим графика — оно будет отобра­жать временной график изменений значения переменной в модельном времени. Текущее значение переменной будет отображаться рядом с началом координат графика. Окно инспекта автоматически масштабируется таким образом, чтобы полностью вместить кривые графиков от начала до конца периода моделирования.

Откройте окно инспекта переменной AdoptionFromWOM и переключите его в режим графика (рис. 8).

Решение дифференциальных уравнений в anylogic

Рис. 8. Динамика обеих составляющих потока продаж

Можно увидеть, что при внедрении нового продукта на рынок, когда число потребителей равно нулю, реклама будет являться единственным источником продаж. Наибольший рекламный эффект отмечается в начале процесса распространения продукта; он неуклонно падает по мере уменьшения численности потенциальных потребителей.

15. Изучите динамику изменения численностей потребителей и потенциальных потребителей продукта с помощью диаграмм. Для этого создайте диаграмму для отображения переменных Adopters и PotentialAdopters.

Перетащите элемент Временной график IS из палитры Статистика на диаграмму класса Main и измените размер графика, как показано на рис. 9.

Решение дифференциальных уравнений в anylogic

Рис. 9. Временной график IS

Перейдите на вкладку Масштаб панели Свойства. В поле Временной диапазон задайте диапазон временной оси диаграммы — 8. Диаграмма будет отображать график только для заданного временного интервала (рис. 9).

Добавьте элементы данных, историю изменения значений которых вы хотите отображать на временном графике: щелкните мышью по кнопке Добавить элемент данных. Введите в поле Значение имя соответствующего накопи­теля — PotentialAdopters. В поле Заголовок введите Potential adopters. Данная строка будет отображаться в легенде диаграммы для этого элемента данных. Выберите первую опцию из выпадающего списка Стиль маркера, чтобы наносимые на кривую графика точки не отображались дополнительными точками – маркерами (рис. 10).

Добавьте на график еще один элемент данных, который будет отображать значение накопителя Adopters.

Решение дифференциальных уравнений в anylogic

Рис. 10. Динамика изменения численностей потребителей и потенциальных потребителей продукта

16. Добавьте график, отображающий изменение интенсивности продаж. Для этого добавьте на диаграмму еще один временной график, поместите его под добавленным ранее графиком. Измените свойства графика. В качестве Выражения должно быть задано имя потока AdoptionRate.

17. Запустите модель. Первая диаграмма показывает, как изменяются переменные PotentialAdopters и Adopters во время «прогона» модели. Они представляют собой классические S-образные кривые (рис. 11).

Решение дифференциальных уравнений в anylogic

Рис. 11. Графики изменений

На втором графике (рис. 11) вы увидите классическую колоколообразную кривую.

Индивидуальное задание

18. Проанализируйте характеристики модели для своего варианта. Сделайте выводы.

ВариантЭффективность рекламыСила убежденияДлительность процесса
0,0100,01
0,0100,02
0,0100,03
0,0050,04
0,0050,05
0,0050,01
0,0150,02
0,0150,03
0,0150,04
0,0100,05
0,0100,01
0,0100,02
0,0050,03
0,0050,04
0,0050,05
0,0150,01
0,0150,02
0,0150,03
0,0200,04
0,0200,05

Выводы: выполнение практической работы способствует формированию практических навыков построения системно-динамических моделей в экономики и умению проводить анализ данных полученных в результате эксперимента.

Вопросы для самоконтроля:

1. Системно-динамические модели в экономике.

2. Процесс распространения среди населения инноваций и новых продуктов.

3. Особенности моделирования динамических моделей: потоковая диаграмма модели, накопители, потоки, вспомогательные переменные.

Список литературы и ссылки на Интернет-ресурсы, содержащие информацию по теме:

а) основная литература:

1. Имитационное моделирование систем в среде AnyLogic: учебно-методическое пособие / М. В. Киселёва. — Екатеринбург: УГТУ-УПИ, 2009. — 88 с.

б) дополнительная литература:

2. Абрашин Е.А. Экономико-математические методы и модели [Электронный ресурс]: учебное пособие/ — Волгоград: Волгоградский институт бизнеса, Вузовское образование, 2009.— 207 c.— Режим доступа: http://www.iprbookshop.ru/11367.— ЭБС «IPRbooks»

Видео:18+ Математика без Ху!ни. Дифференциальные уравнения.Скачать

18+ Математика без Ху!ни. Дифференциальные уравнения.

3. Клевец, Н.И. Математические модели в менеджменте и маркетинге: Курс лекций: курс лекций/ Н. И. Клевец, К. А. Черногорова; Крымский институт бизнеса. — Симферополь: КИБ, 2006. — 152 с.

🔍 Видео

13. Как решить дифференциальное уравнение первого порядка?Скачать

13. Как решить дифференциальное уравнение первого порядка?

Линейное дифференциальное уравнение Коши-ЭйлераСкачать

Линейное дифференциальное уравнение Коши-Эйлера

Задача Коши ➜ Частное решение линейного однородного дифференциального уравненияСкачать

Задача Коши ➜ Частное решение линейного однородного дифференциального уравнения

Имитационное моделирование систем массового обслуживания в AnyLogic. Урок 2Скачать

Имитационное моделирование систем массового обслуживания в AnyLogic. Урок 2

Метод ЭйлераСкачать

Метод Эйлера

4. Однородные дифференциальные уравнения (часть 1)Скачать

4. Однородные дифференциальные уравнения (часть 1)

Решение дифференциальных уравнений. Практическая часть. 11 класс.Скачать

Решение дифференциальных уравнений. Практическая часть. 11 класс.

Линейное неоднородное дифференциальное уравнение второго порядка с постоянными коэффициентамиСкачать

Линейное неоднородное дифференциальное уравнение второго порядка с постоянными коэффициентами

Как распознать талантливого математикаСкачать

Как распознать талантливого математика

ЗАЧЕМ НУЖНЫ ЭТИ... производные! Математика на QWERTY.Скачать

ЗАЧЕМ НУЖНЫ ЭТИ... производные! Математика на QWERTY.

Дифференциальные уравнения. 11 класс.Скачать

Дифференциальные уравнения. 11 класс.

✓Дифференцируемая функция. Дифференциал | матан #032 | Борис ТрушинСкачать

✓Дифференцируемая функция. Дифференциал | матан #032 | Борис Трушин
Поделиться или сохранить к себе: