Umlaufdauer eines Nano-Satelliten in 350 km Umlaufbahn

Ich habe versucht, ein sehr einfaches Programm zu schreiben, um die Umlaufdauer eines Nanosatelliten zu berechnen. Ich habe die Atmosphärendichte als Funktion der Höhe von dieser Seite erhalten.

ALT(km)         DENSITY(kg/m^3)
0               1.17E+00
20              9.49E-02
40              4.07E-03
60              3.31E-04
80              1.68E-05
100             5.08E-07
120             1.80E-08
140             3.26E-09
160             1.18E-09
180             5.51E-10
200             2.91E-10
220             1.66E-10
240             9.91E-11
260             6.16E-11
280             3.94E-11
300             2.58E-11
320             1.72E-11
340             1.16E-11
360             7.99E-12
380             5.55E-12
400             3.89E-12
420             2.75E-12
440             1.96E-12
460             1.40E-12
480             1.01E-12
500             7.30E-13
520             5.31E-13
540             3.88E-13
560             2.85E-13
580             2.11E-13
600             1.56E-13
620             1.17E-13
640             8.79E-14
660             6.65E-14
680             5.08E-14
700             3.91E-14

  • Das Programm verwendet einen einfachen rk4-Integrator mit der Erde als Kugel
  • Programm findet drag = 1 / 2 C D ρ A v 2 , mit C D wie 2.2
  • Programm geht von mittlerer Sonnenaktivität aus
  • der Zustandsvektor wird für eine kreisförmige Umlaufbahn initialisiert
  • die atmosphärische Dichte wird aus obigem Link entnommen und für die dazwischen liegenden Höhen linear interpoliert.

C D Laut diesem Papier, das ich nur überfliege, kann zwischen 2,0 und 2,2 entnommen werden. Der Teil des Programms, der die Beschleunigung berechnet, lautet wie folgt:

#define REARTH (6400.0)       // Radius of earth in Km
#define AREA   (0.1 * 1.0E-6) // 0.1 m^2
#define MASS   (14)           // 14 Kg
#define CD     (2.2)
// mu = 3.986004418E5 km^3/s^2
  pos = subm(sv, range(0, 2), range(0, 0));
  vel = subm(sv, range(3, 5), range(0, 0));

  r = length(pos);
  g = - mu / (r*r*r) * pos;
  alt = r - REARTH;
  // gd() returns density in kg/km^3 
  pho = gd(alt);

  drag = -  1.0 * CD * pho * AREA / MASS * vel * length(vel) / 2.0;

  dydx(0) = vel(0);
  dydx(1) = vel(1);
  dydx(2) = vel(2);

  gpdrag = g + drag;

  dydx(3) = gpdrag(0);
  dydx(4) = gpdrag(1);
  dydx(5) = gpdrag(2);

Wenn ich dieses Programm ausführe, fällt die Umlaufbahn innerhalb von 70 Tagen auf weniger als 100,0 km für 350,0 km ab. Dies scheint zu wenig Zeit zu sein. Gehe ich davon aus, dass hier etwas falsch oder völlig falsch ist?

Ich habe eine kugelförmige Erde angenommen, der Unterschied zwischen Polen und Äquator beträgt lediglich 22 km. Macht also SSPO oder die äquatoriale Umlaufbahn einen Unterschied für diese Schlussfolgerung?

Ich habe Diagramme für verschiedene Kreisbahnhöhen hinzugefügt.Lebensdauer der Umlaufbahn in verschiedenen Höhen

Die Atmosphärendichte kann abhängig von der Aktivität der Sonne, die die obere Atmosphäre erwärmt und ausdehnt, dramatisch variieren. Ich denke, das ist sicherlich im richtigen Bereich. Versuchen Sie, größere Satelliten mit bekannter Größe und Masse zu simulieren, und prüfen Sie, ob die Zeit länger ist als erwartet. Widerstandsskalen als Quadrat der Größe, aber Masse als Kubikgröße, sodass die Delta-V-Rate aufgrund des Luftwiderstands Fläche/Masse oder 1/Größe ist.
Einverstanden, tatsächlich ist Therr eine von Ihnen gestellte Frage, bei der die Variabilität des Luftwiderstands hervorgehoben wird. Das ist mir bewusst. Tatsächlich beträgt die Lebensdauer der Umlaufbahn bei einer Simulation mit maximaler Sonnenaktivität nur wenige Tage. Dies wirft jedoch eine wichtige Frage auf, die bedeutet, dass Nanosatelliten im Allgemeinen eine Lebensdauer von 6 Monaten haben, was bedeutet, dass sich die meisten Nanosatelliten in viel größerer Höhe befinden?
@uhoh Dichte, die ich als Nachschlagetabelle aus dem Link in der Gleichung genommen und für Zwischenwerte linear interpoliert habe. Alle Berechnungen erfolgen in km, kg und Sekunden. Ich habe Nanosatelliten für 500, 600 km gefunden, als ich gesucht habe, mit Umlaufzeiten in Jahren. Konnte keine 300-350km Nanosats finden.
@uhoh Da der Tisch ziemlich groß ist, hielt ich es für keine gute Idee, in die Frage gestellt zu werden. Ich habe die Tabelle, die ich habe, in Frage gestellt. Und ich habe kein Problem damit, den Code oder auch den Pseudocode zu schreiben, aber das macht die Frage langwierig. Deshalb habe ich Annahmen und einfache Schritte geschrieben, wie ich dorthin gekommen bin. Im gesamten Programm ist nur die an jedem Punkt erfahrene Beschleunigung erforderlich, daher habe ich Code davon eingefügt und alle im Code verwendeten Parameter sind in den Definitionen. Mit Ihren Eingaben habe ich die Frage bearbeitet.
Danke schön! Ich weiß die Bearbeitung sehr zu schätzen, ich werde sie heute noch einmal überprüfen.
70 Tage klingen nicht allzu abwegig. Der ISS-Zerfall bei 350 km liegt in der gleichen Größenordnung, auch wenn es sich um ein viel massiveres Objekt (Würfelquadrat) handelt.

