How can i plot the magnitude of displacement ?
3 views (last 30 days)
Show older comments
Mallouli Marwa
on 19 May 2016
Commented: Walter Roberson
on 19 May 2016
Hi, i want to plot the magnitude of displacement x(:,1) and i have this program but the curve displacement =f(rload) mentioned is false. Can someone help me please.
function xdot = equacte(t,x)
% Function file for mass with spring.
% Position is first variable, velocity is second variable,load is the third variable
freq=100; %frequency (Hz)
w=2*pi*freq;
m=0.0112;
k=262.8257 ;
teta =-4.40e+03;
cp= 1.8492*10^-7;
%fre=100/(2*pi);
%tandelta=(-4.5235*10^-6)*fre^2 +0.001*fre + 0.13556;
%rload=tandelta/(100*cp)
for rload =0:20:50000
A = [0,1,0;-k/m,0,-teta/m;(-teta/rload),0,-1/(rload*cp)];
B = [0;1/m;0];
f =sin(w*t);
xdot = A*x+B*f;
end
end
d31=-320*10^-12;
y11e= 62*10^9;
e33sig= 33.65*10^-9;
rop= 7800;
tp= 0.1905*10^-3;
lp= 50.8*10^-3;
bp= 25.4*10^-3;
l1= 6.35*10^-3;
l2= 44.45*10^-3;
k31carre= ((d31^2)*y11e)/e33sig;
y11d = y11e /(1-k31carre);
e33eps = e33sig*(1-k31carre);
ap = lp*bp;
cp = (e33eps*ap)/tp;
%%%%%%%%%%%%%%%%%%% beam %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
yb = 69*10^9;
rob= 2700;
tb=0.79375*10^-3;
lb=152.4*10^-3;
mtip=0.01;
bb=25.4*10^-3;
%%%%%%%%%%%%%%%%%calcul des termes de l'equation de mvt%%%%%%%%%%%%%%%%%%%
k= ((yb*bb*tb^3)/lb^3 )+( (8*y11d*bp*(l2^3-l1^3)*(((tb/2)+tp)^3-(tb/2)^3)) / lb^6);
teta=( 3*d31*y11e*bp*tp*(tb+tp)*(l2^2-l1^2) )/(lb^3*cp*tp);
m= ((rob*bb*tb*lb)/7)+((2*rop*bp*tp*(l2^7-l1^7))/(7*lb^6))+mtip;
[t,x]=ode45(@equacte,[0:0.0004:1],[0,0,0]);
index=1;
for rload=0:20:50000
if(x(index,1)>=0)
fg=x(index,1);
else
fg=abs(x(index,1));
end
fk(index)=fg;
index= index + 1;
end
figure;
plot([0:20:50000],fk,'r')
xlabel('rload(Ohm)');
ylabel('displacement(m)');
0 Comments
Accepted Answer
Walter Roberson
on 19 May 2016
Your code has
for rload=0:20:50000
but you do not use the value of rload anywhere in your code.
Note: that loop could be replaced by just
fk = abs(x(:,1));
2 Comments
Walter Roberson
on 19 May 2016
x(index,1) is a scalar, so min() and max() of it are the same values, so your xm is always going to be 0.
What is wrong with
plot([0:20:50000], abs(x(:,1)), 'b')
?
More Answers (0)
See Also
Categories
Find more on Resizing and Reshaping Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!