MATLAB Examples

Example 2: Case of a suspension bridge

Computation of displacement repsonse of the vertical displacement of a suspension bridge to a random load, represented here by an uncorrelated white noise.

Contents

Definition of the geometry

clearvars;close all;clc;
% The modal properties of the single span suspension bridge are
% imported. 'wn' is the circular eigen-frequency vector and "phi" the
% vector of mode-shapes
load('bridgeModalProperties.mat','wn','phi')
Nmodes = 6;  % number of eigen modes of interest
phi = phi(1:Nmodes,:);
wn = wn(1:Nmodes);
Nnodes = size(phi,2);
y = linspace(0,446,Nnodes); % span length discretized in Nnodes nodes


figure('position',[560   285   576   663])
for ii=1:Nmodes,
    subplot(Nmodes,1,ii)
    box on;grid on
    plot(y,phi(ii,:));
    ylabel(['\phi_',num2str(ii)])
    title(['f_',num2str(ii),' = ',num2str(wn(ii)/2/pi,3),' Hz']);
    ylim([-1,1])

end
set(gcf,'color','w')
    xlabel('y (m)');

Computation of the displacement response in the time domain

N = 12000;
fs = 15;
dt = 1/fs;
t = [0:N-1].*dt;
fprintf(['total duration is ',num2str(t(end),4),' s \n'])
m = 6166; % mass of the bridge deck per meter (kg/m)
Fy = 200.*randn(Nnodes,N); % Force normal to the bridge deck
zetaStruct = 5e-3*ones(Nmodes,1); % Modal damping ratios taken as 0.5 % for every mode

tic
[Do1] = dynaResp_TD(m,y,phi,wn,zetaStruct,Fy,t,'method','Newmark');
toc

tic
[Do2] = dynaResp_TD(m,y,phi,wn,zetaStruct,Fy,t,'method','RK4');
toc
total duration is 799.9 s 
Elapsed time is 2.225447 seconds.
Elapsed time is 2.055716 seconds.

Time series comparison

clf;close all;
figure
plot(t(1:2000),Do1(round(Nnodes/2),1:2000),'k',t(1:2000),Do2(round(Nnodes/2),1:2000),'r-.');
xlabel('time (s)')
ylabel('Displacement(m)')
axis tight
set(gcf,'color','w')
legend('Newmark beta','RK4','location','best')

PSD displacement comparison

The plot of the PSD shows that the RK4 method tends to respect the eigenfrequencies used as input, but as the mode number increases, the damping is not properly represented. On the other hand, the newmark-beta method provides good damping estimates but the eigenfrequencies are shifted to the left at high frequencies

[S1,f]=pwelch(Do1(round(Nnodes/2),:),[],[],[],fs);
[S2,f]=pwelch(Do2(round(Nnodes/2),:),[],[],[],fs);

clf;close all;
figure
loglog(f,S1,'k',f,S2,'r');

xlabel('freq (Hz)')
ylabel(' PSD estimate of displacement (m)')
axis tight
set(gcf,'color','w')
legend('Newmark beta','RK4','location','best')
grid on
grid minor