Add Chapter 3 Methodology (#79)

* feat(latex): initialize new structure for methodology chapter

* feat(latex): initialize sections for methodology chapter including data analysis, materials, and steps

* feat(latex): add detailed description and structure for materials section in methodology chapter

* fix(latex): correct section title from "Bahan dan Materi" to "Benda Uji" to give more context about the thesis

Closes #71

* feat(latex): add section for tools in methodology chapter

* feat(latex): initialize methodology steps with overall clue descriptions of research phases

* feat(latex): add specimen diagram with sensor notation for data representation in methodology chapter

* feat(latex): add diagram for joint and sensors placement in methodology chapter

* feat(latex): update dataset figure and add specimen image in methodology chapter

* feat(latex): expand data analysis section in methodology chapter

* fix(latex): fix citation format for secondary data source in methodology chapter

* feat(latex): add data acquisition section with dataset details and sampling information

* fix(latex): update input paths in methodology chapter for correct file referencing

* feat(latex): add hardware and software sections with detailed descriptions and components used in the research

* Update latex/chapters/id/03_methodology/tool/hardware.tex

fix(latex): Fix figure reference

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update latex/chapters/id/03_methodology/steps/index.tex

chore: remove double slash of image path

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update latex/chapters/id/03_methodology/data_analysis/index.tex

fix(latex): Fix typo

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: nuluh <dam.ar@outlook.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit was merged in pull request #79.
This commit is contained in:
Rifqi D. Panuluh
2025-05-23 03:25:23 +07:00
committed by GitHub
parent e0fade285a
commit 92fd3acd05
11 changed files with 316 additions and 0 deletions

View File

@@ -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*}

View File

@@ -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}

View File

@@ -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}

View File

@@ -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 130
\item \texttt{zzzBD1.TXT}, \texttt{zzzBD2.TXT}, ..., \texttt{zzzBD30.TXT} — Dataset B, kerusakan pada sambungan 130
\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 231:} 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, 130 = kerusakan pada \textit{joint}n ke-$c$), dan setiap baris merepresentasikan pengukuran berdasarkan waktu di seluruh 30 kanal sensor.

View File

@@ -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}

View File

@@ -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 Queens 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}

View File

@@ -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}

View File

@@ -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}