Имитационная модель автоматизированного участка обработки деталей
В результате имитационного моделирования нужно найти следующие функциональные зависимости: и .
4 Аппроксимация реальных процессов математическими величинами.
При задании функций распределения длите
льность обработки детали на i-ом этапе обработки достаточна аппроксимация ступенчатыми функциями.
5 Выдвижение гипотез и предположений.
Выдвигаем гипотезу, что и имеют вид полиномов, порядок и значение коэффициентов, которых необходимо определить в ходе имитационных экспериментов.
6 Установление основной структуры моделирования.
С помощью таких эмпирических зависимостей можно предсказывать характеристики загрузки этапов обработки () и времена обработки деталей на этапе обработки () в зависимости от изменяющихся характеристик входного потока деталей () при заданных [1].
3.2 Формальное описание модели
Алгоритм активностей
Активность поступления деталей
1 Поиск места для детали:
'Ищется место для детали. Либо новая строка, либо на место ушедшей.
i = 2
While Cells(i, 1).Value > 0
i = i + 1
Wend
Cells(i, 1).Value = ModelTime
lsum = lsum + (ModelTime - tlprev) * l
l = l + 1
tlprev = ModelTime
2 Генерация поступления и определение типа детали
'Генерируем поступление деталей в зависимости от параметров табличного распределения и определяем тип детали в зависимости от значения параметра равномерного распределения.
tActions(0) = tActions(0) + RndN1(k, min, max, v)
If tActions(0) > tRun Then
tActions(0) = TBIG
End If
i = 2
While Worksheets("Elements").Cells(i, 2).Value > ""
i = i + 1
Wend
Sheets("Elements").Select
det = RndP(Rp)
If det = 1 Then
Cells(i, 2) = 1
Else
Cells(i, 2) = 2
End If
Активность перевозки детали
1 Поиск первой детали в очереди
'найти первую деталь в очереди, т.е. с минимальным значением в столбце 1 листа Elements
last = Range("A30000").End(xlUp).Row
tinmin = TBIG
For i = 2 To last
If (Cells(i, 3).Value = "") And (Cells(i, 1).Value > 0) And (Cells(i,1).Value < tinmin) Then
inmin = Cells(i, 1).Value
imin = i
End If
Next i
lsum = lsum + (ModelTime - tlprev) * l
l = l - 1
tlprev = ModelTime
2 Перевозка детали транспортным роботом
'присвоение состоянию робота значение 1, т.е. робот занят
'начало перевозки детали роботом
state = 1
tkprev = ModelTime
tActions(1) = ModelTime
Cells(imin, 3) = tActions(1)
If Cells(imin, 2) = 1 Then
tActions(2) = tActions(1) + Tdown
Else
tActions(3) = tActions(1) + Tup
End If
'окончание перевозки детали роботом, в зависимости от типа детали на перевозку затрачивается различное количество времени
'если тип детали 1
If (tActions(2) <= ModelTime) And (Cells(imin, 2) = 1) And (state = 1) Then
ksum = ksum + (ModelTime - tkprev)
tkprev = ModelTime
l1 = l1 + 1 'увелечение очереди на 1 к первому станку
Cells(imin, 4) = tActions(2) 'окончание перевозки детали роботом
tActions(1) = tActions(2) + Tdown 'возвращение робота от первого станка
tActions(2) = TBIG
End If
'если тип детали 1
If (tActions(3) <= ModelTime) And (Cells(imin, 2) = 2) And (state = 1) Then
ksum = ksum + (ModelTime - tkprev)
tkprev = ModelTime
l2 = l2 + 1 'увелечение очереди на 1 ко второму станку
Cells(imin, 4) = tActions(3) 'окончание перевозки детали роботом
tActions(1) = tActions(3) + Tup 'возвращение робота от второго станка
tActions(3) = TBIG
End If
'изменение состояния робота на 0, т.е. незанет
If (state = 1) And (tActions(1) <= ModelTime) Then
state = 0
tActions(1) = TBIG
End If
Активность начала обработки детали на станке
'обработка детали первого типа
If (state1 = 0 And l1 > 0) Then
'найти первую деталь в очереди, т.е. с минимальным значением в столбце 4 листа Elements
last = Range("D30000").End(xlUp).Row
tinmin = TBIG
For i = 2 To last
If (Cells(i, 5).Value = "") And (Cells(i, 2) = 1) And
(Cells(i, 1).Value > 0) And (Cells(i, 1).Value < tinmin) Then
tinmin = Cells(i, 1).Value
imin1 = i
End If
Next i
i1 = 1
state1 = 1 'станок занят
l1 = l1 – 1 'уменьшение очереди к станку на 1
If ModelTime > Cells(imin1, 4) Then
tActions(4) = ModelTime
Else
tActions(4) = Cells(imin1, 4)
End If
Cells(imin1, 5) = tActions(4)
tActions(6) = tActions(4) + one 'время обработки детали типа на станке
End If
обработка детали второго типа
If (state2 = 0 And l2 > 0) Then
'найти первую деталь в очереди, т.е. с минимальным значением в столбце 4 листа Elements
last = Range("D30000").End(xlUp).Row
tinmin = TBIG
For i = 2 To last
If (Cells(i, 5).Value = "") And (Cells(i, 2) = 2) And
(Cells(i, 1).Value > 0) And (Cells(i, 1).Value < tinmin) Then
tinmin = Cells(i, 1).Value
imin2 = i
End If
Next i
i2 = 0
state2 = 1
l2 = l2 - 1
If ModelTime > Cells(imin2, 4) Then
tActions(5) = ModelTime
Else
tActions(5) = Cells(imin2, 4)
End If
Cells(imin2, 5) = tActions(5)
tActions(7) = tActions(5) + two
End If
Активность окончания обработки детали на станке
'окончание обработка детали первого типа
If (tActions(6) <= ModelTime) Then
NextModelTime = False
'откорректировать значения для среднего времени пребывания детали в системе
Nb = Nb + 1
tbuysum = tbuysum + (ModelTime - Cells(imin1, 1).Value)
If i1 = 1 Then
state1 = 0
End If
Cells(imin1, 6) = tActions(6)
tActions(6) = TBIG
End If
'окончание обработка детали второго типа
If (tActions(7) <= ModelTime) Then
NextModelTime = False
'откорректировать значения для среднего времени пребывания детали в системе
Nb = Nb + 1
tbuysum = tbuysum + (ModelTime - Cells(imin2, 1).Value)
If i2 = 0 Then
state2 = 0
End If
Cells(imin2, 6) = tActions(7)
tActions(7) = TBIG
Call Trace("Finish", imin2)
End If
4 ВЕРИФИКАЦИЯ ИМИТАЦИОННОЙ МОДЕЛИ
4.1 Контроль за выполнением порядка активностей
Порядок выполнения активностей рассмотрим на примере одной детали при первом прогоне. Arrival, Begin, Processing, Finish – это активности. В первой активности происходит генерация деталей. Первая активность появляется согласно закону нормального табличного распределения с параметрами k, min, max, v(i), где i=. Поэтому первая активность появляется случайным образом. На рисунке 4.1 видно, что деталь после ее появления начинают обрабатывать во второй, третьей, а затем и в четвертой активности.
Другие рефераты на тему «Экономико-математическое моделирование»:
Поиск рефератов
Последние рефераты раздела
- Выборочные исследования в эконометрике
- Временные характеристики и функция времени. Графическое представление частотных характеристик
- Автоматизированный априорный анализ статистической совокупности в среде MS Excel
- Биматричные игры. Поиск равновесных ситуаций
- Анализ рядов распределения
- Анализ состояния финансовых рынков на основе методов нелинейной динамики
- Безработица - основные определения и измерение. Потоки, запасы, утечки, инъекции в модели