Научная статья на тему 'Как быстро и качественно "приготовить" интерактивную модель динамической системы'

Как быстро и качественно "приготовить" интерактивную модель динамической системы Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
59
16
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Колесов Юрий Борисович, Сениченков Юрий Борисович

Цель настоящей статьи убедить читателя, что программный комплекс MODEL VISION 2.1, первый из семейства комплексов MODEL VISION, с успехом решает три повседневные для каждого преподавателя проблемы: подготовки сложного иллюстративного материала для урока, создания серии компьютерных лабораторных работ, выполняемых по схеме: “выбери нужные значения параметров” “наблюдай поведение” “объясни увиденное”, разработки сложных приложений с элементами исследования.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Колесов Юрий Борисович, Сениченков Юрий Борисович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Как быстро и качественно "приготовить" интерактивную модель динамической системы»

Колесов Юрий Борисович Сениченков Юрий Борисович

Как быстро и качественно "приготовить" интерактивную модель динамической системы

"Кухня въ семейном быту представляетъ весьма существенный вопрос, для людей средняго достатка и вообще съ ограниченными средствами, которые не могутъ держать повара или хорошо знающую свое дъло кухарку."

ПОЛНОЕ РУКОВОДСТВО для правильного ведения домашнего хозяйства, составленное Малоховской. С-Петербург, Издаше П.А. Федорова, 1909

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

Цель настоящей статьи - убедить Вас, что программный комплекс MODEL

VISION 2.1, первый из семейства комплексов MODEL VISION, с успехом решает три повседневные для каждого преподавателя проблемы:

- подготовки сложного иллюстративного материала для урока,

- создания серии компьютерных лабораторных работ, выполняемых по схеме: "выбери нужные значения параметров" -"наблюдай поведение" - "объясни увиденное",

- разработки сложных приложений с элементами исследования.

технологическая цепочка

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

ПОЛНОЕ РУКОВОДСТВО для правильного ведения домашнего хозяйства, составленное Малоховской. С-Петербург, Издаше П.А. Федорова, 1909

входной язык

СТРУКТУРА

ПОВЕДЕНИЕ

ГРАФИЧЕСКИЙ ОБРАЗ

ЧИСЛЕННЫЙ МЕТОД

3. Описание Пользователем Структуры, Поведения моделируемого объекта и выбора Решателя Уравнений (из числа имеющихся в списке решателей) позволяет Пакету автоматически построить приложение.

4. При генерации кода выполняемой модели используется Borland Pascal. Созданное приложение может работать либо под управлением пакета, либо независимо от него.

\/

НЕЗАВИСИМОЕ ПРИЛОЖЕНИЕ

J

с интерактивным воздействием на модель

математической графикой

анимацией

работающее

В РЕАЛЬНОМ ВРЕМЕНИ

1. Графический язык Пользователя -разработчика приложений - содержит три компоненты: язык функциональных блок-схем, язык карт состояний и язык для описания дифференциальных уравнений и функций поведения (MVW Editor).

2. Отдельно реализованная компонента -редактор Анимаций позволяет разрабатывать Динамические графические образы изучаемых объектов (MVW Animator).

_v

МАТЕМАТИЧЕСКАя МОДЕЛЬ

ВЫЧИСЛИТЕЛЬНАЯ СхЕМА

КОМПИЛяТОР ПРИЛОЖЕНИЙ

i

5. Работающее независимо от MVW 2.1 приложение сохраняет возможность менять по ходу эксперимента параметры модели в ручном и автоматическом режимах, модифицировать окно вычислительного эксперимента, убирая или добавляя окна графиков, динамических таблиц, фазовых диаграмм и, если это необходимо, наблюдать за поведением модели в пошаговом режиме.

ПОСТРОЕНИЕ МОДЕЛИ.

"В состав бульона входятъ: говядина, телятина, куры и рябчики, реже ветчина. Что касается свинины, утокь, гусей, баранины, поросенка и дичи, то бульонь изь нихь менее вкусень."

ПОЛНОЕ РУКОВОДСТВО для правильного ведения домашнего хозяйства, составленное Малоховской. С-Петербург, Издаше П.А. Федорова, 1909

Установка MODEL VISION. MVW 2.1 поставляется в двух модификациях - в виде"русской" или "английской" версий.

"Русскую" версию рекомендуется использовать тем, чьи компьютеры работают под управлением русифицированной Windows.

Пользователям, получившим дискеты от разработчика, достаточно установить первую дискету и щелкнуть мышью по файлу "Install". Сообщение об успешном завершении установки вашей программы говорит о том, что можно приступать к моделированию.

