ccitonline.com

CCIT – Cara Cerdas Ingat Tuhan

| AI-DAI5 | DAI5 AI Agents | NIC | ZWI | | CCITEdu | DAI5 eBook | CFDSOF | Donation | Download | CCIT Corporation | DAI5 | 33 Kriteria Evaluasi Penerapan DAI5 | Search |

2406431580_Farhan Ubaidillah_Metode Numerik 03 D3

Assalamualaikum Wr.Wb
Selamat siang teman teman dan Prof DAI, izin kan saya memperkenalkan diri, saya Farhan Ubaidillah dengan Nomor Pokok Mahasiswa (NPM) 2406431580 dari Metode Numerik – 03. Disini saya ingin memberitahukan tentang update progres karya ilmiah saya

BAB III

METODOLOGI PENELITIAN

3.1 Spesifikasi Data

Data yang digunakan dalam analisis ini merupakan sinyal getaran (vibration time series) dari sistem propulsi kapal pada kondisi berbeban (loaded). Data diperoleh dari pengukuran menggunakan akselerometer yang ditempatkan pada lokasi propeller. Pemilihan lokasi propeller didasarkan pada pertimbangan bahwa area tersebut merupakan titik kritis dimana gaya eksitasi dari baling-baling dan pembebanan transversal dari sistem hidrolik paling dominan, sehingga sinyal getaran yang terekam memiliki kualitas terbaik untuk analisis lebih lanjut. Pengukuran dilakukan pada saat sistem beroperasi dengan kecepatan poros 60 rpm, yang merupakan salah satu dari lima variasi kecepatan yang diuji dalam penelitian eksperimental. Kondisi berbeban (loaded) dipilih karena pada kondisi ini respons getaran menunjukkan pertumbuhan amplitudo yang lebih besar dan transien yang lebih jelas dibandingkan kondisi tanpa beban (idling), sehingga lebih sesuai untuk mempelajari fenomena forced vibration with damping.

Tabel Spesifikasi Data

ParameterNilai
Nama FileSTD_051.csv
Jenis DataTime Series Getaran
Jumlah Sampel2000 data
Interval Waktu (dt)0.005 s
Frekuensi Sampling200 Hz
SensorAccelerometer
Lokasi PengukuranPropeller / Tail Bearing
Kondisi OperasiLoaded
Kecepatan Poros60 rpm
Variabel UtamaTime dan Acceleration

3.2 Tools Analisis

Analisis data getaran pada tugas ini dilakukan menggunakan bahasa pemrograman Python dengan memanfaatkan berbagai pustaka yang mendukung komputasi numerik dan pemrosesan sinyal. Library NumPy digunakan untuk melakukan operasi numerik dan perhitungan statistik secara efisien, sementara Pandas berperan dalam membaca serta mengelola data dari file berformat CSV maupun Excel.

Untuk kebutuhan visualisasi, Matplotlib digunakan dalam menampilkan grafik time series dan spektrum FFT, sehingga pola sinyal dapat diamati dengan lebih jelas. Selain itu, SciPy dimanfaatkan untuk pemrosesan sinyal lanjutan, meliputi perhitungan FFT, deteksi puncak (find_peaks), penerapan filter Butterworth, transformasi Hilbert untuk analisis amplop, serta curve fitting eksponensial dalam estimasi parameter redaman.

Tabel Tools dan Library

LibraryFungsi
NumPyOperasi numerik dan statistik
PandasMembaca dan mengelola data
MatplotlibVisualisasi grafik
SciPy SignalFFT, filtering, Hilbert transform
SciPy OptimizeCurve fitting estimasi damping

3.3 Alur Pengolahan Data

Pengolahan data sinyal getaran dalam analisis ini dilakukan melalui serangkaian langkah sistematis untuk mengubah data mentah (raw signal) menjadi informasi yang bermakna tentang karakteristik getaran sistem. Alur pengolahan data mencakup pra-pemrosesan, analisis domain waktu, analisis domain frekuensi, estimasi parameter redaman, hingga interpretasi hasil.


1) Load Data

