Название: инструментальные средства моделирования динамических режимов электрических машин( Пастухов В.В. )

Жанр: Технические

Просмотров: 897


Общее описание системы

ИСМА предназначена для анализа и автоматизированного проектирования динамических систем методом моделирования. Класс моделей ограничен системами нелинейных обыкновенных дифференциальных уравнений с запаздыванием.

где -вектор состояния;

 мерная функция запаздывания;

- вектор чистых запаздываний;

-нелинейная вектор-функция ,удовлетворяющая условиям Липшица.

Методы численного интегрирования ИСМА включают традиционные явные и неявные схемы с постоянным и переменным шагом интегрирования и оригинальные схемы для численной реализации существенно нелинейных, жестких и других сложных систем. ИСМА реализована на языке С++  в Borland C++ Builder 5 [2] для IBM-совместимых ПЭВМ со стандартной конфигурацией.

Требования к программно-техническому обеспечению:

операционная система Windows 9x/NT/2000/XP;

процессор не ниже Intel 486 (Windows 95)

16 Мбайт (Windows 95) или 32 Мбайта (Windows 98 /NT) оперативной памяти;

видеоадаптер SVGA;

свободное дисковое пространство не менее 5 Мбайт;

наличие манипулятора типа "мышь";

Навигатор запуска программ пакета

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

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

программе редактирования структурных схем;

программе графической интерпретации результата;

помощи к программам;

программе демонстрации системы;

Окно программы можно перемещать по экрану. Для выбора каких-либо вариантов работы необходимо нажать соответствующую кнопку. Окно быстрого запуска программ показано на рис 1.

Мастер запуска программ

Рис. 1.

Редактор структурных схем RElement.

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

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

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

В системе RElement модель представляется в виде набора блоков, объединенных связями. Каждый блок отображается прямоугольником либо окружностью; выполняет определенную функцию и характеризуется именем блока и параметрами блока, изменение которых доступно в любой момент редактирования схемы. Блоки могут не иметь входов (генераторы сигналов), иметь один и более входов в зависимости от типа блока, причем на один вход может быть проведена связь от выхода только одного блока, либо связи. Выход одного блока может быть соединен с любым количеством других блоков. Желтые квадраты в блоках являются полем выходных переменных.

Библиотека блоков

Таблица 1. Библиотека блоков (начало)

Название

Отображение

Описание

Функция

Константа

Константа - источник постоянного сигнала, параметр: числовое значение константы.

Таймер

Таймер - текущее время моделирования, кратное шагу интегрирования

Интегратор

Интегратор - интегрирующий элемент, параметр: начальное значение в момент времени 0.

где - начальные условия интегрирования

Коэффициент

Коэффициент усиления

Синус

Выполняет синусоидальное преобразование входного сигнала, аргумент - входная переменная в радианах.

Степень

Выполняет экспоненциальное преобразование входных сигналов, аргументы – основание и показатель степени.

Задержка

Чистое запаздывание

Нелинейное звено

Предназначено для задания зависимостей не заложенных в стандартные элементы. При этом выбирается необходимое количество пар точек (X,Y), принадлежащих кривой .

-

 

Умножитель

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

N - количество положительных входов. M - количество отрицательных входов.

Сумматор

Имеет неограниченное множество входов и один выход, выполняет функции суммирования и вычитания,  - входные сигналы, поданные на положительный вход сумматора, а - на отрицательный

N - количество положительных входов. M - количество отрицательных входов.

Минимум / максимум

Имеет неограниченное множество входов и один выход. Выполняет функцию минимума или максимума в зависимости от настроек.

или

Текстовый блок

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

-

Макрос

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

-

Таблица 1. Библиотека блоков (продолжение)

 

Меню системы

Меню "Файл"

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

Меню "Правка"

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

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

Меню "Вид"

Предназначено для настройки отображения главного окна программы и окон редактирования:

Инструменты – выпадающее меню, в котором можно выводить либо отключать панели инструментов;

Масштаб – выпадающее меню, в котором можно увеличивать либо  уменьшать масштаб просмотра структурной схемы;

Меню "Вставка"

Данное меню включает три выпадающих меню и три пункта:

Типовые звенья - предназначено для ввода в структурную схему типовых элементов предусмотренных в системе RElement.

Интегратор;

Усилитель;

Синусоидальный преобразователь;

Степенной преобразователь;

Задержка;

Нелинейное звено;

Умножитель;

Сумматор.

Текстовый блок

Максимум / минимум

Сигналы - представлены предусмотренные в программе задающие воздействия