Пользователям, получившим пакет по сети INTERNET (http://www.xjtek.com или http://dcn.nord.nw.ru/MV или http:// www.hotfiles.com), следует расположить оба файла DISK1 и DISK2 во временном каталоге (папке) и щелкнуть мышью по файлу "Install" (DISK1).

Простейшая модель. Математический маятник описывается дифференциальным уравнением

,2

d j и _ . , V

—2 = -g /L *sn(cp),

dt2

jO) = j о;

C = j'0),

dt

g=9.81; L - параметр. Начальные условия, как и длину маятника, будем считать параметрами, или входными величинами.

Описание структуры. Определение "простейшая" в данном случае означает, что наш объект моделирования рассматривается нами как объект простой структуры, то

есть не имеющий внутренних компонент. Функциональная блок-схема таких объектов представляется одним единственным прямоугольником, назовем его "Маятник".

Вызовите программу MVW Editor. В меню действий выберите последовательно команды "Файл", "Новый проект". Перед Вами откроются два окна, одно из которых, а именно "Список Устройств", будет содержать прямоугольник с вписанной в него буквой M (Main) и расположенным рядом стандартным названием "Оеуюе_1"(Устройство_1). Буква M обозначает, что данное устройство (пакет первоначально предназначался для инженеров, разработчиков аппаратных комплексов, поэтому все объекты моделирования называются устройствами) в данном проекте считается главным и расположено на верхнем уровне иерархии. В нашем случае оно единственное и поэтому главное. На будущее, если устройств несколько и Вам надо "сменить лидера", выполните команду "Модель", "Главное Устройство" и следуйте указаниям появившегося диалогового окна.

Прежде всего дадим нашему устройству осмысленное название "Маятник". Выполним команды "Устройство", "Изменить" и заполним поле "Идентификатор". По умолчанию наше устройство уже отнесено пакетом к типу элементарных.

Для описания нашего объекта нужны переменные: время - t, угол- j, производная угла по времени - dj/dt, константа ускорения силы тяжести - g. Предположим, что помимо угла и его производной (переменные состояния) мы хотим вычислять и использовать как входные величины каких-

либо других устройств кинетическую энергию - EK=l/2 dj/dt и потенциальную V=g/L*(1-cos(j)) (выходные переменные). Предусмотрим возможность менять начальные значения угла и его производной, то есть будем считать начальные значения входными параметрами.

Среди всех перечисленных переменных одна, а именно время, играет в пакете особое значение. Пакет MODEL VISION самостоятельно моделирует течение непрерывного времени, для этого предусмотрена специальная переменная STime. В любом новом проекте главное устройство, создаваемое по умолчанию, с типовым названием "Device_1", уже способно жить в этом непрерывном времени, демонстрируя поведение "ничего-не-делаю". Попробуйте прямо сейчас, еще не приступая к собственно проектированию, выполнить последовательность команд "Модель", "Создать и запустить" и (после компиляции модели) "Пуск". Вы увидите окно с образом вашего устройства и макетом часов, которые после щелчка по полю команды "Пуск" начнут отсчитывать время.

