intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Mô phỏng hiển thị mục tiêu Radar trên màn hình máy tính PC

Chia sẻ: Vo Thanh Trung | Ngày: | Loại File: DOCX | Số trang:57

551
lượt xem
101
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Yêu cầu bài tập lớn : bằng các kiến thức về đồ họa và sử dụng ngôn ngữ lập trình C++ để thực hiện : “mô phỏng hiển thị mục tiêu Radar trên mà hình máy tính PC“,Quá trình thực hiện chương trình được viết bằng ngôn ngữ C++ trên nền Visual Studio 6.0và giải quyết được các vấn đề sau đây : - Tổng quan về màn hình hiển thị được chia làm 4 phần , thuận tiên cho quá trình quan sát : màn hình quét chung , màn hình thể hiện các phương pháp...

Chủ đề:
Lưu

Nội dung Text: Mô phỏng hiển thị mục tiêu Radar trên màn hình máy tính PC

  1. Mô phỏng hiển thị mục tiêu Radar trên màn hình máy tính PC Page 1 Lớp đện tử viễn thông k31
  2. Page 2 Lớp đện tử viễn thông k31
  3. I.GIỚI THIỆU VỀ CHƯƠNG TRÌNH Yêu cầu bài tập lớn : bằng các kiến thức về đồ họa và sử dụng ngôn ngữ lập trình C++ để thực hiện : “mô phỏng hiển thị mục tiêu Radar trên mà hình máy tính PC“,Quá trình thực hiện chương trình được viết bằng ngôn ngữ C++ trên nền Visual Studio 6.0và giải quyết được các vấn đề sau đây : - Tổng quan về màn hình hiển thị được chia làm 4 phần , thuận tiên cho quá trình quan sát : màn hình quét chung , màn hình thể hiện các phương pháp quét , bảng hiển thị các thông số , phần còn lại là các phím điều khiển . - Mô phỏng quỷ đạo của 6 mục tiêu khác nhau trên cùng 1 màn hình radar - Hệ thống radar có thể làm việc ở chế độ quét tất cả các mục tiêu hoặc bám sát từng mục tiêu riêng biệt . - Hệ thống thước đo cự ly được trang bị với 4 loại cho độ chính xác , và độ tin cậy cao :Quét thẳng , quét tròn ,quét xoắn và nhìn vòng . Với thước xoắn có thể tăng số vòng của thước lên để cho độ chính xác cao hơn tùy vào người sử dụng . - Trong quá trình sử dụng các loại thước đo để xác địnhvị trí mục tiêu thì người quan sát vẫn có thể nhìn thấy quỹ đạo của mục tiêu nhờ vào màn hình chung , màn hình này luôn luôn hiển thị quỹ đạo mục tiêu trong quá trình quét . - Chiều và tốc độ quét sóng của radar có thể thay đổi được tùy vào người sử dụng . - Hệ thống radar sẽ tính toán và hiển thị các thông số về mục tiêu : Cự Ly , Góc , Phương Vị , Độ Cao và Vận Tốc trên bảng thông số . Đồng thời có các thông báo về thời điểm hiện tại của mục tiêu mà đài có thể quan sát . - Chương trình được điều khiển bởi hệ thống các nút điều khiển một cách dễ dàng - Do điều kiện hạn chế về mặt thời gian cũng như kinh nghiệm lập trình còn ít nên chương trình còn có nhiều sai sót rất mong đươc sự đóng góp ý kiến của thầy cô và các bạn . - Chúng em xin chân thành cảm ơn thầy NGUYỄN TƯỜNG THÀNH đã hướng dẫn chúng em trong quá trình thực hiện đồ án này và giúp chúng em nắm vững hơn về kiến thức lập trình , đồ họa và mô phỏng chương trình . Page 3 Lớp đện tử viễn thông k31
  4. 1.KHÁI NIỆM RADAR: -Radar là hệ thống thiết bị tìm kiếm (detect) và xác định vị trí ( ranging) của đối tượng thông qua việc thu, phát và xử lý sóng điện từ. Phân loại: • Chủ động (Active system): thực hiện phát, thu và xử lý sóng điện từ phản xạ từ mục tiêu radar • Bị động (Passive system): chỉ thu và xử lý sóng điện từ bức xạ từ mục tiêu radar. 2.MỤC TIÊU RADAR -Mục tiêu radar là tất cả các đối tượng có khả năng phản xạ sóng điện từ nằm trongtầm phát hiện của trạm radar. Phân loại: – Mục tiêu quan sát: • Mục tiêu nhân tạo • Mục tiêu tự nhiên -Mục tiêu giả: là những đối tượng không cần quan sát nhưng xuất hiện trong vùng phủ sóng của trạm radar, gây nhiễu đối với các mục tiêu cần quan sát. Tham số xác định vị trí: • 3D: M (D, φ, β ) hoặc M ( H, φ, β ) trong đó: H = D sin (β) • 2 D: M (D, φ ) -Quỹ đạo mục tiêu: tập hợp các vị trí của mục tiêu theo thời gian 2.NGUYÊN LÝ CƠ BẢN CỦA XUNG RADAR Page 4 Lớp đện tử viễn thông k31
  5. Độ rộng xung PW- Pulse Width • – thời gian bức xạ tín hiệu trong một chu kỳ bức xạ. Tần số lặp xung PRF - Pulse Repetition Frequency • – Số xung phát trong một giây. Thời gian lặp xung PRT - Pulse Repetition Time (PRT=1/PRF) • PW ảnh hưởng đến : • – Phạm vi phát hiện mục tiêu của Radar – Cự ly tối thiểu và tối đa có thể phát hiện mục tiêu PRF xác định: • – Cự ly tối đa phát hiện mục tiêu 3.TÍNH TOÁN CỰ LY -Tại trạm radar sóng điện từ được bức xạ ra không gian, phạm vi giám xác của radar tùy thuộc vào công suất của máy phát, khi gặp phải vật thể lạ sóng điện từ sẽ bị vật thể lạ hấp thụ một phần,một phần sẽ bị phản xạ lại trạm ,tín hiệu thu được sẽ được xữ lý để biết chính xác tọa độ cũng như vị trí của vật thể đó trong không gian Các tham số cần xác định Page 5 Lớp đện tử viễn thông k31
  6. 4.CƠ SỞ VẬT LÝ CỦA RADA Rada làm việc dựa trên 4 tính chất của sóng điện từ: 1.Sóng điện từ lan truyền với vận tốc hữu hạn, không đổi c=3.108 (m/s) 2. Sóng điện từ truyền thẳng. 3. Năng lượng sóng điện từ sẽ phản xạ khi gặp môi trường không đồng nhất(mục tiêu) 4. Tần số thu được tại trạm radar sai lệch so với tần số phát, gây nên do sự chuyển động tương đối giữa mục tiêu và trạm radar và được xác định thông qua hiệu ứng doppler Page 6 Lớp đện tử viễn thông k31
  7. 5.CÁC BƯỚC XỬ LÝ TÍN HIỆU RADAR Bước 1: Phát hiện mục tiêu:( detection) Page 7 Lớp đện tử viễn thông k31
  8. Xác xuất phát hiện nhầm: gây nên do tín hiệu phản xạ từ các đối tượng Bước 2: Đo đạc tham số:( Measurement ) -Cự ly R đo độ trễ -Đo góc (fi,β) căn cứ vào hướng tính của búp sóng radar -Đo vận tốc hiệu ứng Dopper Xác định được vị trí và vẽ quỷ đạo của mục tiêu Tính được gia tốc của M Bước 3:Phân biệt mục tiêu:( display) Page 8 Lớp đện tử viễn thông k31
  9. Bước 4: Nhận biết mục tiêu:( recorgnation) Chỉ thực hiện được với Radar chủ động thứ cấp: • Radar chủ động thứ cấp là hệ thống radar có khả năng trao đổi thông tin ( truyền số liệu ) với đối tượng (mục tiêu) • Quá trình trao đổi số liệu giữa M và RS được thực hiện khi M nằm lọt trong búp sóng radar. • Thời gian trao đổi số liệu phụ thuộc vào tốc độ quét cánh sóng và kích thước búp sóng của trạm Radar Radar thứ cấp truyền các tín hiệu được mã hóa đến bộ phát đáp c ủa m ục tiêu. • Transponder phúc đáp bằng bản tin được mã hóa với các thông tin của đối tượng ( airplane ) • Một transponder có thể thiết lập tối đa khoảng 4096 mã nh ận d ạng - identifying codes Page 9 Lớp đện tử viễn thông k31
  10. • Trong lĩnh vực quân sự , các transponders được gọi là IFF (Identification, Friend or Foe) II.MÔ PHỎNG BẰNG PHẦN MỀM 1.screen Page 10 Lớp đện tử viễn thông k31
  11. 2.Quét tròn Page 11 Lớp đện tử viễn thông k31
  12. 3.Quét thẳng Page 12 Lớp đện tử viễn thông k31
  13. 4.Màn hình ở chế độ quét xoắn Page 13 Lớp đện tử viễn thông k31
  14. III.CODE PHẦN MỀM MÔ PHỎNG //CHUONG TRINH MO PHONG HIEN THI MUC TIEU RADA TREN MAN HINH MAY PC// /***Chuong trinh duoc viet va chay tren nen Visual Studio 6.0*****// / *************************************************************************** ****************************/ // Rada2Dlg.cpp : implementation file //Ban dau he thong khoi dong voi cac gia tri ban dau tinh ra o ham Innitdialog , sau do #include "stdafx.h" #include "Rada2.h" #include "Rada2Dlg.h" #include "math.h" #include "mmsystem.h" #include "Winbase.h"#define pi 3.141592654 #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CAboutDlg dialog used for App About class CAboutDlg : public CDialog { public: CAboutDlg(); // Dialog Data //{{AFX_DATA(CAboutDlg) enum { IDD = IDD_ABOUTBOX }; //}}AFX_DATA // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL // Implementation protected: //{{AFX_MSG(CAboutDlg) //}}AFX_MSG DECLARE_MESSAGE_MAP() }; CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { //{{AFX_DATA_INIT(CAboutDlg) Page 14 Lớp đện tử viễn thông k31
  15. //}}AFX_DATA_INIT } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CAboutDlg) //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) //{{AFX_MSG_MAP(CAboutDlg) // No message handlers //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CRada2Dlg dialog CRada2Dlg::CRada2Dlg(CWnd* pParent /*=NULL*/) : CDialog(CRada2Dlg::IDD, pParent) { //{{AFX_DATA_INIT(CRada2Dlg) m_m1 = _T(""); m_m2 = _T(""); m_m3 = _T(""); m_m4 = _T(""); m_m5 = _T(""); m_m6 = _T(""); m_RSpeed = _T(""); m_toa_do = _T(""); m_dt_bam = 0; m_tt_bam = _T(""); //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); } void CRada2Dlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CRada2Dlg) DDX_Control(pDX, IDC_BUTTON_Start, m_Button_start); DDX_Control(pDX, IDC_EDIT1, m_m1con); DDX_Text(pDX, IDC_EDIT1, m_m1); DDV_MaxChars(pDX, m_m1, 500); DDX_Text(pDX, IDC_EDIT2, m_m2); DDX_Text(pDX, IDC_EDIT3, m_m3); DDX_Text(pDX, IDC_EDIT4, m_m4); DDX_Text(pDX, IDC_EDIT5, m_m5); Page 15 Lớp đện tử viễn thông k31
  16. DDX_Text(pDX, IDC_EDIT6, m_m6); DDX_Text(pDX, IDC_EDITRSpeed, m_RSpeed); DDX_Text(pDX, IDC_STATIC_TOA_DO, m_toa_do); DDX_Text(pDX, IDC_EDIT_DT_BAM, m_dt_bam); DDX_Text(pDX, IDC_EDIT_TT_BAM, m_tt_bam); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CRada2Dlg, CDialog) //{{AFX_MSG_MAP(CRada2Dlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_WM_SIZE() ON_BN_CLICKED(IDC_BUTTON_Start, OnBUTTONStart) ON_BN_CLICKED(IDC_BUTTON_Speed, OnBUTTONSpeed) ON_WM_TIMER() ON_BN_CLICKED(IDC_BUTTON_Inv, OnBUTTONInv) ON_BN_CLICKED(IDC_BUTTON_RC, OnButtonRc) ON_BN_CLICKED(IDC_BUTTON_NWave, OnBUTTONNWave) ON_BN_CLICKED(IDC_BUTTONDSpeed, OnBUTTONDSpeed) ON_BN_CLICKED(IDC_BUTTON_Trak, OnBUTTONTrak) ON_WM_KEYDOWN() ON_BN_CLICKED(IDC_BUTTON_NHIN_THANG, OnButtonNhinThang) ON_BN_CLICKED(IDC_BUTTON2_THU, OnButton2Thu) ON_BN_CLICKED(IDC_BUTTON_EXIT, OnButtonExit) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CRada2Dlg message handlers BOOL CRada2Dlg::OnInitDialog() { CDialog::OnInitDialog(); // Add "About..." menu item to system menu. // IDM_ABOUTBOX must be in the system command range. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { CString strAboutMenu; strAboutMenu.LoadString(IDS_ABOUTBOX); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); Page 16 Lớp đện tử viễn thông k31
  17. pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } // Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon // TODO: Add extra initialization here //du lieu khoi tao cho he thong---------------------------------------- //khoi tao cho hop toc do CString str; str.Format("Toc do cap:%d",thang_toc_do+3); m_RSpeed=str; UpdateData(FALSE); //---------------------------------------------------------------------- //20,200,255 //mau cua tia quet data_mau[6][0]=255; data_mau[6][1]=255; data_mau[6][2]=255; //mau cua cac doi tuong data_mau[0][0]=255; data_mau[0][1]=0; data_mau[0][2]=0; data_mau[1][0]=255; data_mau[1][1]=175; data_mau[1][2]=0; data_mau[2][0]=200; data_mau[2][1]=0; data_mau[2][2]=250; data_mau[3][0]=250; data_mau[3][1]=100; data_mau[3][2]=100; data_mau[4][0]=0; data_mau[4][1]=255; data_mau[4][2]=0; data_mau[5][0]=100; data_mau[5][1]=0; data_mau[5][2]=255; // vi tri ban dau cua thanh quet data_thanh_quet_phi=0; Page 17 Lớp đện tử viễn thông k31
  18. //khoang cach cuc dai quan sat duoc dmax=300;//km dmin=0.5;//khoang cach ma rada bi bao hoa mau //do rong canh song muc nho nhat co the ve duoc do_rong_canh_song=1;//deg //vi tri dat rada gocx=maxx*3/5; gocy=maxy/3; //so canh song nho tao thah canh song lon phan_giai=15; //khoang thoi gian cap nhat lai he thong , se quyet dinh toc do quet cua rada time_update=150;//tinh theo so nguyen ms //thoi gian khoi tao ban dau, va cung la noi luu trang thai thoi gian timeo=0;//tinh theo ms //trang thai bam sat ,bih thuong se khong co tt_bam_sat=0; //chieu quet, binh thuong de chieu kim dong ho tt_chieu_quet=-1; //kieu xem :xac ding kieu man hinh muon quan sat , co 4 kieu man hinh //binh thuong de man hinh nhin vong tt_kieu_xem=4; //khoang dich chuyen cua tia quet sau mot lan update tinh theo radian hoac do tt_toc_do_quet=1;//deg //dung luong mang dung_luong=215; //bien dam trach trang thai khoi dong start=0; //thang toc do 28 muc thang_toc_do=0; CString str1; str1.Format("Toc do cap:%d",thang_toc_do+3); m_RSpeed=str1; UpdateData(FALSE); // thoi gian chuan cho phep duoi time_standar=400;//tuc 2s //doi tuong bam dt_bam=2; //che do duoi bam time_out[0][1]=0; time_out[0][0]=0; /////////////////////////////////////////////////hot m_toa_do1=0; //////////////////////////////////////////////////hot //gio he thong gio=phut=giay=0; //khoi tao gia triban dau chua co muc tieu cua khung information str1.Format("0"); m_m1=m_m2=m_m3=m_m4=m_m5=m_m6=str1; UpdateData(FALSE); //khoi tao mang ban dau Page 18 Lớp đện tử viễn thông k31
  19. int i,j,k; for (i=0;i
  20. } // If you add a minimize button to your dialog, you will need the code below // to draw the icon. For MFC applications using the document/view model, // this is automatically done for you by the framework. void CRada2Dlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); // Center icon in client rectangle int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // Draw the icon dc.DrawIcon(x, y, m_hIcon); } else { CDialog::OnPaint(); } switch(nhin_thang) { case 1: introduce(); break; case 2: cap_nhat(); break; case 3: cap_nhat_nhin_thang(); break; case 4: cap_nhat_nhin_vong; break; case 5: xoan_oc(); break; } //////////////////////////////////////////////////////////////////////// } // The system calls this to obtain the cursor to display while the user drags // the minimized window. HCURSOR CRada2Dlg::OnQueryDragIcon() { return (HCURSOR) m_hIcon; Page 20 Lớp đện tử viễn thông k31
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2