Необходимо сбить БПЛА
Автоматизация испытаний,
Математика и статистика,
Радиолокация,
Системы связи,
Системы управления,
Цифровая обработка сигналов,
Робототехника и беспилотники
03.10.2024
Не секрет, что БПЛА являются одним из основных средсв поражения живой силы и техники в зоне СВО! А по-сему, борьба с БПЛА есть острейшая задача современности,для чего нужно знать, как дробится болванка рядом с БПЛА. Подпрыгнуть туда мы не можем, значит надо считать и моделировать, прежде чем тупо тратить Государственные деньги на бредни.
Предлагается реализация математической модели дробление болванки 30 мм. на траектории от 500 до 2500 метров. Буду благодарен за советы , замечания и самую жесткую критику, как по математике, так и по коду. С уважением, Н.С.В.
Файлы
- OskolkI_Radial_30_Size_O03_03_IN.m
Комментарии
Хотелось бы более четко сформулированную цель данной проги.
Видно, что довольно реалистично посчитан конус осколков. Но при чем здесь БПЛА ?
В строке 460 кода ошибка.
Не судите строго, первые пробы пера на публику в инете и темпаче, на столь уважаемом мной сайте. Прстараюсь быть доходчивым и представлю все нужные пояснения.
Кратко по пунктам в общей постановке и решении задачи;
1. Формируем 3D модель конуса осколочного поля на основе статического подрыва, теоретических рассчетов и экспериментальных данных внешней баллистики на траектории и ограничив макс. дальности пробития D max. (чёрточки разноцветные на рис.)
2. Формируем 3D модель объекта поражения (самолётик целиком или его "смертельные" узлы и блоки, как пожелаете).
3."Бросаем" конус ОП в координаты цели на требуемую дальность с заданной ТТХ "рогатки" (эллипс рассеивания по траектории = сигмы Xc,Yc&Zc). Точностные характеристики рогатки.
4. Задаем точность определения координат цели устройством обнаружения и сопровождения (сигмы Xs,Ys &Zs цели)
4. Считаем количество элементов осколочного поля (ОП) Nоп. вн., которые попадут внутрь 3D модели каждого узла 3В модели самолётика.
5. Делим Nоп. вн./Nобщ., где Nобщ, - общее количество элементов ОП от одного разрыва.
РЕЗУЛЬТАТ:
Вероятность поражения цели от 1 элемента и более.
В проге сделано 4 варианта. не менее 1-го поражения и более, не менее 2 и более, не менее 3 и более, не менее 4-х и более, что расположены под if. Т количество объектов, выстренных из рогаткию N, а дальше можете творить, что хотим.
Количество повторения испытаний для достижения нужной точности определения вероятности задают nR = 1; nC = 1; Приняты 1, чтобы не ждать полтора часа результата. А так при nR = 40; nC = 40. 1/1600 = точность до третьего знака 0,6%, до четвёртого 6%.
Благодарю за внимание. Отвечу на все вопрросы, как по проге, так по математике.
* по 480 -коду ошибки чуть позже.
С уважением, Просто Кот.
Да, спасибо, поправил.Внешний эллипс=заденная точность рогатки по траектории Xs,Ys,Zs, а внутренний шарик = точность определения координат цели Xс,Yс,Zс, распределйнные по нормальному закону с заданными сигмами.
clc
clear
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ПОСТАНОВКА ЗАДАЧИ РАССЧЕТА ПАРАМЕТРОВ %
% РАЗЛЕТА ОСКОЛКОВ МКБ-30 ПРИ РАБОТЕ ПО МАЛЫМ БПЛА %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% ИЗМЕНЕНИЕ ТИПА ШРИФТА И ЕГО РАЗМЕРА НА РИСУНКАХ И ГРАФИКАХ %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Выбор шрифта, его размера и жирности
set(0,'DefaultAxesFontName', 'Times New Roman')
set(0,'DefaultAxesFontSize', 12)
%-------------------------------------------------------------------------%
% ИСХОДНЫЕ ДАННЫЕ %
%-------------------------------------------------------------------------%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% УГОЛ ПРИЦЕЛИВАНИЯ-ВОЗВЫШЕНИЯ СТВОЛА ОРУДИЯ %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Каждой дальности до цели и высоты полета БПЛА соответствует своя скорость
% снаряда и половинное рассеивание по координатам X,Y Z. Следовательно,
% скорость боеприпаса, и СКО по координатам необходимо задавать в
% зависимости от наклонной дальности и высоты полета БПЛА. Для
% приблизительного рассчета можно принять следующие данные
tic
%-------------------------------------------------------------------------%
% ПЛОЩАДЬ ПОВЕРХНОСТИ ЦЕЛИ: БПЛА САМОЛЕТНОГО ТИПА %
%-------------------------------------------------------------------------%
Ns=48;
% Size_O_04 = 0.9601; % Площадь цели = 7,0 кв. м.
Size_O_04 = 1.461; % Площадь цели = 3,0 кв. м.
% Size_O_04 = 2.539; % Площадь цели = 1,0 кв. м.
%-------------------------------------------------------------------------%
%ПРОЕКТ: ОБЛАСТЬ РАЗЛЕТА ОСКОЛКОВ ОТ ОФЗ-30 ДО ДАЛЬНОСТИ ПОРАЖЕНИЯ Lmax %
%-------------------------------------------------------------------------%
nDH = 1; % Параметры полеты цели (БПЛА)
DZmax = 1.5; % Шаг разбиения дальности поражения
nLz = 10.0; % Число разбиений траектории по оси Z в
% обеспечениt точности расчетов
DZMax=nLz*DZmax; % Максимальная дальность поражения цели
% осколками в координатах цели
Kz=1.0e-0; % Коэффициент пропорциональност СКО по
% координате Z
LD=[500 1000 1500 2000 2500]; % Наклонная дальность боеприпаса по
% траектории полета до цели (БПЛА)
SigmaXYo = 1.0e-0; % СКО орудия по ТТХ по азимуту X и
% элевации Y
SigmaXY=SigmaXYo.*(LD./LD(1)); % СКО отклонения согласно ТТХ МКБ-30
% по азимуту и элевации на траектории
nDz=[2 1.5 1.25 1.125 1]; % Коэффициент запаса по CKO
% по высоте полета БПЛА
SigmaZ=Kz.*nDz.*SigmaXY; % СКО отклонения по ТТХ по высоте
% на разных дальностях
VZ0 = [822 680 553 441 342]; % Скорость СКБ-30 на заданной дальности
Fv = [1350 1300 1250 1200 1150]; % Частота вращения МКБ-30 по траектории
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%-------------------------------------------------------------------------%
MaxGamma=90; % Максимальный угол возвышения ствола пушки 2А42 %
Ho=LD*sind(MaxGamma); % Предельная высота поражения цели на LDo (БПЛА) %
Gamma=acosd(Ho/LD); % Угол возвышения-прицеливания по цели (БПЛА) %
%-------------------------------------------------------------------------%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
sigmaXo=SigmaXY(nDH); % СКО СКБ-30 по азимуту
sigmaYo=SigmaXY(nDH); % СКО СКБ по углу места
sigmaZo=SigmaZ(nDH); % СКО по углу места
% Разбиваем область вычислений по количеству осколков, формируемых
% осколочным полем при подрыве боеприпаса
nAlfa=300;
% Число точек скоростей выбираем раным разбиений по углам осколочного поля
nSpeed=nAlfa;
% Вспомогательная целочисленная переменная
n=1:1:nAlfa;
%-------------------------------------------------------------------------%
% МАКСИМАЛЬНАЯ ДАЛЬНОСТЬ ПОЛЕТА ОСКОЛКОВ МКБ-30 ПО ТРАЕКТОРИИ ПОЛЁТА %
%-------------------------------------------------------------------------%
% Плоскость ЭКРАНА: координата в азимутальной плоскости - X, координата в
% вертекальной плоскости - Y, траектории полёта по дальности - Z
%-------------------------------------------------------------------------%
% УГЛЫ РАЗЛЁТА ОСКОЛКОВ МКБ-30 НА ТРАЕКТОРИИ ПОЛЁТА %
%-------------------------------------------------------------------------%
MathAlfa = 90.00;
SigmAlfa = 7.5e-0;
% MathAlfa = 0.00;
% SigmAlfa = 1.5e-0;
randAlfa = normrnd(MathAlfa,SigmAlfa,nAlfa);
RandAlfa = randAlfa(1,n);
%-------------------------------------------------------------------------%
% СКОРОСТНЫЕ ПАРАМЕТРЫ РАЗЛЁТА ОСКОЛКОВ МКБ-30 НА ТРАЕКТОРИИ ПОЛЁТА %
%-------------------------------------------------------------------------%
MathR=13.5e-3;
SigmaR=0.75e-3;
% MathR=7.5e-3;
% SigmaR=2.5e-3;
Kv=1.0e-1;
VXmax=1250.0; % Максимальная Скорость разлета осколков
VYmax=1150.0; % Максимальная Скорость разлета осколков
% VXmax=Kv*VXmax; % Максимальная Скорость разлета осколков
% VYmax=Kv*VYmax; % Максимальная Скорость разлета осколков
MathVX=VXmax;
SigmaVX=Kv*VXmax;
RandVX = normrnd(MathVX,SigmaVX,nSpeed);
VXRand=RandVX(1,n); % Случайная скорость разлета осколков
MathVY=VYmax;
SigmaVY=Kv*VYmax;
RandVY = normrnd(MathVY,SigmaVY,nSpeed);
VYRand=RandVY(1,n); % Случайная скорость разлета осколков
VZ0o=80; % Добавка продольной скорости за счет
% подрыва МКБ-30
MathVZ=VZ0(nDH)+VZ0o; % Математическое ожидание скорости
% MathVZ=1.0e-3; % Математическое ожидание статического
% % осколочного поля по Х и У
SigmaVZ=Kv*MathVZ;
RandVZ = normrnd(MathVZ,SigmaVZ,nSpeed);
VZRand=RandVZ(1,n); % Количество отсчетов Tmax/Lmax
nL=0:1:nAlfa-1; % Текущие Отсчеты дальности до цели Lmax
% Нормальное распределение скоростей осколоного поля в на траектории полета
% ОФЗ - 30 потраектории Z: плоскости XZ и ZX
MathVZo=VZ0(nDH)+VZ0o; % Математическое ожидание
% осколочного поля по Х и У
SigmaVZo=Kv*MathVZo; % Дисперсия скорочтей осколочного
% поля по Х и У
%-------------------------------------------------------------------------%
% МОДЕЛЬ СЛУЧАЙНОГО УГЛА РАЗЛЕТА ОСКОЛКОВ ПО ОСЯМ X и Y %
%-------------------------------------------------------------------------%
AlfaMax=max(max(RandAlfa)); % Mаксимальный угол разлета
% осколков в плоскости XY
%-------------------------------------------------------------------------%
% ВЫЧИСЛЕНИЕ ВРЕМЕННЫХ ПАРАМЕТРОВ МОДЕЛИ РАЗЛЕТА ОСКОЛКОВ %
%-------------------------------------------------------------------------%
%#########################################################################%
%
VDxy = sqrt((VYmax).^2+(VZ0(nDH).^2)); %
%
%#########################################################################%
%************** - ВЕКТОР СКОРОСТИ элементов осколочного поля - **********%
VVector = sqrt(VZ0(nDH).^2 + VXmax.^2);
%*************************************************************************%
% TZmax = DZmax./VZ0(nDH); % Время бокового разлёта
% % осколков до цели
% TZmax = DZmax./VDxy; % Время бокового разлёта
% % осколков до цели
TZmax = DZmax./VVector ; % Время бокового разлёта
% осколков до целиdt = TZmax/(nAlfa-1);
dt = TZmax/(nAlfa-1); % Интервал дискретизации по Tmax
% Интервал дискретизации по Tmax
tmax = TZmax; % Текущее время разлета осколков
t = 0:dt:tmax; % Текущее время разлета осколков
%-------------------------------------------------------------------------%
% ВЫЧИСЛЕНИЕ КОНУСА РАЗЛЕТА ОСКОЛКОВ ПО ТРАЕКТОРИИ ПОЛЕТА %
%-------------------------------------------------------------------------%
k=TZmax.*Fv(nDH); % Число оборотов МКБ-30
% до встречи с целью
kn=nAlfa./k; % Число отсчетов в плоскости XY
%-------------------------------------------------------------------------%
% РАДИАЛЬНАЯ СКОРОСТЬ РАЗЛЕТА ОСКОЛКОВ %
%-------------------------------------------------------------------------%
%-------------------------------------------------------------------------%
% РАЗГОН ОСКОЛКОВ МКБ ПОСЛЕ ВСКРЫТИЯ БОЕПРИПАСА %
%-------------------------------------------------------------------------%
% Радиальная составляющая за счет вращения
R=normrnd(MathR,SigmaR,nAlfa); % Внешний радиус разлёта осколков
VR=(2*pi.*R).*Fv(nDH); % Радиальная скорость вращения МКБ-30
Gg1=(VR.^2)./R; % Центростремительное ускорение
% разгона осколков МКБ-30 до V01
Gg=Gg1(1,n); % Центростремительное ускорение
AngleGg=atand(VR./VXRand); % Угол разлёта осколков тела МКБ-30
%-------------------------------------------------------------------------%
% ТОРМОЖЕНИЕ ОСКОЛКОВ МКБ-30 НА ТРАЕКТОРИИ ПОЛЕТА %
%-------------------------------------------------------------------------%
Lo=150;
L0(nDH)=Lo.*VZ0(nDH)./VZ0(1); % Максимальная дальность полета осколка
Ag=(VZ0(nDH).^2)./(2*L0(nDH)); % Ускорение торможения осколков МКБ-30
GgT=1.0e-4; % Постоянная времении осколочного поля
VXo=VXRand.*(1-exp(-t./GgT)); % Cкоростой профиль осколочного поля X
% c учетом разгона осколков подрывом ВВ
VYo=VYRand.*(1-exp(-t./GgT)); % Cкоростой профиль осколочного поля Y
% c учетом разгона осколков подрывом ВB
VZo=VZRand; % Cкоростой профиль осколочного поля Z
% c учетом разгона осколков подрывом ВB
% %-------------------------------------------------------------------------%
% % ЛИНЕЙНОЕ ТОРМОЖЕНИЕ ЭЛЕМЕНТОВ ОСКОЛОЧНОГО ПОЛЯ %
% %-------------------------------------------------------------------------%
% VXrand=(VXo-Ag.*t); % Cкоростой профиль разлета осколков с
% % учетом ускорений торможения Ag
% VYrand=(VYo-Ag.*t); % Cкоростой профиль разлета осколков с
% % учетом ускорений торможения Ag
% VZrand=VZo-Ag.*t; % Cкоростой профиль разлета осколков с
% % учетом ускорений торможения Ag
%-------------------------------------------------------------------------%
% ЭКСПОНЕНЦИАЛЬНОЕ ТОРМОЖЕНИЕ ЭЛЕМЕНТОВ ОСКОЛОЧНОГО ПОЛЯ %
%-------------------------------------------------------------------------%
Kexp=5.0e-4; % Коэффициент затухания скоростей
% осколочного поля по координатам
VXrand=VXo.*exp(-Kexp.*VXo.*t); % Торможение радиальной скорости ОП
% по оси Х
VYrand=VYo.*exp(-Kexp.*VYo.*t); % Торможение радиальной скорости ОП
% по оси Y
VZrand=VZo.*exp(-Kexp.*VZo.*t); % Торможение траекторной скорости ОП
% по оси Z
%-------------------------------------------------------------------------%
% УГЛЫ ОКРУЖНОСТЕЙ КОНУСА РАЗЛЁТА ОСКОЛКОВ ПО ТРАЕКТОРИИ ПОЛЕТА %
%-------------------------------------------------------------------------%
BettaXYn=((2*180)./kn+AngleGg).*nL; % Угол,вызванный центробежной силой
% скручивания осколков ОП за счет
% вращения ОФЗ-30
BettaXY=BettaXYn(1,n);
%-------------------------------------------------------------------------%
% СКОРОСТЬ МКБ-30 НА ТРАЕКТОРИИ ПОЛЕТА ДО ЦЕЛИ %
%-------------------------------------------------------------------------%
%-------------------------------------------------------------------------%
% РАССЧЕТ ТРАЕКТОРИИ РАЗЛЕТА ОСКОЛКОВ В ПЛОСКОСТИ %
% ПЕРПЕНДЕКУЛЯРНОЙ ВЕКТОРУ ТРАЕКТОРНОЙ СКОРОСТИ по осям X&Y %
%-------------------------------------------------------------------------%
T0 = t'; % Вектор текцщего времени
T1 = tmax+t'; % Вектор текцщего времени
T2 = 2*tmax+t'; % Вектор текцщего времени
T3 = 3*tmax+t'; % Вектор текцщего времени
T4 = 4*tmax+t'; % Вектор текцщего времени
T5 = 5*tmax+t'; % Вектор текцщего времени
T6 = 6*tmax+t'; % Вектор текцщего времени
T7 = 7*tmax+t'; % Вектор текцщего времени
T8 = 8*tmax+t'; % Вектор текцщего времени
T9 = 9*tmax+t'; % Вектор текцщего времени
% VX = (VXRand + VXrand.*cosd(RandAlfa)).*sind(RandAlfa); % Радиальная скорость осколков VX по оси Х
% VY = (VYRand + VXrand.*cosd(RandAlfa)).*sind(RandAlfa); % Радиальная скорость осколков VX по оси У
% VZ = VZrand+VXrand.*cosd(RandAlfa); % Продольная скорость осколков VX по оси Z
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ПО ФОРМУЛЕ ДИАГОНАЛИ ПАРАЛЛЕЛОГРАММА %
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
VVx=sqrt(VXrand.^2 + VZrand.^2+2.*VXrand.*VZrand.*cosd(RandAlfa)); % Вектор скорости ОП по оси Х
VVy=sqrt(VYrand.^2 + VZrand.^2+2.*VYrand.*VZrand.*cosd(RandAlfa)); % Вектор скорости ОП по оси У
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ПО ТЕОРЕМЕ КОСИНУСОВ ПО ДВУМ СТОРОНАИ И УГЛУ МЕЖДУ НИМИ %
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
BettaX=acosd((VVx.^2+ VZrand.^2-VXrand.^2)./(2.*VVx.*VZrand)); % Распределение углов ОП по оси Х
BettaY=acosd((VVy.^2+ VZrand.^2-VYrand.^2)./(2.*VVy.*VZrand)); % Распределение углов ОП по оси У
% BettaX=atand((VXrand.*sind(RandAlfa))./(VZrand+VXrand.*cosd(RandAlfa))); % Распределение углов ОП по оси Х
% BettaY=atand((VYrand.*sind(RandAlfa))./(VZrand+VYrand.*cosd(RandAlfa))); % Распределение углов ОП по оси У
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% СРЕДНЕКВАДРАТИЧЕСКОЕ ОТКЛОНЕНИЕ УЛОВ ОСКОЛОЧНОГО ПОЛЯ %
% В ЗАВИСИМОСТИ ОТ ДАЛЬНОСТИ ПОЛЕТА МКБ-30 ПО ОСЯМ X и Y %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Std_BettaX = std(BettaX,0,'all'); % СКО улов разлета элементов ОП по оси Х
Std_BettaY = std(BettaY,0,'all'); % СКО улов разлета элементов ОП по оси Y
Mean_BettaX = mean(BettaX,"all");
Mean_BettaY = mean(BettaY,"all");
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% СОСТАВЛЯЮЩИЕ СКОРОСТЕЙ ОСКОЛОЧНОГО ПОЛЯ НАХОДЯТСЯ КАК %
% ПРОЕКЦИИ НА СООТВЕТСТВУЮЩИЕ ОСИ X,Y и Z %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
VX=VVx.*sind(BettaX); % Радиальная скорость осколков VX по оси Х
VY=VVy.*sind(BettaY); % Радиальная скорость осколков VX по оси У
VZ=sqrt((VVx.^2+VVy.^2)./2).*cosd(BettaX); % Продольная скорость осколков VX по оси Z
%-------------------------------------------------------------------------%
% ФОРМИРОВАНИЕ КОНУСА РАЗЛЕТА ОСКОЛКОВ ПО ТРЕКТОРИИ мкб-30 %
% В ПЛОСКОСТИ ПЕРПЕНДЕКУЛЯРНОЙ ВЕКТОРУ ТРАЕКТОРНОЙ СКОРОСТИ по осям X&Y %
%-------------------------------------------------------------------------%
%-------------------------------------------------------------------------%
% ТРАЕКТОРИЯ ОСКОЛКОВ МКБ-30 ПО ОСИ Х ПРИ ПОЛЕТЕ ДО ЦЕЛИ %
%-------------------------------------------------------------------------%
LX0=VX.*T0; % Траектория по оси Х
LX1=VX.*T1; % Траектория по оси Х
LX2=VX.*T2; % Траектория по оси Х
LX3=VX.*T3; % Траектория по оси Х
LX4=VX.*T4; % Траектория по оси Х
LX5=VX.*T5; % Траектория по оси Х
LX6=VX.*T6; % Траектория по оси Х
LX7=VX.*T7; % Траектория по оси Х
LX8=VX.*T8; % Траектория по оси Х
LX9=VX.*T9; % Траектория по оси Х
LXx0=LX0.*sind(BettaXY); % Траектория КОНУСА разлёта осколков по оси Х
LXx1=LX1.*sind(BettaXY); % Траектория КОНУСА разлёта осколков по оси Х
LXx2=LX2.*sind(BettaXY); % Траектория КОНУСА разлёта осколков по оси Х
LXx3=LX3.*sind(BettaXY); % Траектория КОНУСА разлёта осколков по оси Х
LXx4=LX4.*sind(BettaXY); % Траектория КОНУСА разлёта осколков по оси Х
LXx5=LX5.*sind(BettaXY); % Траектория КОНУСА разлёта осколков по оси Х
LXx6=LX6.*sind(BettaXY); % Траектория КОНУСА разлёта осколков по оси Х
LXx7=LX7.*sind(BettaXY); % Траектория КОНУСА разлёта осколков по оси Х
LXx8=LX8.*sind(BettaXY); % Траектория КОНУСА разлёта осколков по оси Х
LXx9=LX9.*sind(BettaXY); % Траектория КОНУСА разлёта осколков по оси Х
%-------------------------------------------------------------------------%
% ТРАЕКТОРИЯ ОСКОЛКОВ МКБ-30 ПО ОСИ Y ПРИ ПОЛЕТЕ ДО ЦЕЛИ %
%-------------------------------------------------------------------------%
LY0=VY.*T0; % Траектория осколочного поля по оси Y
LY1=VY.*T1; % Траектория осколочного поля по оси Y
LY2=VY.*T2; % Траектория осколочного поля по оси Y
LY3=VY.*T3; % Траектория осколочного поля по оси Y
LY4=VY.*T4; % Траектория осколочного поля по оси Y
LY5=VY.*T5; % Траектория осколочного поля по оси Y
LY6=VY.*T6; % Траектория осколочного поля по оси Y
LY7=VY.*T7; % Траектория осколочного поля по оси Y
LY8=VY.*T8; % Траектория осколочного поля по оси Y
LY9=VY.*T9; % Траектория осколочного поля по оси Y
LYy0=LY0.*cosd(BettaXY); % Траектория осколочного поля по оси Y
LYy1=LY1.*cosd(BettaXY); % Траектория осколочного поля по оси Y
LYy2=LY2.*cosd(BettaXY); % Траектория осколочного поля по оси Y
LYy3=LY3.*cosd(BettaXY); % Траектория осколочного поля по оси Y
LYy4=LY4.*cosd(BettaXY); % Траектория осколочного поля по оси Y
LYy5=LY5.*cosd(BettaXY); % Траектория осколочного поля по оси Y
LYy6=LY6.*cosd(BettaXY); % Траектория осколочного поля по оси Y
LYy7=LY7.*cosd(BettaXY); % Траектория осколочного поля по оси Y
LYy8=LY8.*cosd(BettaXY); % Траектория осколочного поля по оси Y
LYy9=LY9.*cosd(BettaXY); % Траектория осколочного поля по оси Y
LZz0=VZ.*T0; % Траектория осколочного поля по оси Z
LZz1=VZ.*T1; % Траектория осколочного поля по оси Z
LZz2=VZ.*T2; % Траектория осколочного поля по оси Z
LZz3=VZ.*T3; % Траектория осколочного поля по оси Z
LZz4=VZ.*T4; % Траектория осколочного поля по оси Z
LZz5=VZ.*T5; % Траектория осколочного поля по оси Z
LZz6=VZ.*T6; % Траектория осколочного поля по оси Z
LZz7=VZ.*T7; % Траектория осколочного поля по оси Z
LZz8=VZ.*T8; % Траектория осколочного поля по оси Z
LZz9=VZ.*T9; % Траектория осколочного поля по оси Z
%######################### 15.0 метров ####################################
L1Xx = [LXx0;LXx1;LXx2;LXx3;LXx4;LXx5;LXx6;LXx7;LXx8;LXx9]; %
L1Yy = [LYy0;LYy1;LYy2;LYy3;LYy4;LYy5;LYy6;LYy7;LYy8;LYy9]; %
L1Zz = [LZz0;LZz1;LZz2;LZz3;LZz4;LZz5;LZz6;LZz7;LZz8;LZz9]; %
%#########################################################################%
% %######################### 15.0 метров ####################################
% L1Xx = [LXx0;LXx1;LXx2;LXx3;LXx4;LXx5]; %
% L1Yy = [LYy0;LYy1;LYy2;LYy3;LYy4;LYy5]; %
% L1Zz = [LZz0;LZz1;LZz2;LZz3;LZz4;LZz5]; %
% %#########################################################################%
% %%%######################### 10.0 метров #################################
% L1Xx = [LXx0;LXx1;LXx2;LXx3]; %
% L1Yy = [LYy0;LYy1;LYy2;LYy3]; %
% L1Zz = [LZz0;LZz1;LZz2;LZz3]; %
% %%%#######################################################################
% %%######################### 7.5 метров ###################################
% L1Xx = [LXx0;LXx1;LXx2]; %
% L1Yy = [LYy0;LYy1;LYy2]; %
% L1Zz = [LZz0;LZz1;LZz2]; %
% %#########################################################################
% %########################## 5.0 метров ###################################
% L1Xx = [LXx0;LXx1]; %
% L1Yy = [LYy0;LYy1]; %
% L1Zz = [LZz0;LZz1]; %
% %#########################################################################
% %########################### 2.5 метров #################################
% L1Xx = LXx0; %
% L1Yy = LYy0; %
% L1Zz = LZz0; %
% % %########################################################################%
%-------------------------------------------------------------------------%
% ТРАЕКТОРИЯ ОСКОЛКОВ МКБ-30 ПО ОСИ Z ПРИ ПОЛЕТЕ ДО ЦЕЛИ %
%-------------------------------------------------------------------------%
figure(1)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% ПОСТРОЕНИЕ КОНУСА РАССЕИВАНИЯ ОСКОЛОЧНОГО ПОЛЯ %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
plot3(L1Xx,L1Yy,L1Zz,'.');
% axis equal;
% hold off;
title('Конус осколочного поля ОФЗ-30 ');
xlabel('Дальность до цели X, м ');
ylabel('Дальность до цели Y, м ');
zlabel('Траекторные дальность Z, м');
legend('- угол разлета -3 до +3 град.','Location','northwest');
grid on
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ПОСТАНОВКА ЗАДАЧИ РАССЧЕТА ПАРАМЕТРОВ %
% РАЗЛЕТА ОСКОЛКОВ МКБ-30 ПРИ РАБОТЕ ПО МАЛЫМ БПЛА %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%-------------------------------------------------------------------------%
%ПРОЕКТ: ОБЛАСТЬ РАЗЛЕТА ОСКОЛКОВ ОТ мкб-30 ДО ДАЛЬНОСТИ ПОРАЖЕНИЯ Lmax %
%-------------------------------------------------------------------------%
%-------------------------------------------------------------------------%
%ПРОЕКТ: ОБЛАСТЬ РАЗЛЕТА ОСКОЛКОВ ОТ мкб-30 ДО ДАЛЬНОСТИ ПОРАЖЕНИЯ Lmax %
%-------------------------------------------------------------------------%
% Технический отсек
[X01,Y01,Z01] = ellipsoid(-0.48/Size_O_04,0,-0.01/Size_O_04,0.525/Size_O_04,0.17/Size_O_04,0.17/Size_O_04,Ns);
[X02,Y02,Z02] = ellipsoid(-0.4/Size_O_04,0,-0.01/Size_O_04,0.21/Size_O_04,0.16/Size_O_04,0.16/Size_O_04,Ns);
% Моторный отсек
[X11,Y11,Z11] = ellipsoid(-0.78/Size_O_04,0,-0.01/Size_O_04,0.2/Size_O_04,0.115/Size_O_04,0.115/Size_O_04,Ns);
% Крыло с механизацией
[X21,Y21,Z21] = ellipsoid(-0.25/Size_O_04,0,0.135/Size_O_04,0.27/Size_O_04,1.5/Size_O_04,0.05/Size_O_04,Ns);
% Фюзеляж
[X31,Y31,Z31] = ellipsoid(0.25/Size_O_04,0.115/Size_O_04,0.0,0.75/Size_O_04,0.025/Size_O_04,0.1/Size_O_04,Ns);
[X32,Y32,Z32] = ellipsoid(0.25/Size_O_04,-0.115/Size_O_04,0.0,0.75/Size_O_04,0.025/Size_O_04,0.1/Size_O_04,Ns);
% Хвостовое оперение - Руль курса
[X33,Y33,Z33] = ellipsoid(0.875/Size_O_04,0.115/Size_O_04,0.125/Size_O_04,0.125/Size_O_04,0.02/Size_O_04,0.2/Size_O_04,Ns);
[X34,Y34,Z34] = ellipsoid(0.875/Size_O_04,-0.115/Size_O_04,0.125/Size_O_04,0.125/Size_O_04,0.02/Size_O_04,0.2/Size_O_04,Ns);
% Хвостовое оперение - Руль высоты
[X41,Y41,Z41] = ellipsoid(0.86/Size_O_04,0,0/Size_O_04,0.14/Size_O_04,0.45/Size_O_04,0.025/Size_O_04,Ns);
% Пропеллер
[X42,Y42,Z42] = ellipsoid(-1.0/Size_O_04,0,0,0.015/Size_O_04,0.03/Size_O_04,0.275/Size_O_04,Ns);
figure(3)
surf(X01,Y01,Z01); axis equal; hold on;
surf(X02,Y02,Z02); axis equal; hold on;
surf(X11,Y11,Z11); axis equal; hold on;
surf(X21,Y21,Z21); axis equal; hold on;
surf(X31,Y31,Z31); axis equal; hold on;
surf(X32,Y32,Z32); axis equal; hold on;
surf(X33,Y33,Z33); axis equal; hold on;
surf(X34,Y34,Z34); axis equal; hold on;
surf(X41,Y41,Z41); axis equal; hold on;
surf(X42,Y42,Z42); axis equal; hold off;
% alpha(.3);
colormap( jet );
title('Осколочное поле ОФЗ-30:Vофз=600 м/с,Vоск=1200 м/c ');
xlabel('Дальность до цели X, м ');
ylabel('Дальность до цели Y, м ');
zlabel('Траекторная дальность Z, м');
grid on
% Технический отсек отсек
X01=X01(:);Y01=Y01(:);Z01=Z01(:);
shp01 = alphaShape(X01,Y01,Z01);
X02=X02(:);Y02=Y02(:);Z02=Z02(:);
shp02 = alphaShape(X02,Y02,Z02);
% Моторный отсек
X11=X11(:);Y11=Y11(:);Z11=Z11(:);
shp11 = alphaShape(X11,Y11,Z11);
% Крыло с механизацией
X21=X21(:);Y21=Y21(:);Z21=Z21(:);
shp21 = alphaShape(X21,Y21,Z21);
% Фюзеляж
X31=X31(:);Y31=Y31(:);Z31=Z31(:);
shp31 = alphaShape(X31,Y31,Z31);
X32=X32(:);Y32=Y32(:);Z32=Z32(:);
shp32 = alphaShape(X32,Y32,Z32);
% Хвостовое оперение - Руль курса
X33=X33(:);Y33=Y33(:);Z33=Z33(:);
shp33 = alphaShape(X33,Y33,Z33);
X34=X34(:);Y34=Y34(:);Z34=Z34(:);
shp34 = alphaShape(X34,Y34,Z34);
% Хвостовое оперение - Руль высоты
X41=X41(:);Y41=Y41(:);Z41=Z41(:);
shp41 = alphaShape(X41,Y41,Z41);
% Пропеллер
X42=X42(:);Y42=Y42(:);Z42=Z42(:);
shp42 = alphaShape(X42,Y42,Z42);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ВЫЧИСЛЕНИЕ ПЛОЩАДИ ПОВЕРХНОСТИ КВАДРОКОПТЕРА МОДЕЛИ Н-01 %
% ПОСОЕДСТВОМ АЛЬФА ФОРМЫ И СУММИРОВАНИЕМ ВСЕХ ЭЛЕМЕНТОВ КОНСТРУКЦИИ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Surface_O_03 = surfaceArea(shp11)+surfaceArea(shp21)+surfaceArea(shp31) ...
+ surfaceArea(shp32)+surfaceArea(shp33)+surfaceArea(shp34) ...
+ surfaceArea(shp41)+surfaceArea(shp42)+surfaceArea(shp01) ...
+ surfaceArea(shp02);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ФОРМИРОВАНИЕ СЛУЧАЙНОГО ПОЛЯ РАЗЛЕТА ОФЗ-30 В ТОЧКЕ ПРИЦЕЛИВАНИЯ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Формирование случайного разброса боеприпасов в области поражения цели в %
% диапазоне точностных характеристик. Основными параметрами являются %
% случайное нормальное распределение по координатам X,Y b Z. Причем %
% задаётся случайным нормальным законом распределения, как ошибка по %
% дальности F(Z), так и в плоскости экрана (F(X),F(Y)) заданием sigmaZ, %
% sigmaX и sigmaН НЗР. %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Kmx=SigmaXYo*1.0e-3; % Коэффициент пропорциональности Мх
Mx=0; nX=nAlfa;
My=0; nY=nAlfa;
Mz=0; nZ=nAlfa;
SigmaMz=Kmx*LD(nDH);
SigmaMx=Kmx*LD(nDH);
SigmaMy=Kmx*LD(nDH);
nR = 1; nC = 1;
SizeArc = nR*nC;
Arc_0=[nR,nC];
Arc_1=[nR,nC];
Arc_2=[nR,nC];
Arc_3=[nR,nC];
for c = 1:nC
for r = 1:nR
% КООРДИНАТА Х - Горизонтальная плоскость
RandMx = normrnd(Mx,SigmaMx,nX);
mX=RandMx(r,c);
RandX = normrnd(mX,sigmaXo,nX);
% КООРДИНАТА Y - Вертикальная плоскость
RandMy = normrnd(My,SigmaMy,nY);
mY=RandMy(c,r);
RandY = normrnd(mY,sigmaYo,nY);
% КООРДИНАТА Z - Вертикальная плоскость
RandMz = normrnd(Mz,SigmaMz,nZ);
mZ=RandMz(r,r);
RandZ = -abs(normrnd(mZ,sigmaZo,nZ));
% RandZ = normrnd(mZ,sigmaZ,nZ);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
LXX=L1Xx+RandX(r,c);
LYY=L1Yy+RandY(r,c);
LZZ=L1Zz+RandZ(r,c);
in01 = inShape(shp01,LXX,LYY,LZZ);
in02 = inShape(shp02,LXX,LYY,LZZ);
in11 = inShape(shp11,LXX,LYY,LZZ);
in21 = inShape(shp21,LXX,LYY,LZZ);
in31 = inShape(shp31,LXX,LYY,LZZ);
in32 = inShape(shp32,LXX,LYY,LZZ);
in33 = inShape(shp33,LXX,LYY,LZZ);
in34 = inShape(shp34,LXX,LYY,LZZ);
in41 = inShape(shp41,LXX,LYY,LZZ);
in42 = inShape(shp42,LXX,LYY,LZZ);
Nin1_42_0 = nnz(in01)+nnz(in02)+nnz(in11)+nnz(in21)+nnz(in31)+nnz(in32) ...
+ nnz(in33)+nnz(in34)+nnz(in41)+nnz(in42);
Nin1_42_1=Nin1_42_0;
Nin1_42_2=Nin1_42_0;
Nin1_42_3=Nin1_42_0;
if Nin1_42_0>0
Arc_0(r,c) = 1;
elseif Nin1_42_0==0
Arc_0(r,c) = 0;
end
if Nin1_42_1>1
Arc_1(r,c) = 1;
elseif Nin1_42_1==0
Arc_1(r,c) = 0;
end
if Nin1_42_2>2
Arc_2(r,c) = 1;
elseif Nin1_42_2==0
Arc_2(r,c) = 0;
end
if Nin1_42_3>3
Arc_3(r,c) = 1;
elseif Nin1_42_3==0
Arc_3(r,c) = 0;
end
end
end
NArc_0=nnz(Arc_0);
PArc_0=NArc_0/SizeArc;
NArc_1=nnz(Arc_1);
PArc_1=NArc_1/SizeArc;
NArc_2=nnz(Arc_2);
PArc_2=NArc_2/SizeArc;
NArc_3=nnz(Arc_3);
PArc_3=NArc_3/SizeArc;
P05_0=(1-(1-PArc_0)^16);
P05_1=(1-(1-PArc_1)^16);
P05_2=(1-(1-PArc_2)^16);
P05_3=(1-(1-PArc_3)^16);
% Эллипс разброса снарядов
[Xc,Yc,Zc] = ellipsoid(0,0,0, 3*sigmaXo,3*sigmaYo,3*sigmaZo,Ns);
[Xs,Ys,Zs] = ellipsoid(mX,mY,mZ, 3*SigmaMx,3*SigmaMy,3*SigmaMz,Ns);
%-------------------------------------------------------------------------%
%ПРОЕКТ: ОБЛАСТЬ РАЗЛЕТА ОСКОЛКОВ ОТ мкб-30 ДО ДАЛЬНОСТИ ПОРАЖЕНИЯ Lmax %
%-------------------------------------------------------------------------%
% Технический отсек
[X01,Y01,Z01] = ellipsoid(-0.48/Size_O_04,0,-0.01/Size_O_04,0.525/Size_O_04,0.17/Size_O_04,0.17/Size_O_04,Ns);
[X02,Y02,Z02] = ellipsoid(-0.4/Size_O_04,0,-0.01/Size_O_04,0.21/Size_O_04,0.16/Size_O_04,0.16/Size_O_04,Ns);
% Моторный отсек
[X11,Y11,Z11] = ellipsoid(-0.78/Size_O_04,0,-0.01/Size_O_04,0.2/Size_O_04,0.115/Size_O_04,0.115/Size_O_04,Ns);
% Крыло с механизацией
[X21,Y21,Z21] = ellipsoid(-0.25/Size_O_04,0,0.135/Size_O_04,0.27/Size_O_04,1.5/Size_O_04,0.05/Size_O_04,Ns);
% Фюзеляж
[X31,Y31,Z31] = ellipsoid(0.25/Size_O_04,0.115/Size_O_04,0.0,0.75/Size_O_04,0.025/Size_O_04,0.1/Size_O_04,Ns);
[X32,Y32,Z32] = ellipsoid(0.25/Size_O_04,-0.115/Size_O_04,0.0,0.75/Size_O_04,0.025/Size_O_04,0.1/Size_O_04,Ns);
% Хвостовое оперение - Руль курса
[X33,Y33,Z33] = ellipsoid(0.875/Size_O_04,0.115/Size_O_04,0.125/Size_O_04,0.125/Size_O_04,0.02/Size_O_04,0.2/Size_O_04,Ns);
[X34,Y34,Z34] = ellipsoid(0.875/Size_O_04,-0.115/Size_O_04,0.125/Size_O_04,0.125/Size_O_04,0.02/Size_O_04,0.2/Size_O_04,Ns);
% Хвостовое оперение - Руль высоты
[X41,Y41,Z41] = ellipsoid(0.86/Size_O_04,0,0/Size_O_04,0.14/Size_O_04,0.45/Size_O_04,0.025/Size_O_04,Ns);
% Пропеллер
[X42,Y42,Z42] = ellipsoid(-1.0/Size_O_04,0,0,0.015/Size_O_04,0.03/Size_O_04,0.275/Size_O_04,Ns);
figure(4)
surf(Xc,Yc,Zc); axis equal; hold on;
surf(Xs,Ys,Zs); axis equal; hold on;
surf(X01,Y01,Z01); axis equal; hold on;
surf(X02,Y02,Z02); axis equal; hold on;
surf(X11,Y11,Z11); axis equal; hold on;
surf(X21,Y21,Z21); axis equal; hold on;
surf(X31,Y31,Z31); axis equal; hold on;
surf(X32,Y32,Z32); axis equal; hold on;
surf(X33,Y33,Z33); axis equal; hold on;
surf(X34,Y34,Z34); axis equal; hold on;
surf(X41,Y41,Z41); axis equal; hold on;
surf(X42,Y42,Z42); axis equal; hold off;
alpha(.3);
colormap( jet );
title('Осколочное поле ОФЗ-30:Vофз=600 м/с,Vоск=1200 м/c ');
xlabel('Дальность до цели X, м ');
ylabel('Дальность до цели Y, м ');
zlabel('Траекторная дальность Z, м');
grid on
toc