%=============================================================
% Mecanismos
% Prof. Jorge Luiz Erthal
% Análise geral e de ponto de interesse
% de um mecanismo biela-manivela
% Solução da posição algébrica
%=============================================================
clear all
close all
clc
%-------------------------------------------------------------
%% dados numéricos
%-------------------------------------------------------------
R=3;         % Comprimento da manivela (m)
C=0;          % Distancia do pistao ao centro da manivela (m)
L=10;         % comprimento da biela (m)
%-------------------------------------------------------------
% número de pontos
NP = 361;
qmin = 0*pi/180;
qmax = 360*pi/180;
%-------------------------------------------------------------
%% Análises
%-------------------------------------------------------------
for i = 1:NP
    q(i)=qmin+(i-1)*(qmax-qmin)/(NP-1);
    %-------------------------------------------------------------
    %% análise geral de posição
    %-------------------------------------------------------------
    a=asin((R*sin(q(i))-C)/L);
    x=R*cos(q(i))+L*cos(a);
    % distribuição do resultado nas variáveis secundárias
    A(i)=a;     % armazenamento no vetor
    X(i)=x;     % armazenamento no vetor
end
%-------------------------------------------------------------
%% Gráficos da análise geral
%-------------------------------------------------------------
figure('Name','Análise Geral')    % título na moldura superior
% gráficos geminados
% primeiro gráfico
subplot(1,2,1)                    % gráfico da esquerda (posição 1) 
plot(q*180/pi,A*180/pi,...                       
    'LineWidth',2)                % espessura da linha
grid on                           % linhas de grade
xlabel('q (^o)')                  % rótulo do eixo x
ylabel('A(q) (^o)')               % rótulo do eixo y
title('Posição da biela')         % título do gráfico
xlim([qmin*180/pi qmax*180/pi])
% segundo gráfico
subplot(1,2,2)                    % gráfico da direita (posição 2)
plot(q*180/pi,X,...
    'r',...                       % cor da curva
    'LineWidth',2)                % espessura da linha
grid on                           % insere linhas de grade
xlabel('q (^o)')                  % rótulo do eixo x
ylabel('X(q) (mm)')               % rótulo do eixo y
title('Posição do pistão')        % título do gráfico
xlim([qmin*180/pi qmax*180/pi])

%-------------------------------------------------------------
% FIM
%-------------------------------------------------------------