Antworten (1)

Einige allgemeine Code-Reviews.

Insgesamt sehen die Annahmen in Ordnung aus, aber die Art und Weise, wie der Zerfall tatsächlich berechnet wird, könnte klarer sein.


die atmosphärische Dichte wird aus obigem Link entnommen und für die dazwischen liegenden Höhen linear interpoliert.

Obwohl ich zustimme, dass dies ein vollkommen vernünftiger Ansatz ist, enthält die Tabelle einige spärliche Werte, bei denen eine lineare Interpolation nicht angemessen ist:

0               1.17E+00
20              9.49E-02
40              4.07E-03

Zu diesem Zeitpunkt schlägt Ihr Satellit jedoch sowieso bereits innerhalb von Sekunden in den Boden ein, also ist es wahrscheinlich in Ordnung.


#define REARTH (6400.0) // Radius of earth in Km

Dies ist größer als jeder Erdradius, sowohl die äquatorialen 6378,1 km als auch die polaren 6356,8 km. Genauere Konstanten kosten Sie nichts und machen deutlicher, welche Annahmen Sie getroffen haben.


"Nano-Satellit"

#define MASS (14) // 14 Kg

Nanosatelliten sind typischerweise mit weniger als 10 kg definiert.


gpdrag = g + drag

Sie addieren Vektorgrößen zusammen. Es ist jedoch schwer zu sagen, ohne zu wissen, wie Vektoren in Ihrem Code behandelt werden, und es ist wahrscheinlich in Ordnung. Aber die falsche Behandlung von Vektoren ist im Allgemeinen eine Hauptquelle für falsche Simulationen.


Programm geht von mittlerer Sonnenaktivität aus

Dies ist keine sichere Annahme, da die Dichte in diesen Höhen stark von der Sonnenaktivität abhängt. Versuchen Sie, Daten sowohl für Tiefs als auch für Hochs zu erhalten, und führen Sie Ihre Simulation für beide aus. Es sollte einen großen lebenslangen Unterschied geben.


1.0 […] / 2.0

Dies ist keine Fließkommakonstante, sondern genau 1/2 die Drag-Formel. Die Dezimalschreibweise ist hier verwirrend.


Ich habe eine kugelförmige Erde angenommen, der Unterschied zwischen Polen und Äquator beträgt lediglich 22 km. Macht also SSPO oder die äquatoriale Umlaufbahn einen Unterschied für diese Schlussfolgerung?

Bei Ihren eigenen Grundstücken machen 22 km oder sogar nur 10 km einen großen Unterschied in der Lebensdauer.


Plausibilitätsprüfung: Haben die Kurven nach Unterschreiten der gleichen Höhe die gleiche Form? Ja!

Gesundheitsüberprüfung

Und zum Schluss, sind 70 Tage ein glaubwürdiger Wert für 350 km?

Aus einer Abbildung in An Evaluation of Cube Sat Orbital Decay geht hervor, dass dies in der Tat vernünftig aussieht:

Zerfallsrate

Danke ! für die Überprüfung und die Quelle für den Umlaufbahnzerfall für einen Würfelsat! Ah! Sie haben Recht mit dem 22 km langen Teil. Es macht einen Unterschied, aber dann muss ich die Erde als Ellipsoid simulieren und die Höhe so berechnen, aber dann bin ich mir wirklich nicht sicher, ob diese Höhe geodätische oder geozentrische Höhe in der Tabelle ist :| Aber ich denke, die Ergebnisse sind für mich persönlich etwas überraschend!