Итак, мы разделили наши переменные на входные: L - длину маятника, fi0 - начальное значение угла, fip0 - начальное значение производной угла, в их число входит константа - g; выходные: кинетическую энергию EK=0.5*fip, (fip = dj/dt) и потенциальную V=g/L*(1-cos(f')), fi=j); переменные состояния: fi (угол) и fip (производная угла).

Перенесите эту информацию на блок-схему. Установите курсор на прямоугольник, изображающий ваше устройство, и щелкните мышью. (Этому соответствует последовательность команд "Устройство", "Редактировать"). Перед вами откроются четыре новых окна -"Структура", "Интерфейс", "Процессы" и "Состояние". Перемещаясь

по окнам и делая их активными (установите курсор внутри окна и щелкните мышью), вы получаете возможность описывать входные и выходные переменные и константы ("Интерфейс"), переменные состояния ("Состояние"). Каждое окно имеет свою командную строку. Первое окно ("Структура") позволяет отображать и редактировать структуру устройств. Если устройство составное, то щелчок мыши внутри прямоугольника, изображающего внутреннее по отношению к данному устройство, "опустит" вас на один уровень иерархии вниз. Для того чтобы вернуться на покинутый уровень, необходимо сделать активным окно "Структура" и выполнить команды "Структура", "Вверх по иерархии структуры".

Второе окно ("Интерфейс") предназначено для описания входных и выходных переменных. Сделайте активным окно "Интерфейс". Выполните команду "Компонента" и выберите подкоманду "Новая". Заполните поля появившейся панели.

Рисунок 1.

При заполнении полей учтите, что, помимо деления переменных на входные, выходные и переменные состояния, каждая из переменных характеризуется типом и характером поведения во времени (Таблицы 1, 2).

Имя поля в окне Тип переменной

REAL Вещественная

INTEGER Целая

BYTE Байт

WORD Слово

LONGINT "Большие" целые

числа

BOOLEAN логическая

STRING строка

ENUMERATED перечислимая

Имя поля в окне

Потенциальная

Импульсная

Характер поведения

Определена для любого типа во всех временных точках отрезка "Время моделирования"

Принимает значение только перечислимого типа и только во вре менных точках, где ей присваивается новое значение. Во всех остальных точках отрез ка "Время моделировг ния" не определена.

Таблица 1.

Таблица 2.

В результате описания всех переменных и констант мы получим (рис. 2):

Рисунок 2.

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

поведением (то есть определенным на непрерывном времени). Интуитивно непрерывное поведение связывается с непрерывной изменчивостью наблюдаемой величины. В то же время существуют процессы, где наблюдаемая величина, приняв определенное значение, сохраняет его на длительном временном промежутке. Более того, функция может принимать лишь небольшое количество различных значений заданного типа, например два (0 или 1) в зависимости от выполнения некоторых условий. Описать такую функцию можно, используя понятия состояния и события. Будем говорить, что функция, принимающая значение 0 на некотором отрезке времени, находится в состоянии ОДИН, а если ее значение изменяется на 1 вследствие наступления некоторого события, то она переходит в состояние ДВА. Остается описать условия перехода функции из состояния ОДИН в состояние ДВА и обратно (определить события, приводя-

щие к смене состояния), а также указать начальное состояние. Непрерывное время как бы исчезло из такого описания, и, наблюдая за функцией, мы видим, как она при выполнении условий перехода скачком принимает то одно значение, то другое. Функция демонстрирует дискретное поведение. Так ведет себя светофор, автомат, наливающий газированную воду, реле.

В МУ1№ 2.1 для описания непрерывного и дискретного поведения вводятся непрерывные и дискретные процессы.

Непрерывные процессы. Непрерывные процессы в МУ^ 2.1 могут быть представлены системами дифференциальных уравнений первого порядка и функциями от времени. Наше исходное уравнение второго порядка придется переписать в виде системы двух уравнений первого порядка

ющее поле носит название "алгебраические уравнения", так как предполагалось, что их действительно можно будет задавать). Последовательно, делая активным нужное окно, заполните поля окна "Дифференциальное уравнение" и "Функции", как показано на рис. 3

Рисунок 3.

Ф г-

"Г" = ФР

¿г

ФР

¿г

= -£ /Ь *£Ш1ф)

и дополнить двумя функциями

ЕК = 1 (/гр)2

