Д.В. Павлов, Д.С. Петров
10
Инженерный журнал: наука и инновации
# 8·2016
подпрограммы, обобщающие значения этих переменных. Так, для узла
электрической цепи требуется подпрограмма, суммирующая все токи в
присоединенных резисторах. Для ранее разработанных моделей [10–11]
потребовались обобщающие подпрограммы, выполняющие суммиро-
вание всех элементов массива и суммирование только положительных
элементов массива.
Формирование единой подпрограммы для вычисления вектора
( )
,
f y
служащей для решения явных алгебраических уравнений,
реализовано следующим образом. Алгоритм анализа структуры модели
составлял массивы
,
i
Ψ
содержащие индексы переменных в едином
массиве переменных, передаваемые в каждую расчетную подпро-
грамму. Подпрограмма для вычисления вектора
( )
f y
осуществляла
вызов всех подпрограмм этого типа
( )
,
i
f
…
передавая на вход каждой
выборку из общего массива переменных в соответствии с массивами
индексов
.
i
Ψ
Переменные, рассчитанные подпрограммами
( )
,
i
f
…
объединялись в общий массив согласно массивам индексов
,
i
Ψ
который использовался для дальнейших вычислений (рис. 5).
Рис. 5.
Организация вычислений в новой версии расчетного ПО:
ВС всей системы хранится в едином массиве ; при вычислениях используются специальные
массивы
,
k
Ψ
содержащие индексы параметров, подаваемых на вход функций
k
f
и возвращаемых этими функциями
Единые подпрограммы
( )
F y
и
( )
,
g y
служащие для решения
неявных алгебраических и обыкновенных дифференциальных урав-
нений, были реализованы аналогично. Для обеспечения возможности
отладки модели и вывода переменных на внешние средства