diff --git a/latex/chapters/id/03_methodology/data_analysis/index.tex b/latex/chapters/id/03_methodology/data_analysis/index.tex new file mode 100644 index 0000000..a97b935 --- /dev/null +++ b/latex/chapters/id/03_methodology/data_analysis/index.tex @@ -0,0 +1,151 @@ +\section{Analisis Data} +\subsection{Grid, Kode \textit{Joint}, dan Nama File} + +% \begin{figure}[ht] +% \centering +% \input{chapters/img/specimen} +% \caption{Caption} +% \label{fig:enter-label} +% \end{figure} +% Dimulai dengan memberi indeks pada setiap node pengukuran dari struktur grid berukuran 6$\times$5 menggunakan sebuah bilangan bulat tunggal \(k\) dari nol hingga dua puluh sembilan. Setiap sinyal domain waktu mentah disimpan dalam file yang dinamai berdasarkan indeks ini: +% \begin{equation*} +% F_{k} = \texttt{``zzzAD}k\texttt{.TXT,''} +% \quad k = 0,1,\dots,29. +% \end{equation*} + +Direpresentasikan \(F_{k}\) di sini sebagai nama file untuk \textit{node} ke-\(k\). Kemudian dilampirkan nama file tersebut sebagai superskrip pada simbol \textit{node}: +\begin{equation*} +n_{k}^{F_{k}} +\quad\text{adalah \textit{node} dengan indeks }k\text{ yang datanya diambil dari \textit{file} }F_{k}. +\end{equation*} + +\subsection{Pemetaan Sensor} + +Semua tiga puluh node dikelompokkan ke dalam enam folder ``damage-case``, dilabeli \(d_{i}\) untuk \(i=0,\dots,5\). Setiap folder berisi tepat lima node berurutan, yang merepresentasikan satu skenario kerusakan: +\begin{equation*} +d_{i} = \bigl\{\,n_{5i}^{F_{5i}},\;n_{5i+1}^{F_{5i+1}},\;\dots,\;n_{5i+4}^{F_{5i+4}}\bigr\}, +\quad i = 0,\dots,5. +\end{equation*} +Atau secara konkrit, +\begin{align*} +d_0&=\{n_{0}^{F_0},\;n_{1}^{F_1},\;n_{2}^{F_2},\;n_{3}^{F_3},\;n_{4}^{F_4}\}\\ +d_1&=\{n_{5}^{F_5},\;n_{6}^{F_6},\;n_{7}^{F_7},\;n_{8}^{F_8},\;n_{9}^{F_9}\}\\ +\;\;\vdots\\ +d_5&=\{n_{25}^{F_{25}},\;n_{26}^{F_{26}},\;n_{27}^{F_{27}},\;n_{28}^{F_{28}},\;n_{29}^{F_{29}}\}\\ +\end{align*} + +\subsection{Seleksi Sensor \textit{Node} Ujung-Ujung (Domain Waktu)} + +Dari setiap folder kerusakan, kita hanya menyimpan \textit{node} pertama dan terakhir untuk mensimulasikan tata letak sensor terbatas. Subset domain waktu ini dilambangkan dengan \(d_{i}^{\mathrm{TD}}\): +\begin{equation*} +d_{i}^{\mathrm{TD}} += \bigl\{\,n_{5i}^{F_{5i}},\;n_{5i+4}^{F_{5i+4}}\bigr\}, +\quad |d_{i}^{\mathrm{TD}}| = 2. +\end{equation*} + +\subsection{Ekstraksi Fitur} + +Kemudian, didefinisikan operator STFT \(\mathcal{T}\) untuk memetakan sinyal domain waktu mentah dengan panjang \(L=262144\) sampel menjadi sebuah spektrogram berukuran \(513\times513\). Kemudian digunakan \textit{Hanning window} dengan panjang \(N_{w}=1024\) dan hop size \(N_{h}=512\). Bentuk kompleks dari STFT adalah: +\begin{equation*} +\begin{aligned} +\text{(1) Window function:}\quad +w[n] &= \frac12\Bigl(1 - \cos\frac{2\pi n}{N_w - 1}\Bigr), +\quad n=0,\ldots,N_w-1; \\[1ex] +\text{(2) STFT:}\quad +S_k(p,t) +&= \sum_{n=0}^{N_w-1} +x_k\bigl[t\,N_h + n\bigr] +\;w[n]\; +e^{-j2\pi p n / N_w},\\ +&\quad +p = 0,\ldots,512,\quad t = 0,\ldots,512. +\end{aligned} +\end{equation*} + +Pengambilan magnitudo menghasilkan matriks spektrogram pada bilah frekuensi $p$ dan \textit{frame} waktu $t$ untuk \textit{node} $k$ +\begin{equation*} +\widetilde n_{k}^{F_{k}}(p,t) \;=\; \bigl|S_{k}(p,t)\bigr| +\;\in\;\mathbb{R}^{513\times513}. +\end{equation*} +Dengan demikian operatornya adalah +\begin{equation*} +\mathcal{T}:\; n_{k}^{F_{k}}\in\mathbb{R}^{262144} +\;\longmapsto\; +\widetilde n_{k}^{F_{k}}\in\mathbb{R}^{513\times513}. +\end{equation*} + +\subsection{Subset Domain Frekuensi} + +Kemudian, \(\mathcal{T}\) diterapkan pada \textit{node} ujung-ujung yang telah dipilih, dihasilkan: +\begin{equation*} +d_{i}^{\mathrm{FD}} += \bigl\{\, +\widetilde n_{5i}^{F_{5i}},\; +\widetilde n_{5i+4}^{F_{5i+4}} +\,\bigr\}, +\quad +|d_{i}^{\mathrm{FD}}| = 2. +\end{equation*} + +\subsection{Pengelompokan Berdasarkan Letak Ujung Sensor} + +Sensor-sensor ujung bagian bawah dilabeli sebagai Sensor A dan Sensor-sensor ujung bagian atas dilabeli sebagai Sensor B. Semua enam kasus kerusakan dikumpulkan menjadi satu menghasilkan dua himpunan spektrogram, masing-masing berisi enam (kasus kerusakan): +\begin{equation*} +\text{Sensor A} += +\bigl\{\, +\widetilde n_{0}^{F_{0}},\, +\widetilde n_{5}^{F_{5}},\, +\dots,\, +\widetilde n_{25}^{F_{25}} +\bigr\}, +\quad +\text{Sensor B} += +\bigl\{\, +\widetilde n_{4}^{F_{4}},\, +\widetilde n_{9}^{F_{9}},\, +\dots,\, +\widetilde n_{29}^{F_{29}} +\bigr\}. +\end{equation*} + +\subsection{Perakitan Baris dan Pelabelan} + +Setiap spektrogram berukuran \(513\times513\) diartikan sebagai 513 vektor fitur berdimensi 513. Kemudian diberikan indeks pengulangan dalam satu kasus kerusakan dengan \(r\in\{0,\dots,4\}\) dan potongan waktu dengan \(t\in\{0,\dots,512\}\). Misalkan +\begin{equation*} +\mathbf{x}_{i,s,r,t}\in\mathbb{R}^{513} +\end{equation*} +menunjukkan baris (atau kolom) ke-\(t\) dari spektrogram ke-\(r\) untuk kasus kerusakan \(i\) dan sensor \(s\). Label skalar untuk kasus kerusakan tersebut adalah +\begin{equation*} +y_{i} = i,\quad i=0,\dots,5. +\end{equation*} +Kemudian didefinisikan fungsi \textit{slicing} sebagai +\begin{equation*} +\Lambda(i,s,r,t) +\;=\; +\bigl[\, +\mathbf{x}_{i,s,r,t}, +\;y_{i} +\bigr] +\;\in\;\mathbb{R}^{513+1}. +\end{equation*} + +\subsection{Bentuk Akhir Data untuk Pelatihan} + +Seluruh baris dari enam kasus kerusakan, lima pengulangan, dan 513 potongan waktu dikumpulkan menghasilkan \textit{dataset} untuk satu sisi sensor: +\begin{equation*} +\mathcal{D}^{(s)} += +\bigl\{ +\Lambda(i,s,r,t) +\;\big|\; +i=0,\dots,5,\; +r=0,\dots,4,\; +t=0,\dots,512 +\bigr\}. +\end{equation*} +Karena terdapat total \(6\times5\times513=15{,}390\) baris dan setiap baris memiliki \(513\) fitur ditambah satu kolom label, maka bentuk akhir dari data untuk satu sisi sensor yang siap digunakan untuk pelatihan adalah +\begin{equation*} +|\mathcal{D}^{(s)}| = 15\,390 \times 514. +\end{equation*} \ No newline at end of file diff --git a/latex/chapters/id/03_methodology/index.tex b/latex/chapters/id/03_methodology/index.tex new file mode 100644 index 0000000..f79d304 --- /dev/null +++ b/latex/chapters/id/03_methodology/index.tex @@ -0,0 +1,7 @@ +\chapter{METODE PENELITIAN} + +\input{chapters/id/03_methodology/material/index} +\input{chapters/id/03_methodology/tool/index} +\clearpage +\input{chapters/id/03_methodology/steps/index} +\input{chapters/id/03_methodology/data_analysis/index} \ No newline at end of file diff --git a/latex/chapters/id/03_methodology/material/index.tex b/latex/chapters/id/03_methodology/material/index.tex new file mode 100644 index 0000000..f4b259d --- /dev/null +++ b/latex/chapters/id/03_methodology/material/index.tex @@ -0,0 +1,26 @@ +\section{Benda Uji} + +Penelitian ini menggunakan data sekunder dari \textcite{abdeljaber2017}, yang tersedia secara publik dan diperoleh melalui eksperimen menggunakan \textit{Queen's University Grandstand Simulator}. Adapun rincian data yang digunakan adalah sebagai berikut: + +\begin{itemize} + \item Dataset terdiri atas rekaman respons getaran dari struktur rangka baja berukuran $6 \times 5$ yang dilengkapi dengan 30 akselerometer. + \item Setiap skenario dalam dataset mencakup satu kasus struktur tanpa kerusakan (healthy) dan 30 kasus kerusakan tunggal pada masing-masing sambungan (\textit{single-joint damage}). + \item Sinyal getaran direkam dengan frekuensi pengambilan sampel sebesar 1024 Hz selama durasi 256 detik untuk tiap skenario. + \item Kerusakan struktur disimulasikan dengan cara mengendurkan baut pada sambungan-sambungan tertentu. +\end{itemize} + +Struktur dataset yang digunakan ditampilkan pada Gambar~\ref{fig:specimen-photo}. + +% \begin{figure}[!ht] +% \centering +% \includegraphics[width=0.5\textwidth]{chapters/img/original_data.png} +% \caption{Overview of the original data used from Abdeljaber et al. (2017)} +% \label{fig:original-data} +% \end{figure} + +\begin{figure}[ht] + \centering + \includegraphics[width=0.75\linewidth]{chapters/img/specimen.png} + \caption{Bentuk benda uji} + \label{fig:specimen-photo} +\end{figure} diff --git a/latex/chapters/id/03_methodology/steps/data_acquisition.tex b/latex/chapters/id/03_methodology/steps/data_acquisition.tex new file mode 100644 index 0000000..0eaef8b --- /dev/null +++ b/latex/chapters/id/03_methodology/steps/data_acquisition.tex @@ -0,0 +1,33 @@ +Dataset yang digunakan dalam penelitian ini bersumber dari basis data getaran yang dipublikasi oleh \textcite{abdeljaber2017}. + +Dataset terdiri dari dua folder: +\begin{itemize} + \item \texttt{Dataset A/} – biasanya digunakan untuk pelatihan (training) + \item \texttt{Dataset B/} – biasanya digunakan untuk pengujian (testing) +\end{itemize} + +Setiap folder berisi 31 berkas dalam format \texttt{.TXT}, yang dinamai sesuai dengan kondisi kerusakan struktur. Pola penamaan berkas adalah sebagai berikut: + +\begin{itemize} + \item \texttt{zzzAU.TXT}, \texttt{zzzBU.TXT} — struktur tanpa kerusakan (sehat) + \item \texttt{zzzAD1.TXT}, \texttt{zzzAD2.TXT}, ..., \texttt{zzzAD30.TXT} — Dataset A, kerusakan pada sambungan 1–30 + \item \texttt{zzzBD1.TXT}, \texttt{zzzBD2.TXT}, ..., \texttt{zzzBD30.TXT} — Dataset B, kerusakan pada sambungan 1–30 +\end{itemize} + +Sepuluh baris pertama dari setiap berkas berisi metadata yang menjelaskan konfigurasi pengujian, laju sampling, dan informasi kanal. Oleh karena itu, data deret waktu percepatan dimulai dari baris ke-11 yang berisi 31 kolom: +\begin{itemize} + \item \textbf{Kolom 1:} Waktu dalam detik + \item \textbf{Kolom 2–31:} Magnitudo percepatan dari \textit{joint} 1 hingga 30 +\end{itemize} + +Setiap sinyal di-\textit{sampling} pada frekuensi $f_s = 1024$ Hz dan direkam selama durasi total $T = 256$ detik, sehingga menghasilkan: + +\begin{equation*} +N = f_s \cdot T = 1024 \times 256 = 262{,}144 \quad \text{sampel per kanal} +\end{equation*} + +Dengan demikian, setiap berkas dapat direpresentasikan sebagai matriks: +\begin{equation*} +\mathbf{X}^{(c)} \in \mathbb{R}^{262{,}144 \times 31}, \quad c = 0, 1, \dots, 30 +\end{equation*} +di mana $c$ mengacu pada indeks kasus (0 = sehat, 1–30 = kerusakan pada \textit{joint}n ke-$c$), dan setiap baris merepresentasikan pengukuran berdasarkan waktu di seluruh 30 kanal sensor. diff --git a/latex/chapters/id/03_methodology/steps/index.tex b/latex/chapters/id/03_methodology/steps/index.tex new file mode 100644 index 0000000..8592fdc --- /dev/null +++ b/latex/chapters/id/03_methodology/steps/index.tex @@ -0,0 +1,29 @@ +\section{Tahapan Penelitian} +Alur keseluruhan penelitian ini dilakukan melalui tahapan-tahapan sebagai berikut: + +\begin{figure}[H] + \centering + \includegraphics[width=0.3\linewidth]{chapters/id/flow.png} + \caption{Diagram alir tahapan penelitian} + \label{fig:flowchart} +\end{figure} + +\begin{enumerate} + \item \textbf{Akuisisi Data:} Mengunduh dataset dari \textcite{abdeljaber2017} yang berisi sinyal percepatan untuk 31 kondisi struktur (1 kondisi sehat dan 30 kondisi kerusakan tunggal). + + % \item \textbf{Seleksi Sensor:} Memilih sinyal dari sejumlah sensor terbatas pada garis vertikal tertentu (misalnya, node 1 dan 26) untuk mensimulasikan konfigurasi sensor yang direduksi. + + \item \textbf{Pra-pemrosesan:} Melakukan normalisasi dan mengubah sinyal domain waktu mentah menjadi domain waktu-frekuensi menggunakan metode Short-Time Fourier Transform (STFT). + + \item \textbf{Ekstraksi Fitur:} Menghasilkan \textit{data frame} frekuensi dalam domain waktu. + + \item \textbf{Pengembangan Model:} Membangun dan melatih model klasifikasi berbasis algoritma pemelajaran mesin klasik (SVM, LDA, Bagged Trees, Random Forest, XGBoost) untuk mengklasifikasikan lokasi kerusakan struktur. + + \item \textbf{Evaluasi:} Mengevaluasi kinerja model menggunakan metrik akurasi, presisi, dan confusion matrix pada berbagai skenario pengujian. +\end{enumerate} + +\subsection{Akuisisi Data} +\input{chapters/id/03_methodology/steps/data_acquisition} + +% \subsection{Prapemrosesan Data dan Ekstraksi Fitur} + diff --git a/latex/chapters/id/03_methodology/tool/hardware.tex b/latex/chapters/id/03_methodology/tool/hardware.tex new file mode 100644 index 0000000..eafb26d --- /dev/null +++ b/latex/chapters/id/03_methodology/tool/hardware.tex @@ -0,0 +1,39 @@ +Data getaran struktur yang digunakan dalam penelitian ini diperoleh dari penelitian oleh \textcite{abdeljaber2017}, yang dilakukan menggunakan simulator struktur baja Grandstand di Queen’s University. Dalam eksperimen tersebut, struktur baja dipasang dengan akselerometer pada setiap sambungan-sambungan (\textit{joints}). Rangkaian perangkat keras yang digunakan untuk pengambilan data meliputi: + +\begin{itemize} + \item \textbf{27 akselerometer PCB model 393B04} (Gambar~\ref{fig:pcb393}) untuk merekam respons percepatan pada sebagian besar titik pengukuran. + \item \textbf{3 akselerometer B\&K model 8344} (Gambar~\ref{fig:bk8344}) digunakan pada beberapa lokasi untuk validasi tambahan. + \item \textbf{Mounting magnetic PCB model 080A121} digunakan untuk menempelkan akselerometer secara aman pada struktur baja. + \item \textbf{Modal shaker (Model 2100E11)} digunakan untuk memberikan eksitasi getaran terkontrol pada struktur (Gambar~\ref{fig:shaker}). Sinyal input untuk shaker dihasilkan melalui \textbf{penguat daya SmartAmp 2100E21-400}. + \item \textbf{Dua perangkat akuisisi data 16-kanal (DT9857E-16)} digunakan secara simultan: satu untuk menghasilkan sinyal input ke shaker dan satu lagi untuk merekam data keluaran dari akselerometer (Gambar~\ref{fig:datalogger}). +\end{itemize} + +Seluruh perangkat ini memungkinkan pengambilan data getaran dengan fidelitas tinggi, dengan laju pengambilan sampel sebesar 1024 Hz per kanal selama 256 detik untuk setiap skenario pengujian. + +Adapun sumberdaya komputasi yang digunakan untuk pemrosesan semua data dan pemodelan pada skripsi ini, yaitu: + +\begin{itemize} + \item \textbf{\textit{Processor}:} Intel Core i7 11th-gen @ 2.8 GHz + \item \textbf{RAM:} 2$\times$8 GB LPDDR4X + % \item \textbf{GPU:} Intel iris Xe Graphics (16 GB VRAM \textit{shared}) + \item \textbf{Sistem Operasi:} Windows 10 64-bit +\end{itemize} + +\begin{figure}[H] + \centering + \includegraphics[width=\textwidth]{chapters/img/accel393.png} + \caption{Akselerometer yang digunakan: (a) PCB 393B04, (b) B\&K 8344} + \label{fig:accel393} +\end{figure} +\begin{figure}[H] + \centering + \includegraphics[width=0.4\textwidth]{chapters/img/shaker.png} + \caption{Modal shaker (TMS 2100E11) yang dipasang pada struktur uji} + \label{fig:shaker} +\end{figure} +\begin{figure}[H] + \centering + \includegraphics[width=0.7\textwidth]{chapters/img/datalogger.png} + \caption{Perangkat akuisisi data (DT9857E-16) dan penguat daya SmartAmp 2100E21-400} + \label{fig:datalogger} +\end{figure} diff --git a/latex/chapters/id/03_methodology/tool/index.tex b/latex/chapters/id/03_methodology/tool/index.tex new file mode 100644 index 0000000..d88dbd8 --- /dev/null +++ b/latex/chapters/id/03_methodology/tool/index.tex @@ -0,0 +1,7 @@ +\section{Alat} + +\subsection{Alat Perangkat Keras} +\input{chapters/id/03_methodology/tool/hardware} + +\subsection{Alat Perangkat Lunak} +\input{chapters/id/03_methodology/tool/software} \ No newline at end of file diff --git a/latex/chapters/id/03_methodology/tool/software.tex b/latex/chapters/id/03_methodology/tool/software.tex new file mode 100644 index 0000000..cd676c5 --- /dev/null +++ b/latex/chapters/id/03_methodology/tool/software.tex @@ -0,0 +1,11 @@ +Berikut merupakan perangkat lunak yang digunakan selama proses penelitian ini: + +\begin{itemize} + \item \textbf{Python 3.11} – digunakan untuk proses pra-pemrosesan data, pemodelan, dan evaluasi. + \item \textbf{NumPy 1.22.4} – digunakan untuk perhitungan deret numerik. + \item \textbf{Pandas 1.5.1} – digunakan untuk memanipulasi struktur data. + \item \textbf{Pandas 1.7.3} – digunakan untuk memproses sinyal. + \item \textbf{Matplotlib 3.7.1} – digunakan untuk menghasilkan plot data. + \item \textbf{Scikit-Learn 1.5.1} – digunakan untuk membangun dan melatih model dengan algoritma pemelajaran mesin klasik. + \item \textbf{Jupyter Notebook} – digunakan untuk pelatihan model dan percobaan eksperimental secara interaktif. +\end{itemize} \ No newline at end of file diff --git a/latex/chapters/img/flow.png b/latex/chapters/img/flow.png new file mode 100644 index 0000000..8ad373d Binary files /dev/null and b/latex/chapters/img/flow.png differ diff --git a/latex/chapters/img/specimen.png b/latex/chapters/img/specimen.png new file mode 100644 index 0000000..9442060 Binary files /dev/null and b/latex/chapters/img/specimen.png differ diff --git a/latex/chapters/img/specimen.tex b/latex/chapters/img/specimen.tex new file mode 100644 index 0000000..099dc29 --- /dev/null +++ b/latex/chapters/img/specimen.tex @@ -0,0 +1,13 @@ +\begin{matrix} +N_{6,5} & \text{---} & N_{6,4} & \text{---} & N_{6,3} & \text{---} & N_{6,2} & \text{---} & N_{6,1} \\ +\vert & & \vert & & \vert & & \vert & & \vert \\ +N_{5,5} & \text{---} & N_{5,4} & \text{---} & N_{5,3} & \text{---} & N_{5,2} & \text{---} & N_{5,1} \\ +\vert & & \vert & & \vert & & \vert & & \vert \\ +N_{4,5} & \text{---} & N_{4,4} & \text{---} & N_{4,3} & \text{---} & N_{4,2} & \text{---} & N_{4,1} \\ +\vert & & \vert & & \vert & & \vert & & \vert \\ +N_{3,5} & \text{---} & N_{3,4} & \text{---} & N_{3,3} & \text{---} & N_{3,2} & \text{---} & N_{3,1} \\ +\vert & & \vert & & \vert & & \vert & & \vert \\ +N_{2,5} & \text{---} & N_{2,4} & \text{---} & N_{2,3} & \text{---} & N_{2,2} & \text{---} & N_{2,1} \\ +\vert & & \vert & & \vert & & \vert & & \vert \\ +N_{1,5} & \text{---} & N_{1,4} & \text{---} & N_{1,3} & \text{---} & N_{1,2} & \text{---} & N_{1,1} \\ +\end{matrix} \ No newline at end of file