Графический интерфейс программ математического моделирования динамических систем
Графический интерфейс — это самое "слабое место" программ математического моделирования динамических систем. Попробуем разобраться с тем, что может понимать русскоязычный специалист под скромным английским термином диаграмма (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