Графический редактор моделей системы
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Графические редактор моделей поддерживает все функции, присущие графическим редакторам систем промышленного моделирования:

· Добавление объектов в редактор в режиме Drag&Drop;

· Перемещение объектов в редакторе в режиме Drag&Drop;

· Автоматическое изменение конфигурации связей при перемещении объектов;

· Ручное изменение конфигурации связей;

· Множественное выделение объектов и групповые операции (перемещение, копирование, удаление);

· Буфер обмена (копировать, вырезать, вставить);

· Отмена произведенных операций (Undo/Redo).

Не была реализована функция масштабирования редактора из-за ее большой трудоемкости и ненужности в рамках приложения такого класса.

Рассмотрим принципы отображения объектов в редакторе. Все графические объекты являются потомками класса JPanel (javax.swing). Графические объекты блоков поддерживают:

· Изменение цвета объекта, цвета границы объекта и ее типа, изменение шрифта и цвета надписи объекта.

· Отображение пиктограмм внутри графических объектов;

· Отображение формул в естественном виде.

Подсистема представления результатов

Основой представления результатов в системе моделирования являются типовые элементы «Временной график f(t)» и «График y(x). Реализация этих объектов основана на использовании свободно распространяемого компонента JFreeChart (рис. 3.7)

Рис. 3.7. Компонент JFreeChart

К его достоинствам можно отнести следующее:

· Понятность программных интерфейсов, легкость в интегрировании в приложение;

· Наличие большого количества примеров по реализации;

· Многофункциональность (масштабирование, настройки отображе-ния, сохранение в файл и т.д.)

Использование данного компонента позволило значительно уменьшить время разработки приложения.

Библиотека типовых блоков

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

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

Рис. 3.8. Представление структуры библиотеки в XML-файле

 

Отображение данного файла в системе моделирования представлено на рис. 3 приложение 1.

Состав библиотеки типовых элементов подробно описан в приложении 2.

Как видно из рис. 3.8, типовые блоки в системе хранятся не в базе данных, а в файлах. Каждому блоку соответствует один файл.

Рассмотрим принцип формирования файлов, соответствующих типовым блокам. Метод их записи основан на принципе сериализации. Файлы с сериализованными объектами сами по себе содержат иерархическую структуру в формате XML. Сериализация заключается в прямой записи экземпляров классов в файл, причем таким образом, что исключается дублирование ссылок. Другими словами после записи в файл объектов со сложной структурой и перекрестными ссылками по принципу сериализации, их чтение в оперативную память даст тоже состояние объектов в памяти, что и до записи, причем не будет создано повторяющихся объектов.

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

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

Данный метод имеет и свои недостатки. При использовании стандартной сериализации сохранение графических объектов (наследованных от стандартных классов языка) приводит к получению файлов большого размера.

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

Математическое ядро

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

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

· Наличием составных элементов (ГЭС);

· Наличием разветвителей сигналов (три графические связи относятся к одному и тому же сигналу);

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

· Наличие циклов (обратные связи).

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

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

Пример исходной системы показан на рис. 3.9. Результат работы подобного алгоритма показан на рис. 3.10.

 

ГЭС
y(t)
g(t)

Рис. 3.9 Структурная схема САР

5
5
4
3
2
1
2
y(t)
g(t)

Рис. 3.10 Результирующая схема с сигналами

По результирующей схеме строится «выходная» карта схемы (см. п. 2.2.1). Одновременно при работе рекурсивного алгоритма определяется список блоков генераторов сигнала на основе информации о готовности их выходных сигналов (всегда готовы для выдачи). Данные блоки первыми попадают в итоговый поток исполнения.

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

Система помощи

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

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

1) Руководство пользователя;

2) Руководство администратора;

3) Библиотека блоков;

4) Руководство по установке.

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

Сравнение с ПК «МВТУ»

Разработанную систему моделирования и оптимизации по нескольким критериям можно сравнить с ПК «МВТУ», как с наиболее близким аналогом.

К несомненным преимуществам ПК «МВТУ» над разработанной системой можно отнести:

1) Использование более мощного математического аппарата, реализация итерационного решателя, большое количество методов интегрирования.

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

3) Более обширная библиотека типовых элементов, хотя применительно к направлению использования разработанного приложения это не сыграет большой роли.

4) Более низкие системные требования.

5) Качественная индексированная система помощи, наличие большого кол-ва справочных материалов.

К преимуществам разработанного ПО можно отнести:

1) Улучшенная организация рабочего пространства системы, удобная и эффективная реализация многооконного режима.

2) Улучшенный редактор схем моделей, более качественное отображение элементов структурных схем.

3) Более высокий общий уровень интерфейса, простота и понятность диалога с пользователем.

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

5) Открытость исходного кода программы.



Дата: 2019-07-24, просмотров: 208.