5. Обобщенная схема моделирующего алгоритма

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


Блок – схема


Обобщенная схема алгоритма для нахождения оптимального накопителя


6. Особенности программирования   6.1 Краткая характеристика технологии реализации

Программа разработана на языке программирования Visual Basic 6. Программа запускается с Kursovoy proekt(3-y variant).exe.

  6.2 Описание функций программы

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

В программе используется 2 процедуры между которыми можно переключаться с помощью ComandButton 1 и ComandButton2

В процедуре Comand1(Click) происходит имитация поступления пакетов от источника с интервалом 30м , и вычисление: количество поступивших пакетов, количество отказанных пакетов на первичную регулировку, нагрузка накопителя при полной регулировке и коэффициент простоя системы .

В процедуре Comand2(Click) происходит определение вместимости накопителя которое мы вводим в систему для безотказной работы системы и другие характеристики новой системы.

  6.3 Описание интерфейса

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

«Пуск» - после нажатия происходит запуск данной системы и можно в последующем наблюдать показатели изменяющиеся в реальном времени.

Также с этой кнопкой находятся текстовые поля, в которых задается начальные данные системы.

Рисунок – Интерфейс основного окна программы

Также можно увидеть постановку задачи и структурную схему нашей СМО.

«Пуск» - после нажатия происходит запуск нашей СМО уже с включенным в него накопителем перед участком 1-го регулирования, при этом структурная схема изменяется:


Скриншот программы с результатами


Заключение

Машинное моделирование за последние десятилетие превратилось из эксперимента для получения численных решений различных аналитических задач в мощный аппарат исследования и проектирования больших систем. Метод моделирования с успехом переменяется в различных систем.

В настоящее время метод моделирования на ЭВМ, учитывая сложности объекта широко распространен как при анализе, так при синтезе АСХ. Включение машинных моделей в состав АСУ позволяет решать задачи планирование и управление, прогнозирования, дискретизации и т.д.

Эффективность моделирования определяется разработкой научных основ моделирования и развитием средств вычислительной техники.

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

Анализ результатов моделирования работы регулировочного участка позволяет сделать вывод о крайне неэффективном его устройстве, т.к. количество необработанных деталей крайне велико. Это связано с тем, что время обработки одной детали при полной регулировке намного больше времени поступления деталей на участок.

Одним из способов уменьшения вероятности отказа является увеличение периода поступления заявок .

Еще одним способом уменьшения количества отказов является уменьшение времени до полной регулировки. Однако при таком изменении производственного процесса (что уже нежелательно) мы получим меньше обработанных деталей.


Приложение

Листинг программы

Private Sub Command1_Click()

Dim Tau_obs_1ya_regul As Integer, Tau_obs_2ya_regul As Integer, Tau_obs_polnaya_regul As Integer

Dim Tau_postupleniya As Integer

Dim Toch2(200) As Double

Dim TochP(200) As Double

Dim Tsis1 As Double, Tsis2 As Double, TsisP As Double

Dim Tobs1 As Currency, Tobs2 As Currency, TobsP As Currency

Picture1.Picture = LoadPicture(App.Path & "\1-yachast.jpg")

List1.Clear

List2.Clear

x = 0.5

Tau_postupleniya = Val(Text1.Text)

Tau_obs_1ya_regul = Val(Text2.Text)

Tau_obs_2ya_regul = Val(Text3.Text)

Tau_obs_polnaya_regul = Val(Text4.Text)

Tmod = 6000

K = 0

Kobs = 0

Kotk = 0

Tsis1 = 0: Tsis2 = 0: TsisP = 0

Tpost = 0

Tosv1 = 0: Tosv2 = 0: TosvP = 0

Toj2 = 0: TojP = 0

Tnezan1 = 0: Tnezan2 = 0: TnezanP = 0

n = 0

m = 0

ap = 0

a2 = 0

LP = 0

5: x = Rnd(x)

Tau = -Tau_postupleniya * Log(x)

Tpost = Tpost + Tau

If Tpost > Tmod Then

GoTo 40

Else

GoTo 10

End If

10: K = K + 2

If Tpost < Tosv1 Then

GoTo 30

Else

Tnezan1 = Tpost - Tosv1

x = Rnd(x)

Tobs1 = -Tau_obs_1ya_regul * Log(x)

Tosv1 = Tpost + Tobs1

Tsis1 = Tsis1 + Tobs1

GoTo 20

End If

20: If Tosv1 < Tosv2 Then

n = n + 2

Toch2(n - 1) = Tosv1

Toch2(n) = Tosv1

GoTo 5

Else

If n = 0 Then

Kobs = Kobs + 2

a2 = a2 + 2

Tnezan2 = Tosv1 - Tosv2

x = Rnd(x)

Tobs2 = -Tau_obs_2ya_regul * Log(x)

Tosv2 = Tosv1 + Tobs2

Tsis2 = Tsis2 + Tobs2

List2.AddItem (Str(Kobs - 1) + " и " + Str(Kobs) + " агрегаты - " + Str(Tobs2))

