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

MÔ hình hóa đạn bắn cao xạ

15 725 0
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 đề Mô Hình Hóa Đạn Bắn Cao Xạ
Trường học Trường Đại Học Khoa Học Tự Nhiên
Chuyên ngành Khoa Học Máy Tính
Thể loại Đồ Án Tốt Nghiệp
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 15
Dung lượng 1,85 MB

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

Nội dung

Giả sử một khẩu pháo bắn được m0 loạt đạn trong thời gian T, vậy với với m loạt đạn trong thời gian T thì cần số khẩu pháo là n = m/m0.. Xác suất bắn trúng mục tiêu của cả trận địa pháo

Trang 1

MÔ PHỎNG TRẬN ĐỊA PHÁO CAO XẠ

1 Tên đề bài và nội dung thực hiện.

a Tên đề bài.

Một khẩu pháo cao xạ có thể bắn m loạt đạn trong phạm vi xạ kích của mình Xác xuất trúng đích của mỗi loạt đạn là P Hãy mô phỏng trận đại pháo, tìm số pháo n cần thiết để bắn hạ mục tiêu nếu xác xuất bắn hạ là P0 Các số liệu cho trong bảng sau:

Xác xuất bắn trúng của

mỗi loạt đạn, p

Số loạt đạn trong phạm

vi xạ kích, m

Xác xuất bắn hạ máy

bay, P0

b Nhiệm vụ đối với sinh viên:

- Phân tích thuật toán giải

- Lưu đồ thuật toán

- Viết chương trình mô phỏng

- Kết quả mô phỏng, nhận xét, bình luận

2 Phân tích đề bài.

Giả sử một khẩu pháo bắn được m0 loạt đạn trong thời gian T, vậy với với m loạt đạn trong thời gian T thì cần số khẩu pháo là n = m/m0 Trong đó m0=T/t0 loạt đạn, do đó xác suất bắn trúng của khẩu pháo bằng tổng xác suất bắn trúng của các loạt đạn Xác suất bắn trúng mục tiêu của cả trận địa pháo là tổng xác suất bẳn trúng của mỗi khẩu pháo

Trang 2

3 Phân tích các biến ngẫu nhiên.

Hệ thống địa pháo cao xạ là một hệ ngẫu nhiên: xác suất bắn trúng của mỗi loạt pháo hoàn toàn ngẫu nhiên trong khoảng (0,1) Mỗi số ngãu nhiên Ui trong khoảng (0,1) được lấy vào, nếu nhỏ hơn hoặc băng xác suất bắn trúng của mỗi khẩu pháo p thì Ui chính là xác suất bắn trúng của mỗi loạt đạn.

4 Phân tích thuật giải.

1 Lấy số ngẫu nhiên Ui =U(0,1).

2 Nếu Ui ≤ p thì bắn trúng máy bay với xác suất pi =Ui

3 Mỗi khẩu pháo có thể bắn T / t loạt trong thời gian máy bay bay qua trận địa Vậy xác suất bắn trúng máy bay của một khẩu là :

Pi = ∑Ui , với điều kiện Ui ≤ p

4 Vậy xác suất bắn trúng maý bay của cả trận địa pháo là :

Pn = ∑ Pi , nếu Pn ≥ P0 dẫn đến máy bay bị bắn hạ 5.Từ đó có thể xác định được số khẩu pháo tối ưu ntư bắn hạ máy bay với xác suất: Pn = P0.

Ta dùng biến “dem” để đếm số khầu pháo ít nhất để có thể bắn trúng mục tiêu với các số liệu đã nhập Khi tìm được “dem” ta sẽ đem so sánh với số khẩu pháo đã cho, nếu nó lớn hơn thì không bắn trúng mục tiêu ngươc lại thì trúng mục tiêu

Ta dùng biến Lb để đếm số lần bắn của mỗi khẩu pháo (mỗi khẩu có thể bắn T/t lượt) ở mỗi lượt bắn xác suất bắn trúng của mỗi khẩu pháo là một đại lượng ngẫu nhiên được chứa trong biến Ui (Ui = U(0,1)) Từ đó ta xác định được xác suất bắn trúng của từng khẩu pháo sau T/t lượt bắn và xác suất bắn trúng của toàn bộ trận địa pháo.

So sánh xác suất bắn trúng của toàn bộ trận địa pháo với xác xuất bắn trúng máy bay ta sẽ xác định được khả năng bắn trúng của trận địa pháo (nếu ∑ Pi > P0 thì bắn trúng)

Trang 3

5 Lưu đồ tính.

Trang 4

6 Điều kiện mô phỏng.

