Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы моделирования систем.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
525.85 Кб
Скачать

Графический интерфейс программ математического моделирования динамических систем

Графический интерфейс – это самое "слабое место" программ математического моделирования динамических систем. Попробуем разобраться с тем, что может понимать русскоязычный специалист под скромным английским термином диаграмма (diagram), если с помощью неё требуется представить описание модели системы на том или ином уровне в графической форме:

  1. Блок-схемы или около десятка именованных направленных графов.

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

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

  4. Графы алгоритмов программ.

  5. Структурные схемы, функциональные схемы, мнемосхемы.

  6. И многое другое.

Разнообразие впечатляет. Однако цель перечисления не в потрясении воображения читателя, а в том, чтобы подвести к мысли о том, что задача создания графического интерфейса непроста и не соответствует квалификации разработчиков моделирующих программ. Конечный пользователь должен понимать, что без кооперации усилий нескольких фирм эту задачу не решить (спрос пользователя рождает предложение). С задачей качественного отображения всего перечисленного, в любых масштабах, на любых устройствах ввода вывода, могут справиться лишь редакторы векторной графики – это их прямая задача. Дополнительным требованием к претенденту на её выполнение является открытость объектной архитектуры и наличие документации.

Как бы ни было велико разнообразие способов графического описания моделей, четко просматриваются лишь две техники моделирования: структурное моделирование и мультидоменное физическое моделирование. Для поддержки структурного моделирования требуется решатель систем дифференциальных уравнений и блок-схемы [3]. Для поддержки мультидоменного физического моделирования требуется итерационный решатель систем алгебро-дифференциальных уравнений и схемы физические принципиальные [4]. Другие виды графов либо мало эффективны, либо являются предками направленных и ненаправленных графов соответственно. Моделирование же управляемое событиями не является новой техникой моделирования, а лишь дополняет названные совокупностью методов переключения и синхронизации фрагментов моделей в процессе симуляции, обеспечивая тем самым программный контроль над потоком. Т.е. программный контроль над процессом прогонки массива MathBlock[i]или его фрагментов в режиме симуляции:

Листинг 3

Пока (не случилось любое событие) Циклически исполнять фрагмент модели

for (i=0; i < numBlock-10; i++) MathBlock[i]->Calc();

Если (случилось такое событие) Исполнить фрагмент модели

for (i=numBlock-10; i < numBlock; i++) MathBlock[i]->Calc();

...

' Использован синтаксис языка Си, дабы не усложнять список интерфейсов в табл. 2

Шлюз Visio2SimKernel

Если проанализировать вводную информацию по графическому интерфейсу моделирующих программ, то становятся очевидны задачи, возлагаемые на шлюз Visio2SimKernel:

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

  2. Дешифровка рисунка направленного графа (блок-схемы) и трансформация информации в программирующие математическое ядро инструкции (см. листинг 2).

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

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

  5. Дешифровка графических образов, отвечающих за синхронизацию потоков (ядер).

  6. Контроль над процессом симуляции модели; управление процессами визуализации результатов и синхронизации Online воздействий (фактически это еще один шлюз).

В случае использования Visio [8], в качестве графического интерфейса, модульная структура моделирующей программы, изображенная на рис. 1, может быть сокращена. Достаточно оставить Visio, COM-сервер математического ядра, а так же серверы визуализации и Online воздействий. Тому способствуют следующие благоприятные моменты. Последние версии Visio ориентированны на сохранение рисунков в файлах с XML разметкой. Роль библиотеки шаблонов блоков SimKernel_Lib.xml может выполнять определяемая пользователем библиотека графических примитивов Visio (vss-файл). Причем, последние могут иметь переопределяемые пользователем параметры, которые сохраняются в файле рисунка. Объектная модель Visio имеет разделённые коллекции для библиотечных графических примитивов (в нашем случае это блоки), для линий связи, и для коннектеров, что упрощает написание шлюза.

Для математических ядер разных производителей шлюз будет отличаться лишь синтаксисом интерфейсов (табл. 2), который должны уточнить сами производители. Реализация первых двух задач, возложенных на шлюз Visio2SimKernel весьма проста (программа на VB не превышает двух сотен строк). Данной, сокращенной версии шлюза достаточно, дабы перекрыть возможности графических интерфейсов таких программ как Simulink, VisSim, ПК «МВТУ», т.е. закрыть потребности техники структурного моделирования.

Таким образом, производителю математического ядра достаточно поставить: графическую библиотеку блоков, собственный шлюз (Visio2VisSim, Visio2Simulink, Visio2MBTY) и настроенный шаблон документа Visio, дабы пользователь мог использовать его для создания новых моделей. Шлюз может быть оформлен либо в виде вмонтированного в шаблон документа макроса, либо в виде расширений: add-in'а – для контроля над процессом создания рисунка через механизм событий, и add-on'а – для исполнения процедур дешифраций рисунка, программирования математического ядра и управления серверами визуализации и Online-воздействий.

Завершая обзор шлюза, надо отметить, что благодаря гибкости графического интерфейса на основе редакторов векторной графики, впервые у конечного пользователя моделирующих программ появится возможность решить задачу трансформации ненаправленного графа в граф направленный независимо от производителя. А это означает, что техника мультидоменного физического моделирования сделает громадный рывок вперед, поскольку перестанет быть ноу-хау нескольких фирм (см. программы: Dynast, 20-sim, Dymola, Simplorer, ITI-sim, Micro-Cap, Pspice, Multisim).