1. Trang chủ
  2. » Luận Văn - Báo Cáo

bài tập lớn mô hình hóa đánh giá hệ số sẵn sàng của hệ thống có phục hồi

19 774 8
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài Tập Lớn Mô Hình Hóa Đánh Giá Hệ Số Sẵn Sàng Của Hệ Thống Có Phục Hồi
Trường học Trường Đại Học Khoa Học Tự Nhiên
Chuyên ngành Mô Hình Hóa
Thể loại Bài Tập Lớn
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 19
Dung lượng 265 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Giới thiệu phương pháp mô hình hoá hệ ngẫu nhiên Ở giai đoạn nghiên cứu và thiết kế hệ thống bằng máy tính , người ta thường ứng dụng phương pháp thử thống kê - còn có tên là phương pháp

Trang 1

Đề 24:

Đánh giá hệ số sẵn sàng của hệ thống có phục hồi

1 Tính hệ số sẵn sàng :

Tlv

Kss =

(Tlv +Tph)

2 Vẽ đường cong làm việc của hệ thống

Cho biết :

Phần 1 Giới thiệu phương pháp mô hình hoá hệ ngẫu nhiên

Ở giai đoạn nghiên cứu và thiết kế hệ thống bằng máy tính ,

người ta thường ứng dụng phương pháp thử thống kê - còn có

tên là phương pháp Monte-Carlo Phương pháp này sử dụng các

số ngẫu nhiên có phân bố xác suất nhất định.Những mô hình dựa

trên phương pháp này được gọi là mô hình xác suất

Thực chất của phương pháp mô hình xác suất là xây dựng

trên máy tính hệ thống S với các quan hệ nội tại của nó Đầu vào

của hệ có tác động mang tính ngẫu nhiên như số lượng các sự

kiện xảy, thời gian giữa các sự kiện hoặc tác động của môi trường

xung quanh E Trên cơ sở đó phân tích các tín hiệu đầu ra người

ta nhận được dáng điệu phản ứng của hệ thống Đó là phương

pháp mô phỏng Mỗi một lần thực hiện phép thử người ta thu

được một lời giải chứa đựng thông tin về dáng điệu của hệ thống

S Nếu số phép thử N đủ lớn thì kết quả thu được bằng cách lấy

trung bình theo xác xuất sẽ ổn định và đạt độ chính xác cần thiết

Trong hệ ngẫu nhiên có nhiều biến ngẫu nhiên Các đặc trưng

quan trọng của biến ngẫu nhiên là hàm mật độ xác xuất, hàm

phân bố xác xuất , các thông số kỳ vọng toán, phương sai và một số

đặc trưng khác

Trang 2

Trong hệ ngẫu nhiên có nhiều đại lượng mang tính ngẫu nhiên Bảng liệt kê một số đại lượng ngẫu nhiên trong các hệ khác nhau:

Loại hệ thống

Hệ thống sản

xuất

Hệ thống máy

tính

Hệ thống thông

tin liên lạc

Các biến ngẫu nhiên Thời gian vận hành máy, ngừng máy do hỏng, thời gian thao tác, số lần hỏng hóc Thời gian giữa các lần làm việc, thời gian giải các bài toán

Số khách hàng, thời gian giữa các lần liên lạc, thời gian liên lạc, thời gian phục vụ

Các phân bố phổ biến trong thực tế

*Phân bố đều trong đoạn (a,b)

có hàm phân bố và hàm mật độ :

x − a

b − a

0 với giá trị còn lại của x

1 b− a

f(x)=

với a≤x≤b

0 với giá trị còn lại của x trường hợp riêng khi a=0 , b=1 ta có phân bố đều trong (0,1)

*Phân bố mũ expo (β)

Có hàm phân bố và hàm mật độ là:

1 a

F(x)=

e− x / a

với x>=0

0 với x<=0

1-e −

f(x)=

0

x / a với x>=0 với x<=0

2

Trang 3

Ngoài ra ta còn có các phân bố khác như phân bố chuẩn N(μ,σ2),phân bố gián đoạn,phân bố Poisson (λ)

Khi mô phỏng hệ thống người ta thường cần có các số ngẫu nhiên phân bố theo những luật phân bố nhất định để mô phỏng các sự kiện ngẫu nhiên xảy ra trong hệ .Số ngẫu nhiên phân bố đều trong khoảng (0,1) thường được dùng làm cơ sở để sản sinh

