Разработка системы отображения информации с элементами виртуальной реальности для выполнения посадки неманевренного самолета, страница 32

otkly=koord(3,:)-(y+0.375);

otklx=koord(2,:)-x;

otklz=koord(4,:)-(z);

otkleps=sqrt(otklx.^2+otklz.^2);

l=fi.*2000;

l_massiv=0:0.5:420;

otkl_massiv(:,:,i)=[l_massiv;interp1(l,otkleps,l_massiv);interp1(l,otkly,l_massiv)];

end

[n m r]=size(otkl_massiv);

for i=1:n

    for j=1:m

        mat_oszid(i,j)=sum(abs(otkl_massiv(i,j,:)))/r;

        disp(i,j)=(1/4).*sum((otkl_massiv(i,j,:)-mat_oszid(i,j)).^2);    

    end

end

figure(1)

subplot(4,1,1)

plot(mat_oszid(1,:),mat_oszid(2,:),'r'),YLABEL('Мат. ожид. бок. ошибки '),hold on, grid on

subplot(4,1,2)

plot(mat_oszid(1,:),mat_oszid(3,:),'r'),YLABEL('Мат. ожид. ошибки по H'),hold on, grid on

subplot(4,1,3)

plot(mat_oszid(1,:),disp(2,:),'r'),YLABEL('Дисп. бок. ошибки'),hold on, grid on

subplot(4,1,4)

plot(mat_oszid(1,:),disp(3,:),'r'),YLABEL('Дисп. ошибки по H'),hold on, grid on

mat_eps_max=max(mat_oszid(2,1:400));

mat_y_max=max(mat_oszid(3,1:400));

mat_mid_eps=sum(mat_oszid(2,1:400))/400;

mat_mid_y=sum(mat_oszid(3,1:400))/400;

disp_eps_max=max(disp(2,1:400));

disp_y_max=max(disp(3,1:400));

disp_mid_eps=sum(disp(2,1:400))/400;;

disp_mid_y=sum(disp(3,1:400))/400;

save([link link_2 type '.mat'],'mat_oszid','disp','mat_eps_max','mat_y_max','mat_mid_eps',...

    'mat_mid_y','disp_eps_max','disp_y_max','disp_mid_eps','disp_mid_y');

31.3  Программа расчета дисперсии ошибки для захода на посадкус радиусом разворота 20000 м

for i=1:5

link='C:\fly\';

link_2='Fly_curve_10_200_75';

object='\traekt_';

type='_p3';

object_ip=['1' '2' '3' '4' '5'];

load([link link_2 object object_ip(i) type ]);

Rtek=sqrt((koord(2,:)-1000).^2+(koord(4,:)+1000).^2); %x^2+z^2=R*^2

Ltek=-1000-koord(4,:);

fi=-asin(Ltek./Rtek);

x=1000*cos(fi);

y=-0.049*x+50;

z=-sqrt(1000.^2-x.^2)+1000;

x=x*(1)-1000;

otkly=koord(3,:)-(y+0.375);

otklx=koord(2,:)+x;

otklz=koord(4,:)+(z);

otkleps=sqrt(otklx.^2+otklz.^2);

l=fi.*1000;

l_massiv=0:0.5:420;

otkl_massiv(:,:,i)=[l_massiv;interp1(l,otkleps,l_massiv);interp1(l,otkly,l_massiv)];

end

[n m r]=size(otkl_massiv);

for i=1:n

    for j=1:m

        mat_oszid(i,j)=sum(abs(otkl_massiv(i,j,:)))/r;

        disp(i,j)=(1/4).*sum((otkl_massiv(i,j,:)-mat_oszid(i,j)).^2);    

    end

end

figure(1)

subplot(4,1,1)

plot(mat_oszid(1,:),mat_oszid(2,:),'r'),YLABEL('Мат. ожид. бок. ошибки '),hold on, grid on

subplot(4,1,2)

plot(mat_oszid(1,:),mat_oszid(3,:),'r'),YLABEL('Мат. ожид. ошибки по H'),hold on, grid on

subplot(4,1,3)

plot(mat_oszid(1,:),disp(2,:),'r'),YLABEL('Дисп. бок. ошибки'),hold on, grid on

subplot(4,1,4)

plot(mat_oszid(1,:),disp(3,:),'r'),YLABEL('Дисп. ошибки по H'),hold on, grid on

mat_eps_max=max(mat_oszid(2,1:400));

mat_y_max=max(mat_oszid(3,1:400));

mat_mid_eps=sum(mat_oszid(2,1:400))/400;

mat_mid_y=sum(mat_oszid(3,1:400))/400;

disp_eps_max=max(disp(2,1:400));

disp_y_max=max(disp(3,1:400));

disp_mid_eps=sum(disp(2,1:400))/400;;

disp_mid_y=sum(disp(3,1:400))/400;

save([link link_2  type '.mat'],'mat_oszid','disp','mat_eps_max','mat_y_max','mat_mid_eps',...

    'mat_mid_y','disp_eps_max','disp_y_max','disp_mid_eps','disp_mid_y');

32.  Приложение 5

32.1  Программа анализа результатов и построения графических зависимостей дисперсии ошибки.

link='C:\fly\Fly_curve_20_';

link_2='00_';

object_ip=['124'];

object_dim_1=['2175'];

object_dim_2=['005 '];

type='_p3';

for i=1:6

    for j=1:4

        if i>3

            if j==4

                load([link object_ip(i-3) link_2 object_dim_1(j) type]) 

            else

                load([link object_ip(i-3) link_2 object_dim_1(j) object_dim_2(j) type])

            end

        else

            if j==4

                load([link object_ip(i) link_2 object_dim_1(j)]) 

            else

                load([link object_ip(i) link_2 object_dim_1(j) object_dim_2(j)])

            end

        end

        disp_y_max_graf(i,j)=disp_y_max;