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.
NOMOR 1
Tentukan pesawat yang ditugaskan untuk anda, sesuai dengan angka terakhir NIM anda:
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
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.
%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)
...
figure(1) Inisiasi figure -1
%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.
...
%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 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
%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);
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.
...
%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
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,:))
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.
...
%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.
end
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
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.
1 0 0
0 cos ϕ − sin ϕ
0 sin ϕ cos ϕ
cos θ 0 sin θ
0 1 0
− sin θ 0 cos θ
cosψ − sinψ 0
sinψ cosψ 0
0 0 1
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.
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)
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
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
%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)
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.
MODUL 1 PRAKTIKUM
AE3220 DINAMIKA TERBANG
Teknik Dirgantara FTMD ITB
Slide Materi: Chapter 2: Frames of
Reference and Orientation
Software: MATLAB
16