V = £ /Ь * 1 - оавф))

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Сделайте активным окно "Процессы". Выполните последовательно команды "Процесс", "Новый". В появившемся диалоговом окне подтвердите, что вы имеете дело с непрерывным процессом, и вы попадете в окно Редактора Дифференциальных уравнений и Функций. Окно содержит два независимых дочерних окна "Дифференциальные уравнения" и "Функции" (соответству-

Дискретные процессы. Для данной модели введение дискретного процесса носит несколько искусственный характер, но вполне приемлемо для наших учебных целей. Обратите внимание, у нас есть переменные состояния /г и /гр и переменные /г0 и /гр0. Последние, хоть и описаны, имеют отличные от нуля (/г0) значения, но не используются для нахождения решения. Действительно, они ведь никак не связаны с переменными /г и /гр. Попытка присвоить значения /г=/г0 и /гр=/гр0 при описании непрерывных процессов приведет к абсурду с точки зрения Построителя Модели, так как с одной стороны /г и /гр - решения дифференциальных уравнений, а с другой - вы требуете, чтобы их значения всегда были бы постоянными и равнялись бы /г0 и /гр0, соответственно. Во избежание противоречия опишем дискретный процесс "1№Т" -"Присваивание начальных значений". В

Рисунок 4.

некотором смысле это вырожденный процесс - нам даже не нужна функция, меняющая свои значения в состояниях ОДИН (до начала моделирования) и ДВА (на всем временном промежутке моделирования). Важно, что в момент переключения (STime >= 0) мы сможем мгновенно присвоить переменным состояния нужные начальные значения, после чего они уже будут жить по законам, предписываемым им дифференциальными уравнениями.

Вернемся в окно "Состояние" и введем новую переменную State_Name перечислимого типа (Enumerated) с двумя значениями {ОДИН, ДВА} и присвоим ей начальное значение ОДИН. Эта переменная носит вспомогательный характер и нужна для нумерации узлов КАРТЫ СОСТОЯНИЯ (рис. 4).

Сделаем активным окно "Процессы". Выполним команду "Процесс", затем "Новый", но теперь пометим процесс как дискрет-

ныи и укажем, что для нумерации узлов необходимо использовать переменную 81а1е_Каше. В окне "Состояние" появится новыИ процесс "1№Т". Его редактирование еще не завершено. Выделите строку, соответствующую вашему дискретному процессу, и щелкните по неи мышью. В открывшемся редакторе КАРТ СОСТОЯНИЯ сначала мышью расположите узлы "ОДИН" и "ДВА" в поле окна так, как вы считаете нужным, затем выполните команды "Переход", "НовыИ", ответьте на вопросы и теперь уже выполняите команды "Переход", "Редактировать". В появившемся меню выполните команду "Условие" и наберите булевское выражение 81;1ше>=0, затем "ДеИствия" и присвоите переменным /г и /гр начальные значения /г:=/г0; йр:=/гр0, используя "паскалевскую" нотацию для оператора присваивания (рис. 5).

Рисунок 5.

ОКНО ВЫЧИСЛИТЕЛЬНОГО ЭКСПЕРИМЕНТА.

"Известно, что мясо безъ приправы труднъе переваривается желудкомъ, чем смешанное съ мучнистыми и вообще съ растительными веществами, а потому посъледншя составляют необходимую принадлежность почти всехъ мясных блюдъ съ соусами, въ виде различных гарнировъ".

ПОЛНОЕ РУКОВОДСТВО для правильного ведения домашнего хозяйства, составленное Малоховской. С-Петербург, Издаше П.А. Федорова, 1909

Теперь мы описали все, что нужно для автоматического построения программной реализации математического маятника. Выполните команды "Модель", "Создать и запустить", и пакет автоматически построит выполняемую модель, работающую под управлением программного комплекса. Это наиболее естественное решение, так как возможно нам придется корректировать модель. Для построения независимого приложения воспользуйтесь командой "Создать".

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

Откроем три новых окна: окно "Фазовая диаграмма" и окно "Временная диаграмма" для переменных fi и fip и окно "Временная диаграмма" для переменных EK и V.

Эти окна открываются единообразно. Выполняем команды "Окна", "Открыть", а далее выбираем нужныИ тип окна. Например, выбираем тип "Фазовая диаграмма" и говорим "ОК". В появившемся диалоговом окне нажимаем кнопку "Доб(авить)", выбираем устройство и принадлежащие ему переменные. Закрываем диалоговое окно, что предполагает автоматическое масштабирование.

Сами внутренние окна и их расположение в окне "Вычислительный эксперимент" можно запомнить. Выполните команды "Установки", "Сохранить" и укажите имя фаИла с расширением ".8й". В результате вы получите вот такое (или похожее) окно (рис. 6).

Рисунок 6.

Выполните команду "Пуск", и вы увидите результаты моделирования (рис. 7).

Назначение этой цитаты - напомнить вам и себе, что легкость, с которой мы получили работающее приложение, может сыграть с нами злую шутку, если мы не будем тщательно проверять полученные результаты. В данном случае мы можем легко себя проверить, используя закон сохранения энергии - Е=ЕК+У. Для этого необходимо добавить новую, не предусмотренную ранее формулу. Неужели ради этого нужно перетранслировать модель? Нет. Воспользуемся встроенным калькулятором. Выполните команды "Отлад-

Рисунок 7.

"Хорошо приготовленный соус съ гарниром улучшает вкусъ и питательность мяса, при этом даже является возможным скрыть недостаток свъжести провизш".

ПОЛНОЕ РУКОВОДСТВО для правильного ведения домашнего хозяйства, составленное Малоховской. С-Петербург, Издаше П.А. Федорова, 1909

Рисунок 8.

ка", "Калькулятор" и напишите выражение, включающее любые переменные исследуемого устройства (рис. 8).

ВМЕСТО ЗАКЛЮЧЕНИЯ.

Поверьте нам на слово, что разработка данной модели заняла всего десять минут реального времени. Нам кажется, что это неплохой результат. А Вам?

Третий, последний урок, мы посвятим разработке динамических образов.

НАШИ АВТОРЫ

Колесов Юрий Борисович, кандидат технических наук, руководитель проекта MODEL VISION 2.1, старший научный сотрудник Центра Учебного и научного программного обеспечения ФТК СПбГТУ.

Сениченков Юрий Борисович, кандидат физ.-мат. наук, доцент кафедры1 РВКС ФТК СПбГТУ.

i Надоели баннеры? Вы всегда можете отключить рекламу.