¿Cómo trazar una trayectoria de Clohessy Wiltshire en MATLAB?

Así que esencialmente quiero trazar el cambio en la trayectoria mientras realizo una maniobra usando las ecuaciones de clohessy wiltshire para perseguir un objetivo. Tengo un ciclo for para 10,000 y me gustaría calcular cada valor de r(t) mientras ejecuto el ciclo y luego lo trazo. Alguien sabe como se haría esto? Puedo publicar el código si quieres.

Respuestas (1)

truco rápido:

close all
n=0.00113;

phi_rr = @(t) [4-3*cos(n*t) 0 0; 6*(sin(n*t)-n*t) 1 0; 0 0 cos(n*t)];
phi_rv = @(t) [1/n*sin(n*t) 2/n*(1-cos(n*t)) 0; 2/n*(cos(n*t)-1) 1/n*(4*sin(n*t)-3*n*t) 0; 0 0 1/n*sin(n*t)];

r_0 = [100;0;0];
v_0 = [-1;-.115;0];

T=0:10:2000;

% plot red circle at origin
plot3(0,0,0,'ro')
hold on

% start loop
for t=T
    % display 50% progres
    if t==T(floor(end/2))
        disp('50 % done');
    end
    r=phi_rr(t)*r_0 + phi_rv(t)*v_0;
    plot3(r(1),r(2),r(3),'k.');
end
rotate3d
xlabel('x'), ylabel('y'), zlabel('z')
axis equal
grid on
hold off

De acuerdo con wikipedia y this , el eje x apunta radialmente desde el centro de gravedad al objetivo, el eje y apunta a la dirección de movimiento del objetivo y el eje z es perpendicular al anterior (sistema diestro). Entonces, con los valores iniciales proporcionados como ejemplo anterior, la trayectoria se ve así:

ejemplo de trayectoria relativa al objetivo

La vista es relativa al objetivo (círculo rojo), es decir, cómo el objetivo ve moverse al perseguidor.

Eso significa que el perseguidor comienza a 100 metros radialmente hacia afuera de la posición del objetivo y con una velocidad de -1 m/s radialmente hacia adentro y -11,5 cm/s tangencialmente hacia atrás en relación con el objetivo.

El perseguidor golpea el objetivo con una velocidad distinta de cero. Entonces, para hacerlo más realista, tendría que hacer una simulación de varios pasos con la consiguiente disminución de la velocidad del perseguidor.

¡Salud! Así que no estoy muy seguro de qué está pasando con el bit "if t ===floor(T(end)/2) disp('50% done')... ¿puedes explicar para qué sirve?
¡Buena pregunta! Se supone que debe mostrarse cuando aprox. El 50 % del cálculo está hecho, ya que puede llevar mucho tiempo si T contiene muchos números. Pero la forma en que lo codifiqué no tenía mucho sentido... ¡arreglado!
entonces, para aclarar su último punto en su propia respuesta (como veo que tiene una pregunta relacionada), haría otra quemadura que lleve su velocidad relativa a cero en el objetivo. La naturaleza de estas ecuaciones es tal que para una condición final dada, puede encontrar la condición inicial, por lo que su v0 serían los valores con los que necesita volar para alcanzar su objetivo con una velocidad relativa de 0, donde parece que ha elegido un valor arbitrario. ¡Espero que eso ayude con tu otra pregunta también!