In this coding when i am giving m2=0 value, why no graph is coming?

조회 수: 1 (최근 30일)
RAJKUMAR SAHA
RAJKUMAR SAHA 2022년 3월 2일
댓글: RAJKUMAR SAHA 2022년 3월 2일
function dxdt = my_ode(i,x)
% Conversion to first order parameters
% z = x(1); %% displacement of damper
% zdot = x(2); %% velocity of damper
% zddot = x(2)dot; %% acceleration of damper
% y = x(3); %% displacement of structure
% ydot = x(4); %% velocity of structure
% yddot = x(4)dot; %% acceleration of structure
% x = [x(1) x(2) x(3) x(4)]; %% Output parameters
% tspan = i; %% Time span
%% Initial inputs
m1 = 10; %% mass of the structure(kg)
k1 = 15; %% stiffness of the structure(N/m)
c1 = 5; %% damping of the structure(Ns/m)
m2 = 10; %% mass of the damper(kg)
k2 = 15; %% stiffness of the damper(N/m)
c2 = 5; %% damping of the damper(Ns/m)
R = 1; %% Radius of the tank(m)
h = 0.05; %% Height of the water level in tank(m)
g = 9.81; %% Acceleration due to gravity(m/s^2)
A = 0.05; %% Amplitude of ground displacement(m)
w = 6.981; %% Input natural frequencycy(rad/s)
rho = 1000; %% Density of fluid(Kg/m^3)
xi = 1.841; %% First derivative of the Bessel function for first mode
%% define frequency
w2 = sqrt(xi*g*tanh(xi*h/R)/R); %% frequency of damper
w1 = sqrt(k1/m1); %% frequency of structure
%% define damping factor of damper
r2 = c2/(2*m2*w2);
%% define damping factor of structure
r1 = c1/(2*m1*w1);
%% define mass ratio
barm = (((R^3*pi*rho)/(2.2))*tanh(xi*h/R))/(m1);
%% define ground acceleration
ugdd = -A*w^2*sin(w*i);
%% Equation to solve
dxdt = [x(2);
(-ugdd-(2*r2*w2*x(2))-((w2)^2*x(1)));
x(4);
(-ugdd-(2*r1*w1*x(4))-((w1)^2*x(3))+(2*r2*barm*w2)+(barm*(w2)^2*x(1)))];
%% To run mass spring damper system
i = 0:0.01:20;
x = [0 0 0 0];
% Mass matrix function
% M = zeros(4,4);
% M(1,1) = 1;
% M(2,2) = 1;
% M(2,4) = 1;
% M(3,3) = 1;
% M(4,4) = 1;
% opts = odeset('Mass',@(t,x) mass(t,x));
%% Solve using ode45
[tsol,xsol] = ode45('my_ode', i, x,[1 0 0 0 ;0 1 0 1; 0 0 1 0;0 0 0 1]);
%% plotting
plot(tsol,xsol(:,3))
xlabel('time(sec)')
ylabel('displacement(m)')
grid on
title('Displacement response of structure')
figure
plot(tsol,xsol(:,4))
xlabel('time(sec)')
ylabel('velocity(m/s)')
grid on
title('Velocity response of structure')

답변 (1개)

VBBV
VBBV 2022년 3월 2일
When m2 is zero, the ode45 returns NaN values. That's why you don't see the graph

카테고리

Help CenterFile Exchange에서 Programming에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by