Spring mass system subjected to impulse excitation
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
function [f] = impulse(t,x,h,i)
mu=0.2; wn = 17.1552;
tspan = 0:0.01:1.35;
h = [1 zeros(1,135)];
for i = 1 : length(tspan)
% h(i) = 0 ;
% h(1) = 1 ;
% % hh(i)= 0 + h(i);
% The output is 1 only if the input is 0
% if tspan == 0
% h(i) = 0;
% end
f=zeros(2,1);
f(2) = x(2);
f(1)= -mu*9.81*sign(x(2)) - (wn^2)*x(1) + h(i) ;
end
end
the main problem is the value h(i) is not subtituting in 'f' equation.
The Script file for the above function file is -----
clear all
clc;
clf;
tic;
mu = 0.2;
wn = 17.1552;
tspan=0:0.01:1.35;
x0=[0;0];
[t,x]=ode45(@impulse,tspan,x0);
y = x(:,1);
ydot = x(:,2);
figure(1);
plot(t,y,'r','linewidth',2);
can some one please help me with code for the above equation of motion. I tried a lot but I coudn't finished. I am not good in matlab but this is needed very much. Around 15 days back I posted my code also but I coudn't follow the comments made by few people. Please help me.
5 Kommentare
darova
am 13 Feb. 2020
Please explain what is h(i) ()
DOn't you forgot to divide the entire expression by m?
f(1)= -mu*9.81*sign(x(2)) - (wn^2)*x(1) + h(i) ;
Antworten (1)
Bjorn Gustavsson
am 25 Feb. 2020
You seem to have misunderstood how matlab integrates ODEs.
Your ODE-function, impulse, should return the derivatives, and , at time t. You put an unnecessary loop in there where you spend plenty of time doing mostly nothing. This is an example of an ODE for a falling body in with some drag:
function dxdtdvxdt = ode_falldrag(t,xv,C)
dxdtdvxdt(1) = xv(2); % dxdt = v, second component of vx
dxdtdvxdt(2) = -9.81 - C*vx(2)*abs(vx(2));
end
Then you can call it something like:
[t,x]=ode45(@(t,x) ode_falldrag(t,x,1.23),tspan,x0);
where I've arbitrarily chosen a random drag-coefficient.
As for how to model impulse, you have to do more of the work. I suggest that you take a look at approximating the Dirac-pulses with Gaussians with decreasing width.
HTH
0 Kommentare
Siehe auch
Kategorien
Mehr zu General Applications finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!