mô phỏng màn hình hiển thị của hệ thống Radar xung và các phương pháp hiển thị mục tiêu - Pdf 29

LỜI MỞ ĐẦU
Radar là tiếng viết tắt của tiếng Anh “Radio Dectection and Ranging” có nghĩa là
phương tiện dùng sóng vô tuyến điện để phát hiện và xác định vị trí mục tiêu. Tên
này do Hải quân Mỹ đặt tra trong đại chiến thứ hai, tuy chưa đủ nghĩa nhưng cũng
trở nên thông dụng trên thế giới.
Radar là một trong những thành tựu khoa học kỹ thuật vĩ đại nhất trong thời đại
ngày nay. Trong các loại vũ khí, khí tài công nghệ cao thì Radar là một trong các
khí tài có nhiều ứng dụng đặc biệt. Radar có khả năng phát hiện ra mục tiêu ở cự ly
rất xa trong bất kỳ điều kiện nào, tính toán được tốc độ, hướng bay và các đặc điểm
của mục tiêu để chỉ thị cho các đơn vị hỏa lực có thể bám sát và tiêu diệt mục tiêu.
Sau chiến tranh, kỹ thuật tên lửa và vũ khí tiến công hàng không ngày càng phát
triển thì vai trờ của Radar ngày càng trở nên quan trọng. Radar phòng không là lực
lượng đảm bảo chủ yếu tin tức về máy bay địch trong đội hình chiến đấu của quân
chủng – phòng không có mặt trên khắp các chiến trường, phục vụ các chiến dịch,
cùng lực lượng phòng không đánh thắng cuộc chiến tranh bằng không quân của đế
quốc Mỹ.
Trong cuộc chiến tranh vùng Vịnh, bằng vũ khí công nghệ cao với thử đoạn tác
chiến diện tử, Mỹ và liên quân đã vô hiệu hóa hệ thống Radar phòng không của
Irắc từ đó làm rối loạn hệ thống chỉ huy, làm mất hiệu lực hệ thống phòng không
của Irắc khiến cho Irắc phải chịu thất bại mặc dù Irắc có trong tay một lực lượng
quân sự khổng lồ.
Áp dụng vào mục đích hòa bình của Radar lại càng tỏ rõ tính ưư việt của nó, Nhờ
Radar mà việc diều khiển các con tàu vũ trụ thật dễ dàng và chính xác. Trong lĩnh
vực khí tượng thủy văn, Radar giúp cho việc dự báo thời tiết được chính xác và
thuận lợi…
Radar có thể phát hiện được sự bất thường của khí quyển xa hàng trăm Km., giúp
máy bay, tàu bè có thể phòng tránh an toàn. Nhờ có Radar mà máy bay có thể hạ
1
cánh và cất cánh trong bất kỳ trường hợp thời tiết nào. Các tàu biển đi lại được an
toàn, tránh được sự va chạm với các tàu bè khác, trành khỏi đâm vào các núi băng
trôi.

mức độ đã cho khi có nhiễu, đó cũng chính là khả năng sử dụng nguồn
nhiễu làm tin tức Radar.
- Sóng Radar có thể là sóng siêu âm dùng để phát hiện mục tiêu dưới nước.
Thông thường sóng Radar là sóng điện từ có bước sóng từ 1mm đến
100km. Các sóng ở dải mm, cm, m có vai trò quan trọng nhất.Hiện nay
các sóng điện từ ngắn hơn: sóng hồng ngoại, sóng ánh sang cũng được sử
dụng trong Radar.
2. Nguyên tắc nhận tin tức Radar
- Những tin tức về mục tiêu mang trong tín hiệu Radar là những dao động
điện từ có các tham số liên hệ chặt chẽ với các tham số của mục tiêu.
- Phương pháp nhận tin tửc Radar thông thường nhất là phương pháp
Radar chủ động. Radar này chiếu xạ mục tiêu nhờ năng lượng điện tử và
sóng phản xạ bởi mục tiêu bằng thiết bị thu. Phản xạ sóng xảy ra ở giới
hạn hai môi trường có các tính chất điện từ và từ khác nhau. Chú ý những
dao động điện từ chiếu xạ mục tiêu vẫn chưa phải là tín hiệu Radar vì
chúng không chứa đựng những tin tức về mục tiêu
- Khi cần nhận biết mục tiêu, tín hiệu Radar được tạo nên bằng phương
pháp hỏi đáp chủ động. Trong trường hợp này năng lượng điện từ chiếu
xạ mục tiêu làm cho máy trả lời trên mục tiêu phát ra những tín hiệu vô
tuyến hoàn toàn xác định, những tín hiệu này được nhận bởi máy thu của
đài Radar.
3
- Khi phát hiện và đo lường các tham số của mục tiêu chúng ta sử dụng
những tính chất vật lý của sóng vô tuyến:
 Sóng điện từ trong môi trường đồng nhất và đăng hướng thì truyền
