Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Построение простой модели с нуля. Модель сердечных сокращений




Мы начнем с построения очень простой модели биения сердца. Такая модель с именем Heart уже построена в AnyLogic, она находится в папке Examples\Part II. Откройте эту модель (рис. 5.1).

В окне редактора можно видеть четыре окна: окно проекта (Проект), окно свойств, окно структуры (рабочее поле редактора) и окно анимации. За­кройте и откройте опять каждое из этих окон, измените их размеры, мас­штаб. Открыть окно структуры объекта Heart можно двойным щелчком по имени этого объекта в окне Проект. Убедитесь, что окно свойств меняется при выделении различных элементов в окне структуры и окне анимации — оно показывает свойства выделенного элемента. Щелкните объект Simulation в окне Проект. В окне свойств объекта можно видеть начальные условия проведения эксперимента с этой моделью.




 


Запустите модель. Двигая слайдеры, понаблюдайте за изменением ритма поденных сокращений и формы пульсаций переменных на графиках окна наблюдения (рис. 5.2). Наша задача — самим построить эту модель.

Постановка задачи

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

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

dx / dt = — х3b)/ eps,

db / dt = х — хО,

где х представляет радиус сердца, хО — его значение в начальный момент, b — другая переменная, a eps — параметр. Эта модель — одна из простей-ши х, описывающих динамику работы сердца.

Целью построения данной модели является исследование характера зависи-мостей переменных состояния х и b от времени при разных значениях па-раметра eps, а также анализ фазовой диаграммы изменения радиуса х от зна­чения b. Очевидно, что все эти величины вещественные (с плавающей точкой). Для построения модели необходимо задать начальные значения переменных х и b, а также значение параметра eps.

Рассматриваемые вопросы

В результате построения модели сердца будет рассмотрено несколько общих вопросов.

- Создание нового проекта.

- Рабочее поле редактирования объектов, окно Свойства объектов.

- Непрерывные переменные и параметры модели. Функциональные соот­ношения между переменными. Определение переменных с помощью дифференциальных уравнений.

- Запуск модели, создание графиков и фазовых диаграмм, изменение па­раметров в процессе работы модели.


- Окно анимации проекта, включение в анимацию графических элементов.
Видимость графических элементов. Статические и динамические пара­
метры графических элементов анимации.

-Управление временем выполнения модели. Соотношение физического и модельного времени. Интерактивное изменение параметров во время вы­полнения модели. Слайдеры.

Файлы для контроля

Для контроля при самостоятельном освоении материала вы можете обра­щаться к уже построенным файлам, содержащим соответствующие модели. Данная модель уже построена: в папке Model Examples\Part II приведены несколько моделей на разных стадиях разработки, построенные в соответст­вии с данным описанием. Эти проекты вы можете открывать по ходу изуче­ния материала для сравнения со своей разработкой.

Создание нового проекта

Для хранения ваших проектов необходимо создать новую папку. Создайте, например, папку C:\My Models. Запустите AnyLogic, щелкнув по файлу про­екта AnyLogic (расширение alp, значок ). Для построения нового проекта в вашей папке щелкните кнопку Создать панели инструментов (рис. 5.3), либо щелкните по кнопке Новый проект слева внизу окна, либо выберите в основном меню Файл | Создать.

В появившемся диалоговом окне установите нужную рабочую папку, в ней наберите Heart как имя проекта (это имя нового файла, в котором будет храниться ваш новый проект) и щелкните ОК. Новый проект под названием Heart будет создан, и на экране вы увидите следующее — рис. 5.4.

Открытое окно редактора нового проекта содержит три части. Слева в окне классов автоматически будет строиться дерево проекта. Оно обеспечивает удобную навигацию по элементам проекта, которые будут создаваться при построении модели. Для нового проекта в нем уже создан корневой класс активного объекта с именем Main, а для проведения экспериментов с буду­щей моделью уже создан один эксперимент с именем simulation у узла де­рева эксперименты. Центральное окно — окно графического редактора структуры для создания структуры активного объекта, представляющего мо­дель. С помощью кнопок управления этим окном, которые находятся вверху справа, можно уменьшить, свернуть или закрыть это окно. Уменьшите раз­мер окна редактора структуры объекта Main. Двойным щелчком мыши на имени класса активного объекта в окне классов (в данном случае Main) можно открыть окно редактора структуры этого объекта, если оно закрыто.




 


