pkg load control

%% Figure light theme

set(0, "defaultAxesColorOrder", [
        1.0000 0.0000 0.0000;  # red
        0.0000 0.0000 1.0000;  # blue
        1.0000 0.4980 0.0549;  # orange
        0.1725 0.6275 0.1725;  # green
        0.5804 0.4039 0.7412;  # purple
        0.5490 0.3373 0.2941;  # brown
        0.8902 0.4667 0.7608;  # pink
        0.4980 0.4980 0.4980;  # gray
]);

set(0, "DefaultFigureColor", [1 1 1]);
set(0, "DefaultAxesColor", [1 1 1]);
set(0, "DefaultAxesXColor", [0 0 0]);
set(0, "DefaultAxesYColor", [0 0 0]);
set(0, "DefaultTextColor", [0 0 0]);

set(0, "DefaultAxesGridColor", [0 0 0]);
set(0, 'DefaultAxesGridAlpha', 1.00);

set(0, "DefaultAxesMinorGridColor", [0 0 0]);
set(0, 'DefaultAxesMinorGridAlpha', 1.00);

set(0, "DefaultLineLinewidth", 3.00);
set(0, "DefaultAxesFontSize", 16);
set(0, "DefaultTextFontSize", 16);
set(0, "DefaultAxesLineWidth", 1.00);

set(0, "DefaultAxesXGrid", "on");
set(0, "DefaultAxesYGrid", "on");
set(0, "DefaultAxesZGrid", "on");
set(0, "DefaultAxesXMinorGrid", "on");
set(0, "DefaultAxesYMinorGrid", "on");
set(0, "DefaultAxesXMinorTick", "on");
set(0, "DefaultAxesYMinorTick", "on");

set(0, 'DefaultAxesGridAlpha', 0.50);
set(0, 'DefaultAxesMinorGridAlpha', 0.25);


% num = [6/250 6];
% den = conv([1/500 1], [1/power(1/4000, 2) 1/9000 1]);

p1=-500
complex_roots = roots([1 power(4000, 2)/9000 power(4000, 2)]);
p2=complex_roots(1)
p3=complex_roots(2)

k1=-250/(500^2 + ((4000^2)/9000)*-500 + (4000^2))
k2=(p2+250) / ((p2+500)*(p2-(conj(p2))))
k3=conj(k2)

H1=tf([1 250], [1 500])
H2=power(4000, 2)*tf(1, [1 power(4000, 2)/9000 power(4000, 2)])

H = 12*H1*H2;

figure(1);
set(gcf, "paperunits", "inches");
set(gcf, "papersize", [10 4]);
set(gcf, "paperposition", [0 0 10 4]);

% bode(H);
% grid on;

% Cambiar tamaño de las fuentes
% set(gca, "fontsize", 12);      % ejes actuales
% set(findall(gcf,"type","text"), "fontsize", 10);  % todos los textos
% set(findall(gcf,"type","line"), "linewidth", 1.25);

% diagrama de bode transferencia original
% print("bode_plot.png", "-dpng", "-r1000");

set (0, "defaultlinelinewidth", 3.00);
set (0, "defaultaxesfontsize", 16);
set (0, "defaulttextfontsize", 16);
set(0, "DefaultAxesLineWidth", 1.00);

set (0, "defaultaxesxgrid", "on");
set (0, "defaultaxesygrid", "on");
set (0, "defaultaxeszgrid", "on");
set (0, "defaultaxesxminorgrid", "on");
set (0, "defaultaxesyminorgrid", "on");
set (0, "defaultaxesxminortick", "on");
set (0, "defaultaxesyminortick", "on");

set (0, 'DefaultAxesGridAlpha', 0.30);
set (0, 'DefaultAxesMinorGridAlpha', 0.25);

set (gca, "minorgridlinestyle", "--");   % grilla mayor con línea de guiones

t=0:0.00001:0.02;

plot(t*1e3, 12.*4000^2.*(-16.3e-6.*exp(-500.*t)
    + 2.*abs(k2).*exp(real(p2).*t).*cos(imag(p2).*t+arg(k2))))
axis tight;
xlim([0 10])
xticks(0:1:10);
ylim([-35000 35000])

ylabel("AMPLITUD  h(t)");
xlabel("TIEMPO  t  [ms]");
legend("Respuesta al impulso h(t)");

graphics_toolkit("qt");
set(gcf, "renderer", "painters");
print("impulse.png", "-dpng", "-r500");

k1=(p1+250)/((p1^2 + (4000^2/9000)*p1 + 4000^2) *p1)
k2=(p2+250) / ((p2+500)*(p2-conj(p2))*p2)
k3=conj(k2)
k4=k4=(250)/(500*(4000^2))

plot(t*1e3, (6.24*exp(-500.*t))+(12.41*exp(-889.*t).*cos(3900.*t + 2.98)) + (6.01))
axis tight;
xlim([0 10])
xticks(0:1:10);
ylim([0 20])

ylabel("AMPLITUD  y(t)");
xlabel("TIEMPO  t  [ms]");
legend("Respuesta al escalón y(t)");

print("heaviside.png", "-dpng", "-r500");


% pause()
% cla
