Теория систем автоматического регулирования



         

Архитектура математического ядра моделирующих программ с поточной моделью управления - часть 2


табл. 2).

Уделим внимание деталям реализации математического ядра. В табл. 1 приведён список важнейших атрибутов полиморфного класса, которые наследуются всеми его потомками. К ним относятся: массив указателей на аргументы pInput[j], массив возвращаемых функцией результатов Output[k] и массив параметров функции Param[n]. Размерность массивов задается значениями параметров конструкторов потомков, которые, в свою очередь, передаются им через интерфейс createBlock COM-сервера (см. табл. 2).

Таблица 1
Атрибуты полиморфного класса - общего

предка всех математических классов

CBlkTemplate.pInput[j]
CBlkTemplate.Output[k]
CBlkTemplate.Param[n]
CBlkTemplate.Calc() = 0; // virtual
CBlkTemplate. ...

В графическом представлении, экземпляры математических объектов — это блоки на блок-схеме (см. нижний фрагмент рис. 3). Наличие у каждого математического объекта массива указателей на аргументы pInput[j]

делает возможным (в графическом представлении) их соединение линиями связи в требуемом порядке. Эта операция осуществляется через интерфейс createWire COM-сервера (см. табл. 2). Её результатом является присвоение значения указателя на элемент массива Output[k] одного объекта элементу массива pInput[j] другого объекта (см. цепочку повторяющихся фрагментов на рис. 3). Таким образом, совокупность показанных программных решений делает возможным создание моделей систем из любого требуемого набора математических функций, между которыми возможна любая требуемая схема передачи аргументов.

Идея архитектурного построения математического ядра моделирующих программ

Рис. 3

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

Листинг 2

' Объявляем переменную, как математическое ядро

Private WithEvents Mdl As SimKernel Private mySmplArr(100) As Double

' Создаём из COM-сервера объект - математическое ядро




Содержание  Назад  Вперед