Окно справа — это окно свойств выделенного элемента модели. В данном случае это окно показывает свойства класса корневого объекта с именем Main, если окно его структуры активно. В окне свойств можно редактиро­вать (изменять, устанавливать) свойства любых создаваемых объектов моде­ли. Измените имя корневого объекта нашей модели, назвав его Heart (вме­сто установленного по умолчанию имени Main). Для этого в поле Имя класса вкладки Общие окна Свойства корневого объекта введите Heart вме­сто Main. В окне классов имя корневого объекта сразу изменится.

Построение модели

Наша задача — построение модели, в которой присутствуют две переменные состояния, х и Ъ, и два параметра — хО и eps, где хО — начальное значение х. Начальное значение переменной bзададим константой.

Для введения первой переменной х щелкните мышью на кнопке перемен­ной панели инструментов, после чего щелкните мышью в каком-либо

месте поля окна редактора структуры объекта Heart. Пиктограмма; поя­вится в поле редактора с именем var. Одновременно справа вместо окна свойств объекта Heart появится окно свойств переменной (именно эта пе­ременная сейчас выделена). В это окно в поле имени (Имя) вместо предо­пределенного имени var введите х (рис. 5.5) и нажмите клавишу <Enter>.

При выделенной пиктограмме переменной () ее имя можно перемещать по полю окна структуры и изменять. Саму пиктограмму переменной также можно перемещать по полю при нажатой на ней левой кнопке мыши. Кро­ме кнопки на панели инструментов можно также воспользоваться меню Рисование | Структура.

В модели переменная х определяется дифференциальным уравнением

dx/dt= (х — x3b)/ eps

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

(х-х^3-b)/eps (рис. 5.5). Заметьте, что переменная, определенная как Интеграл или накопитель, в поле структуры модели будет изображаться фио­летовым прямоугольником со скругленными углами —

В поле начального значения запишите хО. Вторая переменная Ъ определяет­ся дифференциальным уравнением db/dt=x-x0. Действия по ее введению в модель аналогичны тем, которые были сделаны ранее для переменной х. Пусть начальное значение b равно 0. В поле Начальное значение окна


свойств переменной Ь величину 0 можно не записывать: если это поле пусто, по умолчанию значение переменной считается нулевым.

Переменные активного объекта Heart можно поместить внутрь прямоуголь-ника, который отмечает границы этого объекта. Для того чтобы прямо­угольник появился, в окне свойств объекта Heart внизу нужно кликнуть на флажке Отображать рамку объекта. Обычно границы активного объекта в о кне редактора нужны для того, чтобы помещать на них графические изо­бражения интерфейсных объектов — портов или переменных — для связи

с другими активными объектами. Поскольку в нашей модели объект Heart же взаимодействует с другими объектами, такие границы можно не показы-ватъ (оставить скрытыми).

В поле окон редактора можно помещать текстовые комментарии. Для того чтобы поместить такой комментарий в окне структуры активного объекта

Heart, щелкните на кнопке Текст панели инструментов и затем, щелк-

нув в какое-нибудь место окна редактора, нарисуйте светло-желтый прямо-угольник, в котором можно записать произвольный текст-комментарий, ни-к ак не влияющий на работу модели. Размеры и место расположения этого


коментария можно менять с помощью мыши. Введите, например, куда-нибудь В поле редактора комментарий Структура активного объекта. ЕГО можно редактировать в поле Текст окна свойств этого комментария.

Для проверки правильности синтаксиса (формальных правил) модели в любой момент при ее построении можно использовать кнопку Построить I панели инструментов. Если щелкнуть на этой кнопке, то выполнится компиляция разрабатываемой модели в программный код на языке Java. Щелкните по кнопке Построить. В нашем примере обнаружились ошибки (рис. 5.6): действительно, нами не определены параметры хо и eps.

На наличие ошибки указывает появившийся символ в строке статуса

окна редактора. Если при трансляции проекта в нем найдены ошибки, то построение программы на Java не завершается, и в появившемся окне Вывод внизу экрана будет представлен список обнаруженных ошибок с ин­формацией о них. Двойной щелчок мыши по строке, в которой указана ин­формация об ошибке, открывает окно и место в нем, где компилятор обна­ружил эту ошибку.

