Моделирование состоит в получении информации о возникновении случайного события для последующего накопления числа произошедших событий, либо задействования тех или иных процедур расчёта в момент возникновения события.
Моделирование случайных процессов в продукте Acsocad
Например, распределение Пуассона (число произошедших случайных событий со средней интенсивностью возникновения λ) может быть реализовано следующим образом.
Пояснение к схеме. На вход программируемой функции #G1 подается шум с нормальным распределением ("$>uniformrandom 0 1 0"), а также величина интенсивности возникновения события.
Программный код для #G1 имеет вид:
if(u[0]*u[1]) R=-log(fabs(u[0]))/u[1];
else R = 0;
if(R>1)R=1.0;
На выходе системы P(t) формируется сигнал со значением 0, если событие не произошло, и 1, если событие произошло. Возникновение событий реализовано определяется в соответствии с распределением Пуассона.
Для того, чтобы рассчитывать сколько случайных событий возникло за момент от начала моделирования до текущего момента времени необходимо сложить (проинтегрировать) события с учетом выбранного шага моделирования ::dt::. Вместо ::dt:: допускается напрямую записать число, равное шагу решения.
Пояснение к средней части схемы. На сбрасываемый интегратор, выделенный зеленым цветом, постоянно подается сигнал с величиной 1. Соответственно, интегратор прибавляет к своему предыдущему значению величину 1, приведенную к шагу моделирования, т.е. работает в режиме счетчика. Второй сигнал - значение, в которое сбрасывается интегратор, когда на третий вход поступает ненулевой сигнал.
Так как третьим сигналом является импульс при возникновении события, то функция счетчика - накопление количества отсчетов, которое прошло с момента последнего возникновения события.
После того, как произошло случайное событие, блок S&H "захватывает" новое значение G1(t), которое дальше подается на сумматор и из которого вычитается значение счетчика. Как только счетчик накопил значение, превышающее G1, генерируется новое событие.
Таким образом, в G1 содержится время, через которое произойдет следующее событие.
Результаты моделирования представлены на рисунке.