Bu benzetimde roketin kinematik davranışı, başlangıç hızı ve uçuş yolu açısına bağlı olarak belirlenen hız bileşenleri kullanılarak Euler entegrasyonu yöntemiyle hesaplanmaktadır. Hesaplamalarda, roketin ateşleme noktasına göre X ve Z eksenleri esas alınmıştır.
Bu benzetim, HTML, JavaScript, Bootstrap ve Chart.js kullanılarak gerçekleştirilmiştir. Aşağıdaki kod bloğu, benzetimin temel yapısını ve sayısal entegrasyon yöntemiyle uçuş yörüngesinin nasıl hesaplandığını göstermektedir. Alttaki kod yalnızca algoritmanın bir örneğidir. Detaylı kod sitenin kaynakları içerisinde mevcut olup tablo vb. çıktı işlemleri alttaki koddan algoritma sadeliği için çıkartılmıştır.
// Başlangıç Değerleri
const initialSpeed = 100
const flightAngleDeg = 70
const dt = 0.01
// Sabit yerçekimi ivmesi (m/s²)
const g = 9.801; // m/s²
// Uçuş yolu açısı (radyan cinsine çevriliyor)
const flightAngleRad = flightAngleDeg * Math.PI / 180;
// Başlangıç koşulları:
// X yönünde hız: v_x = v0 * cos(γ)
// Z yönünde hız: v_z = - v0 * sin(γ) (Z ekseni aşağıya doğru tanımlı, bu yüzden yukarı hareket negatif)
let v_x = initialSpeed * Math.cos(flightAngleRad);
let v_z = -initialSpeed * Math.sin(flightAngleRad);
// Başlangıç konumları: x₀ = 0, z₀ = 0 (ateşleme noktası)
let x = 0;
let z = 0;
let t = 0;
// Tepe noktası takibi: maksimum yükseklik (-z değeri) ve bu anın zamanı
let maxHeight = 0;
let tAtMaxHeight = 0;
while (z < 0 || t == 0) {
// Tepe noktasını güncelleme: yükseklik = -z (ateşleme noktasına göre)
let currentHeight = -z;
if (currentHeight > maxHeight) {
maxHeight = currentHeight;
tAtMaxHeight = t;
}
// Euler entegrasyonu ile hız ve konum güncellemeleri:
// X yönü: hız sabit (dış kuvvet yok)
x += v_x * dt;
// Z yönü: hız artışı yerçekimi etkisiyle
v_z += g * dt;
z += v_z * dt;
let totalSpeed = Math.sqrt(v_x * v_x + v_z * v_z);
let flightPathAngleRad = Math.atan(-v_z / v_x);
let flightPathAngleDeg = flightPathAngleRad * 180 / Math.PI;
// Zamanı güncelle
t += dt;
}
Aşağıdaki tabloda belirtilen başlangıç koşullarıyla benzetim çalıştırılmıştır:
| Değer | Birimi | Değer |
|---|---|---|
| Pozisyon | [m] | [0, 0, 0] |
| Hız (bileşke) | [m/s] | 100 |
| Uçuş Yolu Açısı | [°] | 70 |
Grafik: Menzil-yükseklik yörünge grafiği
Aşağıdaki tabloda belirtilen başlangıç koşullarıyla benzetim çalıştırılmıştır:
| Birimi | Değer | |
|---|---|---|
| Tepe Noktası Yüksekliği | [m] | - |
| Tepe Noktası Hızı (bileşke) | [m/s] | - |
| Tepe Noktası Zamanı | [s] | - |
| Son Pozisyon | [m] [-, 0, -] | - |
| Son Hız (bileşke) | [m/s] | - |
| Son Uçuş Yolu Açısı | [°] | - |
| Son Uçuş Zamanı | [s] | - |
| Zaman (s) | X Pozisyon (m) | Y Pozisyon (m) | Vx (m/s) | Vy (m/s) | Hız Büyüklüğü (m/s) | Uçuş Yolu Açısı (°) |
|---|
| Zaman (s) | X Pozisyon (m) | Y Pozisyon (m) | Vx (m/s) | Vy (m/s) | Hız Büyüklüğü (m/s) | Uçuş Yolu Açısı (°) |
|---|