Для завершения построения модели указанные параметры нужно задать. Пусть хо = 0.5, eps = 0.01. Параметры эти являются параметрами активного объекта Heart, потому они вводятся в окне свойств данного объекта. Для задания хо сделайте активным окно редактора структуры объекта Heart. Появится окно Свойства этого объекта.

В данном окне для задания параметров следует щелкнуть мышью на кнопке !, расположенной под полем Параметры, либо дважды щелкнуть левой кнопкой мыши в любом месте этого поля. Появится диалог Параметры для


определении нового параметра. У него уже предопределено имя param, тип real и пустое поле с именем По умолчанию (следовательно, по умолчанию это будет вещественная переменная и ее значение будет нулевым). Замените имя параметра на хо, в поле значения установите 0.5, а тип оставьте real. Остальные поля также оставьте без изменения. При нажатии кнопки ОК этого окна в поле Параметры окна свойств нашего активного объекта Heart появится строчка Имя: хо Тип: real. Переменная eps со значением 0.01 за­дается так же. Снова выполните проверку синтаксиса: нажмите кнопку Построить . В результате на экране вы получите следующее — рис. 5.7.

Зеленая галочка в строке статуса внизу окна редактора свидетельствует о том, что синтаксис модели правильный.

Заметьте, что внизу под полем с именем Параметры для удобства манипули-рования в этом поле со списками параметров помещены шесть кнопок со следующей функциональностью — рис. 5.8.

Построение модели закончено. Вы можете сравнить свою модель с моделью Heart 1, помещенной в папку Model Examples\Part II.


Запуск модели

Щелкнув на кнопке запуска выполнения модели по шагам, после ком-

пиляции в окне наблюдения увидим открытым только окно root перемен­ных и параметров с их начальными значениями (рис. 5.9).

Предопределенное имя root дано единственному экземпляру единственного корневого класса Heart. Переменные в этом дереве помечены треугольни­ками (b и х), а константы — кружками (eps и хО).

Запуск модели () приведет к тому, что переменные bи х в этом окне

начнут изменяться в соответствии с определенными для них уравнениями. Системы дифференциальных и алгебраических уравнений, определенные в проектах AnyLogic, при выполнении модели решаются одним из встроен­ных численных методов. Сам метод и необходимая точность решения выби­раются системой автоматически, если пользователь не изменит предвари­тельные установки в окне свойств объекта simulation. По умолчанию выполнение модели закончится, когда счетчик модельного времени дойдет до 100 (это условие остановки эксперимента также может быть изменено в окне свойств объекта simulations).

Проведите несколько экспериментов с различными скоростями выполнения данной модели, используя кнопки останова, рестарта, запуска.


Графики (диаграммы)

Одним из преимуществ AnyLogic является возможность наглядного пред­ставления поведения модели, в частности, представления изменения зо времени всех ее переменных. Введем графики изменения перемен­ных х и Ь.

1. Запустите модель на выполнение по шагам или нажмите кнопку ре­старта модели

2. Выберите в главном меню команду Вид | Новая диаграмма или щелкните кнопку на панели инструментов.

5. В поле окна появившегося графика перетащите из окна root переменную х, нажав на этой переменной левой кнопкой мыши.

4. Второй график постройте так: в контекстном меню переменной b (в окне root) выберите вариант Chart.

5 Введите еще один график и включите в него обе переменные поочередно.

6. Запустите модель на выполнение. В окнах будут рисоваться графики зна­чений от времени соответствующих переменных.

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

Заметьте, что переменные и параметры нашей модели в окне Содержимое диа граммы контекстного меню любого графика имеют имена вида: <имя

объекта> И через ТОЧКУ <имя переменной в этом объекте>. Например,

ссылка на переменную х здесь записана как root.x. Это стандартный прием объектно-ориентированной разработки. Переменные х, Ъ и параметры хО и eps определены как элементы корневого объекта со стандартным именем root (см. рис. 5.9), поэтому они имеют здесь соответствующие ссылки.

Построенную к данному моменту модель можно сравнить с эталонной мо­делью Heart2 в папке Model Examples\Part II. Проведите серию эксперимен­тов с моделью, перезапуская ее с различными параметрами.

Изменять параметр, как уже говорилось, можно в окне этого параметра, по­являющемся в результате двойного клика на нем в окне root или при выборе команды Изменить контекстного меню данного параметра (рис. 5.10).


Эксперименты

