%KKimp.m
clear all
global V N_OH N_FD N_K N_EK N_FV T_OH_RG_0 T_OH_D_0 T_FD_RG_0 T_EK_RG_0 T_FV_RG_0

%format short g
format compact
format long g

%load results/KKopt/opt023   %Henter variabler fra optimalisering
load opt023   %Henter variabler fra optimalisering

%Pådrag 
    %u = [Ws_CH4kompressor; Ws_LUFTkompressor]
    %u = [595.8; 15290; 78.5; 80.0; 120; 1.5];
    %u = [457.2; 10886; 78.5; 80.0; 120; 1.5];
%Forstyrrelser
    %d = [p_CH4; p_LUFT; T_CH4; T_LUFT]
    d = [20E5; 1E5; 283; 283];  %Pa (d(1:2)) og K (d(3:4)) (verdier hentet fra Skogestad(2000))
        
%Initialbetingelser i brennkammeret (beregnet fra verdier fra høstprosjektet mitt)
    %X_BK =[n_O2; n_N2; n_CO2; n_H20(g); n_CH4; T_BK]
    %X_BK = [6.57; 41.2; 2.19; 4.38; 1773];
        
%Initialverdier for overheter
N_OH = 3;       %Antall celler i OH
T_OH_RG_0 = uX023(12:14); %[798; 770; 724];  %K, T(overheter,røykgass,celle 1, 2 og 3) (fra KK1imp.m)                                        
T_OH_D_0 = uX023(15:17); %[772; 727; 653]; %T(overheter,damp,celle 1, 2 og 3) (fra KK1imp.m)
%T_OH = [T(overheter,røykgass,celle 1, 2 og 3); T(overheter,damp,celle 1, 2 og 3)]
%T_OH = [821.1; 807.1; 759.1; 813.5; 780.9; 668.7]; %fra [2]

%Initialverdier for drum og fordamper
N_FD = 3;       %Antall celler i fordamperen
%h_DR = 1.00; %m, startverdi hentet fra [2]
T_FD_RG_0 = uX023(18:20); %[611; 564; 545];  %K, T(fordamper, røykgass, celle 1, 2 og 3) (fra KK1imp.m)
%T_FD = [T(fordamper, røykgass, celle 1, 2 og 3); T(fordamper, vann)
%T_FD = [739.2; 628.3; 598.7; 587.9]; %fra [2]

%Initialbetingelser for kondensator
N_K = 3;        %Antall celler i kondensatoren
%h_KT = 1.00;       %m, væskenivå i kondensatortank [2]
%T_K_0 = [T(kondensator, kjølevann, celle 1, 2 og 3); T(kondensator, vann(damp)];
%T_K = [287.3; 285.7; 283.7; 294.7];

%Initialverdier for deaerator
%T_DE = 373; %K, temp. i deaerator, forleøpig startverdi [2] 
%h_DE = 1.50; %m, væskenivå i deaerator, initialverdi fra [2]

%Initialverdier for ekonomiser
N_EK = 3;   %Antall celler i ekonomiseren
%T_EK_0 = [T(ekonomiser, røykgass, celle 1, 2 og 3); T(ekonomiser, vann, celle 1, 2 og 3)];
T_EK_RG_0 = uX023(30:32); %[533; 513; 480];  %K, T(ekonomiser, røykgass, celle 1, 2 og 3), (fra KK1imp.m)
%T_EK = [588.2; 545.3; 477.7; 562.6; 504.9; 413.9];

%Initialverdier for forvarmer
N_FV = 3;   %Antall celler i FV
%T_FV_0 = [T_FV_RG_0; T_FV_H2O_0];
T_FV_RG_0 = uX023(36:38); %K, T(forvarmer, røykgass, celle 1, 2 og 3), (fra KK1imp.m)
%T_FV = [471.1; 452.2; 434.3; 363.6; 350.2; 337.5];

    uX = uX023; %Henter initialverdier fra tidligere optimalisering
    %uX = [u; X_BK; T_OH; T_FD; h_DR; T_K; h_KT; T_DE; h_DE; T_EK; T_FV];
    %uX = [F_CH4_0; F_LUFT_0; w_8_0; w_15_0; w_12_0; w_21_0; X_BK_0; T_OH_0; T_FD_0; h_DR_0; T_K_0; h_KT_0; T_DE_0; h_DE_0; T_EK_0; T_FV_0];
    uXsc = [1E2; 1E4; 1E1; 1E1; 1E2; 1; 1; 1E1; 1; 1; 1E3; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1; 1E2; 1E2; 1E2; 1E2; 1; 1E2; 1; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2];
    %uXsc = [1E2; 1E4; 1E1; 1E1; 1E2; 1; 1; 1; 1; 1; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1; 1E2; 1E2; 1E2; 1E2; 1; 1; 1; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2];
    uXsc = [1E1; 1E3; 1; 1; 1E1; 1; 1; 1E1; 1; 1; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1; 1E2; 1E2; 1E2; 1E2; 1; 1E2; 1; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2; 1E2];
    
    uX=uX./uXsc;                                    %Skalerer uX
    
%FSOLVE Finner stasjonær tilstand
options=optimset;
options.Display='iter';
options.MaxFunEvals = 5000;
options.MaxIter = 10000;

[uX,fval,exitflag,output] = fsolve('KKss',uX,options,d,uXsc)
%[uX,fval,exitflag,output] = fsolve('KKss',uX,options,d,uXsc)   %Kjører 2 ganger for å finne evt. bedre resultater

%uX024 = uX.*uXsc;
%save results/test2/KK4imp023ss uX023ss exitflag fval 
%save results/KKopt/opt024 uX024 exitflag fval
V