Anda di halaman 1dari 17

MODUL PRAKTIKUM

AE3220 DINAMIKA TERBANG

1. [MATLAB] KOORDINAT GEOMETRI,


TATA ACUAN KOORDINAT, DAN
MATRIX ROTASI

NAMA : ________________
NIM : _________________
PESAWAT : _________________

TEKNIK DIRGANTARA
FAKULTAS TEKNIK MESIN DAN DIRGANTARA
INSTITUT TEKNOLOGI BANDUNG
2023
MODUL 1

Modul ini memberikan langkah-langkah untuk (i) membuat representasi geometri sederhana dari
sebuah pesawat udara, di dalam lingkungan pemrograman MATLAB, (ii) mengaplikasikan mtarix
transformasi untuk rotasi dalam ruang 3 Dimensi, (iii) Mengerti beda dan hubungan antara rotasi
aktif dan rotasi pasif (proyeksi).

Pada modul ini, anda diminta untuk mengisinya langsung pada modul dengan tulisan tangan
dan/atau menempelkan tangkapan layar (screenshot) sesuai yang diminta. Anda boleh mengisinya
secara manual (dicetak terlebih dahulu, lalu diisi manual dengan alat tulis dan menempelkan hasil
cetak tangkapan layar), atau secara digital (dengan menggunakan aplikasi yang bisa menulis dan
menempelkan gambar di file PDF). Perhatikan nomor terakhir modul ini untuk petunjukkan
pengumpulan.

Selamat mengerjakan.

Pengampu AE3220 - 2023


YIJ-HM

NOMOR 1

Tentukan pesawat yang ditugaskan untuk anda, sesuai dengan angka terakhir NIM anda:

0  B747-400 4  B737-800 8  C-130 Hercules


1  HA-420 HondaJet 5  A380-800 9  A320
2  DHC-Twin Otter 6  Q400
3  Cessna Citation X+ 7  ATR 72-600
Pilih three-view drawing yang disederhanakan dari pesawat anda pada file “SimpleAircraft”, dan
tuliskan nama anda pada lembar tersebut untuk dilampirkan saat anda mengumpulkan modul
pertama ini. Tuliskan juga nama pesawat anda pada halaman cover modul ini.

NOMOR 2

Tentukan dan tuliskan pada tabel di bawah, koordinat (X, Y, dan Z , 3 Dimensi) dari titik-titik penting
pesawat anda, berdasarkan three-view drawing yang disederhanakan. Anda dapat menggunakan
penggaris dan penyesuaian skala, atau dengan perhitungan berdasarkan data yang tertera. Tuliskan
dalam Satuan Internasional (SI), dengan dua angka di belakang koma. Perhatikan arah koordinat
pengukuran yang dipakai pada gambar.

1
Koordinat [m]
Titik
X Y Z
CG 0
SAYAP
W1
W2
W3
W4
W5
W6
HTP
H1
H2
H3
H4
H5
H6
VTP
V1
V2
V3
V4

2
NOMOR 3

Tentukan stasiun-stasiun penampang fuselage anda (min. 16, max. 20), dengan konsentrasi pada
bagian profil (tampak samping) yang berubah-ubah, sebagaimana gambar di bawah. Kemudian
tentukan koordinat dari titik profil fuselage (X dan Z), dengan koordinat Y menjadi nol. Tuliskan dalam
Satuan Internasional (SI), dengan dua angka di belakang koma. Perhatikan arah koordinat
pengukuran yang dipakai pada gambar.

Koordinat [m]
Stasiun
X Y Z upper Z lower
1 0 0 0 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
10 0
11 0
12 0
13 0
14 0
15 0
16 0
17 0
18 0
19 0
20 0

3
NOMOR 4

Buatlah suatu m-file dengan nama: Modul01a_NIMAnda.m (contoh: Modul01a_13601011.m), yang


nantinya akan dikumpulkan sebagai lampiran modul ini. Masukkan data-data geometri pada nomor
2 dan 3 ke dalam Matlab ke dalam suatu matrix koordinat (3 x jumlah data), sebagaimana contoh
pada tabel di bawah ini.

Perhatikan:

1. Perhatikan bahwa di sini kita menggunakan Tata Acuan Koordinat benda, dengan X positif ke
depan, Z positif ke bawah.
2. Data dimasukkan dalam sebagai matrix, dengan baris berurutan untuk data koordinat X, Y,
dan Z.

