clc;
clear all;
close all;

% dados de entrada
C=63.5e-3;
R=19.05e-3;
q=linspace(0,2*pi);
qp=1;
qpp=0;

% cálculo de variáveis secundárias
A=atan((R*sin(q))./(C+R*cos(q)));
B=(C+R*cos(q))./cos(A);
Amax=max(abs(A));
Anor=A/Amax;
Bmax=max(abs(B));
Bnor=B/Bmax;

% cálculo de velocidades
Ka=R*(cos(A-q)./B);
Ap=qp.*Ka;
Kb=R*sin(A-q);
Bp=qp.*Kb;
Apmax=max(abs(Ap));
Apnor=Ap/Apmax;
Bpmax=max(abs(Bp));
Bpnor=Bp/Bpmax;

% cálculo de acelerações
La=((-2*Ka.*Kb)./B)+(R*(sin(A-q)./B));
Lb=(Ka.^2.*B)-(R*cos(A-q));
App=qpp.*Ka+(qp.^2).*La;
Bpp=qpp.*Kb+(qp.^2).*Lb;
Appmax=max(abs(App));
Appnor=App/Appmax;
Bppmax=max(abs(Bpp));
Bppnor=Bpp/Bppmax;

subplot(1,2,1);
plot(q,Anor,'r-',q,Apnor,'g-',q,Appnor,'b-');
xlabel('q (rad)');
ylabel('A (amplitudes normalizadas)');
axis([0 7 -1 1]);
legend('pos','vel','acel');
grid on;
subplot(1,2,2);
plot(q,Bnor,'r-',q,Bpnor,'g-',q,Bppnor,'b-');
xlabel('q (rad)');
ylabel('B (amplitudes normalizadas)');
axis([0 7 -1 1]);
legend('pos','vel','acel');
grid on