3.5 KiB
3.5 KiB
#+TITLE:Measurement of the sample vibrations when rotating the Spindle
Signal Processing
Load Data
Measurement data_001.mat
corresponds to a measurement where the spindle is not turning and data_002.mat
where the spindle is turning at 1rpm.
x1
is the signal coming from the geophone located on the marble and x2
is the signal from the geophone located on the sample station.
data1 = load('mat/data_001.mat', 't', 'x1', 'x2');
data2 = load('mat/data_002.mat', 't', 'x1', 'x2');
Pre-processing
imax = min([length(data1.t), length(data2.t)]);
data1.t = data1.t(1:imax);
data1.x1 = data1.x1(1:imax);
data1.x2 = data1.x2(1:imax);
data2.t = data2.t(1:imax);
data2.x1 = data2.x1(1:imax);
data2.x2 = data2.x2(1:imax);
Time domain Data
figure;
hold on;
plot(data1.t, data1.x1);
plot(data2.t, data2.x1);
hold off;
figure;
hold on;
plot(data1.t, data1.x2);
plot(data2.t, data2.x2)
hold off;
ASD and Frequency domain data
dt = data1.t(2) - data1.t(1);
Fs = 1/dt;
windows_psd = hanning(ceil(10/dt));
[pxx1m, f] = pwelch(data1.x1, windows_psd, [], [], Fs);
[pxx1h, ~] = pwelch(data1.x2, windows_psd, [], [], Fs);
[pxx2m, ~] = pwelch(data2.x1, windows_psd, [], [], Fs);
[pxx2h, ~] = pwelch(data2.x2, windows_psd, [], [], Fs);
figure;
hold on;
plot(f, sqrt(pxx1m));
plot(f, sqrt(pxx2m));
hold off;
set(gca, 'xscale', 'log');
set(gca, 'yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('PSD [m/s/sqrt(Hz)]')
figure;
hold on;
plot(f, sqrt(pxx1h));
plot(f, sqrt(pxx2h));
hold off;
set(gca, 'xscale', 'log');
set(gca, 'yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('PSD [m/s/sqrt(Hz)]')
figure;
hold on;
plot(f, sqrt(pxx2m));
plot(f, sqrt(pxx2h));
hold off;
set(gca, 'xscale', 'log');
set(gca, 'yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('PSD [m/s/sqrt(Hz)]')
figure;
hold on;
plot(f, cumtrapz(f, pxx1m))
plot(f, cumtrapz(f, pxx2m))
set(gca, 'XScale', 'log');
xlabel('Frequency [Hz]'); ylabel('CAS [m]')