ra số ngẫu nhiên có các phân bố khác nhau.Sau đây chúng ta nghiên cứu một số phương pháp thông dụng tạo ra U(0,1)

*Dùng máy phát ngẫu nhiên

Máy phát số ngẫu nhiên dựa trên nguyên tắc sử dụng nhiễu do các thiết bị điện tử gây ra

Ưu điểm : nhận được dãy số hoàn toàn ngẫu nhiên (bằng cách thay đổi thời gian lấy mẫu T và điện áp cắt U) và số lượng không hạn chế

Nhược điểm : phải lắp thêm vào máy tính máy phát số ngẫu

nhiên.Khi cần làm lại quá trình mô phỏng thì không tạo được dãy số ngẫu nhiên giống lần trước nên không thể so sánh chính xác kết quả của 2 lần thử nghiệm

*Dùng bảng số ngẫu nhiên

Cách này có ưu điểm là có thể lặp lại dãy số ngẫu nhiên cho các lần mô phỏng khác nhau,như vậy sẽ tiện cho việc theo dõi Nhược điểm của phương pháp này là tốn bộ nhớ

*Dùng thuật toán để tạo ra số ngẫu nhiên :

Dưới đây là một số thuật toán hay dùng :

Thuật toán lấy phần giữa của số bình phương:

Ví dụ :

X0=0.2152

X02=0.04631104 ⇒ X1=0.6311

X12 =0.39828721 ⇒ X2=0.8287

Thuật toán nhân

Xn+1= phần lẻ của λ*xn trong đó λ là số có dạng ( 8t-3) hoặc (8t+3) trong đó t là số nguyên dương

X0=0.37843

Lấy λ=37 thì

X1=0.00191

X2=0.07067

X3=0.61479

X4=0.74723

Như vậy ta đã tạo ra được biến ngẫu nhiên U : (0,1)

Khi đó nếu biến X có phân bố F(X) thì thuật toán tạo ra biến ngẫu nhiên X là :

Trang 4

- Lấy U≈(0,1)

- Lấy X= F-1(u)

Dưới đây ta đưa ra thuật toán tạo ra các biến ngẫu nhiên

có phân bố mong muốn

*Biến ngẫu nhiên có phân bố mũ expo(β)

- Lấy U ≈(0,1)

- Lấy X=-βln(U)

Trong đó β là thông số của phân bố mũ

*Thuật toán tạo số ngẫu nhiên có phân bố đều trong(a,b)

- Lấy U ≈ (0,1)

- Lấy X=a+(b-a)U

Trang 5

Phần2 Phân tích thuật giải

1.Thuật giải

1.Gieo số ngẫu nhiên Ui ~ U(0,1) để tính thời gian làm việc 2.Thời gian làm việc :

Tlv = -

λ

1

ln(Ui), Ui ~ U(0,1) 3.Gieo số ngẫu nhiên Ui ~ U(0,1) để tính thời gian phục hồi 4.Thời gian phục hồi :

Tph=- µ

1

ln(Ui) , Ui ~ U(0,1)

5.Đếm thời gian làm việc : Tlàm việc = ∑ Tlvi

6.Đếm thời gian phục hồi: T phục hồi = ∑ Tphi

7.Tính hệ số sẵn sàng :

Tlv

Kss =

(Tlv+Tph)

Trang 6

2 Sơ đồ thuật toán

Bắt đầu

Nhập số liệu

Tổng thời gian làm việc =0 Tổng thời gian phục hồi =0 Biến đệm =0

Biến đệm =Biến đệm +1

U=rnd

Tlv(i)= - (1/)ln(U)

U=rnd

Tph(i) = - (1/)ln(U)

Tổng thời gian làm việc =Tổng thời gian làm việc+Tlv(biến đệm ) Tổng thời gian phục hồi=Tổng thời gian phục hồi +Tph(biến đệm)

B iến ệm Đ <

10

In kÕt qu¶

KÕt thóc

Trang 7

Phần 3 Lập trình Visual Basic

Option Explicit

Const e = 2.71828

Dim maxx, maxy, d, dt, t(10), w(10), n, f, g, Tlv, Tph, c, b As Double Dim kx, Kss, ex, ky, Plv(10), Clv(10000) As Double

Dim muy, lamda, Tphuchoi, Tlamviec, Tongthoigiansua, Tongthoigiankiemtra, u As Double

Dim Thoigianlamviec(1 To 10) As Double

Dim Thoigianphuchoi(1 To 10) As Double

Dim i As Long 'su dung trong cac vong lap