thẳng.
 Sóng điện từ truyền với tốc độ trung bình bằng vận tốc ánh sang
trong môi truờng khí quyển và trong chân không.
 Khi sóng điện từ truyền lan trên môi trường đồng nhất nếu gặp
phải môi trường thứ hai không đồng nhất với môi trường thứ nhất

làm việc của đài: tính chất của mục tiêu, điều kiện thời tiết, vị trí triển
khai
- Các tính năng chiến thuật của đài radar xác định bởi tính năng kỹ thuật
của nó.
3.2. Tính năng chiến đấu
- Nguyên tắc xây dựng đài Radar: phương pháp nhận tín hiệu Radar, dạng
dao động bức xạ, phương pháp gia công tín hiệu trong máy thu.
- Tần số sóng mang của dao động bức xạ hay bước sóng λ.
- Quy luật điều chế dao động bức xạ.
- Công suất bức xạ trung bình Ptb và công suất đỉnh Pd.
- Dạng và độ rộng của giản đồ anten.
- Độ nhạy của máy thu theo công suất Ptmin hay năng lượng.
II. BÀI TẬP
1. Yêu cầu của đề bài:
- Hiển thị được 6 mục tiêu cùng một lúc bằng 6 màu khác nhau.
- Để lại dấu vết của quỹ đạo mục tiêu.
- Radar chủ động sơ cấp quét tròn( toàn phương).
5
- Tự động bám sát một mục tiêu bất kỳ nào đó (bám theo góc phương vị).
- Có giới hạn Dmax, Dmin.
- Khi có va chạm 2 mục tiêu cùng bị phá hủy, biến mất trên màn hình.
- Lần lượt mô phỏng trên 4 trang màn hình
 Hiển thị nhìn vòng.
 Hiển thị cự ly D bằng cách quét tia điện tử đường thẳng( giống oxilo).
 Hiển thị cự ly D bằng cách quét tia điện tử vòng tròn.
 Hiển thị cự ly D bằng cách quét tia điện tử xoắn ốc.
Phải thể hiện được độ chính xác theo mức độ tăng dần.
- Radar tự động đảo chiều quét cánh sóng.
2. Lưu đồ thực hiện:
3. Viết chương trình bằng đồ họa VC:

#include "math.h"