Từ yêu cầu của đề bài, ta cần phải có những điều kiện sau để cho hệ thống

mô phỏng được:

 Thêm các thông số sau: t0: Thời gian giữa hai lần bắn liên tiếp.

T: Thời gian máy bay bay qua

 Ngoài ra cần đảm bảo các thông số nhập phải đúng

7 Viết chương trình mô phỏng.

Dim P As Single 'Xac suat ban trung

Dim m As Integer 'Loat dan trong pham vi xa kich

Dim P0 As Single 'Xac suat ban ha

Dim t0 As Single 'Thoi gian giua 2 luot ban

Dim T As Single 'Thoi gian may bay bay qua

Dim nhap_dung As Boolean

Dim ban_ha As Boolean

Dim dem As Integer

Dim n As Integer 'So phao can thiet

Dim max As Byte

Dim i As Byte

Dim max1 As Long

Private Sub Form_Load()

Reset

End Sub

Private Sub cmdExit_Click()

End

End Sub

Private Sub cmdReset_Click()

tmrReset.Enabled = True

End Sub

Trang 5

Private Sub cmdStart_Click()

imgNo.Visible = False

TenLua

Tinh_toan

If nhap_dung = True Then tmrStart.Enabled = True End Sub

Private Sub txtSo_Loat_Dan_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

imgNo.Visible = False

TenLua

Tinh_toan

If nhap_dung = True Then tmrStart.Enabled = True End If

End Sub

Private Sub txtTGBan_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

imgNo.Visible = False

TenLua

Tinh_toan

If nhap_dung = True Then tmrStart.Enabled = True End If

End Sub

Private Sub txtTGBay_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

imgNo.Visible = False

TenLua

Tinh_toan

If nhap_dung = True Then tmrStart.Enabled = True End If

Trang 6

End Sub

Private Sub txtXSBan_ha_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

imgNo.Visible = False

TenLua

Tinh_toan

If nhap_dung = True Then tmrStart.Enabled = True End If

End Sub

Private Sub txtXSBan_trung_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

imgNo.Visible = False

TenLua

Tinh_toan

If nhap_dung = True Then tmrStart.Enabled = True End If

End Sub

Private Sub tmrStart_Timer()

If pic1.Top > 0 Then

pic1.Top = pic1.Top - 100

Else

pic1.Top = 0

tmrMay_bay.Interval = 2 * Int(T) + 1

tmrTen_lua.Interval = Int(t0) + 1

tmrMay_bay.Enabled = True

tmrTen_lua.Enabled = True

tmrStart.Enabled = False

End If

End Sub

Trang 7

Private Sub tmrMay_bay_Timer()

Select Case ban_ha

Case True

If imgMayBay.Left < imgNo.Left Then

imgMayBay.Left = imgMayBay.Left + 50

Else

imgMayBay.Left = -4000

imgNo.Visible = True

tmrMay_bay.Enabled = False

tmrTen_lua.Enabled = False

MsgBox "May bay da bi ban ha, xin chuc mung ban", , "Chuc mung" imgNo.Visible = False

txtSo_Phao.Text = Str(n)

txtSpCan_thiet.Text = Str(dem)

TenLua

End If

Case False

If imgMayBay.Left < Me.Width Then

imgMayBay.Left = imgMayBay.Left + 50

Else

imgMayBay.Left = -4000

MsgBox "May bay chua bi ban ha, Chia buon cung ban", , "Chia buon" tmrMay_bay.Enabled = False

tmrTen_lua.Enabled = False

txtSo_Phao.Text = Str(n)

txtSpCan_thiet.Text = Str(dem)

TenLua

End If

End Select

End Sub

Private Sub tmrReset_Timer()

If pic1.Top < 7000 Then

Trang 8

pic1.Top = pic1.Top + 100

Else

Reset

End If

End Sub

Private Sub tmrTen_lua_Timer()

If imgTenLua.Item(max).Top > 0 Then

For i = 0 To 20

imgTenLua.Item(i).Top = imgTenLua.Item(i).Top - 500 Next i

Else

TenLua

End If

End Sub

Private Sub Tinh_toan()

Dim m0 As Integer 'So lan ban cua 1 phao trong thoi gian T Dim Pn As Single 'Tong xac suat ban trung cua tran dia phao

Dim Pi As Single 'Xac xuat ban trung trong 1 lan ban

Dim Luot_ban As Integer

Dim Ui As Single 'Xac suat ban trung ngau nhien

Nhap

If nhap_dung = False Then Exit Sub

m0 = Int(T / t0)

n = Int(m * t0 / T)

Pn = 0

dem = 0

Trang 9

Do While Pn < P0

dem = dem + 1