Ступенчатый сигнал;

Таймер.

Связь – перевод редактора в режим создания связей между объектами;

Макрос – вставка в структурную схему пустого макроса;

Подпись – вставка подписи, как текст для описания.

Меню "Моделирование"

Данное меню предназначено для управления режимами моделирования.

Начало моделирования –пункт меню, выбор которого запускает процесс моделирования;

Выходы модели – выпадающее меню в котором можно пометить текущий элемента для снятия с него показаний или снять пометку;

Параметры моделирования – задание параметров моделирования: интервала, шага моделирования;

Меню "Сервис"

Данное меню предназначено для настройки программы.

Стиль связи – Выпадающее меню в котором выбирается способ рисования связи: в виде произвольной линии или линии с углами поворота ровно 90°;

Настройка – Выдает список настроек системы;

Меню "Окно"

Меню содержит список окон редактирования структурных схем, открытых в данный момент, а также набор функций для работы с окнами:

Расположить каскадом – располагает открытые окна по диагонали от верхнего левого угла;

Расположить мозаикой – все открытые окна располагаются так, чтобы закрыть все свободное пространство внутри главного окна;

Упорядочить свернутые окна – все свернутые окна спускаются в нижнюю часть главного окна и выстраиваются в линейку;

Свернуть все окна –  свертывает все окна;

Меню "Помощь"

Предназначено для доступа к справочной системе программы:

Разделы помощи – открывается справочный файл программы, и выводятся его разделы;

О программе… - вывод диалога с информацией о разработчике.

Редактирование моделей системы RElement

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

Режимы работы редактора

Режим вставки элемента схемы;

Режим создания связей между элементами;

Режим модификации элементов;

Режим установки/снятия выходов модели;

Режим моделирования;

Режим вставки объекта

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

Режим создания связей

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

Режим модификации объектов

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

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

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

Режим установки/снятия выходов модели

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

Режим моделирования

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

Рис. 2.

В окне отображаются заданье пользователем в редакторе параметры и метод расчета. И предоставляется возможность изменить их.

При нажатии кнопки «Отмена» модуль расчета закончит свою работу и выгрузится из памяти.

При нажатии кнопки «Начать» будет запущен процесс моделирования

Макросы

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

Макросы могут быть вложенными. Число уровней вложенности не ограниченно.

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

Для удобства пользователя реализованы дополнительные возможности работы с макросами.

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

Во-вторых, макрос может отображаться в виде блока с произвольным текстом, что дает возможность пользователю различать созданные им макросы.

Сообщения об ошибках

Не все блоки отсортированы

Один или несколько блоков требующих входной информации не имеют входа.

Невозможно открыть файл

Файл с заданным именем отсутствует на диске или недоступен.

Переполнение

Переполнение формата числа с плавающей точкой. Скорее всего процесс расходящийся.

Выход модели не определен

Не задан ни один элемент для снятия показаний.

Нелинейное звено определено не полностью на интервале моделирования

Нелинейное звено должно быть определено полностью на всем интервале моделирования

Ошибка записи файла

Невозможно записать пользовательский или временный файл на диск. Возможно, нехватает места или отсутствуют права на запись.

Возможно наличие алгебраических петель

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

Файл уже существует

Файл с заданным именем уже существует можно его перезаписать, сохранить под другим именем или отказаться от сохранения.

Сохранить изменения в файле

Файл был изменен, возможно, требуется сохранить изменения перед выходом.

Достигнут верхний уровень схемы

Данная схема не является внутренней структурой макроса - переход выше невозможен.

Редактор дифференциальных уравнений в форме Коши. CoshiEdit

Разработанный модуль численного анализа задачи Коши предназначен для моделирования динамических объектов, представленных в виде задачи Коши (система из N дифференциальных уравнений первого порядка и начальных условий). CoshiEdit служит, для ввода уравнений, обеспечивает связь с процессором вычислений, позволяет интерпретировать результаты в графическом и табличном виде, также отправлять результаты в отдельный модуль графической интерпретации GRIN.

Язык описания задачи Коши

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

Общие рекомендации

Программа на данном языке состоит в общем случае из трех частей:

определение макросов;

системы дифференциальных уравнений;

начальных условий переменных.

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

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

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

Идентификаторы

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

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

Далее идентификаторы будут встречаться в формате многих программных единицах языка и обозначаться: <ИД>.

Представление чисел

Каких - либо типов данных при записи чисел в данном языке не существует. Числа представлены в их естественном виде.

Арифметическое выражение

