% identificación desistemas. Comprobación en Matlab de los resultados
% obtenidos experimentalmente con la práctica de modulitos


% primer orden

% datos
C=0.033e-6;
% medidas: ts=pi/(R*C);
ts=0.01;

% calcular R
% R = ....

% sistema primer orden
num_1=[1];
den_1=[R*C 1];
tf_1=tf(num_1,den_1);

% respuesta impulso
[y_impulse_primer_orden, t_impulse_primer_orden]=impulse(tf_1);
% respuesta escalon
[y_step_primer_orden, t_step_primer_orden]=step(tf_1);
% entrada
u_impulse_primer_orden = [1 zeros(1,length(t_impulse_primer_orden)-1)];
u_step_primer_orden = ones(1,length(t_step_primer_orden));

% segundo orden

% medidas tp,Mp, k (B/A en los guiones)
tp=0.1;
Mp=3;
k=1;

% calcular wd, sigma, wn y chi
% wd = .....
% sigma = ....
% chi = .....
% wn = ......

% sistema segundo orden
num_2=[k*wn^2];
den_2=[1 2*chi*wn wn^2];
tf_2=tf(num_2,den_2);

% respuesta impulso
[y_impulse_segundo_orden, t_impulse_segundo_orden]=impulse(tf_2);
% respuesta escalón
[y_step_segundo_orden, t_step_segundo_orden]=step(tf_2);
% entrada
u_impulse_segundo_orden = [1 zeros(1,length(t_impulse_segundo_orden)-1)];
u_step_segundo_orden = ones(1,length(t_step_segundo_orden));

figure(1);
subplot(211);hold off;
plot(t_impulse_primer_orden,y_impulse_primer_orden);grid on;hold on;
%plot(t_impulse_primer_orden,u_impulse_primer_orden,'r');
title('respuesta impulso primer orden');
xlabel('tiempo (s)');
subplot(212);hold off;
plot(t_step_primer_orden,y_step_primer_orden);grid on;hold on;
plot(t_step_primer_orden,u_step_primer_orden,'r');
title('respuesta escalón primer orden');
xlabel('tiempo (s)');

figure(2);
subplot(211);hold off;
plot(t_impulse_segundo_orden,y_impulse_segundo_orden);grid on;hold on;
%plot(t_impulse_segundo_orden,u_impulse_segundo_orden,'r');
title('respuesta impulso segundo orden');
xlabel('tiempo (s)');
subplot(212);hold off;
plot(t_step_segundo_orden,y_step_segundo_orden);grid on;hold on;
plot(t_step_segundo_orden,u_step_segundo_orden,'r');
title('respuesta escalón segundo orden');
xlabel('tiempo (s)');

% diagrama de bode teórico del sistema de primer orden
figure(3);
bode(tf_1);

% diagrama de bode teórico del sistema de segundo orden
figure(4);
bode(tf_2);


% aquí representar el diagrama de bode práctico (sólo 2º orden)
% ....

% T = [];                       <--- medida
% t = [];                       <--- medida
% Uo = [];                      <--- medida
% Yo = [];                      <--- medida
% f = 1./T;
% w = 2*pi*f;
% A = 20*log10(Yo./Uo);
% phi = -w.*t;
% Phi = phi*180/pi;











