Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 3

close all

clear all
clc
syms X1 X2 X3 D2X1 D2X2 D2X3
syms m1 m2 m3 k1 k2 k3 k4 k5 k6
DX1 = diff(X1);
fprintf('The governing GDE is M*D2X + K*X = 0 where \n')
Mass_Matrix_M = [m1 0 0;0 m2 0;0 0 m3]
Stiffness_Matrix_K = [k1+k2+k5 -k2 -k5; -k2 k2+k3+k6 -k3;-k5 -k3 k3+k4+k5]
D2X = [D2X1;D2X2;D2X3]
X = [X1;X2;X3]
m = 10*rand(1,3);
m1 = m(1,1);
m2 = m(1,2);
m3 = m(1,3);
%fprintf('Values of mass m1=%f, m2=%f, m3 =%f\n',m1,m2,m3)
M = diag(m) %Mass MatriX
k = 10*rand(2,3);
k1
k2
k3
k4
k5
k6

=
=
=
=
=
=

k(1,1);
k(1,2);
k(1,3);
k(2,1);
k(2,2);
k(2,3);

%fprintf('Values of stiffness k1=%f, k2=%f, k3=%f, k4=%f, k5=%f, k6=%f\n',k1,k2,


k3,k4,k5,k6)
K = [k1+k2+k5 -k2 -k5; -k2 k2+k3+k6 -k3;-k5 -k3 k3+k4+k5]%Stiffness matrix
[Eigen_vectors,Eigen_values] = eig(inv(M)*K)
w1 = sqrt(Eigen_values(1,1));
w2 = sqrt(Eigen_values(2,2));
w3 = sqrt(Eigen_values(3,3));
fprintf('Frequencies \nw1 = %f , w2 = %f, w3 = %f\n',w1,w2,w3)
%This next code does some string manipulation to make
%legends for the plots, no calculations. It is not necessary
%to understand this code to understand the graphs;
N=size(M,1);
%outLeg='';
modLeg='';
for i=1:N,
%outLeg=strvcat(outLeg, strcat('Out_',int2str(i)));
mstr=sprintf('Mode %d',i);
modLeg=strvcat(modLeg, mstr);
end
%Plot the mode shapes
plot(Eigen_vectors,':');

xlabel('Elements'); ylabel('Mode amplitude');


title(['Mode shapes, \omega=' sprintf('%f,%f,%f',w1,w2,w3)]);
axis([0.5 N*1.5 -1 1]);
set(gca,'XTick',[1:N]);
legend(modLeg);
hold on
stem(Eigen_vectors);
hold off
%Generalised Mass Matrix
GM = transpose(Eigen_vectors)*M*Eigen_vectors
%Generalised Stiffness Matrix
GK = transpose(Eigen_vectors)*K*Eigen_vectors
syms t
f =3;
w =2;
f1 = f*cos(w*t);
f2 = f*sin(w*t);
f3 = 0;
F = [f1;f2;f3]
GF = transpose(Eigen_vectors)*F

%Generalised Force Matrix

GF1 = GF(1,1)
GF2 = GF(2,1)
GF3 = GF(3,1)
f =3
w =2
figure
hold on
h1 = ezplot(GF1,[0,20]);
h2 = ezplot(GF2,[0,20]);
h3 = ezplot(GF3,[0,20]);
axis([0 20 -4 4])
hold off
xlabel('t')
ylabel('Generalised Force(t)')
set(h1,'color','b')
set(h2,'color','g')
set(h3,'color','r')
legend('Generalised Force 1','Generalised Force 2','Generalised Force 3')
title('Generalised Force Vectors')

syms q1(t) q2(t) q3(t)

%Principal coordinates

dq1 = diff(q1);
q1(t) = dsolve(GM(1,1)*diff(q1,2) + GK(1,1)*q1 == GF1 , q1(0)==0,dq1(0)==0)
dq2 = diff(q2);

q2(t) = dsolve(GM(2,2)*diff(q2,2) + GK(2,2)*q2 == GF1 , q2(0)==0,dq2(0)==0)


dq3 = diff(q3);
q3(t) = dsolve(GM(3,3)*diff(q3,2) + GK(3,3)*q3 == GF1 , q3(0)==0,dq3(0)==0)
figure
hold on
h4 = ezplot(q1(t),[0,20]);
h5 = ezplot(q2(t),[0,20]);
h6 = ezplot(q3(t),[0,20]);
axis([0 20 -4 4])
hold off
xlabel('t')
ylabel('q(t)')
title('Principal coordinates')
set(h4,'color','b')
set(h5,'color','g')
set(h6,'color','r')
legend('q1(t)','q2(t)','q3(t)')
%Modal Displacements
md1 = Eigen_vectors(:,1)*q1(t);%phi1*q1
md2 = Eigen_vectors(:,2)*q2(t);%phi2*q2
md3 = Eigen_vectors(:,3)*q3(t);%phi3*q3
MD = md1+md2+md3 %phi1q1+phi2q2+phi3q3
MD1 = MD(1,1)
MD2 = MD(2,1)
MD3 = MD(3,1)
figure
hold on
h7 = ezplot(MD1,[0,20]);
h8 = ezplot(MD2,[0,20]);
h9 = ezplot(MD3,[0,20]);
axis([0 20 -4 4])
hold off
xlabel('t')
ylabel('\phi*q(t)')
title('Modal Displacements')
set(h7,'color','b')
set(h8,'color','g')
set(h9,'color','r')
legend('y1(t)','y2(t)','y3(t)')

You might also like