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

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

60 43 0

Đ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

Định dạng
Số trang 60
Dung lượng 2,09 MB

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

Nội dung

Lớp đện tửviễn thông k31 I.GIỚI THIỆU VỀCHƯƠNGTRÌ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

Trang 1

Lớp đện tửviễn thông k31

I.GIỚI THIỆU VỀCHƯƠNGTRÌ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ềnVisual 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.

- Trongquá 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ựđónggó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ầyNGUYỄN TƯỜNGTHÀ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

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ừ.

Trang 2

NGUYÊN LÝ C Ơ B Ả N C Ủ A XUNG RADAR

Trang 3

• Độrộng xungPW- PulseWidth

– thời gian bức xạtín hiệu trong một chu kỳ bứcxạ.

• Tần sốlặp xungPRF- Pulse RepetitionFrequency

– Sốxung phát trong mộtgiây.

• Thời gian lặp xungPRT- Pulse RepetitionTime(PRT=1/PRF)

• PWảnh hưởng đến:

– Phạm vi phát hiện mục tiêu củaR a d a r

– Cựly tối thiểu và tối đa có thểphát hiện mụct i ê u

của vật thểđó trong không gian

cũng nhưvị

Các tham sốcần xác định

Trang 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ềnthẳ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ụctiê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ứngdoppler

Trang 5

5.CÁC B ƯỚ C X Ử LÝ TÍN HI Ệ U RADAR

Bước 1: Phát hiện mục tiêu:(detection)

Trang 6

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)

Trang 7

Bước 4: Nhận biết mục tiêu:(r e c o r g n a t i o n )

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ụctiê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óngradar.

• Thời gian trao đổisố 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ứtiêu cấp truyền các tín hiệu được mã hóa đến bộphát đáp của mục

• 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ểidentifyingcodes

thiết lập tối đa khoảng 4096 mã nhận dạng

Trang 10

Lớp đện tửviễn thông k31 Page10

3.

Quét th ẳ ng

Trang 11

Màn hình ở ch ế đ ộ quét x o ắ n

Trang 12

// Rada2Dlg.cpp : implementation file

//Ban dau he thong khoi dong voi cac gia tri ban dau tinh ra o ham Innitdialog , sau do

// CAboutDlg dialog used for App About

class CAboutDlg : public CDialog

Trang 13

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);

Trang 14

DDX_Text(pDX, IDC_EDIT3, m_m3); DDX_Text(pDX,

IDC_EDIT4, m_m4); DDX_Text(pDX, IDC_EDIT5,

m_m5); 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);

// 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);

Trang 15

// 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); // Setbigicon

SetIcon(m_hIcon,FALSE); // Set smallicon

// TODO: Add extra initialization here

//du lieu khoi tao cho he

thong -//khoi tao cho hop toc do

Trang 16

dmin=0.5;//khoang cach ma rada bi bao hoa mau

//do rong canh song muc nho nhat co the ve duoc

Trang 17

for (i=0;i<=5;i++) trang_thai_truoc[i]=0;

for (i=0;i<=5;i++) trang_thai_truoc_nua[i]=0;

//khoi tao che do xem ban dau la man hinh gioi thieu

Trang 18

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); CRectrect;

GetClientRect(&rect);

int x = (rect.Width() - cxIcon + 1) / 2;

int y = (rect.Height() - cyIcon + 1) / 2;

// Draw the icon

Trang 20

Lớp đện tửviễn thông k31 Page20

/////////////////////////////////////

}

///////////////////////////////////////////////////////////////////////////////////////////////

void CRada2Dlg::toa_do_m1(float t)//cap nhat lai bang du lieu tai vi tri du lieu toa

//do tai thoi diem t

x=-2*t-50-0.0001*t*t;//dinh nghia cac ham taiday

y=3*t-300;//dinh nghia cac ham tai day z=20;//dinh

nghia cac ham taiday

//manglen mot donvi

//toinh van toc

van_toc(k , dung_luong, dung_luong-1);

data_vi_tri[k-1][dung_luong][4]=vxt;

/////////////////////////////////////////////////////

Trang 21

Lớp đện tửviễn thông k31 Page21

}

Trang 22

float fmax, fmin,tg; fmax=data_thanh_quet_phi;

//pb = 1 co nghia la vat the van nam trong tam cua bup song

//////////////////////////////////////////////////////dung_luong+1 r so phan tu mang

//dich cac ngan du lieu len tren 1 don vi

for(i=1;i<=dung_luong;i++) for (j=0;j<=4;j++)data_vi_tri[k-1][i-1][j] = data_vi_tri[k-1][i] [j];//dich du lieu tu day

