clc
clearvars
close all
daq.getDevices
session_1=daq.createSession('ni');
fs=input('Choose a sampling rate [51200/25600/12800/10240/6400/5120/3200/2560/2048]: ');
t=60;
session_1.Rate=fs;
n=fs*t;
addAnalogInputChannel(session_1,'Dev1','ai0','IEPE');
addAnalogInputChannel(session_1,'Dev1','ai1','Accelerometer');
addAnalogInputChannel(session_1,'Dev1','ai2','Accelerometer');
addAnalogInputChannel(session_1,'Dev1','ai3','Accelerometer');
session_1.Channels(1).ExcitationCurrent=0.002;
session_1.Channels(2).ExcitationCurrent=0.002;
session_1.Channels(3).ExcitationCurrent=0.002;
session_1.Channels(4).ExcitationCurrent=0.002;
acc_sensitivity=0.005;
ft_sensitivity=0.1085;
session_1.Channels(2).Sensitivity=acc_sensitivity;
session_1.Channels(3).Sensitivity=acc_sensitivity;
session_1.Channels(4).Sensitivity=acc_sensitivity;
addAnalogOutputChannel(session_1,'Dev3',0,'Voltage');
pd=makedist('Normal','mu',0,'sigma',1);
white_noise= random(pd,[n 1]);
norm_factor=max(white_noise);
output_data=white_noise./norm_factor;
figure(1)
plot(output_data);
title('White noise excitation signal')
xlabel('Data points')
ylabel('Normalised white noise magnitude')
queueOutputData(session_1,output_data);
[data,time]=session_1.startForeground();
g=9.81;
a=data(:,2:4).*g;
f=data(:,1)./ft_sensitivity;
figure(2)
subplot(2, 2, 1)
plot(time,f);
title('Force transducer signal')
xlabel('Time (s)')
ylabel ('Force (N)')
subplot(2, 2, 2)
plot(time,a(:,1));
title('Accelerometer - X signal')
xlabel('Time (s)')
ylabel ('Acceleration (m/s^2)')
subplot(2, 2, 3)
plot(time,a(:,2));
title('Accelerometer - Y signal')
xlabel('Time (s)')
ylabel ('Acceleration (m/s^2)')
subplot(2, 2, 4)
plot(time,a(:,3));
title('Accelerometer - Z signal')
xlabel('Time (s)')
ylabel ('Acceleration (m/s^2)')
[acc_X,freq]=tfestimate(f,a(:,1),[],[],[],fs);
[acc_Y,]=tfestimate(f,a(:,2),[],[],[],fs);
[acc_Z,]=tfestimate(f,a(:,3),[],[],[],fs);
direction=input('Choose direction of interest [X/Y/Z]: ','s');
if direction=='X'
acc=acc_X;
elseif direction=='Y'
acc=acc_Y;
else
acc=acc_Z;
end
figure(3)
plot(freq, abs(acc))
str=sprintf('Accelerance for %c direction versus frequency',direction);
title(str)
xlabel('Frequency (Hz)')
ylabel('|Accelerance| (ms^{-2}/N)')