GoTo 5

Else

n = n + 2

Toch2(n - 1) = Tosv1

Toch2(n) = Tosv1

Voj2 = Tosv2 - Toch2(1)

For i = 1 To n - 2

Toch2(i) = Toch2(i + 2)

Next i

n = n - 2

Toj2 = Toj2 + Voj2

x = Rnd(x)

Tobs2 = -Tau_obs_2ya_regul * Log(x)

Tsis2 = Tsis2 + Tobs2 + Voj2

Tosv2 = Tosv2 + Tobs2

Kobs = Kobs + 2

a2 = a2 + 2

List2.AddItem (Str(Kobs - 1) + " и " + Str(Kobs) + " агрегаты - " + Str(Tobs2))

GoTo 5

End If

End If

30: Kotk = Kotk + 2

If Tpost < TosvP Then

m = m + 2

LP = LP + m

TochP(m - 1) = Tpost

TochP(m) = Tpost

GoTo 5

Else

If m = 0 Then

m = 1

LP = LP + m

TochP(m) = Tpost

Kobs = Kobs + 1

ap = ap + 1

TnezanP = Tpost - TosvP

TobsP = Tau_obs_polnaya_regul

TosvP = Tpost + TobsP

TsisP = TsisP + TobsP

List2.AddItem (Str(Kobs) + " агрегат - " + Str(TobsP))

GoTo 5

Else

m = m + 2

TochP(m) = Tpost

TochP(m - 1) = Tpost

VojP = TosvP - TochP(1)

For i = 1 To m - 1

TochP(i) = TochP(i + 1)

Next i

m = m - 1

LP = LP + m

TojP = TojP + VojP

TobsP = Tau_obs_polnaya_regul

TsisP = TsisP + TobsP + VojP

TosvP = TosvP + TobsP

Kobs = Kobs + 1

ap = ap + 1

List2.AddItem (Str(Kobs) + " агрегат - " + Str(TobsP))

GoTo 5

End If

End If

40: List1.AddItem ("Всего поступило агрегатов = " + Str(K))

List1.AddItem ("Кол-во агрегатов прошедшие регулировку = " + Str(Kobs))

List1.AddItem ("Кол-во агрегатов прошедшие полную регулировку = " + Str(ap))

List1.AddItem ("Кол-во агрегатов оставшиеся в накопителе для полной регулировки = " + Str(m))

 List1.AddItem ("Кол-во агрегатов прошедшие 1-ю и 2-ю регулировку = " + Str(a2))

List1.AddItem ("Кол-во агрегатов оставшиеся в накопителе для 2-й регулировки = " + Str(n))

List1.AddItem ("Вероятность отказа в первичной регулировке = " + Str(Kotk / K))

List1.AddItem ("Загрузка накопителя агрегатами нуждающиеся в полной регулировке = " + Str(LP / Kotk))

List1.AddItem ("Коэффициент простоя системы = " + Str((Tnezan1 + Tnezan2 + TnezanP) / Tmod))

End Sub

Private Sub Command2_Click()

Dim Tau_obs_1ya_regul As Integer, Tau_obs_2ya_regul As Integer

Dim Tau_postupleniya As Integer

Dim Toch1(200) As Double

Dim Toch2(200) As Double

Dim Tobs1 As Currency, Tobs2 As Currency

Picture1.Picture = LoadPicture(App.Path & "\2-yachast.jpg")

List1.Clear

List2.Clear

Vmestimost = -2

1: Vmestimost = Vmestimost + 2

x = 0.5

Tau_postupleniya = Val(Text1.Text)

Tau_obs_1ya_regul = Val(Text2.Text)

Tau_obs_2ya_regul = Val(Text3.Text)

Tmod = 6000

K = 0

Kobs = 0

Tsis1 = 0: Tsis2 = 0

Tpost = 0

Tosv1 = 0: Tosv2 = 0

Toj1 = 0: Toj2 = 0

Tnezan1 = 0: Tnezan2 = 0

n = 0

p = 0

a2 = 0

L1 = 0

5: x = Rnd(x)

Tau = -Tau_postupleniya * Log(x)

Tpost = Tpost + Tau

If Tpost > Tmod Then

GoTo 40

Else

GoTo 10

End If

10: K = K + 2

If Tpost < Tosv1 Then

If p = Vmestimost Then

GoTo 1

Else

p = p + 2

L1 = L1 + p

Toch1(p - 1) = Tpost

Toch1(p) = Tpost

GoTo 5

End If

Else

If p = 0 Then

Tnezan1 = Tpost - Tosv1

x = Rnd(x)

Tobs1 = -Tau_obs_1ya_regul * Log(x)

Tosv1 = Tpost + Tobs1

Tsis1 = Tsis1 + Tobs1

GoTo 20

Else

p = p + 2

Toch1(p - 1) = Tpost

Toch1(p) = Tpost

Voj1 = Tosv1 - Toch1(1)

For i = 1 To p - 2

Toch1(i) = Toch1(i + 2)

Next i

p = p - 2

L1 = L1 + p