Dim i1 As Long 'nt

Dim i2 As Long 'nt

Dim biendem As Long ' biendem co tac dung lien ket mang cac

'thong so da tinh toan de truyen so lieu vao chuong trinh

'duoc thuc hien trong cac timer

Dim a As Double

'bien darun giup kiem tra chuong trinh da chay lan nao chua

Dim Dacapnhatthongso As Boolean

Dim darun As Boolean

Private Sub Cmdexit_Click()

Dim a As Double

a = MsgBox("Do you want to exit?", vbQuestion + vbYesNo, " Exit?")

If a = 6 Then

End

End If

End Sub

Private Sub CmdResult_Click()

'Neu chuong trinh chua chay lan nao thi nut lenh nay

'se co tac dung nhu la nut len run cua chuong trinh vay

'**********************************************

If Not darun Then

darun = True

If Not Dacapnhatthongso Then

capnhatthongso

End If

Khoitaotudau

Tinhtoan

Trang 8

Timer1.Enabled = True

End If

'**********************************************

Label15.Caption = "" & CStr(Round(Tongthoigiankiemtra, 2)) & "h" Label16.Caption = "" & CStr(Round(Tongthoigiansua, 2)) & "h" Label7.Caption = CStr(Round(Kss, 2))

End Sub

Private Sub CmdReset_Click()

Text1.Text = "0.0001"

Text2.Text = "0.001"

lamda = 0.0001

muy = 0.001

Khoitaotudau

End Sub

Private Sub CmdRun_Click()

'chay moi thi cac thong so tinh tong thoi gian da thay doi, vi vay ma 'cac nhan thong so cu phai duoc xoa di

Label15.Caption = ""

Label16.Caption = ""

'***********************************************

darun = True

If Not Dacapnhatthongso Then

capnhatthongso

End If

Khoitaotudau

Tinhtoan

Timer1.Enabled = True

End Sub

Private Sub Command1_Click()

End Sub

Private Sub Form_Load()

Khoitaotudau

End Sub

Private Sub khoitaothongso()

Trang 9

Text1.Text = "0.0001"

Text2.Text = "0.001"

lamda = 0.0001

muy = 0.001

Dacapnhatthongso = False

darun = False

End Sub

Private Sub Khoitaotudau()

Picture3.Cls

Timer1.Enabled = False

Timer2.Enabled = False

Timer3.Enabled = False

'Khoi dong lai vi tri thanh progress

Picphantram.Move -Picprogress.Width, 0, Picprogress.Width, Picprogress.Height

'Khoi tao lai gia tri hien thi tren cac nhan

Label8.Caption = " 0"

Label9.Caption = " 0"

Label7.Caption = " "

Label15.Caption = " "

Label16.Caption = " "

Label17.Caption = " ARE YOU READY?"

End Sub

Private Sub capnhatthongso()

Dacapnhatthongso = True

lamda = CDbl(Text1.Text)

muy = CDbl(Text2.Text)

End Sub

Private Sub Tinhtoan()

'khoi dong lai cac thong so

biendem = 0

i = 0

i1 = 0

'Tinh toan va ghi cac gia tri tuc thoi vao mot mang gia tri

For i = 1 To 10

u = Rnd

Tlamviec = -1 / lamda * Log(u) / Log(e)

Thoigianlamviec(i) = Tlamviec

u = Rnd

Tphuchoi = -1 / muy * Log(u) / Log(e)

Trang 10

Thoigianphuchoi(i) = Tphuchoi

Next i

'Tinh tong cac thong so tuc thoi vao cac bien se hien thi trong bang Result

Tongthoigiansua = 0

Tongthoigiankiemtra = 0

For i = 1 To 10

Tongthoigiansua = Tongthoigiansua + Thoigianphuchoi(i)

Tongthoigiankiemtra = Tongthoigiankiemtra + Thoigianlamviec(i)

Next i

c = (Tongthoigiansua + Tongthoigiankiemtra) / 1000

'Tinh he so san sang

Kss = (Tongthoigiankiemtra) / (Tongthoigiansua + Tongthoigiankiemtra)

End Sub

Private Sub Image2_Click()

End Sub

Private Sub mnuchay_Click()

'chay moi thi cac thong so tinh tong thoi gian da thay doi, vi vay ma 'cac nhan thong so cu phai duoc xoa di

Label15.Caption = ""

Label16.Caption = ""

'***********************************************

darun = True

If Not Dacapnhatthongso Then

capnhatthongso

