Смекни!
smekni.com

Конвейерная система (стр. 2 из 2)

Когда происходит событие, состояние системы может быть изменено четырьмя способами:

1) изменением значений одной или нескольких переменных модели;

2) изменением количества компонентов в системе;

3) изменением значении одного или нескольких атрибутов одного компонента;

4) изменением взаимосвязей между компонентами с помощью средств оперирования с: файлами. Отметим, что возможны и такие события, при которых состояние системы не меняется.

В ходе имитации осуществляется планирование наступления событий в заданные моменты времени. События имеют атрибуты и заносятся в файл в хронологическом порядке. Например, при планировании наступления события окончания обслуживания атрибуты обслуживаемого клиента являются частью этого события, поэтому они доступны в момент его обработки. Таким образом, если компонент проходит через некоторую последовательность действий, причем завершение каждого из них отображается в соответствующем событии, то по мере обработки событий атрибуты компонента передаются через всю систему.


4. Разработка модели.

Формализованная схема.

если занято если занято


изделие

если свободно если свободно


Готовая продукция

Описание формализованной схемы.

В данном примере имеется две ленты и три обслуживающихся устройства (У.1, У.2, У.3). На 1й и 2й ленте обслуживаются два обслуживающихся устройства У.1 и У.2.

Изделия поступают на первую ленту и если устройства свободны, то происходит обслуживание изделия первым или вторым устройством. А если устройства заняты, то они возвращаются на первую ленту и остаются на ней пока устройства не освободятся.

Когда устройство у первой ленты завершает обработку изделия, оно помещает его на ленту второго конвейера. Изделия поступают к третьему устройству через определенный период времени после попадания на второй конвейер. Если третье обслуживающее устройство занято, то изделие остается на ленте конвейера и через определенный период времени снова попадает к этому устройству.

После обслуживания на третьем устройстве изделие покидает систему.


Временная диаграмма.


1 лента

У. 1

У. 2

2 лента

У. 3


Описание временной диаграммы.

На данном рисунке изображена временная диаграмма, иллюстрирующая работу конвейерной системы. В данной системе имеется три обслуживающих устройства, которые обслуживаются двумя лентами конвейера. Изделия поступают на первый конвейер с постоянным интервалом, равным 10 единицам времени.

Практика исследования систем обслуживания показывает, что во многих случаях удовлетворительной оказывается аппроксимация функции распределения интервалов между моментами поступления изделия в систему обслуживания экспоненциальной функцией:

-λt

1-eпри t >=0,

A(t)=

0 при t <0,

где λ – величина, обратная среднему интервалу времени между заявками.

Время обслуживания изделия распределено экспоненциально:

Методом обратных функций можно показать, что показательное распределенная случайная величина Xсвязана со случайной величиной R, распределенной на [0,1], соотношением:

Y=1/α*ln(1-R) , где α – параметр показательного закона.


Блок-схема


Описание переменных.

t – время поступления изделия

к – количество изделие

к1 - количество изделие на ленте первого конвейера

к2 - количество изделие на ленте второго конвейера

t[к1] – время движения изделия к1 по ленте первого конвейера

t[к2] - время движения изделия к2 по ленте первого конвейера

i – номер изделия

j – номер обслуживающего устройства

Y[j] – время работы j-го обслуживающего устройства

Y[3] – время работы 3-го обслуживающего устройства

time – среднее время пребывания изделия в системе

obsl – время обслуживания изделия

L – Количество обслужившихся изделий

rab– время начало работы


Программа.

uses crt;

label lb1;

var

g,m,rab,time,s,ts,obsl,a,b:real;

k,k1,k2,i,j,l:integer;

t1,t,y,t2:array[1..100] of real;

function akspon(m2:real):real;

var x,r:real;

begin

randomize;r:=random(1);

x:=-(1/m2)*ln(1-r);

end;

function ravnom(a,b:real):real;

var x, r:real;

begin

randomize;r:=random(1);

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

end;

Begin

CLRSCR;

g:=0; k1:=0; k2:=0;

writeln('vvedite a,b,m,rab');

read(a,b,m,rab);

lb1:if g<rab then begin

k:=k+1; k1:=k1+1;

g:=g+10; t1[k1]:=g+3;

ts:=ts+3;

for i:=2 to k1 do

if t1[i]<t1[i-1] then begin

S:=t1[i-1];

t1[i-1]:=t1[i];

t1[i]:=S;

end;

for i:=1 to k1 do begin

for j:=1 to 2 do begin

if t1[i]>=Y[j] then begin

obsl:=ravnom(a,b);

t1[i]:=t1[i]+obsl;

Y[j]:=t1[i]+obsl;

ts:=ts+obsl; k1:=k1-1;

if Y[j]>rab then begin

l:=l+1; k2:=k2+1;

t2[k2]:=t1[i]+5;

end;

for i:=1 to k2 do

if t2[i]<t2[i-1] then begin

S:=t2[i-1];

t2[i-1]:=t2[i];

t2[i]:=S;

end else

goto lb1; end

else

t2[i]:=t1[i]+3;

ts:=ts+3;

t1[i]:=t1[i]+9;

ts:=ts+9;end;

end;

t2[i]:=t1[i]+9;

ts:=ts+9;

end;

for i:=1 to k2 do

if t2[i]>=Y[3] then begin

obsl:=akspon(m); t2[i]:=t2[i]+obsl;

Y[3]:=t2[i]+obsl;

ts:=ts+obsl; k2:=k2-1;

end else

time:=ts/k;

writeln('time=',time,'k=',k,'l=',l);

End.

writen (time;k,l);

end.


Верификация.

'vvedite a, b, m, rab'

0

1

5

8