Wie zeichnet man eine Clohessy Wiltshire-Trajektorie auf MATLAB?

Ich möchte also im Wesentlichen die Änderung der Flugbahn aufzeichnen, wenn ich ein Manöver mit den Clohessy-Wiltshire-Gleichungen durchführe, um ein Ziel zu verfolgen. Ich habe eine For-Schleife für 10.000 Sekunden und ich möchte jeden Wert von r(t) berechnen, während ich die Schleife durchlaufe und sie dann zeichne. Weiß jemand wie das gehen würde? Code kann ich posten, wenn du magst.

Antworten (1)

Schnell hacken:

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

Laut Wikipedia und dieser zeigt die x-Achse radial vom Schwerpunkt zum Ziel, die y-Achse zeigt in die Bewegungsrichtung des Ziels und die z-Achse ist gerade senkrecht zur vorherigen (rechtshändiges System). Mit den oben als Beispiel angegebenen Anfangswerten sieht die Trajektorie also folgendermaßen aus:

Beispiel Flugbahn relativ zum Ziel

Die Ansicht ist relativ zum Ziel (roter Kreis), dh wie das Ziel die Bewegung des Verfolgers sieht.

Das bedeutet, dass der Verfolger bei 100 Metern radial außerhalb der Position des Ziels und mit einer Geschwindigkeit von -1 m/s radial nach innen und -11,5 cm/s tangential nach hinten relativ zum Ziel startet.

Der Verfolger trifft das Ziel mit einer Geschwindigkeit ungleich Null. Um es realistischer zu machen, müssten Sie also eine mehrstufige Simulation mit anschließend abnehmender Geschwindigkeit des Chasers durchführen.

Beifall! Ich bin mir also nicht ganz sicher, was mit dem "if t ===floor(T(end)/2) disp('50% done')-Bit los ist. Können Sie erklären, wofür es ist?
Gute Frage! Es soll angezeigt werden, wenn ca. 50 % der Berechnung sind erledigt, da es sehr lange dauern kann, wenn T viele Zahlen enthält. Aber die Art und Weise, wie ich es codiert habe, machte nicht viel Sinn ... behoben!
Um Ihren letzten Punkt in Ihrer eigenen Antwort zu verdeutlichen (wie ich sehe, haben Sie eine diesbezügliche Frage), würden Sie eine weitere Verbrennung durchführen, die Ihre Relativgeschwindigkeit am Ziel auf Null bringt. Die Art dieser Gleichungen ist so, dass Sie für eine bestimmte Endbedingung die Anfangsbedingung finden können, sodass Ihr v0 die Werte wären, mit denen Sie fliegen müssen, um Ihr Ziel mit einer relativen Geschwindigkeit von 0 zu erreichen, wo Sie es anscheinend haben einen beliebigen Wert ausgewählt. Hoffe das hilft auch bei deiner anderen Frage!