End If

Khoitaotudau

Tinhtoan

Timer1.Enabled = True

End Sub

Private Sub mnudanhsachnho_Click()

Dim an As Integer

an = MsgBox("Nguyen Quoc Thang" & Chr(13) & "Nguyen Van Giang" & Chr(13) & _

Trang 11

"Hoang Van Tung" & Chr(13) & "Cung Dinh Vinh", vbOKOnly, "Danh Sach Nhom 3")

End Sub

Private Sub mnuexit_Click()

End

End Sub

Private Sub mnuresult_Click()

'Neu chuong trinh chua chay lan nao thi nut lenh nay

'se co tac dung nhu la nut len run cua chuong trinh vay

'**********************************************

If Not darun Then

darun = True

If Not Dacapnhatthongso Then

capnhatthongso

End If

Khoitaotudau

Tinhtoan

Timer1.Enabled = True

End If

'**********************************************

Label15.Caption = "" & CStr(Round(Tongthoigiankiemtra, 2)) & "h" Label16.Caption = "" & CStr(Round(Tongthoigiansua, 2)) & "h"

Label7.Caption = CStr(Round(Kss, 2))

End Sub

Private Sub mnureset_Click()

Text1.Text = "0.0001"

Text2.Text = "0.001"

lamda = 0.0001

muy = 0.001

Khoitaotudau

End Sub

Private Sub Text1_Change()

Dacapnhatthongso = False

darun = False

End Sub

Trang 12

Private Sub Text2_Change()

Dacapnhatthongso = False

darun = False

End Sub

Private Sub Timer1_Timer()

'tang bien dem len 1 de goi so lieu moi trong mang so lieu da tinh biendem = biendem + 1

'hien thi cac thong so tren cac nhan tu mang da tinh toan

Label8.Caption = ""

Label9.Caption = ""

Timer1.Enabled = False

Label17.Caption = " WORKING"

'Hien thi thoi gian lam viec len man hinh

Label8.Caption = " " & CStr(Round(Thoigianlamviec(biendem), 2)) & " h"

Tlv = Thoigianlamviec(biendem)

Tph = Thoigianphuchoi(biendem)

'Tinhh gia tri exp(-lamda*t)

Plv(0) = 0

Plv(biendem) = Exp(-lamda * Tlv)

'Khoi dong timer2 de bat dau qua trinh kiem tra oto

Timer2.Enabled = True

Image1.Visible = True

Image2.Visible = False

'Ve cac truc toa do

maxx = Picture3.ScaleWidth

maxy = Picture3.ScaleHeight

Picture3.DrawStyle = 0

Picture3.Line (500, 200)-(500, maxy - 200), QBColor(9)

Picture3.Line -(maxx - 200, maxy - 200), QBColor(9)

'Ve mui ten dau truc T(h)

Picture3.Line -Step(-50, -50), QBColor(9)

Picture3.Line -Step(0, 100), QBColor(9)

Picture3.Line -Step(50, -50), QBColor(9)

Picture3.CurrentX = maxx - 500

Picture3.CurrentY = maxy - 200

Picture3.Print "T(h)"

'Ve mui ten dau truc P(t)

Picture3.Line (500, 200)-(550, 250), QBColor(9)

Trang 13

Picture3.Line -Step(-100, 0), QBColor(9)

Picture3.Line -Step(50, -50), QBColor(9)

Picture3.CurrentX = 200

Picture3.CurrentY = 100

Picture3.Print "P(t)"

ky = (maxy - 200)

ex = (maxx - 200)

kx = (maxx - 1000)

b = ky / 12

'Ve cac duong dong nam ngang va danh so

For i = 0 To 9

Picture3.DrawStyle = 2

Picture3.Line (480, ky - (i + 1) * b)-(ex, ky - (i + 1) * b), QBColor(7) Picture3.CurrentX = 0

Picture3.CurrentY = (ky - (i + 1) * b - 50)

Picture3.Print Format(Round((i + 1) / 10, 2))

Next

'Danh so diem'0'

Picture3.CurrentX = 400

Picture3.CurrentY = maxy - 200

Picture3.Print Format(0)

'Ve cac vach doc tren truc nam ngang va danh so

dt = c * 100

For i = 1 To 10

Picture3.DrawStyle = 0

Picture3.Line (500 + i * (kx - 500) / 10, maxy - 240)-(500 + i * (kx - 500) / 10, maxy - 160), QBColor(5)

Picture3.CurrentX = 250 + i * (kx - 500) / 10

