Salve a tutti ragazzi, scrivo in merito ad un problema di plottaggio della derivata di una funzione rispetto al tempo, in allegato il mio codice
%dati problema
clc
close
a1=4;
a2=8;
a3=6;
a4=7;
teta4=pi/6;
Xa=0;
Ya=0;
Xd=Xa+a4*cos(teta4);
Yd=Ya+a4*sin(teta4);
%dichiaro alfa ed il tempo e stampo
t=[0:0.01:1];
n=length(t);
teta1= linspace(0,2*pi,n);
figure(1)
for i=1:length(teta1) %for figura 1
cla
Xb=Xa+a1*cos(teta1(i));
Yb=Ya+a1*sin(teta1(i));
a5=sqrt( (a4*cos(teta4)-a1*cos(teta1(i)))^2+(a4*sin(teta4)-a1*sin(teta1(i)))^2 );
teta5(i)=atan2((a4*sin(teta4)-a1*sin(teta1(i))),(a4*cos(teta4)-a1*cos(teta1(i))));
alfa=acos((a2^2+a5^2-a3^2)/(2*a2*a5));
if abs(imag(alfa))>0
alfa=NaN;
end
teta2=alfa+teta5(i);
Xc(i)=a1*cos(teta1(i))+a2*cos(teta2);
Yc(i)=a1*sin(teta1(i))+a2*sin(teta2);
teta3=atan2((Yc-Yd),(Xc-Xd));
hold on
plot (Xa,Ya,'o');
plot (Xb,Yb,'o');
plot (Xc(i),Yc(i),'o');
plot (Xd,Yd,'o');
plot (Xc(1:i),Yc(1:i));
line ([Xa,Xb],[Ya,Yb]);
line ([Xb,Xc(i)],[Yb,Yc(i)]);
line ([Xc(i),Xd],[Yc(i),Yd]);
pause(0.1)
[ sqrt((Xa-Xb)^2+(Ya-Yb)^2) sqrt((Xc(i)-Xb)^2+(Yc(i)-Yb)^2) sqrt((Xc(i)-Xd)^2+(Yc(i)-Yd)^2) sqrt((Xa-Xd)^2+(Ya-Yd)^2) ];
xlim([-10 15])
ylim([-10 10])
axis equal
end
figure(2)
plot (t,teta5);
xlabel ('Tempo');
ylabel ('Teta5');
%Analisi velocità
for i=1:length(t)
Q=(diff(teta1(i)));
V2(i)=((a1*Q)/(a2*a3*sin(teta2(i)-teta3(i)))*(-a3*cos(teta3(i))-a3*sin(teta3(i))*sin(teta1(i))));
%V3(i)=((a1*Q)/(a2*a3*sin(teta2-teta3))*(-a2*cos(teta2)-a2*sin(teta2))*(-cos(teta1(i))));
end
figure(3)
plot (t(1,end-1),V2);
xlabel ('Tempo');
ylabel ('Velocità 2')
In pratica la prima parte mi gira il problema, molto probabilmente, ce l'ho nella dichiarazione della variabile
Q (teta1 rappresenta la rotazione che do io in ingresso), in pratica mi serve derivare tale funzione per implementarla in una funzione a sua volta da plottare,
V2, che dovrebbe indicarmi l'andamento velocità.
In attesa di un vostro riscontro, ringrazio anticipatamente a tutti.