function ZMinSearch

clc;

%%naměřené hodnoty směrem nahoru
data=xlsread('Step1_UP.xlsx');
h=data(:,1)';
t=0:0.1:99.9;
sigma = 0;

%%Hledání minima
 koef = fminsearch(@sqr_area, [0.04019 0.1566 0.0828 -1 0.9 -0.9072],[], h, t);

% koef = fminsearch(@sqr_area, [0.8 -2 1.6 -2.8 2.7 -0.9],[], h, t);


%%vykreslení charakteristik
plot(t,h,'r')
hold on;
Gz=tf([koef(1) koef(2) koef(3)],[1 koef(4) koef(5) koef(6)],0.1,'variable','z^-1')
step(Gz,t,'b')
xlabel('t[s]')
ylabel('y(t)')
title('Průběhy veličin pro pracovní bod v 3V')
legend('Naměřená charakteristika','fminsearch charakteristika')

%Kvadraticka odchylka analyticky
h_ident = step(tf([koef(1) koef(2) koef(3)],[1 koef(4) koef(5) koef(6)],0.1,'variable','z^-1'),t);
%Cyklus FOR, který projde polem naměřených hodnot a polem identfikovaného Z
%přenosu
for T=1:1:length(t)
    sigma = sigma + (abs(h(T)-h_ident(T))).^2;
end
%Celološná kvadratická odchylka podělená počtem predikovaných (měřených)
%vzorků
sigma = sigma / length(t);
%Výpočet zesílení identifikovaného přenosu
K = (koef(1) + koef(2) + koef(3)) / (1 + koef(4) + koef(5) + koef(6));
%Výpis výsledků na Command Window
disp(['b1 = ',num2str(koef(1))])
disp(['b2 = ',num2str(koef(2))])
disp(['b3 = ',num2str(koef(3))])
disp(['a1 = ',num2str(koef(4))])
disp(['a2 = ',num2str(koef(5))])
disp(['a3 = ',num2str(koef(6))])
disp(['Sigma = ', num2str(sigma)])
disp(['K = ', num2str(K)])