x=-2*t+150-0.0001*t*t;//dinh nghia cac ham taiday

y=3*t-350;//dinh nghia cac ham taiday

z=20;//dinh nghia cac ham tai day

//mang len

Trang 23

//toinh van toc

van_toc(k , dung_luong, dung_luong-1);

Trang 24

for(i=1;i<=dung_luong;i++) for (j=0;j<=4;j++)data_vi_tri[k-1][i-1][j] = data_vi_tri[k-1][i] [j];//dich du lieu tu day

x=-2*t+150-0.0001*t*t;//dinh nghia cac ham taiday

y=3*t-300;//dinh nghia cac ham taiday

z=20;//dinh nghia cac ham tai day

//toinh van toc

van_toc(k , dung_luong, dung_luong-1);

data_vi_tri[k-1][dung_luong][4]=vxt;

/////////////////////////////////////////////////////

Trang 25

}

Trang 26

float fmax, fmin,tg; fmax=data_thanh_quet_phi;

//dich cac ngan du lieu len tren 1 don vi

for(i=1;i<=dung_luong;i++) for (j=0;j<=4;j++)data_vi_tri[k-1][i-1][j] = data_vi_tri[k-1][i] [j];//dich du lieu tu day

x=-2*t+250-0.0001*t*t;//dinh nghia cac ham taiday

y=3*t-100;//dinh nghia cac ham taiday

z=20;//dinh nghia cac ham tai day

//mang len

Trang 27

//toinh van toc

van_toc(k , dung_luong, dung_luong-1);

Trang 28

for(i=1;i<=dung_luong;i++) for (j=0;j<=4;j++)data_vi_tri[k-1][i-1][j] = data_vi_tri[k-1][i] [j];//dich du lieu tu day

x=-2*t+250-0.0001*t*t;//dinh nghia cac ham tai day

y=3*t-300;//dinh nghia cac ham tai day

z=20;//dinh nghia cac ham tai day

Trang 29

van_toc(k , dung_luong, dung_luong-1); data_vi_tri[k-1][dung_luong][4]=vxt;

Trang 30

//dich cac ngan du lieu len tren 1 don vi

for(i=1;i<=dung_luong;i++) for (j=0;j<=4;j++)data_vi_tri[k-1][i-1][j] = data_vi_tri[k-1][i] [j];//dich du lieu tu day

x=-2*t+250-0.0001*t*t;//dinh nghia cac ham tai day

y=3*t-150;//dinh nghia cac ham tai day

z=20;//dinh nghia cac ham tai day

//mang len

Trang 31

//toinh van toc

van_toc(k , dung_luong, dung_luong-1);

Trang 32

for(i=1;i<=dung_luong;i++) for (j=0;j<=4;j++)data_vi_tri[k-1][i-1][j] = data_vi_tri[k-1][i] [j];//dich du lieu tu day

//trong mang data, vi tri tuong doi voi thanh_quet_phi

Trang 33

Lớp đện tửviễn thông k31 Page30

//khao bien trang thai chieu quet, va denta phi dich chuyen thay

//doi no se lam thay doi toc do quet,

CBrush*pBrush,*pOldBrush,*pB;//choi ve va choi backup

pBrush=new CBrush(RGB(150,150,255));//Tao choi ve mau 255,250,230

pOldBrush=pDC->SelectObject(pBrush);//lwu choi

///////////////////////////////////

Trang 34

int i=0;

CPen pPen15(PS_SOLID,8,RGB(data_mau[i][0],data_mau[i][1],data_mau[i][2])); i++;

CPen pPen25(PS_SOLID,8,RGB(data_mau[i][0],data_mau[i][1],data_mau[i][2])); i++;

CPen pPen35(PS_SOLID,8,RGB(data_mau[i][0],data_mau[i][1],data_mau[i][2])); i++;

CPen pPen45(PS_SOLID,8,RGB(data_mau[i][0],data_mau[i][1],data_mau[i][2])); i++;

CPen pPen55(PS_SOLID,8,RGB(data_mau[i][0],data_mau[i][1],data_mau[i][2])); i++;

CPen pPen65(PS_SOLID,8,RGB(data_mau[i][0],data_mau[i][1],data_mau[i][2])); i++;

// cac Pen nay co do rong la 8 pixel

//ve cac truc toa do

Trang 36

// TODO: Add your message handler code here maxx=cx;

float phi1=phi*pi/180; xtam=((int)floor(d*sin(phi1)));

ytam=((int)floor(d*cos(phi1)))*(-1);//toa do tam diem

