% ADXL311main_3.m - PRM - 12/10/04
%
% This is the main file for simulating the ADXL311 Behavioral model.
%
% The data is stored in the matrix Y. The matrix X contains all the state information.
%
%
%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear % clear all variables
ADXL311_constants % reread initial data
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% The input acceleration definition: (X Channel)
xinamp=1; % X input amplitude (Gee peak)
xinfreq=10; % X input frequency
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% The input acceleration definition: (Y Channel)
yinamp=1; % Y input amplitude (Gee peak)
yinfreq=10; % Y input frequency
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% The input acceleration definition: (Z Channel Cross Axis)
zinamp=0; % Z input amplitude (Gee Peak)
zinfreq=10; % Z input frequency
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Perform simulation: Calculate the X & Y output vectors:
xtstop=0.2; % the end of the simulation (seconds)
ytstop=0.2; % the end of the simulation (seconds)
reltol=1e-7; % relative tolerance
maxstep=0.1e-5; % max step during simulation (seconds)
% Set up options for simulation
OPTIONS = simset('RelTol',reltol,'MaxStep',maxstep);
% Set up time base
T=[0:maxstep:xtstop]';
% Sinusoid, continuous (+/- amplitude)
u1t=xinamp*sin(2*pi*xinfreq*T); % sine wave
u2t=yinamp*sin(2*pi*yinfreq*T); % sine wave
u3t=zinamp*sin(2*pi*zinfreq*T); % sine wave
% Create input matrix. Each "u1t" corresponds to an input port.
U=[T,u1t,u2t,u3t];
% Perform the simulation!
[t,X,Y]=sim('ADXL311_3',xtstop,OPTIONS,U);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Create plots
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(1)
hold off
plot(t,Y(:,1))
grid on
title(['ADXL311 Model - X Input Acceleration - ',date])
ylabel('Acceleration (g)')
xlabel('Time (seconds)')
orient tall
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(2)
hold off
plot(t,Y(:,2))
grid on
title(['ADXL311 Model - X Output Voltage - ',date])
ylabel('Volts')
xlabel('Time (seconds)')
orient tall
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(3)
hold on
plot(t,Y(:,3),'r')
grid on
title(['ADXL311 Model - Y Input Acceleration - ',date])
ylabel('Acceleration (g)')
xlabel('Time (seconds)')
orient tall
% print
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(4)
hold on
plot(t,Y(:,4),'r')
grid on
title(['ADXL311 Model - Y Output Voltage - ',date])
ylabel('Volts')
xlabel('Time (seconds)')
orient tall
% print
hold off