Picture3.CurrentY = maxy - 200

Picture3.Print Format(i * dt, "0")

Next

've ghi chu

Picture3.Line (ex - 1500, 100)-(ex - 1000, 100), QBColor(2)

Picture3.Print " WORK "

Picture3.Line (ex - 1500, 300)-(ex - 1000, 300), QBColor(12)

Picture3.Print " RESTORE "

Picture3.CurrentX = 2000

Picture3.CurrentY = 100

Picture3.Print "STATUS OF OPERATION CHART"

Trang 14

'Ve thoi gian lam viec theo ham cong e mu

d = (kx - 500) / 1000

Tlv = Thoigianlamviec(biendem)

Tph = Thoigianphuchoi(biendem)

t(0) = 0

t(0) = 0

t(biendem) = t(biendem - 1) + (Tlv / c) * d

w(biendem) = w(biendem - 1) + (Tph / c) * d

n = Tlv / c

For f = 0 To n

Clv(f) = Exp(-lamda * f * c)

Next f

For g = 1 To n

Picture3.Line (500 + t(biendem - 1) + w(biendem - 1) + d * (g - 1), ky -

10 * ky / 12 + (1 - Clv(g - 1)) * 10 * ky / 12)-(500 + w(biendem - 1) + t(biendem - 1) + g * d, ky - 10 * ky / 12 + (1 - Clv(g)) * 10 * ky / 12), QBColor(2)

Next g

've duong dong xuong

Picture3.DrawStyle = 2

Picture3.Line (500 + t(biendem) + w(biendem) - (Tph / c) * d, ky - 10 *

ky / 12 + (1 - Plv(biendem)) * 10 * ky / 12)-(500 + t(biendem) + w(biendem) - (Tph / c) * d, ky + 40)

End Sub

Private Sub Timer2_Timer()

' dua ra thong bao ve thoi gian can phuc hoi

Label9.Caption = " " & CStr(Round(Thoigianphuchoi(biendem), 2)) &

" h"

'dung lai doi phuc hoi

Timer2.Enabled = False

'Khoi dong timer3 de bat dau qua trinh phuc hoi

Timer3.Enabled = True

Image1.Visible = False

Image2.Visible = True

'Ve duong phuc hoi

Picture3.DrawStyle = 0

Picture3.Line (500 + t(biendem) + w(biendem) - (Tph / c) * d, ky - 10 *

ky / 12 + (1 - Plv(biendem)) * 10 * ky / 12)-(500 + t(biendem) + w(biendem), ky - 10 * ky / 12), QBColor(12)

'Ve duong dong

Trang 15

Picture3.DrawStyle = 2

Picture3.Line -(500 + t(biendem) + w(biendem), ky + 40)

End Sub

Private Sub Timer3_Timer()

'Bien i1, i2 co tac dung la cac bien dem thoi gian tao ra

'cac ham tre thoi gian theo y muon

i1 = i1 + 1

i2 = i2 + 1

If i2 >= 10 Then

If Picphantram.Left < 0 Then

Label17.Caption = " RESTORING "

Picphantram.Move Picphantram.Left + 10

i1 = 0

End If

'sau khi phuc hoi xong dua ra thong bao DA PHUC HOI

If Picphantram.Left >= 0 And i1 = 0 Then

Label17.Caption = " RESTORED ALREADY "

End If

'***************************************

End If

If i1 >= 100 Then

i2 = 0

If biendem < 10 Then

Label17.Caption = " ARE YOU READY?"

Timer3.Enabled = False

Timer1.Enabled = True

End If

'Sau khi lam viec 10 lan roi thi hien thi bang report thong bao

'cho nguoi thi hanh biet ket qua chay cua chuong trinh

'*******************************************************

If biendem >= 10 Then

Label17.Caption = " TRY AGAIN "

Label15.Caption = " " & CStr(Round(Tongthoigiankiemtra, 2)) & " h" Label16.Caption = " " & CStr(Round(Tongthoigiansua, 2)) & " h" Label7.Caption = CStr(Round(Kss, 2))

Timer3.Enabled = False

End If

'Thiet lap lai thanh phan tram

i1 = 0

Ngày đăng: 13/05/2014, 20:50

HÌNH ẢNH LIÊN QUAN

2. Sơ đồ thuật toán - bài tập lớn mô hình hóa đánh giá hệ số sẵn sàng của hệ thống có phục hồi
2. Sơ đồ thuật toán (Trang 6)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w