- Calculate the damping coefficient (c) using the formula: c = 2 * damping_ratio * sqrt(mass * stiffness), where damping_ratio is the desired inherent damping ratio (2% in this case), mass is the mass matrix, and stiffness is the stiffness matrix.
- Multiply the damping coefficient by the mass matrix to obtain the damping matrix (C).
How can i obtain a damping Matrix C, with an inherent damping matrix of 2% for all the modes ?
31 次查看(过去 30 天)
显示 更早的评论
I have written code to obtain eigen values and vectors using Stiffness K and Mass M and i want to obtain the damping matrix using an inherent damping ratio of 2% of the structure for all the vibration modes. How do i do it? here under is the my code thus far
clc;
h=[5.5]+[0:3.96:20*3.95]; % Total floor height(m)%
%--------------Start of Mass Matrix---------------%
M(1,1)=1.126e+003 ; % unit: ton
M(20,20)=1.170e+003 ; % unit: ton
for i=2:19
M(i,i)=1.100e+003; % unit: ton
end
disp('Mass Matrix(ton):'); disp(M)
%--------------end of Mass Matrix-----------------%
%--------------Start of Stiffness Matrix----------%
for i=1:5
k(1,i)=862.07e+003; % unit: kN/m
end
for i=6:11
k(1,i)=554.17e+003 ; % unit: kN/m
end
for i=12:14
k(1,i)=453.51e+003 ; % unit: kN/m
end
for i=15:17
k(1,i)=291.23e+003 ; % unit: kN/m
end
for i=18:19
k(1,i)=256.46e+003 ; % unit: kN/m
end
k(1,20)=171.70e+003 ; % unit: kN/m
K=zeros(20,20)
for j=1:(20-1)
K(j,j) = k(1,j)+k(1,j+1);
K(j,j+1) = -k(1,j+1);
K(j+1,j) = -k(1,j+1);
end
K(20,20)=171.70e+003 ; % unit: kN/m
%--------------End of Stiffness Matrix--------------%
%----Start of Eigen Values and Eigne Vectors--------%
[eigvec,eigval]=eig(K,M); %Eigen Values and Vectors%
wn = sort(sqrt(diag(eigval)));
f =(wn/(2*pi));
Tn = (2*pi)./wn;
disp('Mode Omega(w) Time_Period ')
for i = 1:length(wn)
fprintf (' %d %.2f %.2f \n',i,wn(i,1),Tn(i,1))
end
%-------End of Eigen values and Eigne Vectors-------%
%-----Start of Normalisation of mode shapes---------%
for j = 1 : length(wn)
eigvec(:,j)=eigvec(:,j)/eigvec(length(wn),j);
end
disp('Mode shapes:'); disp(eigvec)
%-----------End of Normalisation of mode shapes-----------%
0 个评论
采纳的回答
Anuj
2023-7-10
Hi Kimbugwe,
To obtain the damping matrix using an inherent damping ratio of 2% for all vibration modes, you can modify your existing code by following these steps:
Here's the modified code to incorporate these changes:
clc;
h = [5.5] + [0:3.96:20*3.95]; % Total floor height(m)
% Start of Mass Matrix
M(1,1) = 1.126e+003; % unit: ton
M(20,20) = 1.170e+003; % unit: ton
for i = 2:19
M(i,i) = 1.100e+003; % unit: ton
end
disp('Mass Matrix(ton):');
disp(M);
%--------------Start of Stiffness Matrix----------%
for i=1:5
k(1,i)=862.07e+003; % unit: kN/m
end
for i=6:11
k(1,i)=554.17e+003 ; % unit: kN/m
end
for i=12:14
k(1,i)=453.51e+003 ; % unit: kN/m
end
for i=15:17
k(1,i)=291.23e+003 ; % unit: kN/m
end
for i=18:19
k(1,i)=256.46e+003 ; % unit: kN/m
end
k(1,20)=171.70e+003 ; % unit: kN/m
K=zeros(20,20)
for j=1:(20-1)
K(j,j) = k(1,j)+k(1,j+1);
K(j,j+1) = -k(1,j+1);
K(j+1,j) = -k(1,j+1);
end
K(20,20)=171.70e+003 ; % unit: kN/m
% Calculate the damping coefficient (c)
damping_ratio = 0.02; % 2% inherent damping ratio
mass = M;
stiffness = K;
c = 2 * damping_ratio * sqrt(mass * stiffness);
% Multiply the damping coefficient by the mass matrix to obtain the damping matrix (C)
C = c .* M;
% Start of Eigen Values and Eigen Vectors
[eigvec, eigval] = eig(K, M); % Eigen Values and Vectors
wn = sort(sqrt(diag(eigval)));
f = wn / (2*pi);
Tn = (2*pi) ./ wn;
disp('Mode Omega(w) Time_Period ')
for i = 1:length(wn)
fprintf(' %d %.2f %.2f \n', i, wn(i,1), Tn(i,1))
end
% Start of Normalisation of mode shapes
for j = 1:length(wn)
eigvec(:,j) = eigvec(:,j) / eigvec(length(wn),j);
end
disp('Mode shapes:');
disp(eigvec);
By adding the calculation of the damping coefficient and multiplying it with the mass matrix, you will obtain the desired damping matrix (C) using the inherent damping ratio of 2% for all vibration modes.
3 个评论
Piotr
2023-7-10
Are sure about this ? My question is why c = 2 * damping_ratio * sqrt(mass * stiffness) is additionally multiplied by M. I am not sure but maybe I will look for inverse eigenproblem when we have eigenvectors and eigenvalues available and we want to get the origin matrices including damping matrix ? Have you checked if the above-mentioned solution gave you the proper damping ratios of desired modes ?
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Parametric Spectral Estimation 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!