% Conclusões:
%
% Comparando as situações sem e com controlo na aplicação de uma rampa,
% mais uma vez observa-se o atraso no sistema compensado. No entanto repare
% que tal só acontece quando o binário é crescente: a última figura mostra
% um percurso de -45 a +45º que revela um atraso na secção de binário
% crescente, e uma adiantamento na secção de binário decrescente, o que vem
% confirmar a ideia de não existir parametro óptimos do compensador para
% todas as circunstancias. Estes gráficos vêm reforçar a ideia do uso de um
% segundo sinal de realimentação capaz de determinar o binário exercido, e
% por isso adaptar o parametro Kp a cada situação: a corrente consumida
% pelo motor é um óptimo candidado devido a sua relaçao intrinseca com o
% binário exercido pelo motor.

close all
clear all

help response_ramp

title1= 'Percurso em rampa (Kp=0.08)';

files1a=['rampaM1nocontrol_posReq_posEff_kt0.txt ',
         'rampaM2nocontrol_posReq_posEff_kt0.txt ',
         'rampaM4nocontrol_posReq_posEff_kt0.txt ',
         'rampaM24nocontrol_posReq_posEff_kt0.txt'];
files1b=['rampaM1_posReq_posEff_controlReq.txt ',
         'rampaM2_posReq_posEff_controlReq.txt ',
         'rampaM4_posReq_posEff_controlReq.txt ',
         'rampaM24_posReq_posEff_controlReq.txt'];

label1=['Massa=m1=258g, percurso: -90º=>0º      ',
        'Massa=m2=463g, percurso: -90º=>0º      ',
        'Massa=m4=675g, percurso: -90º=>0º      ',
        'Massa=m2+m4=1138g, percurso: -45º=>+45º'];

legenda=['Requested trajectory      ';
         'Open loop response        ';
         'Integral action (K_i=0.08)'];

for i=1:size(files1a,1)
    clear array;
    
    arraya=load(files1a(i,:));
    arrayb=load(files1b(i,:));
    
    f=figure;
    set(f,'name',label1(i,:));
    
    axes('fontsize',14)
    plot(arrayb(:,1),arrayb(:,2),'g',arraya(:,1),arraya(:,3),'b',arrayb(:,1),arrayb(:,3),'r',arrayb(:,1),arrayb(:,4),'m','linewidth',2);
    
    xlabel('time (s)');
    ylabel('Position (degrees)');

    legend(legenda,'location','southeast');

    grid on;
end
