Одним из способов уменьшения вероятности отказа является увеличение периода поступления заявок .
Еще одним способом уменьшения количества отказов является уменьшение времени до полной регулировки. Однако при таком изменении производственного процесса (что уже нежелательно) мы получим меньше обработанных деталей.
Приложение
Листинг программы
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 с.