Tarea 3: Colisiones - Parte 4 (2014)

Trabajo Español
Universidad Universidad Politécnica de Valencia (UPV)
Grado Ingeniería Aeroespacial - 3º curso
Asignatura Transporte, navegación y circulación aérea
Año del apunte 2014
Páginas 6
Fecha de subida 02/07/2017
Descargas 0
Subido por

Vista previa del texto

tau(k)=-dot(r0,c)/dot(c,c); rm=cross(c_unit,cross(r0,c_unit)); d(k)=norm(rm); distancia(k)=norm(r0); end o Como comentario adicional y a medida de corrección mas estética que analítica, hemos incluido dos líneas para corregir un defecto en la gráfica en la que dos valores se configuraban a 0. Interpolando entre los valores anterior y posterior conseguimos solucionarlo, achacando dicho error a posibles variaciones erróneas o posibles errores inexactos de cálculo.
if j==122 Track1(122)=Track1(121)-0.5; %corrección del error end if j==123 Track1(123)=Track1(121)-0.59; %corrección del error end o Por último en esta parte, consideramos oportuno para conseguir el mismo resultado que el deseado, el corregir los valores una vez se llega al máximo acercamiento y comienzan a alejarse, tal y como se muestra en los comandos: poniendo directamente el tiempo hasta el encuentro a 0 a partir del valor para el cual el tau es 0, y la distancia, como directamente el módulo del vector r0, distancia, anteriormente calculado.
tauminimo=1; while tau(tauminimo)>0 tauminimo=tauminimo+1; end tau(tauminimo:end)=0; d(tauminimo:end)=distancia(tauminimo:end);  Para finalizar el script y que éste contenga la mayor cantidad de información posible, y que pueda contenerla de forma más visual y clara, llevamos a cabo un plot de los distintos parámetros en función del tiempo. Aunque en un principio únicamente deberíamos graficar la distancia, el tau y el Track del avión 1, hemos considerado oportuno incluir un plot del Track del segundo avión para tener toda la información completa: subplot(2,2,1); hold on; grid on; plot([START+W:END],d/1e3,'r'); hold on; % Plot minimum distance xlabel('Time'); ylabel('Distance'); subplot(2,2,2); hold on; grid on; plot([START+W:END],abs(tau),'r');hold on; % Plot tau xlabel('Time'); ylabel('Tau'); subplot(2,2,4); hold on; 100 grid on; 600 80 plot([START+W:END],Track2*180/pi,'r'); % Plot track of plane 2 400 xlabel('Time'); 60 ylabel('Track2'); 200 40 end Tau Distance subplot(2,2,3); hold on; grid on; plot([START+W:END],Track1*180/pi,'r'); % Plot track of plane 1 xlabel('Time'); ylabel('Track1'); 20 0 100 200  Hemos 300 400 Time las obtenido 500 600 0 700 60 100 200 300 400 Time 500 600 700 0 100 200 300 400 Time 500 600 700 120 110 50 Track2 Track1 0 siguientes gráficas: 40 100 90 30 0 100 200 300 400 Time 500 600 80 700 600 80 400 Tau Distance 100 60 200 40 20 0 100 200 300 400 Time 500 600 0 700 50 40 120 110 Track2 Track1 60 100 90 0 100 200 300 400 Time 500 600 700 AMPLIACIÓN 6.
EJERCICIO En el ejercicio propuesto de la tarea, en la parte adicional/opcional de la misma, se nos planteaba otro caso/situación o requerimiento diferente: una vez se ha detectado el pca, se producen los diferentes posibles cambios de rumbo; sin embargo, este cambio de rumbo puede tener diferentes consecuencias como adelantar el mismo PCA o atrasarlo, dando lugar así a situaciones en las que la aeronave tiene más o menos tiempo para maniobrar de nuevo, si le es posible. Así pues, en este ejercicio nos disponemos a estudiar la variación de la distancia entre las aeronaves con el tiempo una vez se ha detectado el punto de máximo acercamiento y se ha realizado el viraje.
En primer lugar, y para constatar que nos dirigimos en la dirección óptima, realizamos el ejemplo propuesto en el programa del trabajo, en el cual el cambio de rumbo provisto va desde los -80 hasta los 0 grados, y cuyo tiempo TTC se ha establecido en 600 segundos. Para conseguirlo, hemos realizado un script con los diferentes datos necesarios y hemos modificado nuestras funciones para que sean capaces de graficar dicha situación:  Script Ampliación: o Datos iniciales: clc, clear all; addpath('./lib'); Heading1=90; TAS1=500; Heading2=80; TAS2=170; o Cálculo de los distintos PCA, para cada viraje con nuestra clásica función avoidance, y visualización: pca=zeros(9,1); %calculamos pca para cada ángulo para un TTC=10 min for delta=-80:10:0 time =10;% In minutes [d,tau]= Avoidance(Heading1,Heading2,TAS1,TAS2,time*60,delta); pca((-delta+10)/10,1)=d; pca((-delta+10)/10,2)=tau; end for i=1:9 plot (pca(i,2),pca(i,1),'r--o'); axis([0, 1200, 0, 54000]) hold on; end xlabel('Time'); ylabel('distance'); title(['H1: ',int2str(Heading1),' H2: ', int2str(Heading2), ' TAS1: ', int2str(TAS1), ' TAS2: ', int2str(TAS2)]); o Calculamos las distintas distancias en función del tiempo para cada ángulo, mediante la nueva función modificada Avoidanceamp: %calculamos distancias en funcion del tiempo for delta=-80:10:0; TTC=10; %min index=1; for t=0.4*pca((-delta+10)/10,2):1:1.6*pca((-delta+10)/10,2) % In seconds distancia= Avoidanceamp(Heading1,Heading2,TAS1,TAS2,TTC*60,delta,t); dist(index)=distancia; index=index+1; end plot(0.4*pca((-delta+10)/10,2):1:1.6*pca((-delta+10)/10,2),dist) hold on end  Para este caso, hemos calculado las distancias para un TTC de 10 minutos, para un periodo de tiempo igual a [0.4*tau,1.6*tau], para conseguir una gráfica similar a la del pdf. El tau del intervalo, lo tenemos almacenado dentro del vector pca, para cada ángulo.
o Conseguimos una gráfica semejante a la del enunciado: 4 H1: 90 H2: 80 TAS1: 500 TAS2: 170 x 10 5 4.5 4 distance 3.5 3 2.5 2 1.5 1 0.5 0 0 200 400 600 Time 800 1000 1200  Función Avoidanceamp: o Argumentos de entrada: function [ distancia] = Avoidanceamp( Heading1, Heading2, TAS1, TAS2, TTC, Delta_h,t) % Returns distance between the planes at time t %Input parameters: %Heading 1 %Heading 2 %TAS 1 (kt) %TAS 2 (kt) %TTC: Time to conflict (secs) %Delta_h: Heading change %t: tiempo de cálculo de distancia o Primeros cálculos (posiciones y velocidades) semejantes a Avoidance clásica: % We first calculate where planes will be at TTC % Assuming rm=0 Pm=(TAS1*1852/3600)*TTC; % In meters Qm=(TAS2*1852/3600)*TTC; [Px,Py]=pol2cart(geo2pol(mod(180+Heading1,360)),Pm); %P position in cartesian coords.
[Qx,Qy]=pol2cart(geo2pol(mod(180+Heading2,360)),Qm); %Q position in cartesian coords.
r=[Px-Qx,Py-Qy,0]; % Now heading of plane 2 is changed in Delta_h [vx,vy]=pol2cart(geo2pol(Heading1),(TAS1*1852/3600)); [ux,uy]=pol2cart(geo2pol(mod(Heading2+Delta_h,360)),(TAS2*1852/3600)); o Variación a la hora de determinar la nueva posición relativa y absoluta de los aviones: P1=Px + vx*t; Q1=Qx + ux*t; P2=Py + vy*t; Q2=Qy + uy*t; newr=[P1-Q1,P2-Q2,0]; o Cálculo de la distancia como el módulo del vector: distancia=norm(newr); CONCLUSIONES FINALES Una vez finalizado el proyecto consideramos necesarias una serie de conclusiones finales a modo de aclaraciones, en las que determinar hasta que punto es válido nuestro trabajo, y la atención que merece la interpretación crítica de los resultados.
Hay que insistir en la idea de que el método no es perfecto y hay que analizar los resultados obtenidos. Una posible confusión es la idea de que hay que observar para que ángulos se da el mayor acercamiento relativo, ya que este puede darse una vez los aviones ya se están alejando y sean las estelas que dejan tras ellos las que provoquen este cálculo erróneo.
Así, podemos destacar que lo calculado a lo largo de todo el trabajo son estimaciones que se acercan más o menos a la realidad, pero que constituyen una manera óptima de aprendizaje y consolidación de conocimientos.
...

Tags:
Comprar Previsualizar