p align="left">Toj1,Toj2, TojP-время ожидания заявок в 1-м,2-м и полном накопителе соответственно; Tnezan1 , Tnezan2, TnezanP-время незанятости приборов. Вспомогательные переменные: х - случайно генерируемое число; К -количество поступивших агрегатов; n -размерность накопителя при 2-й регулировке; m -размерность накопителя при полной регулировке; р- размерность накопителя при 1-й регулировке ; ap -кол-во обслуженных агрегатов в полной регулировке; a2 -кол-во обслуженных агрегатов во 2-й регулировке; LP -средняя длина очереди для полной регулировки при поступлении очередной заявки; L1- средняя длина очереди для 1-й регулировки при поступлении очередной заявки; Vmestimost-оптимальная вместимость накопителя при 1-й регулировке. 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 с.
Страницы: 1, 2
|