Toj1 = Toj1 + Voj1

Tobs1 = -Tau_obs_1ya_regul * Log(x)

Tsis1 = Tsis1 + Tobs1 + Voj1

Tosv1 = Tosv1 + Tobs1

GoTo 20

End If

End If

20: If Tosv1 < Tosv2 Then

n = n + 2

Toch2(n - 1) = Tosv1

Toch2(n) = Tosv1

GoTo 5

Else

If n = 0 Then

Kobs = Kobs + 2

a2 = a2 + 2

Tnezan2 = Tosv1 - Tosv2

x = Rnd(x)

Tobs2 = -Tau_obs_2ya_regul * Log(x)

Tosv2 = Tosv1 + Tobs2

Tsis2 = Tsis2 + Tobs2

List2.AddItem (Str(Kobs - 1) + " и " + Str(Kobs) + " агрегаты - " + Str(Tobs2))

GoTo 5

Else

n = n + 2

Toch2(n - 1) = Tosv1

Toch2(n) = Tosv1

Voj2 = Tosv2 - Toch2(1)

For i = 1 To n - 2

Toch2(i) = Toch2(i + 2)

Next i

n = n - 2

Toj2 = Toj2 + Voj2

x = Rnd(x)

Tobs2 = -Tau_obs_2ya_regul * Log(x)

Tsis2 = Tsis2 + Tobs2 + Voj2

Tosv2 = Tosv2 + Tobs2

Kobs = Kobs + 2

a2 = a2 + 2

List2.AddItem (Str(Kobs - 1) + " и " + Str(Kobs) + " агрегаты - " + Str(Tobs2))

GoTo 5

End If

End If

40: List1.AddItem ("Всего поступило агрегатов = " + Str(K))

List1.AddItem ("Кол-во агрегатов прошедшие регулировку = " + Str(Kobs))

List1.AddItem ("Кол-во агрегатов оставшиеся в накопителе для 1-ой регулировки = " + Str(p))

List1.AddItem ("Кол-во агрегатов прошедшие 1-ю и 2-ю регулировку = " + Str(a2))

List1.AddItem ("Кол-во агрегатов оставшиеся в накопителе для 2-й регулировки = " + Str(n))

List1.AddItem ("Загрузка накопителя агрегатами нуждающиеся в 1-ой регулировке = " + Str(L1 / K))

List1.AddItem ("Коэффициент простоя системы = " + Str((Tnezan1 + Tnezan2) / Tmod))

List1.AddItem ("ВМЕСТИМОСТЬ НАКОПИТЕЛЬЯ ДЛЯ ПЕРВИЧНОЙ РЕГУЛИРОВКИ" + Str(Vmestimost))

End Sub


Список литературы

1.  Советов Б. Я., Яковлев С. А. Моделирование систем: Учеб. Для вузов 3-е издание, перераб. И доп. – М: Высш. Школа, 2001 – 343 с.

2.  Советов Б. Я., Яковлев С. А. Моделирование систем: Курсовое проектирование: Учеб. Пособие по специальности АСУ. – М: Высш. Школа, 1988 м – 135 с.


Информация о работе «Регулировочный участок цеха»
Раздел: Информатика, программирование
Количество знаков с пробелами: 22455
Количество таблиц: 1
Количество изображений: 9

Похожие работы

Скачать
22564
1
2

... в очереди и т.д. Характерным атрибутом очереди является ее текущая длина, наблюдая за которой в ходе работы системы (или ее имитационной модели), можно определить ее среднюю длину за время работы (или моделирования). В языке GPSS определены классы объектов, с помощью которых можно задавать приборы обслуживания, потоки заявок, очереди и т.д., а также задавать для них конкретные значения атрибутов. ...

Скачать
95147
21
17

... технической готовности представлен на рисунке 1. Коэффициент технической готовности Рис. 1 Коэффициент использования подвижного состава для "перевозок" (коэффициент выпуска) зависит от интенсивности эксплуатации и «возраста» автопарка. Совершенствование транспортного процесса обеспечивает постоянное повышение интенсивности эксплуатации автомобильного парка, увеличивает пробег автомобилей ...

Скачать
98254
9
1

енденция увеличения составляющей в себестоимости продукции со стороны топливно-энергетических ресурсов, что влечет за собой острую необходимость в их экономном использовании. 1.4.Анализ электрохозяйства Шушенского МКК. Шушенский молочно-консервный комбинат запитан от линии ОАО КрасЭнерго. Одно основное питание КЛ-10кВ (Ф-31-24) и резервные КЛ-10 кв. (Ф-31-15), КЛ-10кВ (Ф-31-9). Прием ...

Скачать
164909
49
264

... выпусков изделий изготовление их ведется путем непрерывного выполнения на рабочих местах одних и тех же постоянно повторяющихся операций. Определим тип производства при изготовлении детали "картер" массой 6 кг. При разработке новых технологических процессов, когда технологический маршрут механической обработки детали не определен, используют коэффициент серийности , (3.5.1) где tв - такт выпуска ...

0 комментариев


Наверх