Введение

Математические ядра это своеобразные "стелсы" в мире программного обеспечения. До сих пор ни кто не видел их окна, меню или документации. Надо отметить, что это программное обеспечение развивается под действием очень развитой системы ограничений: быстродействие, работа в реальном времени, взаимодействие с аппаратным средствами, функционирование математических функций в самых разнообразных конфигурациях передачи данных. А каждое ограничение отсекает ту или иную возможность альтернативной реализации. Другими словами, математические ядра разных производителей в той или иной степени подобны друг другу, а, следовательно, могут быть взаимозаменяемы. Фактически одно математическое ядро может обслуживать графические интерфейсы таких внешне непохожих программ как Mathcad, Simulink, Electronics Workbench. Более того, математические ядра могут быть использованы не только внутри математических пакетов, но и в конкретных технических устройствах: в эквалайзере вашего музыкального цента, в системе управления технической установкой, в сотовом телефоне или в модеме и т.д. И как ни удивительно это не будет "огородом", поскольку размер большинства достаточно развитых математических ядер не превышает 500 КБ (у таких программ как VisSim, MBTY, Simulink). Урезанные же по типам данных или адаптированные под цифровой сигнальный процессор версии могут иметь размер не более 100 КБ. Может показаться, что программирование бесконечных вариантов исполняемого кода внутри математических ядер представляет собой достаточно сложную задачу. Это так же ложное опасение. Даже у таких развитых математических программ как Simulink, скорее всего, математическое ядро программируется и управляется не более чем десятью функциями.

Если все так просто, то почему сегодня на рынке отсутствуют "Открытые математические ядра"? Ответ банально прост. Пользователь — не спросил о продукте, а Производитель — не стал сообщать о его наличии. Фактически Производитель не готов выпустить на рынок такой продукт как "Открытое математическое ядро". Пользователи мигом открутят ядро от пакета MBTY, и прикрутят его к графическому интерфейсу Simulink'а. Хотя более вероятна ситуация, когда пользователи прикрутят математические ядра к редакторам векторной графики.

K2.SimKernel — это математическое ядро, которое задумывалось как игрушка. Главная цель его создания состояла в том, чтобы продемонстрировать пользователю возможность существования такого продукта как "Открытое математическое ядро", чьи свойства описаны выше. Однако, сегодня, вместе с библиотекой SimLib4Visio, ядро является заслуживающим внимания инструментом для моделирования поведения сложных динамических систем. K2-ядро имеет два десятка дискретных квазианалогов интеграторов; гибкую систему контроля над временем симуляции; поддерживает разные режимы функционирования: авторестарт, предустановку, сохранение начальных условий. Кроме симуляции движения координат моделей ядро поддерживает функции анализа для SIMO-систем: составляет ABCD-матрицы линеаризованного образа модели для текущего состояния, строит годографы Найквиста, Найквиста-Федосова, ЛАЧХ & ЛФЧХ. Пространство состояний составляется относительно всех основных решателей: 1/s, 1/z, 1/e, S&H (УВХ), unknown & constraint и их модификаций. Т.е. при уточнении ABCD-матриц идентифицируются коэффициенты дифференциальных уравнений, разностных, уравнений с запаздывающим аргументом и алгебраических. Частотный анализ возможен как для непрерывных, так и для дискретных систем (имеются частотные операторы для s, z, e-операторов, а так же аппроксиматор (sTe/[e-1]) для экстраполятора нулевого порядка — S&H). В качестве иллюстративного материала предлагаются демонстрационные модели тех или иных технических устройств, функционирующие в HTML-страницах. В этом случае математическое ядро конфигурируется встроенным в страницу скриптом, результаты симуляции демонстрируются тем или иным сервером визуализации (осциллограф, цифровой дисплей, шкальный прибор). Контролировать процесс симуляции можно посредством предлагаемого меню и серверов online-воздействий. Модели в HTML-страницах сопровождаются чертежом соответствующей блок-схемы, которые были созданы в программе MS Visio с помощью библиотеки SimLib4Visio. Библиотека так же была использована для автоматического создания программирующих K2-ядро скриптов.