Имитационное моделирование сложных систем. Духанов А.В - 51 стр.

UptoLike

51
Таким образом, самой сложной частью рассматриваемой
задачи является определение порядка вычислений соотношений
интегрирования для переменных типа уровней.
Экспериментально можно установить, что для моделей,
реализованных в PSC, будет корректным рассчитывать в первую
очередь все еѐ уровни на основании потоков в темпах, а затем
сами темпы.
Для примера рассмотрим модель, изображенную на рис. 7.
Пусть для нее заданы следующие уравнения:
Level_1(t) = Level_1(t-1) dt*Temp_2 + dt * Temp_1
Level_2(t) = Level_2(t-1) dt*Temp_3 + dt * Temp_2
Level_3(t) = Level_3(t-1) dt*Temp_4 + dt * Temp_3
Temp_1 = IF(TIME=0, 0, INT(Level_1*0.2+Level_2*0.01))
Temp_2 = INT(Level_1*0.1+Conv_1)
Temp_3 = Level_2
Temp_4 = Conv_2*4.
Тогда фрагмент кода на языке Pascal, реализующий один
шаг моделирования, будет следующим:
Level_1 := Level_1 dt * Temp_2 + dt * Temp_1;
Level_2 := Level_2 dt * Temp_3 + dt * Temp_2;
Level_3 := Level_3 dt * Temp_4 + dt * Temp_3;
Temp_1 := IIF(TIME=0, 0, INT(Level_1*0.2+Level_2*0.01));
Temp_2 := INT(Level_1*0.1+Conv_1);
Temp_3 := Level_2;
Temp_4 := Conv_2*4;
В коде использована функция IIF, которую легко можно
написать, а также переменная TIME, в которой хранится мо-
дельное время.
Для другого программного продукта имитационного моде-
лирования очередность расчетов может быть иной.
Независимо от сложности системы и специфики отрасли,
в которой она функционирует, поведение уровней, темпов,
а также цепей с обратной связью в ее имитационной модели не
меняется. Поэтому полученный вариант очередности вычисле-
ний будет действовать не только для экспериментальных, но для
всех моделей, реализованных в PSC.
Когда определен порядок вычислений, остается решить за-
дачу упорядочения вычисления переменных-конверторов и тем-
     Таким образом, самой сложной частью рассматриваемой
задачи является определение порядка вычислений соотношений
интегрирования для переменных типа уровней.
     Экспериментально можно установить, что для моделей,
реализованных в PSC, будет корректным рассчитывать в первую
очередь все еѐ уровни на основании потоков в темпах, а затем
сами темпы.
     Для примера рассмотрим модель, изображенную на рис. 7.
Пусть для нее заданы следующие уравнения:
       Level_1(t) = Level_1(t-1) – dt*Temp_2 + dt * Temp_1
       Level_2(t) = Level_2(t-1) – dt*Temp_3 + dt * Temp_2
       Level_3(t) = Level_3(t-1) – dt*Temp_4 + dt * Temp_3
       Temp_1 = IF(TIME=0, 0, INT(Level_1*0.2+Level_2*0.01))
       Temp_2 = INT(Level_1*0.1+Conv_1)
       Temp_3 = Level_2
       Temp_4 = Conv_2*4.
    Тогда фрагмент кода на языке Pascal, реализующий один
шаг моделирования, будет следующим:
       Level_1 := Level_1 – dt * Temp_2 + dt * Temp_1;
       Level_2 := Level_2 – dt * Temp_3 + dt * Temp_2;
       Level_3 := Level_3 – dt * Temp_4 + dt * Temp_3;
       Temp_1 := IIF(TIME=0, 0, INT(Level_1*0.2+Level_2*0.01));
       Temp_2 := INT(Level_1*0.1+Conv_1);
       Temp_3 := Level_2;
       Temp_4 := Conv_2*4;
     В коде использована функция IIF, которую легко можно
написать, а также переменная TIME, в которой хранится мо-
дельное время.
     Для другого программного продукта имитационного моде-
лирования очередность расчетов может быть иной.
     Независимо от сложности системы и специфики отрасли,
в которой она функционирует, поведение уровней, темпов,
а также цепей с обратной связью в ее имитационной модели не
меняется. Поэтому полученный вариант очередности вычисле-
ний будет действовать не только для экспериментальных, но для
всех моделей, реализованных в PSC.
     Когда определен порядок вычислений, остается решить за-
дачу упорядочения вычисления переменных-конверторов и тем-
                              51