Информатика 2011-2012 / Информатика-2-сем(2011) / Задания и примеры / Проекта / Лаб Надежность(МЕТОДИЧКА) , 2011 / Лабораторная работа №4
.doc
Лабораторная работа №4
Тема: Моделирование надежности сложных систем (смешенное соединение элементов).
Задание: Дана система, состоящая из m элементов, каждый из которых имеет вероятность безотказной работы . . Создать компьютерную модель надежности этой системы.
Схематически эта модель представляет собой смешенное соединение элементов системы которые определяется в наборном поле матрицы рис. 1.
Рис. 1.
Для смешенного соединения элементов системы вероятность безотказной работы равна:
Pсис = p1*[1-(1-p2)*(1-p3)*(1-p4)]*[1-(1-p5 * p7)(1-p6 * p8)]
N – количество испытаний;
K – номер испытаний;
i – номер элемента;
x(i) = P(i) -.заданная вероятность безотказной работы элемента системы;
A(i) – событие безотказной работы i-го элемента;
A(i) = 1 – отказа нет;
A(i) = 0 – произошел отказ.
Эскиз будущей модели
Алгоритм работы Windows – приложения.
Программный код
Dim i As Integer, t As Integer, p As Single, k As Integer, s As Single, _
pcis As Single, k1 As Integer, l As Integer, n As Integer, i1 As Integer, _
t2 As Integer, v1 As Integer, r As Integer, f As Integer, u As Integer
Dim x(20) As Single
Dim y(20) As Single
Dim z(20) As Single
Dim a(10, 10) As Single
Dim m(20) As Single
Dim Y2(10, 10) As Single, Yp(20) As Single
Private Sub Command2_Click()
Command1.Enabled = True
Command1.Width = 400
End Sub
Private Sub Command3_Click()
Command1.Width = 12700
End Sub
Private Sub OLE1_Click()
Command1.Visible = True
Command1.Enabled = False
End Sub
Private Sub Выход _Click()
End
End Sub
Private Sub Начало_Click()
n = Int(InputBox("Ввести количество испытаний но не менее 10 шт.", , " n = "))
Randomize Timer
s = 0: v1 = 1: k1 = 8: k = 0: t2 = 1: t = 1: p = 1: l = 1: i = 1: i1 = 1
End Sub
Private Sub Picture1_Click(Index As Integer)
k1 = k1 - 1
If k1 = 8 Then Picture1(8).Visible = False
If k1 = 7 Then Picture1(7).Visible = False
If k1 = 6 Then Picture1(6).Visible = False
If k1 = 5 Then Picture1(5).Visible = False
If k1 = 4 Then Picture1(4).Visible = False
If k1 = 3 Then Picture1(3).Visible = False
If k1 = 2 Then Picture1(2).Visible = False
If k1 = 1 Then Picture1(1).Visible = False
If k1 = 0 Then Picture1(0).Visible = False: For i = 0 To 8 _
: Picture1(i).Visible = True: Next
End Sub
Private Sub Убрать_Click()
Command1.Visible = False
End Sub
Private Sub УстановитьГраф_Click()
k1 = 9
End Sub
Private Sub Picture10_Click(Index As Integer)
k1 = k1 - 1
If k1 = 8 Then Picture10(8).Visible = False
If k1 = 7 Then Picture10(7).Visible = False
If k1 = 6 Then Picture10(6).Visible = False
If k1 = 5 Then Picture10(5).Visible = False
If k1 = 4 Then Picture10(4).Visible = False
If k1 = 3 Then Picture10(3).Visible = False
If k1 = 2 Then Picture10(2).Visible = False
If k1 = 1 Then Picture10(1).Visible = False
If k1 = 0 Then Picture10(0).Visible = False: For i = 0 To 8 _
: Picture10(i).Visible = True: Next
End Sub
Private Sub Picture11_Click(Index As Integer)
k1 = k1 - 1
If k1 = 8 Then Picture11(8).Visible = False
If k1 = 7 Then Picture11(7).Visible = False
If k1 = 6 Then Picture11(6).Visible = False
If k1 = 5 Then Picture11(5).Visible = False
If k1 = 4 Then Picture11(4).Visible = False
If k1 = 3 Then Picture11(3).Visible = False
If k1 = 2 Then Picture11(2).Visible = False
If k1 = 1 Then Picture11(1).Visible = False
If k1 = 0 Then Picture11(0).Visible = False: For i = 0 To 8 _
: Picture11(i).Visible = True: Next
End Sub
Private Sub Picture12_Click(Index As Integer)
k1 = k1 - 1
If k1 = 8 Then Picture12(8).Visible = False
If k1 = 7 Then Picture12(7).Visible = False
If k1 = 6 Then Picture12(6).Visible = False
If k1 = 5 Then Picture12(5).Visible = False
If k1 = 4 Then Picture12(4).Visible = False
If k1 = 3 Then Picture12(3).Visible = False
If k1 = 2 Then Picture12(2).Visible = False
If k1 = 1 Then Picture12(1).Visible = False
If k1 = 0 Then Picture12(0).Visible = False: For i = 0 To 8 _
: Picture12(i).Visible = True: Next
End Sub
Private Sub Picture2_Click(Index As Integer)
k1 = k1 - 1
If k1 = 8 Then Picture2(8).Visible = False
If k1 = 7 Then Picture2(7).Visible = False
If k1 = 6 Then Picture2(6).Visible = False
If k1 = 5 Then Picture2(5).Visible = False
If k1 = 4 Then Picture2(4).Visible = False
If k1 = 3 Then Picture2(3).Visible = False
If k1 = 2 Then Picture2(2).Visible = False
If k1 = 1 Then Picture2(1).Visible = False
If k1 = 0 Then Picture2(0).Visible = False: For i = 0 To 8 _
: Picture2(i).Visible = True: Next
End Sub
Private Sub Picture3_Click(Index As Integer)
k1 = k1 - 1
If k1 = 8 Then Picture3(8).Visible = False
If k1 = 7 Then Picture3(7).Visible = False
If k1 = 6 Then Picture3(6).Visible = False
If k1 = 5 Then Picture3(5).Visible = False
If k1 = 4 Then Picture3(4).Visible = False
If k1 = 3 Then Picture3(3).Visible = False
If k1 = 2 Then Picture3(2).Visible = False
If k1 = 1 Then Picture3(1).Visible = False
If k1 = 0 Then Picture3(0).Visible = False: For i = 0 To 8 _
: Picture3(i).Visible = True: Next
End Sub
Private Sub Picture4_Click(Index As Integer)
k1 = k1 - 1
If k1 = 8 Then Picture4(8).Visible = False
If k1 = 7 Then Picture4(7).Visible = False
If k1 = 6 Then Picture4(6).Visible = False
If k1 = 5 Then Picture4(5).Visible = False
If k1 = 4 Then Picture4(4).Visible = False
If k1 = 3 Then Picture4(3).Visible = False
If k1 = 2 Then Picture4(2).Visible = False
If k1 = 1 Then Picture4(1).Visible = False
If k1 = 0 Then Picture4(0).Visible = False: For i = 0 To 8 _
: Picture4(i).Visible = True: Next
End Sub
Private Sub Picture5_Click(Index As Integer)
k1 = k1 - 1
If k1 = 8 Then Picture5(8).Visible = False
If k1 = 7 Then Picture5(7).Visible = False
If k1 = 6 Then Picture5(6).Visible = False
If k1 = 5 Then Picture5(5).Visible = False
If k1 = 4 Then Picture5(4).Visible = False
If k1 = 3 Then Picture5(3).Visible = False
If k1 = 2 Then Picture5(2).Visible = False
If k1 = 1 Then Picture5(1).Visible = False
If k1 = 0 Then Picture5(0).Visible = False: For i = 0 To 8 _
: Picture5(i).Visible = True: Next
End Sub
Private Sub Picture6_Click(Index As Integer)
k1 = k1 - 1
If k1 = 8 Then Picture6(8).Visible = False
If k1 = 7 Then Picture6(7).Visible = False
If k1 = 6 Then Picture6(6).Visible = False
If k1 = 5 Then Picture6(5).Visible = False
If k1 = 4 Then Picture6(4).Visible = False
If k1 = 3 Then Picture6(3).Visible = False
If k1 = 2 Then Picture6(2).Visible = False
If k1 = 1 Then Picture6(1).Visible = False
If k1 = 0 Then Picture6(0).Visible = False: For i = 0 To 8 _
: Picture6(i).Visible = True: Next
End Sub
Private Sub Picture7_Click(Index As Integer)
k1 = k1 - 1
If k1 = 8 Then Picture7(8).Visible = False
If k1 = 7 Then Picture7(7).Visible = False
If k1 = 6 Then Picture7(6).Visible = False
If k1 = 5 Then Picture7(5).Visible = False
If k1 = 4 Then Picture7(4).Visible = False
If k1 = 3 Then Picture7(3).Visible = False
If k1 = 2 Then Picture7(2).Visible = False
If k1 = 1 Then Picture7(1).Visible = False
If k1 = 0 Then Picture7(0).Visible = False: For i = 0 To 8 _
: Picture7(i).Visible = True: Next
End Sub
Private Sub Picture8_Click(Index As Integer)
k1 = k1 - 1
If k1 = 8 Then Picture8(8).Visible = False
If k1 = 7 Then Picture8(7).Visible = False
If k1 = 6 Then Picture8(6).Visible = False
If k1 = 5 Then Picture8(5).Visible = False
If k1 = 4 Then Picture8(4).Visible = False
If k1 = 3 Then Picture8(3).Visible = False
If k1 = 2 Then Picture8(2).Visible = False
If k1 = 1 Then Picture8(1).Visible = False
If k1 = 0 Then Picture8(0).Visible = False: For i = 0 To 8 _
: Picture8(i).Visible = True: Next
End Sub
Private Sub Picture9_Click(Index As Integer)
k1 = k1 - 1
If k1 = 8 Then Picture9(8).Visible = False
If k1 = 7 Then Picture9(7).Visible = False
If k1 = 6 Then Picture9(6).Visible = False
If k1 = 5 Then Picture9(5).Visible = False
If k1 = 4 Then Picture9(4).Visible = False
If k1 = 3 Then Picture9(3).Visible = False
If k1 = 2 Then Picture9(2).Visible = False
If k1 = 1 Then Picture9(1).Visible = False
If k1 = 0 Then Picture9(0).Visible = False: For i = 0 To 8 _
: Picture9(i).Visible = True: Next
End Sub
Private Sub Command4_Click()
For l = 1 To n
List1.AddItem l
Next
u = i - 2
For i4 = 0 To u
Text16(i4).Text = i4 + 1
For i11 = 1 To n
List2(i4).AddItem a(i4 + 1, i11)
Next
Next
End Sub
Private Sub Равно_Click()
pcis = 1
For v1 = 1 To t - 1
pcis = pcis * y(v1)
Next
Text27.Text = " Расчетная вероятность надежности системы Pcis = " + Str(pcis)
For i1 = 1 To n
z(i1) = 1
For f = 1 To t - 1
z(i1) = z(i1) * Y2(i1, f)
Next
Next
For i1 = 1 To n
If z(i1) = 0 Then s = s + 1
Next
Pcr = 1 - s / n
Text18.Text = "Экспериментальная вероятность надежности системы Pcr=" + Str(Pcr)
k = 0: t = 1: s = 0
End Sub
Private Sub Параллельно_Click()
p = 1
For i5 = 1 To k
p = p * (1 - x(i5))
Next
p = 1 - p
y(t) = p
For i1 = 1 To n
m(i1) = 1
For r = 1 To k
m(i1) = m(i1) * a(r, i1)
Next
Y2(i1, t) = m(i1)
Next
k = 0
t = t + 1
End Sub
Private Sub Последовательно_Click()
p = 1
For i6 = 1 To k
p = p * x(i6)
Next
y(t) = p
For i1 = 1 To n
m(i1) = 1
For r = 1 To k
m(i1) = m(i1) * a(r, i1)
Next
Y2(i1, t) = m(i1)
Next
k = 0: t = t + 1
End Sub
Private Sub Text10_Click()
x(i) = Val(Text10.Text)
End Sub
Private Sub Text11_Click()
x(i) = Val(Text11.Text)
End Sub
Private Sub Text12_Click()
x(i) = Val(Text12.Text)
End Sub
Private Sub Text13_Click()
x(i) = Val(Text13.Text)
End Sub
Private Sub Text14_Click()
x(i) = Val(Text14.Text)
End Sub
Private Sub Text15_Click()
x(i) = Val(Text15.Text)
End Sub
Private Sub Text2_Click()
x(i) = Val(Text2.Text)
End Sub
Private Sub Text1_Click()
x(i) = Val(Text1.Text)
End Sub
Private Sub Text3_Click()
x(i) = Val(Text3.Text)
End Sub
Private Sub Text4_Click()
x(i) = Val(Text4.Text)
End Sub
Private Sub Text5_Click()
x(i) = Val(Text5.Text)
End Sub
Private Sub Text6_Click()
x(i) = Val(Text6.Text)
End Sub
Private Sub Text7_Click()
x(i) = Val(Text7.Text)
End Sub
Private Sub Text8_Click()
x(i) = Val(Text8.Text)
End Sub
Private Sub Text9_Click()
x(i) = Val(Text9.Text)
End Sub
Private Sub Сброс_Click()
c = 0
Text1.Text ="": Text2.Text ="": Text3.Text = "": Text4.Text ="": Text5.Text ="":Text6.Text =""
Text7.Text = "": Text8.Text = "": Text9.Text = "": Text10.Text = "": Text11.Text = ""
Text12.Text = "": Text13.Text = "": Text14.Text = "": Text15.Text = "": Text27.Text = ""
Text18.Text = ""
For l = 1 To n
List1.Clear
Next
For i4 = 0 To i - 2
Text16(i4).Text = ""
For i11 = 1 To n
List2(i4).Clear
Next
Next
End Sub
Private Sub Text1_DblClick()
Text1.Text = "P(" + Str(i) + ")=" + Str(x(i))
Text1.BackColor = vbRed
For i1 = 1 To n
Randomize Timer
If Rnd(1) < x(i) Then a(i, i1) = 1 Else a(i, i1) = 0
Next
i = i + 1: k = k + 1
End Sub
Private Sub Text2_DblClick()
Text2.Text = "P(" + Str(i) + ")=" + Str(x(i))
Text2.BackColor = vbRed
For i1 = 1 To n
Randomize Timer
If Rnd(1) < x(i) Then a(i, i1) = 1 Else a(i, i1) = 0
Next
i = i + 1: k = k + 1
End Sub
Private Sub Text3_DblClick()
Text3.Text = "P(" + Str(i) + ")=" + Str(x(i))
Text3.BackColor = vbRed
For i1 = 1 To n
Randomize Timer
If Rnd(1) < x(i) Then a(i, i1) = 1 Else a(i, i1) = 0
Next
i = i + 1: k = k + 1
End Sub
Private Sub Text4_DblClick()
Text4.Text = "P(" + Str(i) + ")=" + Str(x(i))
Text4.BackColor = vbRed
For i1 = 1 To n
Randomize Timer
If Rnd(1) < x(i) Then a(i, i1) = 1 Else a(i, i1) = 0
Next
i = i + 1: k = k + 1
End Sub
Private Sub Text5_DblClick()
Text5.Text = "P(" + Str(i) + ")=" + Str(x(i))
Text5.BackColor = vbRed
For i1 = 1 To n
Randomize Timer
If Rnd(1) < x(i) Then a(i, i1) = 1 Else a(i, i1) = 0
Next
i = i + 1: k = k + 1
End Sub
Private Sub Text6_DblClick()
Text6.Text = "P(" + Str(i) + ")=" + Str(x(i))
For i1 = 1 To n
Randomize Timer
If Rnd(1) < x(i) Then a(i, i1) = 1 Else a(i, i1) = 0
Next
Text6.BackColor = vbRed
i = i + 1: k = k + 1
End Sub
Private Sub Text7_DblClick()
Text7.Text = "P(" + Str(i) + ")=" + Str(x(i))
Text7.BackColor = vbRed
For i1 = 1 To n
Randomize Timer
If Rnd(1) < x(i) Then a(i, i1) = 1 Else a(i, i1) = 0
Next
i = i + 1: k = k + 1
End Sub
Private Sub Text8_DblClick()
Text8.Text = "P(" + Str(i) + ")=" + Str(x(i))
Text8.BackColor = vbRed
For i1 = 1 To n
Randomize Timer
If Rnd(1) < x(i) Then a(i, i1) = 1 Else a(i, i1) = 0
Next
i = i + 1: k = k + 1
End Sub
Private Sub Text9_DblClick()
Text9.Text = "P(" + Str(i) + ")=" + Str(x(i))
Text9.BackColor = vbRed
For i1 = 1 To n
Randomize Timer
If Rnd(1) < x(i) Then a(i, i1) = 1 Else a(i, i1) = 0
Next
i = i + 1: k = k + 1
End Sub
Private Sub Text10_DblClick()
Text10.Text = "P(" + Str(i) + ")=" + Str(x(i))
Text10.BackColor = vbRed
For i1 = 1 To n
Randomize Timer
If Rnd(1) < x(i) Then a(i, i1) = 1 Else a(i, i1) = 0
Next
i = i + 1: k = k + 1
End Sub
Private Sub Text11_DblClick()
Text11.Text = "P(" + Str(i) + ")=" + Str(x(i))
Text11.BackColor = vbRed
For i1 = 1 To n
Randomize Timer
If Rnd(1) < x(i) Then a(i, i1) = 1 Else a(i, i1) = 0
Next
i = i + 1: k = k + 1
End Sub
Private Sub Text12_DblClick()
Text12.Text = "P(" + Str(i) + ")=" + Str(x(i))
Text12.BackColor = vbRed
For i1 = 1 To n
Randomize Timer
If Rnd(1) < x(i) Then a(i, i1) = 1 Else a(i, i1) = 0
Next
i = i + 1: k = k + 1
End Sub
Private Sub Text13_DblClick()
Text13.Text = "P(" + Str(i) + ")=" + Str(x(i))
Text13.BackColor = vbRed
For i1 = 1 To n
Randomize Timer
If Rnd(1) < x(i) Then a(i, i1) = 1 Else a(i, i1) = 0
Next
i = i + 1: k = k + 1
End Sub
Private Sub Text14_DblClick()
Text14.Text = "P(" + Str(i) + ")=" + Str(x(i))
Text14.BackColor = vbRed
For i1 = 1 To n
Randomize Timer
If Rnd(1) < x(i) Then a(i, i1) = 1 Else a(i, i1) = 0
Next
i = i + 1: k = k + 1
End Sub
Private Sub Text15_DblClick()
Text15.Text = "P(" + Str(i) + ")=" + Str(x(i))
Text15.BackColor = vbRed
For i1 = 1 To n
Randomize Timer
If Rnd(1) < x(i) Then a(i, i1) = 1 Else a(i, i1) = 0
Next
i = i + 1: k = k + 1
End Sub
Запуск модели и получение результата.
1. Ввести исходные данные.
2. Заполнить матрицу выбора объектов и установить схему соединений элементов исследуемой системы.
3. Получение результата исследований.
3.1. Показатели надежности системы;
3.2. Сведения об отказах элементов системы.