Contents
clear
close all
options=optimset('Display','off','LargeScale','off');
Definir los parámetros geométricos constantes y el vector de tiempo
paso=0.1;
Tin=0;
Tfi=12;
tiempo=Tin:paso:Tfi;
L2=1;
L3=2;
w=30*pi/180;
t20=0;
Definir un valor inicial para q
q=[0 1.5 0 3]';
Utilizar una estructura 'for' para el cálculo de la cinemática
for i=1:length(tiempo)
t=tiempo(i);
[q] = fsolve('pos',q,options,L2,L3,t20,w,t);
almQ(:,i)=q;
Ft=[0 0 0 -w]';
Fq = [L2*sin(q(1)) 1 0 0;
-L2*cos(q(1)) 0 1 0;
0 2*q(2)-2*q(4) 2*q(3) 2*q(4)-2*q(2);
1 0 0 0];
qp=Fq\-Ft;
almQp(:,i)=qp;
Gama = [(qp(1))^2*L2*cos(q(1));
(qp(1))^2*L2*sin(q(1));
2*qp(2)*(qp(2)-qp(4))+2*(qp(3))^2+2*qp(4)*(qp(4)-qp(2));
0];
qpp=-Fq\Gama;
almQpp(:,i)=qpp;
end
Empezar otro 'for' para el dibujo
for i=1:length(tiempo)
t=tiempo(i);
subplot(221)
cla
title('sistema multicuerpo')
hold on
q(3)=almQ(3,i);
q(2)=almQ(2,i);
q(4)=almQ(4,i);
p1=plot([0,q(2),q(4)],[0,q(3),0],'bo-');
p1.LineWidth=2;
axis equal
axis([-1.5 4 -1.5 1.5])
e=0.3;
p2=plot([q(4)-e,q(4)-e,q(4)+e,q(4)+e,q(4)-e],[-e,e,e,-e,-e],'g.-');
p2.LineWidth=2;
p3=plot([1-e,3+e],[-e-0.03,-e-0.03],'k-');
hold off
pause(0.00001)
subplot(222)
cla
title('Posición')
hold on
grid on
axis([0 12 1 3])
Xp(:,i)=t;
Yp(:,i)=q(4);
posi=plot(Xp,Yp,'b-');
xlabel('Tiempo')
ylabel('Posición de la deslizadera')
subplot(223)
cla
title('Velocidad')
hold on
grid on
xlabel('Tiempo')
ylabel('Velocidad de la deslizadera')
Xv(:,i)=t;
Yv(:,i)=almQp(4,i);
velocidad= plot(Xv,Yv,'b-');
axis([0 12 -0.6 0.6])
subplot(224)
cla
title('Aceleración')
hold on
grid on
Xa(:,i)=t;
Ya(:,i)=almQpp(4,i);
aceleracion= plot(Xa,Ya,'b-');
axis([0 12 -0.4 0.22])
xlabel('Tiempo')
ylabel('Aceleración de la deslizadera')
end