Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МГУПБ. Лаб. практ.мод. сист. в печать конечная...doc
Скачиваний:
5
Добавлен:
01.05.2025
Размер:
4.54 Mб
Скачать

Пример выполнения задания По заданному описанию построить и реализовать в универсальной имитационной системе Simplex3 mdl- модель сборочного конвейера.

На комплектовочный конвейер (рис. 8.2) сборочного цеха каждые (5 ±1) мин поступают 5 изделий первого типа и каждые (20 ± 7) мин поступают 20 изделий второго типа. Конвейер состоит из секций, вмещающих по 10 изделий каждого типа. Комплектация начинается только при наличии деталей обоих типов в требуемом количестве и длится 10 мин. При нехватке деталей секция конвейера остается пустой.

При декомпозиции модели введено 2 мобильных компонента: деталь и секция, перемещающая по конвейеру и заполняемая в зависимости от количества накопленных деталей двух типов. Если деталей не хватает, секция просто простаивает необходимое время комплектации.

Модель состоит из одного базисного компонента SMO и двух мобильных компонентов detal и sekcija (секция).

Рис. 8.2. Схема сборочного конвейера

MDL-описание базисного компонента СМО

BASIC COMPONENT smo

MOBILE SUBCOMPONENT OF CLASS detal, sekcija

DECLARATION OF ELEMENTS

STATE VARIABLES

DISCRETE

TArrive1(REAL) := 0, # время прихода деталей первого типа

TArrive2(REAL):=0, # время прихода деталей второго типа

TArriveS(REAL):=0, # время комплектации или простоя секции

Ok(LOGICAL):=FALSE

RANDOM VARIABLES

Arrive1(REAL): LOGNOR(Mean:=5, Sigma:=1), # время прихода 5 деталей 1-го типа

Arrive2(REAL): LOGNOR(Mean:=20, Sigma:=7) # время прихода 20 деталей 2-го типа

LOCATIONS

Wait1(detal):=0 detal, # очередь деталей первого типа

Wait2(detal):=0 detal, # очередь деталей второго типа

SBORKA(SEKCIJA):=0 sekcija, # укомплектованные секции

KONVEER(SEKCIJA):=0 sekcija # общий конвейер секций

DYNAMIC BEHAVIOUR

# генерация прихода 5 деталей 1 типа

WHENEVER(T>=TArrive1)

DO

TArrive1^:=T+Arrive1;

Wait1^:ADD 5 NEW detal

CHANGING

TIP^:=1;

TArrive^:=T;

END

END

# генерация прихода 20 деталей 2 типа

WHENEVER (T>=TArrive2)

DO

TArrive2^:=T+Arrive2;

Wait2^: ADD 20 NEW detal

CHANGING

TIP^:=2;

TArrive^:=T;

END

END

ON ^((NUMBER (Wait1) >= 10) AND (NUMBER (Wait2) >= 10))^

DO DISPLAY("!!!количество дет. достаточно!!!!\n");

Ok^:=TRUE;

END

# процесс комплектации на конвейере

WHENEVER (T>=TArriveS)

DO

TArriveS^:=TArriveS+10;

KONVEER^: ADD 1 NEW SEKCIJA

CHANGING

TArrive^:=T;

END

DISPLAY("!!!пришла новая секция!!!!\n");

IF (Ok = TRUE)

DO

SBORKA^: ADD 1 NEW sekcija;

Wait1^: REMOVE detal{ALL i | i<=10};

Wait2^: REMOVE detal{ALL j | j<=10};

Ok^:=FALSE;

DISPLAY("!!!секция укомплектована!!!!\n");

END

END

END OF smo

Мобильный компонент деталь

MOBILE COMPONENT detal

DECLARATION OF ELEMENTS

STATE VARIABLES

DISCRETE

TIP (INTEGER) :=1,

TArrive (REAL ):=0

END OF detal

Мобильный компонент секция

MOBILE COMPONENT sekcija

DECLARATION OF ELEMENTS

STATE VARIABLES

DISCRETE

TArrive(REAL):=0

END OF sekcija

Результаты моделирования в виде временных графиков и протокола представлены на рис. 8. 3 и 8. 4.

Рис. 8.3. График заполнения секций на конвейере

Рис. 8.4. Протокол сообщений