Pi = 0

Luot_ban = 0

Do While (Luot_ban < m0)

Ui = Rnd(1)

If Ui < P Then

Luot_ban = Luot_ban + 1

Pi = Pi + Ui

End If

Loop

Pn = Pn + Pi

Loop

If dem <= n Then

ban_ha = True

Else

ban_ha = False

End If

End Sub

Private Sub Nhap()

P = Val(txtXSBan_trung)

m = Val(txtSo_Loat_Dan)

P0 = Val(txtXSBan_ha)

t0 = Val(txtTGBan)

T = Val(txtTGBay)

If P > 1 Or P < 0 Or m > 1000 Or m < 0 Or P0 < 0 Or P0 > 1 Or t0 <= 0 Or t0 > 1000 Or T

< 0 Or T > 1000 Or t0 > T Then

nhap_dung = False

MsgBox "Thong so sai, hay nhap lai thong so", vbInformation, "Thong bao"

Exit Sub

Trang 10

Else

nhap_dung = True

End If

End Sub

Private Sub Reset()

txtSo_Loat_Dan = "20"

txtTGBan.Text = "1"

txtTGBay.Text = "3"

txtXSBan_ha.Text = "0.7"

txtXSBan_trung.Text = "0.1"

txtSpCan_thiet.Text = ""

txtSo_Phao.Text = ""

tmrStart.Enabled = False

tmrReset.Enabled = False

tmrMay_bay.Enabled = False

tmrTen_lua = False

imgNo.Visible = False

pic1.Top = 7000

pic1.Left = 0

imgMayBay.Left = -4000

TenLua

End Sub

Private Sub TenLua()

Randomize (1)

For i = 0 To 20

imgTenLua.Item(i).Top = Int(10000 * Rnd(1) + 6500) Next i

End Sub

Trang 11

8 Giao diện.

Từ yêu cầu của bài toán và ý tưởng thuật toán ta xây dựng mô hình mô phỏng của trận địa pháo.

 Giao diện chính

Trang 12

 Giao diện mô phỏng

Phần mô phỏng được hiển thị nhờ Button Start trên giao diện chính Quá trình chuyển đổi giao diện được thực hiện thông qua bộ tmrStart_Timer.

Khi giao diện mô phỏng xuất hiện thì quá trình mô phỏng bắt đầu thực hiện.

Sử dụng bộ tmrMay_bay_Timer để mô phỏng quá trình bay của máy bay, tốc độ bay của máy bay thay đổi tuỳ thuộc vào giá trị thời gian bay qua của máy bay.

Bộ Timer3 để mô phỏng quá trình bắn của trận địa pháo, tốc độ bắn phụ thuộc vào giá trị của T và t.

Bộ tmrTen_lua_Timer để mô phỏng quá trình khi bắn trúng mục tiêu (khi bắn trúng hay không bắn trúng mục tiêu thì đều có hiển thị thông báo)

Trang 14

9 Kết quả mô phỏng.

*Kết quả mô phỏng với dữ liệu đã cho :

Thời gian máy bay bay qua : T = 3

Số loạt đạn trong phạm vi xạ kích : m = 20

Thời gian thực hiện một loạt bắn : t = 1

Xác suất bắn trúng của 1 khẩu pháo : p = 0,1

Xác suất bắn hạ của máy bay : P0 = 0,7

 Ta được kết quả :

Máy bay sẽ bị bắn hạ

Số pháo tính được theo m : n = 6

Số khẩu pháo cần thiết là : ntư = 6

10 Nhận xét kết quả mô phỏng.

Với kết quả mô phỏng hoàn toàn phù hợp với thực tế: Nếu xác suất bắn trúng của mỗi khẩu pháo hoặc xác suất bắn hạ máy bay giảm thì khả năng bắn trúng của

cả trận địa pháo càng lớn, đồng thời số pháo tối ưu sẽ giảm Nếu thời gian máy bay bay qua trận địa càng lớn thì máy bay càng dễ bị bắn hạ, do đó số khẩu pháo tối ưu cũng giảm đi Tuy nhiên do khả năng bắn trúng của mỗi loạt đạn là một đại lượng ngẫu nhiên nên với cùng một bộ số đã cho thì kết quả mô phỏng có thể cho ra số pháo tối ưu khác nhau.

Trang 15

11 Tài liệu tham khảo

[1], Phạm Tâm Thành, Bài giảng Mô hình hóa hệ thống, Trường ĐHHH Việt Nam [2], Hồng Phúc – Linh Nga, Tự học VISUAL BASIC 6.0 - NXB Lao động, 2008.

Ngày đăng: 05/03/2014, 21:26

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w