How can i plot the magnitude of displacement ?
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Mallouli Marwa
am 19 Mai 2016
Kommentiert: Walter Roberson
am 19 Mai 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 Kommentare
Akzeptierte Antwort
Walter Roberson
am 19 Mai 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 Kommentare
Walter Roberson
am 19 Mai 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')
?
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Resizing and Reshaping Matrices 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!