Клиначёв Николай Васильевич

Преодоление барьеров
или
Критерии оценки программ для
симуляции движения (моделирования) систем

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

  1. Тип используемого решателя
    1. Интерпретатор
    2. Компилятор
    3. Квази-JIT-компилятор (как у платформы .NET)
  2. Режим функционирования решателя
    1. Пакетный
    2. Динамический (поточный)
  3. Особенности режима реального времени
    1. Функционирование под контролем платформы .NET
    2. Функционирование под контролем ОС Windows
    3. Функционирование под контролем ОС DOS
    4. Существенная блокировка системных прерываний ОС
    5. Собственная ОС и BIOS
  4. Состав пакета решателя
    1. Явные решатели (решение дифференциальных уравнений)
    2. + Неявные решатели (решение алгебраических уравнений)
    3. + Оптимизаторы (итерационный подбор параметров)
  5. Способы описаний моделей систем
    1. Системой дифференциальных и алгебраических уравнений (текстовое описание)
    2. Структурной или блок-схемой (описание элементарными математическими блоками и передаточными функциями)
    3. Направленными графами связей (Bond graphs)
    4. Функциональной или принципиальной схемой (описание моделями физических элементов с применением их условных графических обозначений)
  6. Возможность моделирования во многих физических доменах
    1. Без поддержки двунаправленных шинных проводников
    2. С поддержкой двунаправленных шинных проводников
  7. Возможности поточного управления
    1. Контроль потока исполнения модели невозможен
    2. Назначение локального шага симуляции для фрагмента модели
    3. Программирование серии повторных симуляций (для итерационного подбора параметров)
    4. Read-Only-контроль программы скриптовыми языками
    5. Программирование событий (моделирование поведений управляемых событиями – гибридное моделирование)
    6. 100% графическое программирование потока исполнения модели
  8. Виды символьного анализа
    1. Линеаризация (ABCD, ПФ)
    2. Полиномы <-> полюсы, нули
    3. Билинейное преобразование (s<->z)
    4. Генераторы коэффициентов КИХ и БИХ-фильтров
    5. Мастера создания нелинейных фильтров
  9. Частотный и корневой анализ
    1. Аналитический (на базе символьного анализа последовательности операций, исполняющихся в потоке)
    2. Измерительный (на базе результатов симуляции движения координат модели)
  10. Адаптивность генератора кода программ с модели
    1. Программа имеет встроенные правила интерпретации
    2. Программа использует правила определенные в текстовом XML-файле
  11. Размер рабочих файлов программ и совместимость
    1. 60..200 KB – сохранение объектов программы в выходном потоке
    2. 1..10 KB – собственный интерпретируемый текстовый формат
    3. 10..100 KB – универсальный текстовый формат с разметкой, позволяющий переносить модели из одного пакета в другой (специальная ветвь XML-языков)
  12. Совместимость с реальными объектами
    1. Наличие драйвера для работы с dll-библиотеками стандартных плат сбора данных, ПЛК, распределенным системами управления, специализированным высокоскоростными платами для управления движением
    2. Поддержка COM, DCOM-технологий (взаимодействие с программно-аппаратными устройствами по сети)
    3. Наличие OPC-клиента
    4. Наличие OPC-сервера
  13. Графический интерфейс
    1. ДОСовские текстовый или графический режимы
    2. Собственный векторный редактор с растровыми иконками на блоках
    3. Собственный векторный редактор без растровых иконок
    4. Используется движок известных векторных редакторов Visio или CorelDRAW
  14. Совместимость по видеорежимам (актуально для работы преподавателя на видеодосках)
    1. Поддержка видеорежима 800x600x256
    2. Поддержка видеорежима 640x480x256
    3. Поддержка видеорежима 640x480x16
    4. Убирающиеся инструментальные панели и строка статуса
    5. Режим "Во весь экран"
    6. Возможность масштабирования блок-схемы модели
    7. Корректность отображения при масштабировании блок-схемы модели
  15. Языковая совместимость ядра программы
    1. Текстовые ресурсы странслированы вместе с кодом в исполняемый файл
    2. Текстовые ресурсы содержатся в сменной dll-библиотеке
    3. Текстовые ресурсы содержатся в текстовом файле собственного формата
    4. Текстовые ресурсы вынесены в текстовый XML-файл разметки
  16. Стандарт системы контекстной помощи
    1. Программа использует hlp-файл контекстной справки
    2. Программа использует chm-файл контекстной справки
  17. Список технологий, с помощью которых программа должна быть создана
    1. Microsoft XML SDK (библиотека msxml2.dll – это 60% тяжелейшего в разработке кода моделирующей программы ни чего общего не имеющего с математическим ядром; разработка этого кода нормализованной реляционной базы данных из 7..10 таблиц с потребностью трансформаций и перестроек породила апатию у многих разработчиков)
    2. Microsoft XML Visio SDK (писать собственный векторный графический интерфейс бесполезно – это не удалось ни кому)
    3. COM (делится надо, иначе в клуб элитных программ вход будет закрыт; замкнутые системы потребитель использовать не будет)
    4. Автоматизация (графическое программирование для моделирующей программы – это жирно, а вот возможность составить скрипт сценария вычислительных процедур пользователю нужно предоставить)

4.05.2002