xtam=xtam+gocx;

Trang 37

ytam=ytam+gocy;//hieu chinh toa do

CRect rect(xtam-radius,ytam-radius,xtam+radius,ytam+radius); pdc.FillRect(&rect,pBrush);delete pdc.SelectObject(pOldBrush);

Trang 40

if((data_vi_tri[dt_bam][dung_luong-1][0]<dmin)|//neu radius < 0 hoac radius > dmax -40 thi them vao sau

(data_vi_tri[dt_bam][dung_luong-1][0]>dmax-40))//them vao sau

float van_toc_dt;// van toc cua doi tuong bam sat

//trang thai on

dinh -if((trang_thai_hien_thoi[dt_bam-1]==1)&(trang_thai_truoc[dt_bam-1]==1))

{ 2][1];

//tinh toa do vi tri chinh giua duong quet

float trungg=data_thanh_quet_phi +(float)tt_chieu_quet*phan_giai/2;

if(trungg<0)trungg=360+trungg;

if(trungg>360)trungg=trungg-360;

// tinh vi tri tuong doi cua thanh quet va doi tuong

float den= data_vi_tri[dt_bam-1][dung_luong-1][1]- trungg;

Trang 42

v_teta=cos(data_vi_tri[dt_bam-v_phi=sin(data_vi_tri[dt_bam-1][dung_luong1][2])*(data_vi_tri[dt_bam-1][dung_luong1] [1]-data_vi_tri[dt_bam-1][dung_luong2][1])*data_vi_tri[dt_bam-1][dung_luong1]

Trang 43

Lớp đện tửviễn thông k31 Page40

//chon but ve CClientDC

pdc(this);pdc.SelectObjec

t(pPen);

//////////////////////////////

//

CBrush*pBrush,*pOldBrush;//choi ve va choi backup

pBrush=new CBrush(RGB(150,150,255));//Tao choi ve mau 255,250,230

//hien hinh cac doi tuong

//chinh xac cap 1

Trang 46

pdc.TextOut(35+i*jj+5,yy+5,"120 km" ); i++;

pdc.TextOut(35+i*jj+5,yy+5,"150 km" ); i++;

pdc.TextOut(35+i*jj+5,yy+5,"180 km" ); i++;

pdc.TextOut(35+i*jj+5,yy+5,"210 km" ); i++;

pdc.TextOut(35+i*jj+5,yy+5,"240 km" ); i++;

pdc.TextOut(35+i*jj+5,yy+5,"270 km" ); i++;

i=0;

pdc.TextOut(35+i*jj+5,yy1+5,"0 km" ); i++;

pdc.TextOut(35+i*jj+5,yy1+5,"3 km" ); i++;

pdc.TextOut(35+i*jj+5,yy1+5,"6 km" ); i++;

pdc.TextOut(35+i*jj+5,yy1+5,"9 km" ); i++;

pdc.TextOut(35+i*jj+5,yy1+5,"12 km" ); i++;

pdc.TextOut(35+i*jj+5,yy1+5,"15 km" ); i++;

pdc.TextOut(35+i*jj+5,yy1+5,"18 km" ); i++;

pdc.TextOut(35+i*jj+5,yy1+5,"21 km" ); i++;

pdc.TextOut(35+i*jj+5,yy1+5,"24 km" ); i++;

pdc.TextOut(35+i*jj+5,yy1+5,"27 km" ); i++;

i=0;

pdc.TextOut(35+i*jj+5,yy2+5,"0 m" ); i++;

pdc.TextOut(35+i*jj+5,yy2+5,"300 m" ); i++;

pdc.TextOut(35+i*jj+5,yy2+5,"600 m" ); i++;

pdc.TextOut(35+i*jj+5,yy2+5,"900 m" ); i++;

pdc.TextOut(35+i*jj+5,yy2+5,"1200 m" ); i++;

pdc.TextOut(35+i*jj+5,yy2+5,"1500 m" );

Trang 47

//pdc.TextOut(gocx+maxx/4-40,gocy-20,"E 90");

//pdc.TextOut(gocx+maxx/4-20,gocy+10,"300Km");//pdc.TextOut(gocx+maxx/8-15,gocy+10,"150Km");//pdc.TextOut(gocx+maxx/16-15,gocy+10,"75Km");////////////////////ve vien CBrush*pB;//choi

ve va choi backup pB=new

CRect rect24(35-5,maxy*2/3+5,maxx-35+5,maxy*2/3-5); pdc.FillRect(&rect24,pB);

Trang 48

CPen pPen25(PS_SOLID,8,RGB(data_mau[i][0],data_mau[i][1],data_mau[i][2])); i++;

CPen pPen35(PS_SOLID,8,RGB(data_mau[i][0],data_mau[i][1],data_mau[i][2])); i++;

CPen pPen45(PS_SOLID,8,RGB(data_mau[i][0],data_mau[i][1],data_mau[i][2])); i++;

CPen pPen55(PS_SOLID,8,RGB(data_mau[i][0],data_mau[i][1],data_mau[i][2])); i++;

CPen pPen65(PS_SOLID,8,RGB(data_mau[i][0],data_mau[i][1],data_mau[i][2])); i++;

//chon but ve CClientDC

pdc(this);pdc.SelectObjec

t(pPen);

//////////////////////////////

//khai choi

CBrush*pBrush,*pOldBrush;//choi ve va choi backup

pBrush=new CBrush(RGB(150,150,255));//Tao choi ve mau 255,250,230

Trang 49

//tinh goc phi phi=360*data_vi_tri[i]

[dung_luong-1][0]/dmax; if(phi>=360)

phi=phi-360;

if(data_vi_tri[i][dung_luong-1][0]<dmax)//them vao sau

if(data_vi_tri[i][dung_luong-1][0]>0)//them vao sau

ve_tung_diem(radius,maxx/4 ,phi,10,mr1,mg1,mb1);

if(trang_thai_hien_thoi[i]==1) if(data_vi_tri[i][dung_luong-1][0]<dmax)//themvao sau

if(data_vi_tri[i][dung_luong-1][0]>0)//them vao sau

if(data_vi_tri[i][dung_luong-1][0]<dmax)//them vao sau

if(data_vi_tri[i][dung_luong-1][0]>0)//them vao sau

Trang 51

pdc.TextOut((int)floor(gocx+maxx/8.0*sin(pi/5*i)),(int)floor(gocy-maxx/8.0*cos(pi/5*i)),"3 km");

i++;

pdc.TextOut((int)floor(gocx+maxx/8.0*sin(pi/5*i)),(int)floor(gocy-maxx/8.0*cos(pi/5*i)),"6 km");

i++;

pdc.TextOut((int)floor(gocx+maxx/8.0*sin(pi/5*i)),(int)floor(gocy-maxx/8.0*cos(pi/5*i)),"9 km");

///////////ki hieu qui uoc

i=0;int di,dj;di=120;dj=0;//hai bien vi tri quyet dinh vi tri khoi chu

pdc.SelectObject(pPen15);

pdc.MoveTo(di+maxx-35-150,dj+40+i*15);

pdc.LineTo(di+maxx-35-150+20,dj+40+i*15);

Trang 52

pdc.TextOut(di+maxx-35-190,dj+30+i*15,"Tar1:"); i++;

pdc.SelectObject(pPen25);

pdc.MoveTo(di+maxx-35-150,dj+40+i*15);

pdc.LineTo(di+maxx-35-150+20,dj+40+i*15);

pdc.TextOut(di+maxx-35-190,dj+30+i*15,"Tar2:"); i++;

pdc.SelectObject(pPen35);

pdc.MoveTo(di+maxx-35-150,dj+40+i*15);

pdc.LineTo(di+maxx-35-150+20,dj+40+i*15);

pdc.TextOut(di+maxx-35-190,dj+30+i*15,"Tar3:"); i++;

pdc.SelectObject(pPen45);

pdc.MoveTo(di+maxx-35-150,dj+40+i*15);

pdc.LineTo(di+maxx-35-150+20,dj+40+i*15);

pdc.TextOut(di+maxx-35-190,dj+30+i*15,"Tar4:"); i++;

pdc.SelectObject(pPen55);

pdc.MoveTo(di+maxx-35-150,dj+40+i*15);

pdc.LineTo(di+maxx-35-150+20,dj+40+i*15);

pdc.TextOut(di+maxx-35-190,dj+30+i*15,"Tar5:"); i++;

pdc.SelectObject(pPen65);

pdc.MoveTo(di+maxx-35-150,dj+40+i*15);

pdc.LineTo(di+maxx-35-150+20,dj+40+i*15);

pdc.TextOut(di+maxx-35-190,dj+30+i*15,"Tar6:"); i++;

///////////////////////////////////////////////////////////// -void CRada2Dlg::xoan_oc()

{ int dd,xx,yy,tt,so_nua_vong,so_phan_hoach,sn; int mr=200, mg=0, mb=0,radius,dosang,phi;

Ngày đăng: 04/08/2020, 01:18

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