Data getaran dimuat dari file STD_051.csv yang berisi dua kolom utama: time_s (waktu dalam detik) dan acceleration (nilai akselerasi dalam m/sยฒ). File ini memiliki 2000 baris data dengan interval waktu 0.005 detik. Selain itu, file dataset_51.xlsx dimuat untuk memperoleh parameter operasi seperti kecepatan poros (60 rpm), rasio redaman (0.045), konten harmonik (1X+3X), dan informasi lainnya.

Coding Python โ€” Load Data

import pandas as pd
import numpy as np

# Load vibration signal
df = pd.read_csv('STD_051.csv')

# Load operational dataset
meta = pd.read_excel('dataset_51.xlsx')

# Extract variables
time = df['time_s'].values
acc = df['acceleration'].values

# Display first rows
print(df.head())
print(meta.head())

2) Pra-Pemrosesan

Tahap pra-pemrosesan bertujuan untuk meningkatkan kualitas data dengan menghilangkan komponen yang tidak diinginkan sebelum dilakukan analisis lebih lanjut.

Salah satu langkah penting dalam tahap ini adalah penghilangan DC offset (DC removal), yaitu dengan menghitung nilai rata-rata dari sinyal mentah, kemudian mengurangkannya dari setiap titik data. Proses ini membuat sinyal berosilasi di sekitar garis nol, sehingga meningkatkan akurasi dalam analisis Fast Fourier Transform (FFT) maupun perhitungan parameter statistik.

Perhitungan parameter dasar dilakukan untuk memperoleh karakteristik utama dari data sinyal yang akan dianalisis. Parameter-parameter tersebut meliputi frekuensi sampling (fs), interval waktu (dt), dan jumlah sampel (N), yang semuanya dihitung langsung dari data yang tersedia.

Coding Python โ€” Preprocessing

# Remove DC offset
acc_mean = np.mean(acc)
acc_detrended = acc - acc_mean

# Sampling parameters
dt = time[1] - time[0]
fs = 1 / dt
N = len(acc_detrended)

print("Mean:", acc_mean)
print("Sampling Frequency:", fs)
print("Number of Samples:", N)

3) Analisis Domain Waktu

Analisis domain waktu dilakukan untuk memahami perilaku sinyal terhadap waktu serta mengidentifikasi karakteristik dinamisnya.

Visualisasi time series dilakukan dengan memplot sinyal terhadap waktu, sehingga pola getaran secara keseluruhan dapat diamati. Melalui plot ini, dapat diidentifikasi adanya transien awal serta dievaluasi kestabilan sinyal ketika telah mencapai kondisi steady-state.

Selain itu, dilakukan perhitungan parameter statistik untuk mengkuantifikasi karakteristik sinyal, antara lain:

Persamaan RMS

xRMS=1Nโˆ‘i=1Nxi2x_{RMS}=\sqrt{\frac{1}{N}\sum_{i=1}^{N}x_i^2}xRMSโ€‹=N1โ€‹โˆ‘i=1Nโ€‹xi2โ€‹โ€‹

Persamaan Peak Value

xpeak=maxโก(xi)x_{peak}=\max(x_i)xpeakโ€‹=max(xiโ€‹)

Persamaan Peak-to-Peak

xpโˆ’p=xmaxโˆ’xminx_{p-p}=x_{max}-x_{min}xpโˆ’pโ€‹=xmaxโ€‹โˆ’xminโ€‹

Persamaan Crest Factor

Crest Factor=xpeakxRMSCrest\ Factor=\frac{x_{peak}}{x_{RMS}}Crest Factor=xRMSโ€‹xpeakโ€‹โ€‹

Coding Python โ€” Time Domain Analysis

import matplotlib.pyplot as plt

# Statistical parameters
rms = np.sqrt(np.mean(acc_detrended**2))
peak = np.max(np.abs(acc_detrended))
p2p = np.max(acc_detrended) - np.min(acc_detrended)
crest_factor = peak / rms

# Plot time series
plt.figure(figsize=(10,4))
plt.plot(time, acc_detrended)
plt.xlabel('Time (s)')
plt.ylabel('Acceleration (m/sยฒ)')
plt.title('Time Series Vibration Signal')
plt.grid(True)
plt.show()

