ECI TO ECEF

7
a. ECI TO ECEF Pemrograman Eci to ECEF merupakan pemrograman guna mengkonversi dari koordinat ECI (CIS, Epoch J2000.0) menjadi dalam sistem koordinat WGS 84 (CTS, ECEF) %----------------------- Begin Code Sequence -----------------------------% Kode ini menjelaskan bahwa pengkodean telah dimulai % Purpose: % % Convert ECI (CIS, Epoch J2000.0) Coordinates to WGS 84 (CTS, ECEF) % % Coordinates. This function has been vectorized for speed. % Pengkodean kali ini bertujuan untuk mengkonversi ECI (CIS, Epoch J2000.0) menjadi dalam sistem koordinat WGS 84 (CTS, ECEF). Fungsi ini divektorisasi dengan cepat. % Inputs: % %--------- % %JD [1 x N] Julian Date Vector %r_ECI [3 x N] Position Vector % in ECI coordinate % frame of reference %v_ECI [3 x N] Velocity Vector in

description

transforming ECI to ECEF

Transcript of ECI TO ECEF

a. ECI TO ECEFPemrograman Eci to ECEF merupakan pemrograman guna mengkonversi dari koordinat ECI (CIS, Epoch J2000.0) menjadi dalam sistem koordinat WGS 84 (CTS, ECEF)%----------------------- Begin Code Sequence -----------------------------%Kode ini menjelaskan bahwa pengkodean telah dimulai% Purpose: %% Convert ECI (CIS, Epoch J2000.0) Coordinates to WGS 84 (CTS, ECEF) %% Coordinates. This function has been vectorized for speed. %Pengkodean kali ini bertujuan untuk mengkonversi ECI (CIS, Epoch J2000.0) menjadi dalam sistem koordinat WGS 84 (CTS, ECEF). Fungsi ini divektorisasi dengan cepat.% Inputs: %%--------- %%JD [1 x N] Julian Date Vector%r_ECI [3 x N] Position Vector% in ECI coordinate% frame of reference%v_ECI [3 x N] Velocity Vector in% ECI coordinate% frame of reference%%a_ECI [3 x N] Acceleration Vector% in ECI coordinate% frame of referenceProses diatas merupakan proses pemasukan data yang diawali dengan memasukkan vektor dari Julian Date, kemudian dilanjutkan input r_ECI (vektor posisi pada koordinat ECI), v_ECI (vektor kecepatan pada koordinat ECI), serta a_ECI (vektor percepatan pada koordinat ECI).% Outputs:%--------- %%r_ECEF [3 x N] Position Vector in% ECEF coordinate% frame of reference%%v_ECEF [3 x N] Velocity vector in% ECEF coordinate% frame of reference%%a_ECEF [3 x N] Acceleration Vector% in ECEF coordinate% frame of reference%Dari pengkodean diatas dimaksudkan dari hasil inputan yang dimasukkan maka hasil outputan adalah berupa koordinat dalam bentuk ECEF (WGS 84). Hasil keluaran tersebut yakni r_ECEF (vektor posisi pada koordinat ECEF), v_ECEF (vektor kecepatan pada koordinat ECEF), serta a_ECEF (vektor percepatan pada koordinat ECEF). % References:%-------------%Orbital Mechanics with Numerit, http://www.cdeagle.com/omnum/pdf/csystems.pdf%%% Function Dependencies:%------------------% JD2GMST%------------------------------------------------------------------ %% Programed by Darin Koblick 07-05-2010 %% Modified on 03/01/2012 to add acceleration vector support %%------------------------------------------------------------------ %Referensi mekanika orbital dengan numerik dari http://www.cdeagle.com/omnum/pdf/csystems.pdf. Fungsi bergantung kepada hasil koordinat JD to GMST. Program dibuat oleh Darin Koblick pada tanggal 07 Mei 2010 yang kemudian di modifikasi pada 3 Januari 2012 untuk menambah pendukung vektor percepatan.function [r_ECEF v_ECEF a_ECEF] = ECItoECEF(JD,r_ECI,v_ECI,a_ECI)%Enforce JD to be [N x 1]%JD = JD(:);Fungsi vektor posisi ECEF, vektor kecepatan ECEF, dan vektor percepatan ECEF dihitung menggunakan rumus diatas. Memasukkan Julian Date, vektor vektor posisi ECI, vektor kecepatan ECI, dan vektor percepatan ECI pada rumus yang kemudian akan dikonversi menjadi koordinat ECEF. Dengan memaksakan JD menjadi [N x 1].%Calculate the Greenwich Apparent Sideral Time (THETA)%See http://www.cdeagle.com/omnum/pdf/csystems.pdf equation 27%THETA = JD2GAST(JD);Hitung GAST (Greenwich Apparent Sideral Time) yang dilambangkan dengan THETA, dapat dilihat pada http://www.cdeagle.com/omnum/pdf/csystems.pdf equation 27. Dengan THETA merupakan JD to GAST%Average inertial rotation rate of the earth radians per secondomega_e = 7.29211585275553e-005;Menghitung tingkat rotasi inersia rata-rata dari radian bumi tiap detiknya dengan rumus omega_e = 7.29211585275553e-005%Assemble the transformation matricies to go from ECI to ECEF%See http://www.cdeagle.com/omnum/pdf/csystems.pdf equation 26r_ECEF = squeeze(MultiDimMatrixMultiply(T3D(THETA),r_ECI));%v_ECEF = squeeze(MultiDimMatrixMultiply(T3D(THETA),v_ECI) + ... MultiDimMatrixMultiply(Tdot3D(THETA,omega_e),r_ECI));%a_ECEF = squeeze(MultiDimMatrixMultiply(T3D(THETA),a_ECI) + ... 2.*MultiDimMatrixMultiply(Tdot3D(THETA,omega_e),v_ECI) + ... MultiDimMatrixMultiply(Tddot3D(THETA,omega_e),r_ECI));Menggabungkan matricies transformasi dari ECI to ECEF dengan melihat pada http://www.cdeagle.com/omnum/pdf/csystems.pdf equation 26. Hasil matriks gabungan akan di peroleh dengan menggunakan rumus diatas dalam penggabungan matriks vektor posisi, vektor kecepatan, dan vektor percepatan dari transformasi sistem koordinat ECI (CIS, Epoch J2000.0) ke sistem koordinat ECEF (CTS, WGS 84)%----------------------------- End Code-----------------------------------%Fungsi ini membatasi bahwa pengkodean diatasnya telah diakhirifunction C = MultiDimMatrixMultiply(A,B)C = sum(bsxfun(@times,A,repmat(permute(B',[3 2 1]),[size(A,2) 1 1])),2);Dapatkan fungsi C dengan MultiDimMatrixMultiply(A,B) dimana nilai C adalah jumlah dari (bsxfun(@times,A,repmat(permute(B',[3 2 1]),[size(A,2) 1 1])),2)function T = T3D(THETA)T = zeros([3 3 length(THETA)]);T(1,1,:) = cosd(THETA);T(1,2,:) = sind(THETA);T(2,1,:) = -T(1,2,:);T(2,2,:) = T(1,1,:);T(3,3,:) = ones(size(THETA));Masukkan fungsi T dengan menggunakan rumus T=T3D(THETA) untuk matriks dengan isi dari matriks menggunakan rumus seperti diatas.function Tdot = Tdot3D(THETA,omega_e)Tdot = zeros([3 3 length(THETA)]);Tdot(1,1,:) = -omega_e.*sind(THETA);Tdot(1,2,:) = omega_e.*cosd(THETA);Tdot(2,1,:) = -Tdot(1,2,:);Tdot(2,2,:) = Tdot(1,1,:);Masukkan fungsi Tdot dengan menggunakan rumus Tdot=Tdot3D(THETA,omega_e) untuk matriks dengan isi dari matriks menggunakan rumus seperti diatas.function Tddot = Tddot3D(THETA,omega_e)Tddot = zeros([3 3 length(THETA)]);Tddot(1,1,:) = -(omega_e.^2).*cosd(THETA);Tddot(1,2,:) = -(omega_e.^2).*sind(THETA);Tddot(2,1,:) = -Tddot(1,2,:);Tddot(2,2,:) = Tddot(1,1,:);Masukkan fungsi Tddot dengan menggunakan rumus Tddot=Tddot3D(THETA,omega_e) untuk matriks dengan isi dari matriks menggunakan rumus seperti diatas.