%                   Universidade de Aveiro
%                               -
%       Departamento de Electrónica e Telecomunicações
%
% Projecto 5ºAno - Desenvolviento de Algoritmos de Controle para um Robô
% Humanoide
%
% Pedro Miguel Ferreira     
% Nº Mec - 27593
%
% Data - 07-03-2007
%
%%ERROR_PLOT    Faz o plot do erro e da simulação 
%   error_plot(x_des, x_real, handle)
%       x_des é o valor desejado
%       x_real é o valor real
%       handle da figura

function error_plot(x_des, x_real, handles)


inc = 1/10;
real_samples = length(x_real);
time = 0:inc:(real_samples-1)*inc;
t = (length(x_des)-1)*inc;

axes(handles.axes_pos);
    plot(time, x_des(1,1:real_samples), 'r', time, x_real(1,:), 'g');    % faz o plot da posição desejada e da posição real

    title('Posição da junta');
%     legend('Posição desejada', 'Posição real');
    xlabel('tempo');
    ylabel('Posição angular');
    axis([0 t min([x_real,x_des])-5 max([x_real,x_des])+5]);
    grid on
    hold off
    drawnow;
 
axes(handles.axes_erro);
    erro = abs(x_des(1,1:real_samples)-x_real(1,:));    % erro em graus./abs(rad2deg(x_des(1,:)))
    plot(time, erro(1,:), 'k');                           % faz o plot do erro

%     legend(['erro =' num2str(erro(end))]);
    title('Erro da junta');
    xlabel('tempo');
    ylabel('graus angulares');
    axis([0 t 0 max(erro)]);
    grid on
    drawnow;
