- •Основы моделирования систем
- •Введение в дисциплину "Основы моделирования систем"
- •Проблематика, задачи и цели моделирования
- •Технологии функционирования моделирующих программ
- •Обзор и классификация моделирующих программ
- •Решатели моделирующих программ
- •Понятие о структурном и мультидоменном физическом моделировании
- •Идея мультидоменного физического моделирования
- •Введение в технологию моделирования на основе направленных графов
- •Принцип поточного исполнения блок-схем (моделей)
- •Библиотеки блоков графических языков
- •Блоки обладающие эффектом памяти
- •Понятие о начальных условиях модели (Initial Condition)
- •Понятие о параметрах модели
- •Понятие о методах интегрирования
- •Выбор шага симуляции и метода интегрирования
- •Каскадные алгебраические петли
- •Каскодные алгебраические петли
- •Введение в технологию мультидоменного физического моделирования с применением ненаправленных графов
- •Принципы построения графа схемы физической принципиальной
- •Элементы ненаправленного графа
- •Пассивные элементы ненаправленного графа (потребители энергии)
- •Активные элементы ненаправленного графа (источники энергии)
- •Узлы ненаправленного графа
- •Рекомендации к использованию библиотеки элементов
- •Об альтернативном построении графа схемы физической принципиальной
- •Основы построения моделей на базе гибрида из направленных и ненаправленных графов при мультидоменном физическом моделировании
- •Связывание направленных и ненаправленных графов. Особенности условных графических обозначений пограничных элементов
- •Ситуации, требующие соблюдения условно-положительного направления тока энергетической материи для пассивных rlc-элементов
- •Понятие о датчике потенциала – w-элементе
- •Пример гибридно-графовой модели транзисторного усилителя с элементами инкапсуляции графов
- •Обзор методов анализа моделей, систем и сигналов
- •Идентификация моделей
- •Символьный анализ математического описания моделей
- •Частотный анализ моделей и систем
- •Литература
- •Обзор архитектурного построения программ математического моделирования динамических систем Введение
- •Модульная структура программ математического моделирования динамических систем
- •Архитектура математического ядра моделирующих программ с поточной моделью управления
- •Графический интерфейс программ математического моделирования динамических систем
- •Шлюз Visio2SimKernel
- •Xml хранилище модели
- •Литература
- •Что же с тоэ? или о структурном кризисе в методике преподавания блока дисциплин связанных с расчетом цепей преобразования энергий
- •Уровни сложности задач расчета цепей преобразования энергий
- •О том, как программы мультидоменного математического моделирования динамических систем "выкинули на помойку" учебники по теоретическим основам цепей
- •Сценарий изменения методики преподавания "Теоретических основ цепей" и обзор затруднений
Графический интерфейс программ математического моделирования динамических систем
Графический интерфейс – это самое "слабое место" программ математического моделирования динамических систем. Попробуем разобраться с тем, что может понимать русскоязычный специалист под скромным английским термином диаграмма (diagram), если с помощью неё требуется представить описание модели системы на том или ином уровне в графической форме:
Блок-схемы или около десятка именованных направленных графов.
Схемы физические принципиальные электрических, магнитных, тепловых, гидравлических, акустических, механических, ротационных, и др. цепей преобразования энергий. Они же ненаправленные или би(со)направленные графы.
Гибридные карты состояния или импульсные потоковые графы, графы переходных состояний.
Графы алгоритмов программ.
Структурные схемы, функциональные схемы, мнемосхемы.
И многое другое.
Разнообразие впечатляет. Однако цель перечисления не в потрясении воображения читателя, а в том, чтобы подвести к мысли о том, что задача создания графического интерфейса непроста и не соответствует квалификации разработчиков моделирующих программ. Конечный пользователь должен понимать, что без кооперации усилий нескольких фирм эту задачу не решить (спрос пользователя рождает предложение). С задачей качественного отображения всего перечисленного, в любых масштабах, на любых устройствах ввода вывода, могут справиться лишь редакторы векторной графики – это их прямая задача. Дополнительным требованием к претенденту на её выполнение является открытость объектной архитектуры и наличие документации.
Как бы ни было велико разнообразие способов графического описания моделей, четко просматриваются лишь две техники моделирования: структурное моделирование и мультидоменное физическое моделирование. Для поддержки структурного моделирования требуется решатель систем дифференциальных уравнений и блок-схемы [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:
Контроль над процессом создания рисунка блок-схемы или же схемы физической принципиальной (техника выполнения рисунка блок-схемы отличается от техники выполнения чертежа гайки и возможны специфические облегчения некоторых графических процедур; также требуется контролировать соблюдение некоторых правил создания блок-схем, например отсутствие коротких замыканий выходов и др.).
Дешифровка рисунка направленного графа (блок-схемы) и трансформация информации в программирующие математическое ядро инструкции (см. листинг 2).
Трансформация ненаправленного графа (схемы физической принципиальной), путем перебора уточняющих коммутаций, в виртуальный (неначерченный) направленный, точнее би- или сонаправленный граф.
Дешифровка графических образов, отвечающих за программирование потока(ов), и их трансформация в инструкции переключений математического ядра, а лучше ядер, каждое из которых может отвечать за свой поток, т.е. за свой фрагмент модели.
Дешифровка графических образов, отвечающих за синхронизацию потоков (ядер).
Контроль над процессом симуляции модели; управление процессами визуализации результатов и синхронизации 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).