Арифметические выражения используются при описании дифференциальных уравнений (правая часть) и при определении макросов.

Запись на данном языке похожа на математическую форму. В арифметических выражениях можно использовать все математические операции:

" + " - сложение;

" - " - вычитание;

" * " - умножение;

" / " - деление;

" ^ " - возведение в степень.

Кроме того допускается использовать логические операции:

"=" - сравнение на равенство двух операндов;

"!=" - сравнение на неравенство двух операндов;

">=" - первый операнд больше или равен второму;

"<=" - первый операнд меньше либо равен второму;

">" - первый операнд строго больше второго;

"<" - первый операнд строго меньше второго.

Плюс к этому можно вызывать встроенные функции и определенные пользователем макросы. В системе доступны следующие встроенные функции:

exp(x) - вычисление экспоненты;

sin(x) - вычисление синуса (угол задан в радианах);

cos(x) - вычисление косинуса (угол задан в радианах);

tg(x) - вычисление тангенса (угол задан в радианах);

arcsin(x), arccos(x), arctg(x) - вычисление соответствующих обратных тригонометрических функций;

hsin(x) - вычисление гиперболического синуса;

hcos(x) - вычисление гиперболического косинуса;

th(x) - вычисление гиперболического тангенса;

lg(x) - вычисление десятичного логарифма;

ln(x) - вычисление натурального логарифма.

Таблица 2. Приоритет операций

Приоритет

Операции

1

= , != , >= , <= , > , <

2

+ , -

3

- (унарный)

4

* , /

5

^

6

Вызов макроса

 

Если в арифметическом выражении встречаются две и более операции с одинаковым приоритетом, то они рассчитываются слева на право. Порядок расчета можно поменять, используя круглые скобки, например: 5*7+3 и 5*(7+3). В первом случае, согласно приоритету, сначала посчитается 5*7, а затем к результату будет прибавлена тройка. Во втором случае, первой будет выполнена операция сложения - 7+3, а затем результат помножен на пять.

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

Запись дифференциальных уравнений

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

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

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

Описание начальных условий переменных

Кроме системы дифференциальных уравнений необходимо еще задать значения переменных в начальный момент времени.

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

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

Описание констант

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

После описания константы, также необходимо поставить " ; "

Использование макросов

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

Макросы могут быть описаны в любом месте программы (даже после их вызова в дифференциальных уравнениях).

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

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

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

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

Предопределенные константы и переменные

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

time - переменная, значение которой равно текущему времени моделирования, ее можно использовать в правой части дифференциальных уравнений;

step - константа, значение шага моделирования;

fulltime - константа, значение длины интервала моделирования.

Константы time, step и fulltime использовать не обязательно, если их нет в программе, значение предлагается системой. И в любом случае, значение этих параметров моделирования можно изменить в диалоговом режиме.

Главное меню

Меню Файл

В данном меню представлены все основные пункты работы с файлами.

Новый - создание нового текстового файла. (Ctrl+N).

Открыть - открытие уже имеющегося файла (Ctrl+O).

Закрыть - закрыть активный документ

Сохранить - сохранить активный документ (Ctrl+S).

Сохранить как - сохранить активный документ под другим именем.

Печать - печатать активный документ (Ctrl+P).

Настройки принтера - выбор принтера и его параметров.

Выход - выход из приложения (Alt+F4).

Меню Правка

В меню "Правка" представлены основные функции работы с текстом и некоторые дополнительные (быстрая вставка комментария и макроса).

Отменить - отменить предыдущее действие. Отменить можно только одно действие (Ctrl+Z).

Вырезать - удалить выделенный текст из активного файла и поместить его в буфер (Ctrl+X).

Копировать - копировать выделенный фрагмент текста в буфер (Ctrl+C).

Вставить - вставить текст из буфера в текущую позицию активного документа (Ctrl+V).

Выделить все - выделение всего текста активного документа (Ctrl+A).

Добавить комментарий - добавить комментарий (" // ") в текущую позицию активного документа(Alt+K).

Добавить макрос - добавить определение макроса (" macro()") в текущую позицию активного документа(Alt+M).

Найти - вызов стандартного окна диалога поиска текста(Ctrl+F).

Заменить - вызов стандартного окна диалога поиска и замены текста.

Меню Вид

Меню предназначено для настройки параметров и интерфейса программы.

Панели - меню позволяющее включать/выключать стандартную панель и панель отладки.

Строка состояния - включить/выключить строку состояния.

Настройка - показывает диалоговое окно настройки параметров программы.