3. Untuk koordinat X dan Z, kita kurangkan dengan posisi CG (X dan Z juga), setelahnya, untuk
membuat CG menjadi koordinat (0,0,0)
4. Untuk fuselage, data yang anda masukkan harus secara berurutan mulai dari datum, ke
bagian atas fuselage (upper), lalu berputar ke bawah (dari belakang) hingga mencapai datum
kembali. Dengan kata lain, koordinat X diisikan dua kali, dengan cerminannya.
5. Untuk data yang panjang, seperti pada fuselage, kita bisa memasukkan datanya per sumbu,
dan digabungkan di akhir.

Kode (m-file) Arti


% Demonstrasi TAK dan Orientasi  Keterangan
% Dinamika Terbang FTMD ITB
close all; clear all; clc  Menutup figure, menghapus data,
membersihkan layar
%Data-data geometri
%Center of Gravity
XCG = -27.27;  Data posisi CG (X dan Z)
ZCG = 0.0;

%Data Sayap
WngDat =[-20.06 -37.51 -39.59 -31.94 -31.94 -39.59 -37.51 -20.06;  Data Koordinat Sayap (X, Y, dan Z)
0.0 30.00 30.00 0.0 Er 0.0 -30.00 -30.00 0.0;
1.05 -1.56 -1.56 1.05 1.05 -1.56 -1.56 1.05];
WngDat(1,:) = WngDat(1,:)-XCG;  Geser agar CG menjadi titik asal (origin)
WngDat(3,:) = WngDat(3,:)-ZCG;

%Data HTP
HTPDat=[-52.80 -60.28 -62.77 -60.17 -60.17 -62.77 -60.28 -52.80  Data Koordinat HTP (X, Y, dan Z)
0.0 10.91 10.91 0.0 0.0 -10.91 -10.91 0.0
-2.09 -3.61 -3.61 -2.09 -2.09 -3.61 -3.61 -2.09];
HTPDat(1,:) = HTPDat(1,:)-XCG;  Geser agar CG menjadi titik asal (origin)
HTPDat(3,:) = HTPDat(3,:)-ZCG;

%Data VTP
 Data Koordinat VTP (X, Y, dan Z)
VTPDat =[-49.38 -56.86 -59.35 -56.75;
0.0 0.0 0.0 0.0;
-2.73 -13.64 -13.64 -2.73];

4
VTPDat(1,:) = VTPDat(1,:)-XCG;  Geser agar CG menjadi titik asal (origin)
VTPDat(3,:) = VTPDat(3,:)-ZCG;

%Data Fuselage
FusDatX =[ 0.00 -0.17 -0.34 -0.51 -0.68 -1.02 -1.36 -2.05 ...  Data Koordinat Fuselage pada sumbu X
-2.73 -4.09 -5.46 -8.18 -10.91 -46.36 -54.55 -62.73 ...
-62.73 -54.55 -46.36 -10.91 -8.18 -5.46 -4.09 -2.73 ...
-2.05 -1.36 -1.02 -0.68 -0.51 -0.34 -0.17 0.00];
FusDatY = FusDatX*0;
 Data Koordinat Fuselage pada sumbu Y
FusDatZ = [0.00 -0.43 -0.58 -0.70 -0.80 -1.03 -1.30 -1.75 ...
 Data Koordinat Fuselage pada sumbu Z
-2.12 -2.69 -3.11 -3.64 -3.88 -3.91 -3.78 -3.28 ...
-2.00 0.08 2.29 2.29 2.28 2.10 1.89 1.59 ...
1.38 1.12 0.96 0.77 0.66 0.53 0.36 0.00];
FusDat = [FusDatX; FusDatY; FusDatZ];
 Penggabungan data X,Y, dan Z ke satu
FusDat (1,:) = FusDat (1,:)-XCG; matrix
FusDat (3,:) = FusDat (3,:)-ZCG;  Geser agar CG menjadi titik asal (origin)

NOMOR 5

Lanjutkan m-file anda pada nomor 4, dengan kode untuk membuat bidang-bidang pada ruang 3D
yang membentuk pesawat anda. Gunakan perintah PATCH sebagaimana contoh pada tabel di bawah
ini.
Perhatikan:

1. Buat setiap PATCH sebagai object dengan nama tertentu, untuk mempermudah manipulasi
nantinya.
2. Atur agar axis/koordinat pada Figure 1 dis et untuk REVERSE pada sumbi Y dan Znya, agar
sesuai dengan definisi sumbu pada analisis Dinamika Terbang (Y ke kanan, dan Z ke bawah)
3. Beri judul (title) pada gambar anda dengan format ‘nama pesawat anda’ + ‘NIM anda’.
4. Atur pula agar skala sumbu sama dengan axis equal, agar gambar tidak terdistorsi. Beri grid
untuk melihat skalanya.
5. Anda dapat mencoba run m-file anda. Secara default, akan tertampilkan pandangan sumbu X
dan Y saja (Topview). Anda dapat mengatur pandangan secara manual dengan mengklik
simbol yang akan muncul di kanan atas axis pesawat, atau dengan memberi perintah
view untuk mengatur pandangan menjadi pandangan perspektif (3D)

Kode (m-file) Arti

...
figure(1)  Inisiasi figure -1

%Pembentukan bidang-bidang pesawat


Wing = patch(WngDat(1,:), WngDat(2,:), WngDat(3,:),'r');  Pembentukan object patch bidang
sayap, dengan nama “Wing”
hold on;  Agar gambar lama tidak terhapus pada
figure-1
HTP = patch(HTPDat(1,:),HTPDat(2,:),HTPDat(3,:),'b');  Pembentukan object patch bidang HTP,
dengan nama “HTP”

VTP =patch(VTPDat(1,:),VTPDat(2,:),VTPDat(3,:),'g');  Pembentukan object patch bidang VTP,


dengan nama “VTP”

 Pembentukan object patch bidang


Fuse = patch(FusDat(1,:),FusDat(2,:),FusDat(3,:),'c');
Fuselage, dengan nama “Fuse”

%Pengaturan Axis

5
set(gca,'Ydir','reverse','Zdir','reverse')  Pengaturan orientasi koordinat,
agar sumbu Y positif ke kanan, dan
Z positif ke bawah’
grid on;  Pemberian garis-garis grid
axis equal;
 Penyamaan skala untuk sumbu X,
Y, dan Z

title('B777 13601011')
 Pemberian judul gambar
%Pengaturan Pandangan
view([45 20]);
 Pengaturan posisi kamera (POV)

NOMOR 6

Beri aksesoris untuk memperjelas perputaran yang akan anda lakukan pada nomor selanjutnya.
Aksesoris ini adalah sumbu-sumbu: benda, angin, dan horizon-lokal, bola penanda posisi CG, bola
transparan sekeliling pesawat, dan dua lingkaran panduan. Buat sebagaimana contoh pada tabel
berikut. Anda boleh menambahkan aksesoris lain untuk memperjelas.

Kode (m-file) Arti

...
%Data koordinat bola
[xbul, ybul, zbul] = sphere(20);  Inisiasi data bola dengan radius 1, pada
ruang 3D (X, Y, dan Z), dengan 20+1
data setiap lingkaran penampang

%Bola CG  Pembentukan permukaan bola CG


surf(xbul, ybul, zbul); (radius 1) di Figure-1, dari data xbul,
ybul, dan zbul

%Bola Span
 Definisi semi-span sayap (nilai max dari
WgSp = max(WngDat(2,:));
data koordinat sayap)

6
 Inisiasi data bola dengan radius semi-
xbSp = xbul*WgSp; span, pada ruang 3D (X, Y, dan Z),
ybSp = ybul*WgSp; dengan memperbesar data bola
zbSp = zbul*WgSp; sebelumnya

 Pembentukan permukaan bola Span