print("RMS:", rms)
print("Peak:", peak)
print("Peak-to-Peak:", p2p)
print("Crest Factor:", crest_factor)

4) Analisis Domain Frekuensi

Analisis domain frekuensi dilakukan menggunakan Fast Fourier Transform (FFT) untuk mengidentifikasi komponen frekuensi yang menyusun sinyal getaran.

Sebelum transformasi dilakukan, sinyal terlebih dahulu diberikan window function, yaitu Hanning window, untuk mengurangi fenomena spectral leakage yang umumnya muncul akibat pemotongan sinyal pada batas awal dan akhir data.

Coding Python โ€” FFT Analysis

from scipy.signal import windows
from scipy.fft import fft, fftfreq

# Apply Hanning window
window = windows.hann(N)
signal_windowed = acc_detrended * window

# FFT
fft_values = fft(signal_windowed)
freqs = fftfreq(N, dt)

# Positive frequencies
half = N // 2
freqs = freqs[:half]
magnitude = 2/N * np.abs(fft_values[:half])

# Plot FFT Spectrum
plt.figure(figsize=(10,4))
plt.semilogy(freqs, magnitude)
plt.xlabel('Frequency (Hz)')
plt.ylabel('Magnitude')
plt.title('FFT Spectrum')
plt.grid(True)
plt.show()

5) Analisis Redaman (Damping)

Estimasi parameter redaman dilakukan untuk mengkuantifikasi kemampuan sistem dalam meredam getaran serta memahami karakteristik peluruhan respons dinamis.

Langkah awal adalah mengisolasi region transien, yaitu bagian awal sinyal (sekitar 2 detik pertama) yang mengandung respons peluruhan sebelum sistem mencapai kondisi steady-state.

Selanjutnya diterapkan bandpass filter Butterworth orde 4 untuk mengekstrak komponen frekuensi di sekitar 1X.

Persamaan Eksponensial Peluruhan

x(t)=A0eโˆ’ฮฒtx(t)=A_0 e^{-\beta t}x(t)=A0โ€‹eโˆ’ฮฒt

y=Aeโˆ’ktโ‰ˆ6eโˆ’0.6ty = A e^{-kt} \approx 6 e^{-0.6t}

Persamaan Damping Ratio

ฮถ=ฮฒฯ‰n\zeta=\frac{\beta}{\omega_n}ฮถ=ฯ‰nโ€‹ฮฒโ€‹

Persamaan Frekuensi Natural Sudut

ฯ‰n=2ฯ€fn\omega_n=2\pi f_nฯ‰nโ€‹=2ฯ€fnโ€‹

Coding Python โ€” Damping Analysis

from scipy.signal import butter, filtfilt, hilbert
from scipy.optimize import curve_fit

# Select transient region
mask = time <= 2
t_trans = time[mask]
sig_trans = acc_detrended[mask]

# Butterworth bandpass filter
lowcut = 0.8
highcut = 1.2

b, a = butter(4, [lowcut/(fs/2), highcut/(fs/2)], btype=’band’)
filtered = filtfilt(b, a, sig_trans)

# Envelope using Hilbert transform
analytic_signal = hilbert(filtered)
envelope = np.abs(analytic_signal)

# Exponential decay function
def exp_decay(t, A, beta):
return A * np.exp(-beta * t)

# Curve fitting
params, _ = curve_fit(exp_decay, t_trans, envelope)

A0, beta = params

# Damping ratio
fn = 1.0
omega_n = 2 * np.pi * fn
zeta = beta / omega_n

print(“Decay Constant:”, beta)
print(“Damping Ratio:”, zeta)

# Plot envelope fitting
plt.figure(figsize=(10,4))
plt.plot(t_trans, envelope, label=’Envelope’)
plt.plot(t_trans, exp_decay(t_trans, *params),
label=’Exponential Fit’)
plt.xlabel(‘Time (s)’)
plt.ylabel(‘Amplitude’)
plt.legend()
plt.grid(True)
plt.show()


Leave a Reply

Your email address will not be published. Required fields are marked *