How to convert SDOF system to MDOF system of Nonlinear Dynamic analysis of a building
조회 수: 9 (최근 30일)
이전 댓글 표시
Please, anyone help me.
댓글 수: 4
Alan Stevens
2022년 4월 19일
You need to provide more detail! Upload your code for the SDOF building. Specify exactly how you want to extend it - for example: to lateral as well as vertical movement? - for extra floors? - etc.
답변 (1개)
Sam Chak
2022년 4월 21일
I'm not a certified Building Dynamicist. But if the equations of motion of a 4-storey building can described like this:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/971935/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/971940/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/971945/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/971950/image.png)
function dxdt = f(t, x)
dxdt = zeros(8,1);
m1 = 4000; % kg
m2 = m1;
m3 = m2;
m4 = m3;
k1 = 5000; % N/m
k2 = k1;
k3 = k2;
k4 = k3;
% Mass matrix
M = diag([m1, m2, m3, m4]);
% Stiffness matrix
K = [k1+k2 -k2 0 0; -k2 k2+k3 -k3 0; 0 -k3 k3+k4 -k4; 0 0 -k4 k4];
% Viscous damping matrix
C = K/1e1;
% State Matrix
A = [zeros(length(M)) eye(length(M)); -M\K -M\C];
dxdt = A*x;
end
then you can solve the system using ode45 solver
tspan = [0 30]; % time span of simulation
x0 = [0.01 0.1 0.2 0.25 0 0 0 0]; % initial displacement with zero velocity
[t, x] = ode45(@(t,x) f(t, x), tspan, x0);
plot(t, x(:, 1:4), 'linewidth', 1.5)
grid on
xlabel('Time, t [sec]')
ylabel({'$x_{1},\; x_{2},\; x_{3},\; x_{4}$'}, 'Interpreter', 'latex')
title('Displacements of the building storeys')
legend({'$x_{1}$', '$x_{2}$', '$x_{3}$', '$x_{4}$'}, 'Interpreter', 'latex', 'location', 'best')
Results:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/971955/image.png)
참고 항목
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!