CMuctieu::CMuctieu()
{
}
CMuctieu::~CMuctieu()
7
{
}
double CMuctieu::GetCuly()
{
return (sqrt(pow(x,2)+pow(y,2)));
}
double CMuctieu::GetGoc()
{ int i;
double a;
if ((x>=0)&&(y>=0))
{i=0;}
else
{
if ((x>=00)&&(y<0))
{i=1;}
else
{ if ((x<=0)&&(y<0))
{i=2;}
else
i=3;
}
}

….
….
CString m_Culy1;
CString m_Culy2;
CString m_Culy3;
CString m_Culy4;
CString m_Culy5;
CString m_Culy6;
CString m_Docao1;
CString m_Docao2;
CString m_Docao3;
CString m_Docao4;
CString m_Docao5;
CString m_Docao6;
CString m_Gpv1;
CString m_Gpv2;
CString m_Gpv3;
CString m_Gpv4;
CString m_Gpv5;
CString m_Gpv6;
9
CString m_Vantoc1;
CString m_Vantoc2;
CString m_Vantoc3;
CString m_Vantoc4;
CString m_Vantoc5;
CString m_Vantoc6;
// Implementation
int pPart1;
int pPart;

int m_sendA;
CMuctieu MuctieuA[100];
int PosMuctieuB;
double m_HeightB;
int m_sendB;
CMuctieu MuctieuB[100];
int PosMuctieuC;
double m_HeightC;
int m_sendC;
CMuctieu MuctieuC[100];
int PosMuctieuD;
double m_HeightD;
int m_sendD;
CMuctieu MuctieuD[100];
int rectB;
int rectR;
int rectT;
int rectL;
private:
int m_nMinute;
POINT nPoint[2];
CBitmap m_pBitmap;
CDC m_pdcMemory;
// DialogRNDlg.cpp : implementation file
//
#include "stdafx.h"
#include "DialogRN.h"
#include "DialogRNDlg.h"
#include "Math.h"
#include "Muctieu.h"

PosMuctieuD=75;
m_HeightC=105.32;
m_sendC=-1;
PosMuctieuC=51;
m_HeightB=34.56;
m_sendB=-1;
PosMuctieuB=3;
12
m_HeightA=60;
m_sendA=-1;
PosMuctieuA=12;
m_nMinute=0;
CWnd*pWnd=GetDlgItem(IDC_START);
CRect rect;
CRect rectW;
pWnd->GetClientRect(rect);
pWnd->GetWindowRect(rectW);
rectL=rectW.left;
rectT=rectW.top-18;
rectR=rectW.Width();
rectB=rectW.Height();
///////////////////////////
CWnd*pDis=GetDlgItem(IDC_DISPLAY);
CRect rectDis;
pDis->GetWindowRect(rectDis);
rectDisL=rectDis.left;
rectDisT=rectDis.top-18;
rectDisR=rectDis.Width();
d=rectDis.Width()/14;
a=d+2;

// 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 CDialogRNDlg::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);
14
}
else
{
CPaintDC dc(this);
CRect rectUpdate;
dc.GetClipBox(&rectUpdate);
CBitmap*p0ldBitmap=m_pdcMemory.SelectObject(&m_pBitmap);
m_pdcMemory.SelectClipRgn(NULL);
m_pdcMemory.IntersectClipRect(&rectUpdate);
CBrush BackgroundBrush(RGB(192,192,192));

////////////////////////
CBrush lBrush5(RGB(255,128,0));
CBrush*p0ldBrush5=pDC->SelectObject(&lBrush5);
pDC->Rectangle(25,430,45,450);
////////////////////////
CBrush lBrush6(RGB(255,255,255));
CBrush*p0ldBrush6=pDC->SelectObject(&lBrush6);
pDC->Rectangle(25,455,45,475);
/////////////////////
/////quet thang///
if (logicA)
{ pDC->Ellipse(rectDisL+d,rectDisT+d,rectDisL+rectDisR-
d,rectDisT+rectDisB-d);
}
///////ket thuc quet thang///
CBrush lBrush(RGB(0,0,0));
CBrush*p0ldBrush=pDC->SelectObject(&lBrush);
CRect rectE1;
CWnd*pWnd=GetDlgItem(IDC_START);
pWnd->GetClientRect(rectE1);
pDC->Rectangle(rectL,rectT-7,rectR+7,rectB+8);
//////////
///////quet tron va xoan///////
if (logicC)
{pDC->Ellipse(rectDisL+c/2+5,rectDisT+c/2,rectDisL+rectDisR-
c/2,rectDisT+rectDisB-c/2-5);
pDC->Rectangle(345,318,617,368);
}
if (logicB)
{

double part;
source_x=source_y=0;
for(int k=0;k<=2512;k++)
{ part=0.01*k;
des_x=(int)(part*cos(part)*5);
des_y=(int)(part*sin(part)*5);
pDC->MoveTo(source_x+rectDisL+148,source_y+rectDisT+148);
pDC->LineTo(des_x+rectDisL+148,des_y+rectDisT+148);
source_x=des_x;
source_y=des_y;
17
}
}
///////////ket thuc quet xoan////
/////quet tron//////
if (logicB)
{ pDC-
>Ellipse(rectDisL+28,rectDisT+28,rectDisL+28+240,rectDisT+28+240);
pDC->Ellipse(rectDisL+78,rectDisT+78,rectDisL+218,rectDisT+218);
}
/////ket thuc quet tron///
/////quet thang////
if (logicA)
{ pDC->MoveTo(rectDisL+50,rectDisT+130);
pDC->LineTo(rectDisL+250,rectDisT+130);
pDC->MoveTo(rectDisL+50,rectDisT+200);
pDC->LineTo(rectDisL+250,rectDisT+200);
pDC->MoveTo(rectDisL+50,rectDisT+130);
pDC->LineTo(rectDisL+50,rectDisT+80);
pDC->MoveTo(rectDisL+50,rectDisT+200);

double mod;
rem=modf((MuctieuA[m_sendA].GetCuly())*200,&mod);
rem=rem*10;
rem=rem*360/10;
mod=mod*360/200;
x1=rectDisL+148+(int)(120*sin(mod*0.017453292));
y1=rectDisT+148-(int)(120*cos(mod*0.017453292));
pDC->Rectangle((x1-3),(y1-3),(x1+3),(y1+3));
x2=rectDisL+148+(int)(70*sin(rem*0.017453292));
y2=rectDisT+148-(int)(70*cos(rem*0.017453292));
pDC->Rectangle((x2-3),(y2-3),(x2+3),(y2+3));
}
/////ket thuc quet tron////
///quet thang//////
if (logicA)
{ double rem;
double mod;
rem=modf((MuctieuA[m_sendA].GetCuly())*200,&mod);
rem=rem*10;
pDC->Rectangle((rectDisL+48+(int)(mod)),(rectDisT+124),
(rectDisL+52+(int)(mod)),(rectDisT+136));
19
pDC->Rectangle((rectDisL+48+(int)(rem*20)),(rectDisT+194),
(rectDisL+52+(int)(rem*20)),(rectDisT+206));
}
//////ket thuc quet thang////
for(int i=0;i<=m_sendA;i++)
{
pDC->Rectangle((rectE1.Width()/2+(int)(MuctieuA[i].Getx()*r)-1),
(rectE1.Width()/2-(int)(MuctieuA[i].Gety()*r)-1),(rectE1.Width()/2+(int)

int x1,y1,x2,y2;
double rem;
double mod;
rem=modf((MuctieuB[m_sendB].GetCuly())*200,&mod);
rem=rem*10;
rem=rem*360/10;
mod=mod*360/200;
x1=rectDisL+148+(int)(120*sin(mod*0.017453292));
y1=rectDisT+148-(int)(120*cos(mod*0.017453292));
pDC->Rectangle((x1-3),(y1-3),(x1+3),(y1+3));
x2=rectDisL+148+(int)(70*sin(rem*0.017453292));
y2=rectDisT+148-(int)(70*cos(rem*0.017453292));
pDC->Rectangle((x2-3),(y2-3),(x2+3),(y2+3));
}
/////ket thuc quet tron////
///quet thang//////
if (logicA)
{ double rem;
double mod;
rem=modf((MuctieuB[m_sendB].GetCuly())*200,&mod);
rem=rem*10;
pDC->Rectangle((rectDisL+48+(int)(mod)),(rectDisT+124),
(rectDisL+52+(int)(mod)),(rectDisT+136));
pDC->Rectangle((rectDisL+48+(int)(rem*20)),(rectDisT+194),
(rectDisL+52+(int)(rem*20)),(rectDisT+206));
}
//////ket thuc quet thang////
for(int i=0;i<=m_sendB;i++)
{
pDC->Rectangle((rectE1.Width()/2+(int)(MuctieuB[i].Getx()*r)-1),

if (logicB)
{
int x1,y1,x2,y2;
double rem;
double mod;
rem=modf((MuctieuC[m_sendC].GetCuly())*200,&mod);
rem=rem*10;
rem=rem*360/10;
mod=mod*360/200;
x1=rectDisL+148+(int)(120*sin(mod*0.017453292));
y1=rectDisT+148-(int)(120*cos(mod*0.017453292));
pDC->Rectangle((x1-3),(y1-3),(x1+3),(y1+3));
x2=rectDisL+148+(int)(70*sin(rem*0.017453292));
y2=rectDisT+148-(int)(70*cos(rem*0.017453292));
22
pDC->Rectangle((x2-3),(y2-3),(x2+3),(y2+3));
}
/////ket thuc quet tron////
///quet thang//////
if (logicA)
{
double rem;
double mod;
rem=modf((MuctieuC[m_sendC].GetCuly())*200,&mod);
rem=rem*10;
pDC->Rectangle((rectDisL+48+(int)(mod)),(rectDisT+124),(rectDisL+52+(int)
(mod)),(rectDisT+136));
pDC->Rectangle((rectDisL+48+(int)(rem*20)),(rectDisT+194), (rectDisL+52+
(int)(rem*20)),(rectDisT+206));
}

{
int x1,y1,x2,y2;
x1=rectDisL+(rectDisR/2)+1+(int)(70*sin((double)
(i*36)*0.017453292));
y1=rectDisL+(rectDisR/2)-309-(int)(70*cos((double)
(i*36)*0.017453292));
x2=rectDisL+(rectDisR/2)+1+(int)(65*sin((double)
(i*36)*0.017453292));
y2=rectDisL+(rectDisR/2)-309-(int)(65*cos((double)
(i*36)*0.017453292));
pDC->MoveTo(x1,y1);
pDC->LineTo(x2,y2);
}
}
////////////ket thuc quet tron//////////
////////////////////
///////quet thang//////////
if (logicA)
{
for(int i=0;i<7;i++)
{
pDC->MoveTo(rectDisL+50+i*40,rectDisT+128);
pDC->LineTo(rectDisL+50+i*40,rectDisT+132);
}
for(i=0;i<11;i++)
24
{
pDC->MoveTo(rectDisL+50+i*20,rectDisT+198);
pDC->LineTo(rectDisL+50+i*20,rectDisT+202);
}

y1=rectDisT+148-(int)(120*cos(mod*0.017453292));
25


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status