function [izlaz] = RLS_student(u, y, na, nb, lambda,t,P_init, theta_init) % % M-funkcija koja računa estimaciju parametara metodom najmanjih kvadrata % uz faktor zaboravljanja. % % Sintaksa: % % [izlaz] = RLS_moje2(u, y, na, nb, lambda,t,P_init, theta_init) % % Ulazi: % u -- ulaz u proces % y -- izlaz iz procesa % na -- broj parametara u brojniku % nb -- broj parametara u nazivniku % lambda -- faktor zaboravljanja % t -- vrijeme % P_init -- početna vrijednost matrice kovarijance % theta_init -- početna vrijednost estimiranih parametara % % Outputs: % izlaz -- izlaz=[trace(P) theta'] % trace(P) -- trag matrice kovarijance P % theta -- matrica estimiranih parametara % % Napisao: % Nikola Mišković, dipl. ing. % % Zavod za automatiku i procesno računarstvo % Fakultet elektrotehnike i računarstva % Sveučilište u Zagrebu % % Datum: % 10/12/2005 % dolje navedene varijable su navedene kao persistent (vrsta globalnih varijabli) % jer će nam njihoe prethodne vrijednosti biti potrebne za rekurzivni % algoritam. persistent P theta u_prosli y_prosli phi_y phi_u % u početnom trenutku se vrijednosti matrice kovarijance P i matrice % parametara P postavljaju na početne vrijednosti zadane od korisnika if t==0 new_P=P_init; new_theta=theta_init; phi_y=zeros(1,na); phi_u=zeros(1,nb+1); phi=[phi_y phi_u]'; else % punjenje regresijskog vektora sa potrebnim brojem prethodnih vrijednosti phi_y=[-y_prosli phi_y(1:(length(phi_y)-1))]; phi_u=[u_prosli phi_u(1:(length(phi_u)-1))]; phi=[phi_y phi_u]'; % ovdje treba dodati kod za osvježavanje matrice kovarijance P i matrice % parametara theta %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%% D O D A J K O D Z A P R O R A C U N %%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%% N O V I H V R I J E D N O S T I %%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% P I THETA %%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% end % u ovom dijelu se postavljju vrijednosti za slijedeći korak rekurzivne % estimacije u_prosli=u; y_prosli=y; P=new_P; theta=new_theta; izlaz=[trace(P) theta'];