Hello dear community,
I'm getting following error quite unexpectedly (since I don't have any && or || in my code) while trying to solve an optimization problem with patternsearch:
Operands to the || and && operators must be convertible to logical scalar values.
Error in psAugConverged (line 94)
if ~isempty(infMessage) && strmatch('optimlib:optimfcnchk',infMessage)
Error in pfmincon (line 66)
[X,FVAL,maxConstr,optimState] = psAugConverged(Iterate,X,optimState,psAugParam,options);
Error in patternsearch (line 280)
[X,FVAL,EXITFLAG,OUTPUT] = pfmincon(FUN,X0,optimState,Iterate, …
Error in Test1 (line 17)
[x,fval,exitflag,output] = patternsearch(fun,x0,A,b,Aeq,beq,lb,ub,@(x)nonlcon(x),options);
Any clue?
My optimization problem is referring to following script called CSolveODE (I made sure to replace all && with & but it didn't fix the issue!) and I am sure that the issue is linked to this script since the optimization code works if I replace the parameter Heatflow.steamair with a parameter from ADatafromExcel or BDatadefinition
% addpath Functions
% run ADatafromExcel
% run BDatadefinition
Position.all=zeros([],1);Characteristics.paper_all=zeros([],2); Characteristics.paper_begsection_all=[];Humidity.air_f_all=zeros([],1);Heatflow.steampaper_all=zeros([],1);Heatflow.steamair_all=zeros([],1);Support.differentialua=zeros([],1);Temperature.air_f_all=zeros([],1);Temperature.air2_f_all=zeros([],1);PAR.CONDITIONS.PAPER_PRE_ALL=[];PAR.CONDITIONS.PAPER_POST_ALL=[];PAR.CONDITIONS.PAPER_COAT_ALL=[];Support.coeffplot_tot=[];% Solving loop
for k=1:numel(PAR.POSITION_IN_PAPERMACHINE)-1 PAR.TEMP.STEAM_CYL=PAR.TEMP.STEAM_CYL_ALL(k); PAR.AREA.CONV=PAR.AREA.CONV_ALL(k); PAR.AREA.COND=PAR.AREA.COND_ALL(k);PAR.MASSFIBER.P=PAR.MASSFIBER.ALL(k); PAR.ANGLE=PAR.ANGLE_ALL(k);PAR.DIAMETER.CYL=PAR.DIAMETER.CYL_ALL(k); PAR.AREA.CYL_NONCOVERED=PAR.AREA.CYL_NONCOVERED_ALL(k);PAR.MASSFLOW.AIR_PERZONE=PAR.MASSFLOW.AIR_PERZONE_ALL(k);PAR.HEATTRANSF.CYLAIR=PAR.HEATTRANSF.CYLAIR_ALL(k);PAR.MASSTRANSF.PAPERAIR=PAR.MASSTRANSF.PAPERAIR_ALL(k); PAR.HEATTRANSF.PAPERAIR=PAR.HEATTRANSF.PAPERAIR_ALL(k); PAR.AREA.CONV1=PAR.AREA.CONV_ALL1(k); % Solving the ODE system
if k<(PAR.CYLNUM.PRE*2+1) [Position.paper,Characteristics.paper]=ode45(@(L,y) myODE(L,y,PAR.AREA.CONV,PAR.AREA.COND,PAR.HEATTRANSF.PAPERAIR,PAR.MASSTRANSF.PAPERAIR,PAR.MASSFIBER.P,PAR.TEMP.STEAM_CYL,PAR.MOLARWEIGHT.WATER,PAR.SPEED.PAPERMACHINE,PAR.GASCONSTANT,PAR.ANGLE,PAR.HEATTRANSF.CONDENSATES, PAR.DIAMETER.CYL, PAR.THICKNESS.IRONSHELL,PAR.THERMCONDUCTIVITY.IRONSHELL, PAR.HEATTRANSF.CYLSHEET_REF,PAR.DENSITY.DRYPAPER,PAR.DENSITY.WATER,PAR.GRAM.PAPER_DRY,PAR.THERMCONDUCTIVITY.DRYPAPER,PAR.SPECIFICHEAT.FIBER,PAR.SPECIFICHEAT.WATER,PAR.SPECIFICHEAT.VAPOR,PAR.TEMP.AIR_AFTER_STEAMHEATING,PAR.PRESSURE.ATMOSPHERE,PAR.PARTIALPRESSURE.VAPOR_HOOD,densityair(PAR.TEMP.AIR_AFTER_STEAMHEATING),PAR.SPECIFICHEAT.AIR,PAR.PRANDTL.AIR,PAR.SCHMIDT.AIR),PAR.POSITION_IN_PAPERMACHINE(k:k+1),PAR.CONDITIONS.PAPER_PRE); PAR.CONDITIONS.PAPER_PRE=Characteristics.paper(end,:); % Set in B: PAR.CONDITIONS.PAPER_PRE=[PAR.HUM.PAPER_PRE,PAR.TEMP.PAPER_PRE]; and in Y: PAR.HUM.PAPER_PRE=PAR.HUM.PAPER_PRE+x(1)*(PAR.HUM.PAPER_PRE_Mechanicaldryingmeasure-PAR.HUM.PAPER_PRE) & PAR.TEMP.PAPER_PRE=PAR.TEMP.PAPER_PRE+x(2)*(PAR.TEMP.PAPER_PRE_Steamboxmeasure-PAR.HUM.PAPER_PRE);
elseif k>=(PAR.CYLNUM.PRE*2+1) & k<((PAR.CYLNUM.PRE+PAR.CYLNUM.POST)*2+1) [Position.paper,Characteristics.paper]=ode45(@(L,y) myODE(L,y,PAR.AREA.CONV,PAR.AREA.COND,PAR.HEATTRANSF.PAPERAIR,PAR.MASSTRANSF.PAPERAIR,PAR.MASSFIBER.P,PAR.TEMP.STEAM_CYL,PAR.MOLARWEIGHT.WATER,PAR.SPEED.PAPERMACHINE,PAR.GASCONSTANT,PAR.ANGLE,PAR.HEATTRANSF.CONDENSATES, PAR.DIAMETER.CYL, PAR.THICKNESS.IRONSHELL,PAR.THERMCONDUCTIVITY.IRONSHELL, PAR.HEATTRANSF.CYLSHEET_REF,PAR.DENSITY.DRYPAPER,PAR.DENSITY.WATER,PAR.GRAM.PAPER_DRY,PAR.THERMCONDUCTIVITY.DRYPAPER,PAR.SPECIFICHEAT.FIBER,PAR.SPECIFICHEAT.WATER,PAR.SPECIFICHEAT.VAPOR,PAR.TEMP.AIR_AFTER_STEAMHEATING,PAR.PRESSURE.ATMOSPHERE,PAR.PARTIALPRESSURE.VAPOR_HOOD,densityair(PAR.TEMP.AIR_AFTER_STEAMHEATING),PAR.SPECIFICHEAT.AIR,PAR.PRANDTL.AIR,PAR.SCHMIDT.AIR),PAR.POSITION_IN_PAPERMACHINE(k:k+1),PAR.CONDITIONS.PAPER_POST); PAR.CONDITIONS.PAPER_POST=Characteristics.paper(end,:); % Set in B: PAR.CONDITIONS.PAPER_POST=[PAR.HUM.PAPER_POST,PAR.TEMP.PAPER_POST] and in Y: PAR.HUM.PAPER_POST=PAR.HUM.PAPER_POST+x(2)*(PAR.HUM.PAPER_POST_StarchMeasure-PAR.HUM.PAPER_POST);
else [Position.paper,Characteristics.paper]=ode45(@(L,y) myODE(L,y,PAR.AREA.CONV,PAR.AREA.COND,PAR.HEATTRANSF.PAPERAIR,PAR.MASSTRANSF.PAPERAIR,PAR.MASSFIBER.P,PAR.TEMP.STEAM_CYL,PAR.MOLARWEIGHT.WATER,PAR.SPEED.PAPERMACHINE,PAR.GASCONSTANT,PAR.ANGLE,PAR.HEATTRANSF.CONDENSATES, PAR.DIAMETER.CYL, PAR.THICKNESS.IRONSHELL,PAR.THERMCONDUCTIVITY.IRONSHELL, PAR.HEATTRANSF.CYLSHEET_REF,PAR.DENSITY.DRYPAPER,PAR.DENSITY.WATER,PAR.GRAM.PAPER_DRY,PAR.THERMCONDUCTIVITY.DRYPAPER,PAR.SPECIFICHEAT.FIBER,PAR.SPECIFICHEAT.WATER,PAR.SPECIFICHEAT.VAPOR,PAR.TEMP.AIR_AFTER_STEAMHEATING,PAR.PRESSURE.ATMOSPHERE,PAR.PARTIALPRESSURE.VAPOR_HOOD,densityair(PAR.TEMP.AIR_AFTER_STEAMHEATING),PAR.SPECIFICHEAT.AIR,PAR.PRANDTL.AIR,PAR.SCHMIDT.AIR),PAR.POSITION_IN_PAPERMACHINE(k:k+1),PAR.CONDITIONS.PAPER_COAT); PAR.CONDITIONS.PAPER_COAT=Characteristics.paper(end,:); % Set in B: PAR.CONDITIONS.PAPER_COAT=[PAR.HUM.PAPER_COAT_CYL,PAR.TEMP.PAPER_COAT]; if PAR.IRDRYER.SWITCH==1; PAR.CONDITIONS.PAPER_COAT(2)=PAR.IRDRYER.TEMP; elseif PAR.IMPDRYER.SWITCH==1; PAR.CONDITIONS.PAPER_COAT(2)=PAR.IMPDRYER.TEMP; end
end% Plot supporting coefficient
if k<(PAR.CYLNUM.PRE*2+1) Support.coeffplot=1+Position.paper/(PAR.LENGTH.FREE_ALL(k)+PAR.LENGTH.COND_ALL(k)); elseif k>=(PAR.CYLNUM.PRE*2+1) & k<((PAR.CYLNUM.PRE+PAR.CYLNUM.POST)*2+1) Support.coeffplot=1+PAR.CYLNUM.PRE+(Position.paper-(sum(PAR.LENGTH.COND_PRE)+sum(PAR.LENGTH.FREE_PRE)))/(PAR.LENGTH.FREE_ALL(k)+PAR.LENGTH.COND_ALL(k)); else Support.coeffplot=1+PAR.CYLNUM.PRE+PAR.CYLNUM.POST+(Position.paper-(sum(PAR.LENGTH.COND_PRE)+sum(PAR.LENGTH.COND_POST)+sum(PAR.LENGTH.FREE_PRE)+sum(PAR.LENGTH.FREE_POST)))/(PAR.LENGTH.FREE_ALL(k)+PAR.LENGTH.COND_ALL(k)); end% Value of u and Tp at beginning of a cylinder&no-cylinder section
Characteristics.paper_begsection=Characteristics.paper(end-40,:); % Differential of u for Balance on air;
if k<(PAR.CYLNUM.PRE*2+1) Support.differentialu=PAR.CONDITIONS.PAPER_PRE(:,1)-Characteristics.paper_begsection(:,1); elseif k>=(PAR.CYLNUM.PRE*2+1) & k<((PAR.CYLNUM.PRE+PAR.CYLNUM.POST)*2+1) Support.differentialu=PAR.CONDITIONS.PAPER_POST(:,1)-Characteristics.paper_begsection(:,1); else Support.differentialu=PAR.CONDITIONS.PAPER_COAT(:,1)-Characteristics.paper_begsection(:,1); endHumidity.air_f=-Support.differentialu*PAR.GRAM.PAPER_DRY*PAR.SPEED.PAPERMACHINE*PAR.WIDTH.PAPER/PAR.MASSFLOW.AIR_PERZONE+PAR.HUM.AIR_OUTSIDE; % Heat flow/cylinder to paper & air
if rem(k,2)==0; Heatflow.steamair=0; Heatflow.steampaper=0;elseif k<PAR.CYLNUM.PRE*2+1 & rem(k,4)==3 & PAR.CONFIG.CYL(k)==1 & PAR.CONFIG.FIRSTCYL(1)==1;Heatflow.steamair=0; Heatflow.steampaper=0;elseif k<PAR.CYLNUM.PRE*2+1 & rem(k,4)==1 & PAR.CONFIG.CYL(k)==1 & PAR.CONFIG.FIRSTCYL(1)==0; Heatflow.steamair=0; Heatflow.steampaper=0; elseif k>=(PAR.CYLNUM.PRE*2+1) & k<((PAR.CYLNUM.PRE+PAR.CYLNUM.POST)*2+1) & rem((k-PAR.CYLNUM.PRE*2),4)==3 & PAR.CONFIG.CYL(k)==1 & PAR.CONFIG.FIRSTCYL(2)==1;Heatflow.steamair=0; Heatflow.steampaper=0;elseif k>=(PAR.CYLNUM.PRE*2+1) & k<((PAR.CYLNUM.PRE+PAR.CYLNUM.POST)*2+1) & rem((k-PAR.CYLNUM.PRE*2),4)==1 & PAR.CONFIG.CYL(k)==1 & PAR.CONFIG.FIRSTCYL(2)==0;Heatflow.steamair=0; Heatflow.steampaper=0;elseif k>((PAR.CYLNUM.PRE+PAR.CYLNUM.POST)*2+1) & rem((k-(PAR.CYLNUM.PRE+PAR.CYLNUM.POST)*2),4)==3 & PAR.CONFIG.CYL(k)==1 & PAR.CONFIG.FIRSTCYL(3)==1;Heatflow.steamair=0; Heatflow.steampaper=0;elseif k>((PAR.CYLNUM.PRE+PAR.CYLNUM.POST)*2+1) & rem((k-(PAR.CYLNUM.PRE+PAR.CYLNUM.POST)*2),4)==1 & PAR.CONFIG.CYL(k)==1 & PAR.CONFIG.FIRSTCYL(3)==0;Heatflow.steamair=0; Heatflow.steampaper=0;elseif k<PAR.CYLNUM.PRE*2+1 Heatflow.steampaper=0.001*heatTransfCoeffSteamtoPaper(Characteristics.paper(1),PAR.ANGLE,PAR.HEATTRANSF.CONDENSATES,PAR.DIAMETER.CYL,PAR.THICKNESS.IRONSHELL,PAR.THERMCONDUCTIVITY.IRONSHELL,PAR.HEATTRANSF.CYLSHEET_REF,PAR.DENSITY.DRYPAPER,PAR.DENSITY.WATER,PAR.GRAM.PAPER_DRY,PAR.THERMCONDUCTIVITY.DRYPAPER,thermalconductivitywater(Characteristics.paper(2)))*(PAR.TEMP.STEAM_CYL-(PAR.CONDITIONS.PAPER_PRE(:,2)+Characteristics.paper_begsection(:,2))/2)*PAR.AREA.CONV; % Heat flow from cylinder to paper in kJ/s (kW)
Heatflow.steamair=0.001*heatTransfCoeffSteamtoAir(PAR.ANGLE,PAR.HEATTRANSF.CONDENSATES,PAR.DIAMETER.CYL,PAR.THICKNESS.IRONSHELL,PAR.THERMCONDUCTIVITY.IRONSHELL,PAR.HEATTRANSF.CYLAIR)*(PAR.TEMP.STEAM_CYL-PAR.TEMP.AIR_AFTER_STEAMHEATING)*(PAR.AREA.CYL_NONCOVERED+pi*(PAR.DIAMETER.CYL/2)^2); % Heat flow from cylinder to air in kJ/s
elseif k>=(PAR.CYLNUM.PRE*2+1) & k<((PAR.CYLNUM.PRE+PAR.CYLNUM.POST)*2+1) Heatflow.steampaper=0.001*heatTransfCoeffSteamtoPaper(Characteristics.paper(1),PAR.ANGLE,PAR.HEATTRANSF.CONDENSATES,PAR.DIAMETER.CYL,PAR.THICKNESS.IRONSHELL,PAR.THERMCONDUCTIVITY.IRONSHELL,PAR.HEATTRANSF.CYLSHEET_REF,PAR.DENSITY.DRYPAPER,PAR.DENSITY.WATER,PAR.GRAM.PAPER_DRY,PAR.THERMCONDUCTIVITY.DRYPAPER,thermalconductivitywater(Characteristics.paper(2)))*(PAR.TEMP.STEAM_CYL-(PAR.CONDITIONS.PAPER_POST(:,2)+Characteristics.paper_begsection(:,2))/2)*PAR.AREA.CONV; % Heat flow from cylinder to paper in kJ/s
Heatflow.steamair=0.001*heatTransfCoeffSteamtoAir(PAR.ANGLE,PAR.HEATTRANSF.CONDENSATES,PAR.DIAMETER.CYL,PAR.THICKNESS.IRONSHELL,PAR.THERMCONDUCTIVITY.IRONSHELL,PAR.HEATTRANSF.CYLAIR)*(PAR.TEMP.STEAM_CYL-PAR.TEMP.AIR_AFTER_STEAMHEATING)*(PAR.AREA.CYL_NONCOVERED+pi*(PAR.DIAMETER.CYL/2)^2); % Heat flow from cylinder to air in kJ/s
elseif k>((PAR.CYLNUM.PRE+PAR.CYLNUM.POST)*2+1) Heatflow.steampaper=0.001*heatTransfCoeffSteamtoPaper(Characteristics.paper(1),PAR.ANGLE,PAR.HEATTRANSF.CONDENSATES,PAR.DIAMETER.CYL,PAR.THICKNESS.IRONSHELL,PAR.THERMCONDUCTIVITY.IRONSHELL,PAR.HEATTRANSF.CYLSHEET_REF,PAR.DENSITY.DRYPAPER,PAR.DENSITY.WATER,PAR.GRAM.PAPER_DRY,PAR.THERMCONDUCTIVITY.DRYPAPER,thermalconductivitywater(Characteristics.paper(2)))*(PAR.TEMP.STEAM_CYL-(PAR.CONDITIONS.PAPER_COAT(:,2)+Characteristics.paper_begsection(:,2))/2)*PAR.AREA.CONV; % Heat flow from cylinder to paper in kJ/s Heatflow.steamair=0.001*heatTransfCoeffSteamtoAir(PAR.ANGLE,PAR.HEATTRANSF.CONDENSATES,PAR.DIAMETER.CYL,PAR.THICKNESS.IRONSHELL,PAR.THERMCONDUCTIVITY.IRONSHELL,PAR.HEATTRANSF.CYLAIR)*(PAR.TEMP.STEAM_CYL-PAR.TEMP.AIR_AFTER_STEAMHEATING)*(PAR.AREA.CYL_NONCOVERED+pi*(PAR.DIAMETER.CYL/2)^2); % Heat flow from cylinder to air in kJ/s endif rem(k,2)~=0 & PAR.PRESSURE.STEAM_CYL_ALL(k)==0; Heatflow.steamair=0; Heatflow.steampaper=0;endSupport.Phi= 1-exp(-(47.58*Characteristics.paper(1)^1.877+0.10085*(Characteristics.paper(2))*Characteristics.paper(1)^1.0585));Support.DHevap = (PAR.GASCONSTANT/PAR.MOLARWEIGHT.WATER)*0.10085*(Characteristics.paper(1)^1.0585)*((Characteristics.paper(2)+273.15)^2)*(1-Support.Phi)/Support.Phi+2501-2.3237*Characteristics.paper(2); % in kJ/kg water
Temperature.air_f=(PAR.MASSFLOW.AIR_PERZONE*Entha(PAR.TEMP.AIR_AFTER_STEAMHEATING,PAR.HUM.AIR_OUTSIDE,PAR.SPECIFICHEAT.AIR,PAR.SPECIFICHEAT.VAPOR,Latentheatvaporization(PAR.TEMP.AIR_AFTER_STEAMHEATING))-Support.DHevap*Support.differentialu*PAR.GRAM.PAPER_DRY*PAR.SPEED.PAPERMACHINE*PAR.WIDTH.PAPER+Heatflow.steamair-PAR.MASSFLOW.AIR_PERZONE*Latentheatvaporization(PAR.TEMP.AIR_AFTER_STEAMHEATING)*Humidity.air_f)/(PAR.MASSFLOW.AIR_PERZONE*(PAR.SPECIFICHEAT.AIR+PAR.SPECIFICHEAT.VAPOR*Humidity.air_f));if Temperature.air_f<0;Temperature.air_f=0;end%%% Formula taken from a paper
Temperature.air2_f=0.5*PAR.TEMP.AIR_AFTER_STEAMHEATING+(1-0.5)*Characteristics.paper_begsection(2);Position.all=[Position.all;Position.paper];Characteristics.paper_all=[Characteristics.paper_all;Characteristics.paper];PAR.CONDITIONS.PAPER_PRE_ALL=[PAR.CONDITIONS.PAPER_PRE_ALL;PAR.CONDITIONS.PAPER_PRE];PAR.CONDITIONS.PAPER_POST_ALL=[PAR.CONDITIONS.PAPER_POST_ALL;PAR.CONDITIONS.PAPER_POST];PAR.CONDITIONS.PAPER_COAT_ALL=[PAR.CONDITIONS.PAPER_COAT_ALL;PAR.CONDITIONS.PAPER_COAT];Characteristics.paper_begsection_all=[Characteristics.paper_begsection_all;Characteristics.paper_begsection];Heatflow.steampaper_all=[Heatflow.steampaper_all;Heatflow.steampaper];Heatflow.steamair_all=[Heatflow.steamair_all;Heatflow.steamair];Humidity.air_f_all=[Humidity.air_f_all;Humidity.air_f];Support.differentialua=[Support.differentialua;Support.differentialu];Temperature.air_f_all=[Temperature.air_f_all;Temperature.air_f];Temperature.air2_f_all=[Temperature.air2_f_all;Temperature.air2_f];Support.coeffplot_tot=[Support.coeffplot_tot;Support.coeffplot];end% keeping only every second value of:
PAR.ENTH.STEAM_CYL_ALL(2:2:end)=[];PAR.ENTH.COND_CYL_ALL(2:2:end)=[];Heatflow.steamair_all(2:2:end)=[];Heatflow.steampaper_all(2:2:end)=[]; Massflow.steam_cyl_all=3.6*(Heatflow.steamair_all+Heatflow.steampaper_all)./((PAR.ENTH.STEAM_CYL_ALL'-PAR.ENTH.COND_CYL_ALL').*(1-PAR.BLOWTHROUGH_COEFF_CYL));if PAR.STEAMGROUPS.EMPTYCYLNUM~=0for i=1:numel(PAR.STEAMGROUPS.EMPTYCYLNUM) k=PAR.STEAMGROUPS.EMPTYCYLNUM(i); Massflow.steam_cyl_all(k)=0;endendMassflow.steam_cyltot=sum(Massflow.steam_cyl_all); % total steam consumption for cylinders in t steam/h
Heatflow.steampapertot=sum(Heatflow.steampaper_all); Heatflow.steamairtot=sum(Heatflow.steamair_all);DemandSteamSpec.cyl_all=Massflow.steam_cyl_all/PAR.PRODRATE.PAPER; % specific steam consumption/cylinder in kg steam/kg paper
DemandSteamSpec.cyltot=sum(DemandSteamSpec.cyl_all); % total cylinder specific steam consumption in kg steam/kg paper
EnergyFlowSpec.steam_cyl_all_kJ=DemandSteamSpec.cyl_all.*PAR.ENTH.STEAM_CYL_ALL; % specific Energy consumption/cylinder in kJ/kg paper
EnergyFlowSpec.steam_cyltot_kJ=sum(EnergyFlowSpec.steam_cyl_all_kJ); % total cylinder specific Energy consumption in kJ/kg paper
And this is the optimization problem:
clearvars; clear; addpath Functions; fun=@(x)Investcosts(x);x0 = [1 1]; % Start point (row vector)
A=[]; % Equality constraint
b=[]; % Equality constraintAeq=[]; % Inequality constraint
beq=[]; % Equality constraintlb=[0 0]; % lower bound for x
ub=[1 1]; % upper bound for x
options = optimoptions('patternsearch','ScaleMesh','off','TolMesh',0.9);[x,fval,exitflag,output] = patternsearch(fun,x0,A,b,Aeq,beq,lb,ub,@(x)nonlcon(x),options);function f=Investcosts(x)A = 2; B = 3;f = A*x(1)+B*x(2);endfunction [CO2Emissionsyear,ceq]=nonlcon(x)run ADatafromExcel; run BDatadefinition; PAR.HUM.PAPER_PRE_Mechanicaldryingmeasure=PAR.HUM.PAPER_PRE_A;PAR.HUM.PAPER_PRE=PAR.HUM.PAPER_PRE+x(1)*(PAR.HUM.PAPER_PRE_Mechanicaldryingmeasure-PAR.HUM.PAPER_PRE);PAR.TEMP.PAPER_PRE_Steamboxmeasure=PAR.TEMP.PAPER_PRE_A ;PAR.TEMP.PAPER_PRE=PAR.TEMP.PAPER_PRE+x(2)*(PAR.TEMP.PAPER_PRE_Steamboxmeasure-PAR.HUM.PAPER_PRE);run CSolveODE; CO2Emissionsyear=Heatflow.steamairtot*24*365/1000-110;ceq=[];end
Best Answer