%Skript for sim av nivåregsyst for flistank
%Finn Haugen
%13. januar 2013
%------------------------------------------
clear all

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Del 1 av skriptet (def av modellparametre):
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Settes i PID-regulatorblokken:
Kp=1.2;%Regulatorforsterkningen
Ti=1080;%[sec]. Integraltiden
Td=0;%Derivattiden
u_init=45;%[%] I-leddets initialverdi

u_max=100;%[%] Maks PID-pådrag. Defineres i PID-blokken.
u_min=0;%[%] Minimum PID-pådrag

t_step_h_SP=1000;%Tidspunkt for settpunktssprang
%Settes i sprang-blokken (med navn Step1).
h_SP_init=10;%[m] Verdi av settpunktet før spranget
h_SP_final=12;%Verdi etter spranget

%Definisjon av forstyrrelsessprang i w_out-blokken.
t_step_w_out=6000;
w_out_init=1500;%kg/min
w_out_final=2000;

%Prosessparametre:
Ks=33.36;
rho=145;
A=13.4;
tau=250;%[sec]
Km=6.67;
params=[rho,A];%Samler to av parametrene i et array.
%Brukes som inngang til en Matlab Function-blokken "func_dh_dt".

%Initiell utgangsverdi i Transport Delay-blokk:
w_in_0=1500;%[kg/min]

n_ampl=2;%[%]Målestøy-amplitude
Tf=20;%[sec] Filtertidskonstanten

h_init=10;%[m]. Verdien i konstant-blokken tilkoplet integratoren
h_max=15;%[m]. Defineres inne i integrator-blokken
h_min=0;%[m]. Defineres inne i integrator-blokken

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Del 2 av skriptet (innstilling og kjøring av sim):
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Ts=5;%[sec]. Simuleringens tidsskritt
t_start=0;
t_stop=8000;%[sec]
timespan=[t_start t_stop];
%simset-kommandoen angir "property" og tilhørende "value".
%Det fins mange andre "properties" som kan settes.
options_sim=simset('solver','ode1','fixedstep',Ts);
sim('modell_flistank_mdl',timespan,options_sim);%Starter simuleringen!

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Del 3 av skriptet (etterbehandling av responser):
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Plotting:
figure(1)
subplot(3,1,1)
plot(t_sim,h_sim,t_sim,h_SP_sim)
ylabel('h_{SP} og h [m]')
axis([0 t_sim(end) 8 15])
grid

subplot(3,1,2)
plot(t_sim,w_out_sim)
ylabel('w_{out} [kg/min]')
axis([0 t_sim(end) 0 3000])
grid

subplot(3,1,3)
plot(t_sim,u_sim)
ylabel('u [%]')
axis([0 t_sim(end) 0 100])
grid
xlabel('t [s]')