Archive

Archive for the ‘Shock-Vibration’ Category

Kalibrasi DAS Vibrasi

February 6, 2011 Leave a comment

Prototipe DAS yang dibuat perlu dikalibrasi dengan alat lain, Function Generator dapat digunakan untuk tujuan tersebut. Output sinyal dari generator sebagai inputan prototipe DAS, spektrum yang ditampilkan harus sama dengan frekeunsi dari generator ini.

Terlihat generator diset pada frekuensi 1 KHz. Sekema kalibrasi adalah sebagai berikut.

Dari hasil kalibrasi sampling ADC adalah 5600 Hz, ah….cukup lambat……kalo pake compiler C mungkin lebih cepat. Tapi sudah cukup ok..untuk vibrasi 2000 Hz.

Sesuai dengan input f-generator, outpuk spektrum dari Matlab juga sekitar 1000 Hz,….hore….ok…and siap prototipe in untuk uji vibrasi.

s1 = serial(‘COM17′,’BaudRate’,115200,’DataBits’,8,’StopBits’,1,’InputBufferSize’,10000);
fopen(s1)
disp(‘Port wis diibuka‚Ķ..hehe’)
% Signal
e=1;
while e<2
s = 1 : 900;fs=5600; ‘ hasil kalibrasi sampling ADC 5600 SPS
Fs=fs;
t = s/fs;
y=str2num(fscanf(s1));
if length(y)==900
% FFT
NP=1024*4;
Xf=fft(y,NP);
size_Xf=size(Xf) ;
real_Xf1=real(Xf(1));ima_Xf1=imag(Xf(1));
real_Xf2=real(Xf(2));ima_Xf2=imag(Xf(2));
Amp=sqrt(Xf.*conj(Xf));
size_Amp=size(Amp);
fre = (0:length(Xf)-1)*(fs-1)/length(Xf);
size_fre=size(fre);
T = t*1000;%msec
% Grafik
subplot(2,1,1)
plot(T,y,’linewidth’,2),grid
axis([0,max(T),0,1024])
xlabel(‘Time (msec)’)
ylabel(‘Amplitude (g)’)
subplot(2,1,2)
plot(fre,Amp,’r’,’linewidth’,2),grid;
%plot(f,2*abs(Y(1:NFFT/2+1)))
xlabel(‘Frequency (Hz)’)
ylabel(‘Power |F(w)|’)
axis([0,2000,0,max(Amp)])
pause(0.0001)
end
end

Categories: Shock-Vibration

Prototipe DAS Vibrasi

February 6, 2011 Leave a comment

DAS Data Acquisition System untuk vibrasi ini tetap berbasis microcontroller, kerena murah dan masih mampu untuk aplikasi ini, jadi yang perlu diperhatikan hanya kemampuan CPU dan kebutuhan speksifikasinya, sehingga lowcost, optimal, dan tercapai tujuan. Frekuensi data vibrasi ini maksimum 2000 Hz, sehingga secara teori sampling hanya perlu sampling data 4000 Hz, atau 4000 SPS (Sampling Per Second).

Kemampuan uC yang dipakai ADC 10 bit dengan sampling maksimum 40 KSPS, cukup untuk aplikasi vibrasi dan shock dalam prototipe ini. Kecepatan transfer data yang diperlukan 921600 bps, supaya cepat. Tetapi masih di kecepatan 115200 bps, sepertinya perlu menggunakan crystal yang lebih cocok. Data dikirim via USB-Serial dari FTDI, selain bisa ke laptop juga lebih stabil hingga kecepatan 1 Mbps. Prototipe ini perlu dikembangkan menjadi 4 kanal ADC secara simultaenous (barengan gitu lo…), skemanya seperti gambar ini.


Program microcontroller:

‘———————————————————
$regfile = “m32def.dat”
$crystal = 20000000
$baud = 115200
$hwstack = 32
$swstack = 10
$framesize = 100
Config Adc = Single , Prescaler = Auto
Start Adc
Dim W(900) As Word , I As Word
Config Portb = Output
Portb = 0
Do
Portb = 0 ‘ port iki isoh nggo ngitung sampling data nganggo osiluskup
‘ sampling rate ADC ini perlu dihitung
For I = 1 To 900
W(i) = Getadc(0)
Next I
Portb = 255

For I = 1 To 899
Print W(i) ; ” “;
Next I
Print W(900)
‘Waitms 100
Loop
End
‘———————————————————

Program analisa:

%—————————————————————————————-
s1 = serial(‘COM3′,’BaudRate’,115200,’DataBits’,8,’StopBits’,1,’InputBufferSize’,10000);
fopen(s1)
disp(‘Port wis diibuka…..hehe’)
% Signal
e=1;
while e<2
y=str2num(fscanf(s1));
if length(y)==900
% FFT
NP=1024*4;
Xf=fft(y,NP);
size_Xf=size(Xf) ;
real_Xf1=real(Xf(1));ima_Xf1=imag(Xf(1));
real_Xf2=real(Xf(2));ima_Xf2=imag(Xf(2));
Amp=sqrt(Xf.*conj(Xf));
size_Amp=size(Amp);
fre = (0:length(Xf)-1)*(fs-1)/length(Xf);
size_fre=size(fre);
T = t*1000;%msec
% Grafik
subplot(2,1,1)
plot(T,y,’linewidth’,2),grid
axis([0,max(T),0,1024])
xlabel(‘Time (msec)’)
ylabel(‘Amplitude (g)’)
subplot(2,1,2)
plot(fre,Amp,’r’,’linewidth’,2),grid;
%plot(f,2*abs(Y(1:NFFT/2+1)))
xlabel(‘Frequency (Hz)’)
ylabel(‘Power |F(w)|’)
axis([0,2000,0,max(Amp)])
pause(0.0001)
end
end
%———————————————————————–

Categories: Shock-Vibration