Анализ приведенных соотношений позволяет установить следующие основные блоки алгоритма:
формирователи случайных сигналов, состояний и моментов их появления и изменения;
анализатор очередности сигналов и типа очередного сигнала;
анализаторы типа состояния в заданные моменты времени;
анализаторы точности оценок критериев интерпретации результатов моделирования и вспомогательные блоки, управляющие ходом моделирования.
Для операторов алгоритма введем следующие обозначения:
А — арифметический оператор (совокупность операций, реализующих какое-нибудь соотношение или систему соотношений между величинами). После его выполнения процесс вычислений может быть продолжен по единственному пути независимо от результатов, выдаваемых оператором;
Р — логический оператор (проверка справедливости заданных условий и выработка признаков, обозначающих результат проверки). Направление продолжения процесса вычислений зависит от результатов вычислений, а именно от значения признака, вырабатываемого данным логическим оператором;
|
|
Ф — оператор формирования реализаций случайных процессов;
F— оператор формирования неслучайных величин; главным образом это операторы, повторяющие или в каком-то смысле имитирующие работу вычислительных или управляющих средств реального оборудования;
К - оператор счета.
Для моделирования агрегата вводятся следующие операторы:
— формирование очередного момента поступления в агрегат управляющего сигнала;
— проверка условия , где Т— граница интервала (0, T) изучения агрегата;
—подстановка вместо величины Т;
— запоминание величины ;
— проверка условия i> 1;
— проверка условия , где — момент поступления входного сигнала, и определение , причем далее по понимается ближайший момент поступления сигнала: или .
— формирование очередного момента поступления в агрегат входного сигнала;
— проверка условия < Т;
— подстановка вместо величины Т;
— запоминание величины ;
— формирование признака = 0— «ближайшим сигналом» будет управляющий сигнал», = ;
— формирование признака = 1 — «ближайшим сигналом» будет входной сигнал», = ;
— формирование оператора в зависимости от вида особого состояния: поступление входного сигнала, поступление управляющего сигнала, выдача выходного сигнала, начало моделирования (t = 0) для определения состояний z(t);
— счетчик времени;
— формирование непрерывного процесса функционирования агрегата z(t) под действием оператора ;
— проверка принадлежности состояния z(t) подмножеству и определение ближайшего момента выдачи выходного сигнала (реализация оператора );
|
|
— проверка условия , где под понимается меньшее из и ;
— определение состояния агрегата в момент (реализация оператора );
— формирование выходного сигнала у (реализация оператора W ");
— формирование состояния z ( + 0) после выдачи выходного сигнала (реализация оператора V *);
— проверка принадлежности состояния z ( + 0) подмножеству (реализация оператора W');
— проверка условия < Т;
— определение состояния агрегата z(t) в момент t (peaлизация оператора );
— проверка условия > 0;
— формирование входного сигнала х;
— определение состояния z ( + 0) агрегата после входного (реализация оператора V ');
— проверка принадлежности состояния z ( + 0) подмножества (реализация оператора W');
— формирование управляющего сигнала g;
— определение состояния z ( + 0) агрегата после управляющего сигнала (реализация оператора V ");
— проверка принадлежности состояния z ( + 0) подмножества (реализация оператора W ');
— определение состояния агрегата z(T) в момент Т окончания моделирования (реализация оператора ;
— фиксация результатов, полученных при моделировании реализации процесса;
— счетчик количества реализаций (выполняет операцию);
— проверка условия N < N *, где N * — необходимое количество реализаций;
— переход к моделированию очередной реализации;
— обработка результатов моделирования;
— выдача результатов.
Операторная схема моделирующего алгоритма имеет вид:
В этой записи использован следующий принцип обозначений. Если порядок следования операторов отличается от естественного (заданного последовательными номерами), то номера входных операторов указаны вверху слева от символа; номера операторов, к которым следует переход, — вверху справа от символа; на стрелке, идущей вверх от оператора условного перехода, указан номер оператора, которому передается управление при выполнении условия; на стрелке вниз — в противном случае.
Работа моделирующего алгоритма заключается в следующем.
Группы операторов - и – по структуре одинаковы и служат для задания очередных моментов времени поступления входных и управляющих сигналов, имеющих случайный характер. Операторы и выводят эти моменты из рассмотрения, если они наступают позже заданного конца интервала моделирования.
Группа операторов – моделирует процесс функционирования агрегата в интервале времени между последовательными моментами поступления внешнего сигнала. Поскольку в течение этого интервала внешних сигналов нет, состояния агрегата определяются оператором (оператор ). Единственным видом особых состояний агрегата (т.е. состояний, в которые агрегат переходит скачком) в этом случае являются состояния выдачи выходных сигналов или, другими словами, состояния, принадлежащие подмножествам .
Задача оператора состоит в том, чтобы путем совместного моделирования состояний z(t) и условий, определяющих подмножества , определить моменты выдачи выходных сигналов агрегата (оператор W) и найти наименьший из них. Поскольку состояние z(t) изменяется непрерывно, необходимо иметь средства для управления ходом времени. Для этого в составе операторов алгоритма предусмотрен счетчик времени , который, вообще говоря, представляет собой механизм, внешний по отношению к имитационному алгоритму. Он реализуется специальными программными средствами.
Если момент выдачи выходного сигнала оказывается внутри интервала между внешними сигналами (оператор ), то выходной сигнал у должен быть фактически выдан. Поэтому необходимо найти z () (оператор ) и сформировать сам сигнал y (оператор ). Далее необходимо определить состояние z ( + 0) (оператор )
|
|
и проверить (оператор ), не принадлежит ли z( + 0) одному из подмножеств .
Если это условие выполнено, то управление передается опять оператору для формирования второго выходного сигнала, выдаваемого в момент , и т.д.
Eсли же состояние z ( + 0) не принадлежит , то управление передается оператору для формирования новых моментов .
Группа операторов – моделирует прием входного сигнала, группа операторов - — прием управляющего сигнала. Заметим, что z( + 0), где — момент поступления входного или управляющего сигнала, сразу может принадлежать одному из подмножеств . Это условие проверяется операторами и . Если обнаружено, что переходы в соответствующие особые состояния приводят к выдаче выходного сигнала, следуют обращения к оператору формирования .
Остальные операторы имеют вспомогательный характер.
Видно, что моделирующий алгоритм, имитирующий работу одиночного агрегата, имеет сложную структуру. Если принять во внимание иерархический характер системы моделей агрегатов, возможность их одновременного функционирования и, следовательно, необходимость параллельного моделирования с учетом обратных связей, то трудности разработки имитационного алгоритма многократно возрастут. Путь к упрощению этой задачи — разбиение интервала длительности Т на интервалы меньшей длительности . Когда число активных агрегатов на каждом таком интервале мало, размерность и сложность задачи анализа существенно уменьшаются. Существуют два принципа выбора длительности шага и, соответственно, два типа моделирующих алгоритмов: с фиксированным (детерминированным) шагом и с переменным (случайным) шагом.