surf(xbSp,ybSp,zbSp,'FaceAlpha',0.1,'linestyle','none');
(radius semi-span) di Figure-1, dengan
membuatnya transparan (nilai face
alpha < 1, tanpa garis bantu.

%Lingkaran panduan  Pembentukan bidang horizontal,


patch(xbSp (11,:), ybSp (11,:), xbSp(1,:)*0,'r',... berdasarkan lingkaran tengah
'FaceAlpha',0.2) horizontal bola span (data baris ke 11),
transparan

 Pembentukan bidang vertikal


patch(xbSp (11,:), xbSp (1,:)*0,ybSp (11,:),'g',... berdasarkan lingkaran tengah vertikal
'FaceAlpha',0.2) bola span (data ke 11), transparan

%Sumbu / Acuan koordinat


%Data  Inisiasi data sumbu koordinat X, Y, dan
AlAx = [0 WgSp 0 0 0 0; Z, dengan panjang semi-span
0 0 0 WgSp 0 0;
0 0Er 0 0 0 WgSp];

%Sumbu Horizon Lokal  Pembentukan garis sumbu horizon


LHax = line(AlAx(1,:),AlAx(2,:),AlAx(3,:),'color','k', ... lokal dengan nama ‘Lhax’, warna hitam
'linewidth',1);

%Sumbu Angin
Wiax = line(AlAx(1,:),AlAx(2,:), AlAx(3,:),'color','b',...  Pembentukan garis sumbu angin
'linewidth',1); dengan nama ‘Wiax’, warna biru

%Sumbu Benda
 Pembentukan garis sumbu benda
Boax = line(AlAx(1,:),AlAx(2,:), AlAx(3,:),'color','r', ...
dengan nama ‘Boax’, warna merah
'linewidth',1);

%Pengaturan Axis  Penyamaan kembai skala untuk sumbu


axis equal; X, Y, dan Z

NOMOR 7: PUTARAN AKTIF PLANAR (SUMBU Y)

Pada gambar yang anda buat sebelumnya, seluruh sumbu yang ada berimpit, satu sama lain.

Putar dan animasikan pesawat dan sumbu benda anda, seputar sumbu Y benda, dengan urutan: 5,
10, 15, …, 30, 25, 20 …, -10, -5, 0 [derajat]. Perhatikan untuk melakukan putaran ini, kita cukup
melakukan perkalian matrix dari koordinat-koordinat setiap bidang pesawat dengan matrix rotasi
aktif, di sekeliling sumbu y- horizon lokal, sebagaimana berikut:

 cos θ 0 sin θ 
R =  0
Yh
1 0 
 − sin θ 0 cos θ 

7
Buat tambahan pada m-file anda sebagaimana tertera pada tabel berikut ini, dan coba run m-file
tersebut. Anda dapat juga bereksperimen dengan sudut pitch yang berbeda-beda.

Kode (m-file) Arti

...
%putaran pitch murni
%data pitch
pitc = [5 10 15 20 25 30 25 20 15 10 5 0 -5 -10 -5 0];  Inisiasi data sudut pitch yang akan
dianimasi

%loop animasi pitch


 Lakukan loop sepanjang data pitc
for i = 1:length(pitc) Er
APRot = [cosd(pitc(i)) 0 sind(pitc(i));  Pembentukan matrix rotasi aktif,
0 1 0; seputar sumbu Y, dengan nama ‘APRot’
-sind(pitc(i)) 0 cosd(pitc(i))];

NuWDat = APRot*WngDat;  Pembentukan koordinat baru, dengan


NuHDat = APRot*HTPDat; mengkalikan matrix rotasi dengan
NuVDat = APRot*VTPDat; matrix-matrix koordinat bidang
NuFDat = APRot*FusDat; pesawat
NuAlAx = APRot*AlAx;

set(Wing,'Xdata',NuWDat(1,:),'YData',NuWDat(2,:),...
'ZData',NuWDat(3,:))  Pengaturan (set) properti Xdata, Ydata,
set(HTP,'Xdata',NuHDat(1,:),'YData',NuHDat(2,:),... dan Zdata untuk object dengan nama
Wing, HTP, VTP, Fuse, dan Boax.
'ZData',NuHDat(3,:))
set(VTP,'Xdata',NuVDat(1,:),'YData',NuVDat(2,:),...
'ZData',NuVDat(3,:))
set(Fuse,'Xdata',NuFDat(1,:),'YData',NuFDat(2,:),...
'ZData',NuFDat(3,:))
set(Boax,'Xdata',NuAlAx(1,:),'YData',NuAlAx(2,:),...
'ZData',NuAlAx(3,:))

pause(0.2)  Menahan running m-file untuk 0,2 detik


agar pergerakan bisa dilihat pada figure
-1
end

NOMOR 8: PUTARAN AKTIF PLANAR (SUMBU X DAN Z)

Putar dan animasikan pesawat dan sumbu benda anda juga, dengan urutan sudut yang sama, seputar
sumbu X dan Z benda. Untuk melakukan putaran ini, kita memanfaatkan matrix rotasi aktif untuk
sumbu X dan Z, sebagai berikut:

1 0 0  cosψ − sinψ 0
 − sin ϕ  , R =  sinψ
 0 
0 cos ϕ cosψ
Xh Zh
=R
0 sin ϕ cos ϕ   0 0 1 

Simpan animasi yang anda buat (termasuk putaran pitch sebelumnya) dalam format GIF, dengan
nama file: Modul01g_NIMAnda.gif (contoh: Modul01g_13601011.gif), yang akan dikumpulkan
bersama modul ini (cek pada folder pengerjaan matlab anda). Lakukan sebagaimana tambahan m-
file pada tabel di bawah ini.

8
Perhatian: Anda harus meletakkan beberapa baris kode pada loop gerakan pitch sebelumnya, untuk
inisialisasi pembuatan gif.

Kode (m-file) Arti

...
%putaran pitch murni  Bagian awal putaran pitch, nomor
sebelumnya
...

for i = 1:length(pitc)
...

pause(0.2)

% Pembuatan Gif
% Capture plot sebagai image
frame = getframe(gcf);  Ambil yang tertampil di figure yang
aktif (figure -1) sebagai ‘frame’
im = frame2im(frame);  ubah ‘frame’ sebagai data matrix image
matlab (default rgb)
[imind,cm] = rgb2ind(im,256);  ubah data rgb menjadi index dengan
warna (color map) 256 warna, ke
variabel dengan nama imind dan cm.
% buat gif
if i == 1  Inisiasi (frame pertama file gifnya)
imwrite(imind,cm,'Modul01g_13601011.gif','gif', ...  Tuliskan data index imind dengan
'Loopcount',inf,'DelayTime',0.1); colormap cm ke dalam file dengan
nama ‘Modul01g … .gif’ yang berformat
gif, yang akan looping tak hingga (inf),
dengan delay per frame 0.1 detik.

else  Untuk frame file gif selanjutnya

imwrite(imind,cm,'Modul01g_13601011.gif','gif',...  tambahkan (‘append’) frame yang


'WriteMode','append','DelayTime',0.1); tertangkap ke dalam file ‘Modul ..”
yang sudah ada

end

end  Akhir loop animasi pitch

%putaran roll murni


%data roll
roll = [5 10 15 20 25 30 25 20 15 10 5 0 -5 -10 -5 0];  Inisiasi data sudut roll yang akan
dianimasi
%loop animasi roll
for i = 1:length(roll)  Lakukan loop sepanjang data roll

ARRot = [ 1 0 Er0  Pembentukan matrix rotasi aktif,


0 cosd(roll(i)) -sind(roll(i)); seputar sumbu X, dengan nama ‘ARRot’
0 sind(roll(i)) cosd(roll(i))];

NuWDat = ARRot*WngDat;  Pembentukan koordinat baru, dengan


NuHDat = ARRot*HTPDat; mengkalikan matrix rotasi dengan
matrix-matrix koordinat bidang
NuVDat = ARRot*VTPDat;
pesawat
NuFDat = ARRot*FusDat;
NuAlAx = ARRot*AlAx;

set(Wing,'Xdata',NuWDat(1,:),'YData',NuWDat(2,:),...  Pengaturan (set) properti Xdata, Ydata,


'ZData',NuWDat(3,:)) dan Zdata untuk object dengan nama
set(HTP,'Xdata',NuHDat(1,:),'YData',NuHDat(2,:),... Wing, HTP, VTP, Fuse, dan Boax.
'ZData',NuHDat(3,:))
set(VTP,'Xdata',NuVDat(1,:),'YData',NuVDat(2,:),...
'ZData',NuVDat(3,:))
set(Fuse,'Xdata',NuFDat(1,:),'YData',NuFDat(2,:),...

9
'ZData',NuFDat(3,:))
set(Boax,'Xdata',NuAlAx(1,:),'YData',NuAlAx(2,:),...
'ZData',NuAlAx(3,:))

pause(0.2)
 Menahan running m-file untuk 0,2
% Pembuatan Gif detik agar pergerakan bisa dilihat
% Capture plot sebagai image
frame = getframe(gcf);
 Ambil yang tertampil di figure yang
im = frame2im(frame); aktif (figure -1) sebagai ‘frame’
 ubah ‘frame’ sebagai data matrix image
[imind,cm] = rgb2ind(im,256); matlab (default rgb)
 ubah data rgb menjadi index dengan
warna (color map) 256 warna, ke
% buat gif variabel dengan nama imind dan cm.
imwrite(imind,cm,'Modul01g_13601011.gif','gif',...
'WriteMode','append','DelayTime',0.1);  tambahkan (‘append’) frame yang
tertangkap ke dalam file ‘Modul ..”
yang sudah ada
end
 akhir loop animasi roll

%putaran yaw murni


%data yaw
yaww = [5 10 15 20 25 30 25 20 15 10 5 0 -5 -10 -5 0];
 Inisiasi data sudut roll yang akan
%loop animasi roll dianimasi
for i = 1:length(yaww)
AYRot = [cosd(yaww (i)) -sind(yaww (i)) 0;  Lakukan loop sepanjang data yaww
sind(yaww (i)) cosd(yaww (i)) 0;  Pembentukan matrix rotasi aktif,
0 0 r 1]; seputar sumbu Z, dengan nama ‘AYRot’

NuWDat = AYRot*WngDat;
NuHDat = AYRot*HTPDat;  Pembentukan koordinat baru, dengan
NuVDat = AYRot*VTPDat; mengkalikan matrix rotasi dengan
NuFDat = AYRot*FusDat; matrix-matrix koordinat bidang
NuAlAx = AYRot*AlAx; pesawat

set(Wing,'Xdata',NuWDat(1,:),'YData',NuWDat(2,:),...
'ZData',NuWDat(3,:))
set(HTP,'Xdata',NuHDat(1,:),'YData',NuHDat(2,:),...  Pengaturan (set) properti Xdata, Ydata,
'ZData',NuHDat(3,:)) dan Zdata untuk object dengan nama
set(VTP,'Xdata',NuVDat(1,:),'YData',NuVDat(2,:),... Wing, HTP, VTP, Fuse, dan Boax.
'ZData',NuVDat(3,:))
set(Fuse,'Xdata',NuFDat(1,:),'YData',NuFDat(2,:),...
'ZData',NuFDat(3,:))
set(Boax,'Xdata',NuAlAx(1,:),'YData',NuAlAx(2,:),...
'ZData',NuAlAx(3,:))

pause(0.2)
 Menahan running m-file untuk 0,2
% Pembuatan Gif detik agar pergerakan bisa dilihat
% Capture plot sebagai image
frame = getframe(gcf);
 Ambil yang tertampil di figure yang
aktif (figure -1) sebagai ‘frame’
im = frame2im(frame);
 ubah ‘frame’ sebagai data matrix image
matlab (default rgb)
[imind,cm] = rgb2ind(im,256);  ubah data rgb menjadi index dengan
warna (color map) 256 warna, ke
variabel dengan nama imind dan cm.
% buat gif
imwrite(imind,cm,'Modul01g_13601011.gif','gif',...  tambahkan (‘append’) frame yang
'WriteMode','append','DelayTime',0.1); tertangkap ke dalam file ‘Modul ..”
yang sudah ada
end
 akhir loop animasi yaw

10
NOMOR 9: HUBUNGAN DENGAN MATRIX TRANSFORMASI

Perhatikan bahwa matrix rotasi aktif yang digunakan pada nomor sebelumnya, adalah inverse dari
matrix transformasi (rotasi pasif) TAK horizon lokal ke TAK benda (yang tertulis pada slide kuliah).
Yang berarti adalah matrix transformasi TAK benda ke TAK horizon lokal.

Buktikan dengan menuliskan kembali matrix-matrix tersebut (per sumbu) pada tabel di bawah ini.

Putaran Sumbu X (Roll)


Matrix Transformasi: Inverse dari Matrix Transformasi Matrix putaran aktif
TAK horison lokal ke TAK benda
C X bh C X bh R Xh

1 0 0 
0 cos ϕ − sin ϕ 

0 sin ϕ cos ϕ 

Putaran Sumbu Y (Pitch)


Matrix Transformasi: Inverse dari Matrix Transformasi Matrix putaran aktif
TAK horison lokal ke TAK benda
CY bh CY bh RYh

 cos θ 0 sin θ 
 0 1 0 

 − sin θ 0 cos θ 

Putaran Sumbu Z (Yaw)


Matrix Transformasi: Inverse dari Matrix Transformasi Matrix putaran aktif
TAK horison lokal ke TAK benda
CZ bh CZ bh R Zh

cosψ − sinψ 0
 sinψ cosψ 0 

 0 0 1 

NOMOR 10: ORIENTASI 3 DIMENSI

Pada dasarnya, memutar koordinat geometri pesawat udara ke orientasi tertentu, sama artinya
dengan mentransformasikan koordinat-koordinat tersebut (yang ada di sumbu benda) ke sumbu
horizon lokal.

11
Ubah orientasi pesawat anda dengan sudut-sudut sikap sebagai berikut: Pitch (θ) 30o, Yaw (ψ) 80 o,
dan roll (ϕ) 20 o. Lakukan hal ini dua kali dengan urutan putar ZYX dan XYZ, sebagaimana tertulis pada
tabel di bawah (contoh dilakukan dengan animasi per 5 derajat, untuk melihat prosesnya). Urutan
yang manakah yang akan memberikan hasil sesuai bayangan anda?

Screenshot kedua hasilnya, lalu tempelkan pada dua kolom yang tersedia di bawah. Tandai urutan
yang benar dengan memberi tanda contreng.

Setelah Putaran Aktif dengan urutan Z-Y-X

Setelah Putaran Aktif dengan urutan X-Y-Z

12
Kode (m-file) Arti

...

%Inisiasi
NuWDat = WngDat;  Pindah data agar urutan putaran bisa
NuHDat = HTPDat; mudah diulang dan dibolak-balik
NuVDat = VTPDat;
NuFDat = FusDat;
NuAlAx = AlAx;

%Data orientasi
rolli = 20;  Data orientasi tujuan
pitci = 30;
yawwi = 80;
Step = 5;  Gerakan untuk animasi (per 5 degree)

%Urutan ZYX =====  Pertama, urutan ZYX

%putaran yaw murni (Z)  Loop putaran sumbu Z (Yaw)


ii = 0;  Inisiasi counter ii
while ii < yawwi  Menggunakan loop while, gerakkan per
5 degree hingga sudut tujuan tercapai

AYRot = [cosd(Step) -sind(Step) Er0;  Pembentukan matrix rotasi aktif,


sind(Step) cosd(Step) 0; seputar sumbu Z, dengan nama ‘AYRot’
0 0 1];

NuWDat = AYRot*NuWDat;  Pembentukan koordinat baru, dengan


NuHDat = AYRot*NuHDat; mengkalikan matrix rotasi dengan
NuVDat = AYRot*NuVDat; matrix-matrix koordinat yang sudah
diupdate pada loop sebelumnya
NuFDat = AYRot*NuFDat;
NuAlAx = AYRot*NuAlAx;
Er
set(Wing,'Xdata',NuWDat(1,:),'YData',NuWDat(2,:),...
'ZData',NuWDat(3,:))  Pengaturan (set) properti Xdata, Ydata,
set(HTP,'Xdata',NuHDat(1,:),'YData',NuHDat(2,:),... dan Zdata untuk object dengan nama
'ZData',NuHDat(3,:)) Wing, HTP, VTP, Fuse, dan Boax.
set(VTP,'Xdata',NuVDat(1,:),'YData',NuVDat(2,:),...
'ZData',NuVDat(3,:))
set(Fuse,'Xdata',NuFDat(1,:),'YData',NuFDat(2,:),...
'ZData',NuFDat(3,:))
set(Boax,'Xdata',NuAlAx(1,:),'YData',NuAlAx(2,:),...
'ZData',NuAlAx(3,:))

pause(0.2)  Pause untuk melihat proses


ii = ii+Step; Er=1;  Update counter ii
end  Akhir loop putaran Yaw

%putaran pitch murni (Y)


ii = 0;  Reset counter ii
while ii < pitci  idem, tapi untuk putaran sumbu Y,
APRot = [cosd(Step) 0 sind(Step); pitch
0 1 0;
-sind(Step) 0 cosd(Step)];

NuWDat = APRot*NuWDat;
NuHDat = APRot*NuHDat;
NuVDat = APRot*NuVDat;
NuFDat = APRot*NuFDat;
NuAlAx = APRot*NuAlAx;

set(Wing,'Xdata',NuWDat(1,:),'YData',NuWDat(2,:),...
'ZData',NuWDat(3,:))
set(HTP,'Xdata',NuHDat(1,:),'YData',NuHDat(2,:),...
'ZData',NuHDat(3,:))
set(VTP,'Xdata',NuVDat(1,:),'YData',NuVDat(2,:),...
'ZData',NuVDat(3,:))
set(Fuse,'Xdata',NuFDat(1,:),'YData',NuFDat(2,:),...
'ZData',NuFDat(3,:))

13
set(Boax,'Xdata',NuAlAx(1,:),'YData',NuAlAx(2,:),...
'ZData',NuAlAx(3,:))

pause(0.2)
ii = ii+Step;
end  Akhir loop putaran Pitch

%putaran roll murni (X)


ii = 0;  Reset counter ii
while ii < rolli  idem, tapi untuk putaran sumbu X, roll
ARRot = [ 1 0 0
0 cosd(Step) -sind(Step);
0 sind(Step) cosd(Step)];

NuWDat = ARRot*NuWDat;
NuHDat = ARRot*NuHDat;
NuVDat = ARRot*NuVDat;
NuFDat = ARRot*NuFDat;
NuAlAx = ARRot*NuAlAx;

set(Wing,'Xdata',NuWDat(1,:),'YData',NuWDat(2,:),...
'ZData',NuWDat(3,:))
set(HTP,'Xdata',NuHDat(1,:),'YData',NuHDat(2,:),...
'ZData',NuHDat(3,:))
set(VTP,'Xdata',NuVDat(1,:),'YData',NuVDat(2,:),...
'ZData',NuVDat(3,:))
set(Fuse,'Xdata',NuFDat(1,:),'YData',NuFDat(2,:),...
'ZData',NuFDat(3,:))
set(Boax,'Xdata',NuAlAx(1,:),'YData',NuAlAx(2,:),...
'ZData',NuAlAx(3,:))

pause(0.2)
ii = ii+Step;
 Akhir loop putaran Roll
end

 Screenshot sesuai yang diputuhkan


pause(0.2) tugas ini, sebelum melanjutkan

%reset posisi pesawat  Reset posisi pesawat, dimana semua


set(Wing,'Xdata',WngDat(1,:),'YData',WngDat(2,:),... sumbu berimpit
'ZData',WngDat(3,:))
set(HTP,'Xdata',HTPDat(1,:),'YData',HTPDat(2,:),...
'ZData',HTPDat(3,:))
set(VTP,'Xdata',VTPDat(1,:),'YData',VTPDat(2,:),...
'ZData',VTPDat(3,:))
set(Fuse,'Xdata',FusDat(1,:),'YData',FusDat(2,:),...
'ZData',FusDat(3,:))
set(Boax,'Xdata',AlAx(1,:),'YData',AlAx(2,:),...
'ZData',AlAx(3,:))

%inisiasi kembali
NuWDat = WngDat;
NuHDat = HTPDat;  Reset data yang akan dipakai
NuVDat = VTPDat;
NuFDat = FusDat;
NuAlAx = AlAx;

c
…  Tuliskan sendiri untuk putaran dengan
urutan XYZ

14
NOMOR 11: DCM

Anda juga dapat melakukan perputaran 3D pada tiga orientasi sudut, dengan mengkalikan matrix
transformasi elemental terlebih dahulu menjadi satu matrix DCM, lalu putar sekaligus (coba sendiri,
bukan bagian dari modul ini). Ingat, dari slide materi, untuk transformasi dari TAK horizon lokal ke
TAK Benda, DCM didapatkan dari perkalian berikut (tuliskan bentuk DCM finalnya)

1 0 0  cos  0 − sin    cos sin 0


C =C C C
h h h h 
= 0 cos  sin    0 1 0   − sin cos 0 
b Xb Yb Zb

0 − sin  cos    sin  0 cos    0 0 1 


DCM Final:

Cbh =

Sedangkan sebaliknya untuk transformasi dari TAK benda ke TAK Horizon Lokal, dapat dicari dari
inversenya, yang juga merupakan transposenya: (Perhatikan bahwa mentranspose produk dari
matrix akan membalikkan urutannya perkaliannya!)
T T T T T
Chb = Cbh  = C X bhCY bhCZ bh  = CZ bh  CY bh  C X bh 
cos − sin 0   cos  0 sin   1 0 0 

=  sin cos 0   0   1  
0  0 cos  − sin  
 0 0 1   − sin  0 cos   0 sin  cos  
DCM Final:

Chb =

14
NOMOR 12: KUMPULKAN

Buat modul yang telah terisi sesuai petunjuk menjadi file *.pdf dengan format nama
“Modul01_[NIM]_NamaPesawat.pdf”. Lalu kumpulkan melalui kolom tugas yang telah disediakan,
beserta dengan m-file dan animasi gif yang telah dibuat.

=== akhir dari Modul 1 ===

MODUL 1 PRAKTIKUM
AE3220 DINAMIKA TERBANG
Teknik Dirgantara FTMD ITB
Slide Materi: Chapter 2: Frames of
Reference and Orientation
Software: MATLAB

Penulis: YAZDI Ibrahim Jenie


KK: Fisika Terbang
Tahun: 2023

16

Anda mungkin juga menyukai