- •Курсовой проект
- •Глава 1. Иуп в тбс дбп1 Процедура назначения дбп1 и индикация на иуп
- •Непрерывно рассчитываемая точка встречи
- •Сброс в пикировании
- •Режим Strafe
- •Непрерывно рассчитываемая точка сброса
- •Режимы работы по наземным целям брлс apg66-v2
- •Прием оперативной наземной цели с другого борта самолета группы ипередача оперативной наземной цели на другой борт самолета группы Ввод адреса передачи
- •Передача данных в режиме воздух-земля
- •Выбранная управляющая точка
- •Передача положения курсора в режиме воздух-поверхность
- •Глава 2. Состав ПрС/с тбс дбп1
- •Глава 3-4. ПрС/с «Выход на курс атаки»
Глава 3-4. ПрС/с «Выход на курс атаки»
База знаний (БЗ) БОСЭС
Первый иерархический уровень БЗ
ПрС/С №1 «Ожидание спутниковой группировки»
ПрС/С №2 «Выход на курс атаки»
ПрС/С №3 «Непосредственное применение оружия»
ПрС/С №4 «Повторный заход»
X1 |
X2 |
X3 |
X4 |
X5 |
X6 |
X7 |
X8 |
X9 |
|
- |
есть |
- |
нет |
- |
- |
да |
- |
много |
1.1 |
- |
нет |
- |
есть |
- |
- |
нет |
- |
много |
1.2 |
много |
нет |
- |
да |
да |
много |
- |
выше ср |
много |
2.1 |
много |
есть |
- |
да |
да |
много |
- |
средняя |
много |
2.2 |
мало |
нет |
да |
да |
да |
средне |
- |
высокая |
мало |
2.3 |
мало |
- |
- |
да |
да |
мало |
да |
высокая |
мало |
3.1 |
много |
- |
- |
да |
да |
много |
да |
средняя |
средне |
3.2 |
много |
- |
- |
да |
да |
много |
да |
ниже ср |
много |
3.3 |
много |
есть |
да |
- |
да |
много |
нет |
средняя |
много |
4.1 |
мало |
нет |
- |
- |
да |
мало |
да |
низкая |
много |
4.2 |
мало |
нет |
- |
- |
нет |
много |
да |
средняя |
много |
4.3 |
Априорная информация по условиям протекания ПрС/С «Выход на курс атаки»
Координаты цели;
Курс выхода на цель;
Дальность выхода на курс атаки;
Координаты цели;
Курс захода на цель;
Ограничения по времени выхода;
Ограничение по перегрузке;
Ограничение по углу крена.
Рассмотрим ситуацию выхода самолета на курс атаки, когда его траектория не пересекает зону угроз.
Цель находится в точке (Х0,Z0), самолет – в точке (Х3,Z3).
Траектория движения самолета состоит из:
- прямолинейного участка от (Х3,Z3) до (Х2,Z2);
- разворота по дуге окружности радиуса R (минимальный радиус разворота) от (Х2,Z2) до (Х1,Z1);
- захода на цель.
Найдем координаты точек траектории:
Найдем угол ψ:
Найдем координаты точки (Х2,Z2):
Найдем координаты точки (Х1,Z1):
Заход на цель (Х0,Z0).
Рассмотренный вариант захода на цель применим для ситуации, когда текущий курс самолета совпадает с необходимым углом ψ. Однако в реальной боевой ситуации курс самолета может быть другим. Поэтому рассчитаем траекторию движения самолета при выходе на необходимый угол ψ.
Задача сводится к добавлению элемента в виде дуги окружности. Это позволяет выделить участок траектории, на котором самолет совершит разворот на необходимый курс.
Для удобства введем систему координат (X’,Z’), начало которой находится в точке (Х3,Z3). Нам известны координаты самолета (Х5,Z5), его курс θ’.
Траектория движения самолета состоит из:
- прямолинейного участка от (Х’5,Z’5) до (Х’4,Z’4);
- разворота по дуге окружности радиуса R (минимальный радиус разворота) от (Х’4,Z’4) до (Х’3,Z’3);
Найдем координаты точек траектории:
Найдем D0
Найдем координаты точки (Х’4,Z’4):
Найдем координаты точки (Х’3,Z’3):
Решение данной задачи позволяет полностью охватить все возможные курсы полета самолета и его начальные положения путем изменения исходных данных.
БЦВМ-алгоритм конструирования траектории выхода на предпочтительный курс атаки (веер курсов)
Расчеты были произведены в программе, написанной на языке С/С++ в среде разработки VisualStudio 2010;
Представим код программы для каждого блока алгоритма:
1:
Vs = 250;
Xs = 20000;
Zs = 15000;
n = 2.5;
gamma = 30*Pi/180;
Dv = 5000;
2: //Вводим координаты цели и угол захода на нее
doubleXc = 15000;
doubleZc = 15000;
doublealph = 30;
//Строим систему координат, начало которой совпадает с положением цели, а угол захода с осью X
void DrawSK2 (double x0, double z0, double angle)
{
while (angle >= 2*Pi) angle -= 2*Pi;
doubleNew_Top_Z, New_Down_Z;
doubleNew_Left_X, New_Right_X;
x0 = MashtabX(x0);
z0 = MashtabZ(z0);
New_Top_Z = z0+tan(angle)*(Left_X-x0);
New_Down_Z = z0+tan(angle)*(Right_X-x0);
New_Left_X = x0+tan(angle)*(z0-Down_Z);
New_Right_X = x0+tan(angle)*(z0-Top_Z);
SelectObject(hdc, Brush_bl);
Ellipse (hdc, x0-4, z0-4, x0+4, z0+4);
if (angle == 90*Pi/180)
{
MoveToEx(hdc, x0 ,Top_Z, NULL );
LineTo(hdc, x0, Down_Z);
MoveToEx(hdc, Left_X ,z0, NULL );
LineTo(hdc, Right_X, z0);
}
elseif (angle == 270*Pi/180)
{
MoveToEx(hdc, x0 ,Down_Z, NULL );
LineTo(hdc, x0, Top_Z);
MoveToEx(hdc, Right_X ,z0, NULL );
LineTo(hdc, Left_X, z0);
}
else
{
MoveToEx(hdc, Left_X , New_Top_Z, NULL );
LineTo(hdc, Right_X, New_Down_Z );
MoveToEx(hdc, New_Left_X ,Down_Z, NULL );
LineTo(hdc, New_Right_X , Top_Z);
}
3:
//минимальный радиус разворота
R = Vs*Vs / (g*n);
// расчет положения начальной окружность разворота
R1= R;
Xr1= Xs - R1*sin(gamma);
Zr1= Zs - R1*cos(gamma);
// расчет положения финальной окружность разворота
R2= R;
Xr2= Dv;
Zr2= R2;
4:
// функция находит точки касания к двум окружностям
void Tangent (double Xr1, double Zr1, double R1, double Xr2, double Zr2,double R2, double *Xk1, double *Zk1, double *Xk2, double*Zk2, double *angle)
{
double alpha1 = asin ( (R1-R2)/ sqrt ( (Zr2-Zr1)*(Zr2-Zr1)+(Xr2-Xr1)*(Xr2-Xr1) ) );
double alpha2 = atan ( (Zr2-Zr1)/(Xr2-Xr1) );
double alpha = alpha1 + alpha2;
*Xk1 = Xr1 + R1 * sin (alpha);
*Zk1 = Zr1 - R1 * cos (alpha);
*Xk2 = Xr2 + R2 * sin (alpha);
*Zk2 = Zr2 - R2 * cos (alpha);
*angle = atan( (*Zk2-*Zk1) / (*Xk2-*Xk1) );
}
// поиск точек (Х2,Z2) и (Х3,Z3);
Tangent (Xr1, Zr1, R1, Xr2, Zr2, R2, &Xk1, &Zk1, &Xk2, &Zk2,&angle);
5,6,7:
//поиск точек (Х2,Z2) и (Х3,Z3);
Tangent (Xr2, Zr2, R2, Xzu, Zzu, Rzu, &Xk1, &Zk1, &Xk2, &Zk2,&angle);
// Точка пересечения касательной и линии траектории движения самолета
CrossPoint (Xk1, Zk1, Xk2, Zk2, Xs,Zs,Xs+3000*cos(gamma),Zs-3000*sin(gamma),&Xcr,&Zcr);
//поиск точек (Х4,Z4) и (Х5,Z5);
psi = angle;
Xr1= Xcr - R1 * sin( Pi/2 + gamma/2 - psi/2 ) / sin( psi/2 + gamma/2 );
Zr1= Zcr - R1 * cos( Pi/2 + gamma/2 - psi/2 ) / sin( psi/2 + gamma/2 );
X4 = Xcr - R * sin (Pi/2 - psi) / tan ( psi/2 + gamma/2 );
Z4 = Zcr - R * cos (Pi/2 - psi) / tan ( psi/2 + gamma/2 );
X5 = Xcr - R * cos (gamma) / tan ( psi/2 + gamma/2 );
Z5 = Zcr + R * sin (gamma) / tan ( psi/2 + gamma/2 );
Результат работы программы для случаев, когда координаты цели и угол захода на нее не совпадают с «нулевыми» (вводи связанную систему координат):
Результат работы программы для случаев, когда координаты цели и угол захода на нее совпадают с «нулевыми» (связанная система координат не вводится):
