% main_reak_ol.m
% Aapen sloeyfe-simulering og systemidentifikasjon av reaktor
% Skisse til loesningsforslag for oeving 7, punkt e).

clear all

% Prosessparametre.
x1s=2.5;x2s=1; ths=10; us=25;
k1=50; k2=100; k3=10;
d=[0,1];


% Tidshorisont og samplingsintervall
dt=0.001;
t=0:dt:1;
N=length(t);

% Generere forsoek i u_k.
dU=prbs1(N,30,150);
U=us+dU;

% Prosess og maalestoey.
w=randn(N,1)*0.0000;
v=randn(N,2)*0.0;

x=[x1s;x2s];
for k=1:N
   % "Henter" maalingen fra prosessen
   y=d*x+w(k);
   
   % Lagrer/logger data
   X(k,:)=x';
   Y(k,:)=y';
   
   % Integrerer prosessmodellen
   u=U(k);
   fx1=-k1*x(1)-k3*x(1)^2+(ths-x(1))*u+v(k,1);
   fx2=k1*x(1)-k2*x(2)-x(2)*u +v(k,2);
   x=x+dt*[fx1;fx2];   
   
end

% Systemidentifikasjon, benytter dataene direkte.
L=3; J=4;
[a,b,d,e,c,f,x0]=dsr(Y,U,L,0,J,1,3);
ym=dlsim(a,b,d,e,U,x0);

% Plotter resultatene
figure(1)
subplot(211), plot(t,U), title('Forsoek i paadraget: u_k'), grid
subplot(212), plot(t,[Y ym]), title('Utgang og estimert utgang'), grid