Вернитесь в редактор, разрушив скомпилированную модель (кнопкой ). Дважды щелкнув на объекте simulation окна классов проекта, в окне Свойства вы можете увидеть (и при необходимости изменить) начальные установки компьютерного имитационного эксперимента, который можно выполнить с построенной моделью. На вкладке Общие этого окна можно выбрать об­щие установки — вариант выполнения модели либо в виртуальном времени, либо в реальном времени (с заданным соотношением модельного и физиче­ского времени), а также изменить именно для этого эксперимента пара­метры модели. На вкладке Дополнительные можно установить условие пре­кращения выполнения модели, выбрать численный метод решения системы обыкновенных дифференциальных уравнений и его параметры. По умолча­нию метод будет выбираться автоматически на основе анализа системы уравнений.

Пользователь может сгенерировать несколько экспериментов различных ти­пов, которые можно выполнить с одной и той же моделью. Щелкните на

кнопке панели инструментов или выберите команду Новый эксперимент


а контекстном меню объекта Эксперименты. В появившемся окне можно зыбрать любой из доступных типов экспериментов: Простой эксперимент, Оптимизационный эксперимент и т. п. Более подробно вопросы проведения различных типов экспериментов мы рассмотрим позже.

Анимация модели

Для лучшего понимания динамики модели и наблюдения развивающихся во зремени процессов, в AnyLogic предусмотрена возможность построения анимированного изображения, состоящего из динамических графических элементов. Графичесие элементы здесь называются динамическими, по­скольку все их параметры — координаты, размер, цвет и даже их види­мость — в процессе выполнения модели можно сделать зависимыми от пе­ременных и параметров, которые меняются со временем при выполнении модели.

Зернитесь в редактор, разрушив скомпилированную модель и, щелкнув пра­вой кнопкой мыши в окне классов на имени Heart в дереве проекта, выбе­гите в появившемся контекстном меню этого объекта левой кнопкой мыши команду Новая анимация. После щелчка по кнопке ОК в появившемся диа-логе, в окне редактора появится окно анимации (рис. 5.11). Заметьте, что этот объект появился с именем animation в дереве проекта как составная часть класса Heart. Если окно анимации будет закрыто, открыть его можно двойным щелчком мыши по этому имени в окне классов или выбором команды Открыть в его контекстном меню.

Окно анимации представляет собой плоскость с системой координат (X, Y) с шагом нанесенной сетки 10 пикселов. Так же, как единицу модельного времени можно считать любым интервалом реального времени, размер од­ного пиксела в окне анимации можно ассоциировать с любой единицей длины. Начало координат и их направления отмечены голубыми стрелками вцентре поля; эти стрелки не будут видны при анимации. Заметьте, что ось Yнаправлена вниз, хотя ее можно направить вверх установкой флажка в по-ле Перевернуть ось Y окна свойств анимации.

Штриховой прямоугольник на поле показывает рамку — ту часть поля ани­мации, которая будет видима при работе модели. Размещение рамки отно­сительно начала координат так же, как и его размеры, можно изменять. Вы­делите границу рамки (штриховую линию), щелкнув на ней левой кнопкой мыши, и в появившемся окне свойств рамки установите следующие значе-ния координат: X — -300 и Y = -200. Это координаты левого верхнего угла замки относительно ее начала координат. Ширину и высоту рамки устано-вите равными 600 и 400 в соответствующих полях окна ее свойств. Этого же положения и размеров можно добиться манипуляциями с рамкой как с обычным графическим объектом (изменением ее размеров и положения) с помощью мыши.


Объекты в поле анимации

Будем строить анимацию динамики работы сердечной мышцы как изобра­жения круга (овала), радиус которого будет меняться. Этот радиус является функцией от значения переменной х модели. Во-первых, построим изобра­жение овала. Для этого, щелкнув мышью на панели инструментов по кноп­ке Овал , нарисуем в любом месте поля анимации какой-нибудь овал. Справа появится окно Свойства этого овала. Свойства овала уже установле­ны по умолчанию, и мы можем их редактировать. По умолчанию имя этого объекта будет oval, координаты Х и Y соответствуют месту, куда мы помес­тили овал в поле анимации, а ширина и высота соответствуют тому, что мы нарисовали.





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


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


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

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

Лучшая месть – огромный успех. © Фрэнк Синатра
==> читать все изречения...

2205 - | 2091 -


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

Ген: 0.01 с.