Главная / Моделирование систем / Моделирование производственной системы на основе имитации нсв

Моделирование производственной системы на основе имитации нсв

Пример 1.10. На станок поступают детали для обработки. Интервал между поступлениями деталей составляет 8±2 минуты. Время обработки детали на станке распределено по гауссовскому закону; среднее время обработки — 5 минут, стандартное отклонение — 1 минутa. Кроме того, известно, что примерно у 8% деталей во время обработки обнаруживается дефект; для его устранения требуется дополнительная обработка на том же станке в течение 3 минут.

Требуется составить программу, имитирующую работу станка в течение смены (8 часов). Данные об интервалах поступления и времени обработки деталей должны запрашиваться программой. Программа должна сообщать: количество деталей, обработанных за смену; количество деталей, для которых потребовалось устранение дефекта; среднее время ожидания обработки детали (время пролеживания детали перед станком).

На рис. 1.4 приведена схема алгоритма имитации для данной задачи. В схеме использованы следующие обозначения: Tsm — продолжительность смены; Tint — интервал между поступлениями деталей (равномерно распределенная НСВ); Tobr — длительность обработки детали на станке; Tdef — длительность устранения дефекта; t — время поступления детали на обработку (отсчитывается от начала смены); tozh — время ожидания обработки детали (если она поступила на обработку раньше, чем закончилась обработка предыдущей детали); tosv — время окончания обработки детали (время освобождения станка); tosum — суммарное время ожидания обработки всеми деталями; tosred — среднее время ожидания обработки; i — счетчик всех обработанных деталей; Rdef — СРРЧ, используемое для имитации дефекта; verdef — вероятность дефекта (в данной задаче — 0,08); idef — счетчик деталей, у которых потребовалось устранять дефект.

Ниже приводится текст программы (на языке Паскаль) для данной задачи. Имена констант и переменных в программе соответствуют именам, использованным в схеме алгоритма. Другие переменные: tmin, tmax — минимальный и максимальный интервал между поступлениями деталей (6 и 10 минут соответственно); tobr_sred — среднее время обработки детали на станке (5 минут); tobr_otkl — среднеквадратическое отклонение времени обработки (1 минута). Обозначения в процедурах имитации (ravn_sv и gauss_sv) соответствуют обозначениям, использованным в описаниях соответствующих алгоритмов (см. разделы 1.6.4, 1.6.6).

Program model1_10;

Uses crt;

Label nov, kon;

Const tsm=480;

Var

Tmin, tmax, tobr_sred, tobr_otkl, tdef, verdef: real;

T, tint, tobr, tosv, tozh, tosum, tosred, rdef: real;

I, idef: integer;

Stop: char;

Procedure ravn_sv(a, b: real; var x: real);

(* имитация равномерно распределенной случайной величины *)

Var r: real;

Begin

R:=random;

X:=a+(b-a)*r;

End;

Procedure gauss_sv(m, sigma: real; var x: real);

(* имитация гауссовской случайной величины *)

Const n=6;

Var r, rsum: real;

i: integer;

Begin

Rsum:=0;

For i:=1 to n do

begin

r:=random;

rsum:=rsum+r;

end;

X:=m+sigma*sqrt(12/n)*(rsum-n/2);

End;

Begin (* основная программа *)

Clrscr;

Write (‘Минимальный интервал между деталями: ‘); readln(tmin);

Write (‘Максимальный интервал между деталями: ‘); readln(tmax);

Write (‘Среднее время обработки детали: ‘); readln(tobr_sred);

Write (‘Отклонение во времени обработки: ‘); readln(tobr_otkl);

Write (‘Вероятность дефекта: ‘); readln(verdef);

Write (‘Время устранения дефекта: ‘); readln(tdef);

T:=0;

Tosv:=0; tosum:=0;

I:=0; idef:=0;

Nov: ravn_sv(tmin, tmax, tint);

t:=t+tint;

if t>tsm then goto kon;

if t<tosv then tozh:=tosv-t;

else tozh:=0;

gauss_sv(tobr_sred, tobr_otkl, tobr);

i:=i+1;

rdef:=random;

if rdef<verdef then begin

tobr:=tobr+tdef;

idef:=idef+1;

end;

tosv:=t+tozh+tobr;

tosum:=tosum+tozh;

goto nov;

Kon:

tosred:=tosum/ i;

writeln; writeln;

writeln(‘Обработано деталей: ‘,i);

writeln(‘Среднее время ожидания обработки: ‘,tosred:6:2);

writeln(‘Количество деталей с устраненным дефектом: ‘,idef);

stop:=readkey;

End.

Результаты работы этой программы должны быть примерно следующими: обработано 57 деталей, из них 5 имели дефект; среднее время ожидания обработки — 0,1 минуты.

Примечание. В данном алгоритме (и в программе) предполагается, что все детали, поступившие на обработку в течение смены, будут обработаны (даже если их обработка завершится уже после окончания смены).

Примечание. Данный алгоритм и программа могут использоваться (с небольшими изменениями) для имитации работы любой системы, которую можно рассматривать как одноканальную СМО с неограниченной очередью. При этом требуется, чтобы в имитируемой СМО существовал стационарный режим работы, т. е. интенсивность поступления заявок на обслуживание была меньше, чем интенсивность обслуживания.