Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
37
Добавлен:
07.06.2015
Размер:
486.91 Кб
Скачать

15

Лабораторная работа №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. Сведения об отказах элементов системы.

Соседние файлы в папке Лаб Надежность(МЕТОДИЧКА) , 2011