$ontext this codes will read the data from the excel file (outopt24h.xlsx) which is the output of the previous run of the optimization code and will calculate the real time dispatch for the first hour (H=1) The output variables from this code that will be used as input to the following code (Opt_23h)is: SOR Please note that the last value of this output variable (T=900) will be used as parameter input to the following code (Opt_23h) $offtext sets h number of hours/1/ N sources/1*100/ T total number of time intervals /1*900/ r /1/; Scalar Ef Efficiency /0.9/, Beta /0.05 /, N_N Total Number of sources/100/, phi /0.1/, si /0.9/, zeta factor/0.1/, dt Time step/900/, TR /900/, MPdis /10/, eta /0.49/; alias(i,h); alias(j,N); alias(y,T); Parameter En(N,h), EnRes(N,T), MP(N,r), Mci(N,r), Av(N,h), AvRes(N,T), PP(N,h), Mx(N,h), Mn(N,h), PPRes(N,T), MxRes(N,T), MnRes(N,T), TOTPPRes(T,r), TOTMxRes(T,r), TOTMnRes(T,r), Sig(T,r), RegPerc(T,r), RegSig(T,r), IncDis(N,T), DisSig(T,r); $GDXIN outopt1h.gdx $LOAD MP Mci En Av RegPerc PP Mn Mx $GDXIN Variables SOR(N,T), TOTsw(N), obj; Positive Variables F(N,T), AccF(N,T), AccF_t(N); Binary Variable x(N,T), SWON(N,T), SWOFF(N,T); Equations objective_e, S_e, C_22,C_23,C_24a,C_24b,C_25, C_26,C_28_1, C_28_2, C_31, C_32; loop((N,T,h),AvRes(N,T)$(ord(h)=ceil(ord(T)/TR))=Av(N,h)); loop((N,T,h),PPRes(N,T)$(ord(h)=ceil(ord(T)/TR))=PP(N,h)); loop((N,T,h),MxRes(N,T)$(ord(h)=ceil(ord(T)/TR))=Mx(N,h)); loop((N,T,h),MnRes(N,T)$(ord(h)=ceil(ord(T)/TR))=Mn(N,h)); loop((N,T,h),EnRes(N,T)$(ord(h)=ceil(ord(T)/TR))=En(N,h)); TOTPPRes(T,r)=sum((N),PPRes(N,T)); TOTMxRes(T,r)=sum((N),MxRes(N,T)); TOTMnRes(T,r)=sum((N),MnRes(N,T)); RegSig(T,r)=((TOTMxRes(T,r)*RegPerc(T,r)$(RegPerc(T,r)>0))+(TOTMnRes(T,r)*RegPerc(T,r)$(RegPerc(T,r)<0))); Sig(T,r)=RegSig(T,r)+TOTPPRes(T,r); IncDis(N,T)=PPRes(N,T)+(((MnRes(N,T)*RegSig(T,'1'))/TOTMnRes(T,'1'))$((RegSig(T,'1')<0)and(TOTMnRes(T,'1')>0)))+(((MxRes(N,T)*RegSig(T,'1'))/TOTMxRes(T,'1'))$((RegSig(T,'1')>0) and (TOTMxRes(T,'1')>0))); DisSig(T,r)$(Sig(T,r)<=MPdis)=ceil(Sig(T,r)/MPdis)*MPdis; DisSig(T,r)$(Sig(T,r)>MPdis)=floor(Sig(T,r)/MPdis)*MPdis; objective_e.. obj=E=(sum(N,TOTsw(N))+sum(N,AccF_t(N))); S_e(N).. TOTsw(N)=E=sum(T,SWON(N,T))+sum(T,SWOFF(N,T)); C_23(N,T)$(AvRes(N,T)=1).. SWON(N,T)=g=x(N,T)-x(N,T-1); C_22(N,T)$(AvRes(N,T)=1).. SWOFF(N,T)=g=x(N,T-1)-x(N,T); C_24a(N,T).. SOR(N,T)=L=Mci(N,'1'); C_24b(N,T).. SOR(N,T)=G=zeta*Mci(N,'1'); C_25(N,T).. SOR(N,T)=E=eta*Mci(N,'1')$(ord(T)=1)+SOR(N,T-1)$(ord(T)>1)+(AvRes(N,T)*x(N,T)*MP(N,'1')/dt)-(EnRes(N,T)/dt); C_26(T).. sum(N,x(N,T)*MP(N,'1')*(AvRes(N,T)=1))=E=DisSig(T,'1'); C_28_1(N,T)$(AvRes(N,T)=1).. F(N,T)=G=((x(N,T)*MP(N,'1'))-IncDis(N,T))/max(IncDis(N,T),1); C_28_2(N,T)$(AvRes(N,T)=1).. F(N,T)=G=-((x(N,T)*MP(N,'1'))-IncDis(N,T))/max(IncDis(N,T),1); C_31(N,T)$(AvRes(N,T)=1).. AccF(N,T)=E=sum(y$(ord(y)<=ord(T)),F(N,T)); C_32(N,T)$(ord(T)=TR).. AccF_t(N)=E=AccF(N,T); Model dispatching /all/ ; solve dispatching using mip minimizing obj; Parameter SORPar(N,T); SORPar(N,T) = SOR.l(N,T); execute_unload 'inopt1.gdx', AccF, TOTsw, SORPar=SOR, PPRes, MxRes, MnRes, TOTPPRes, TOTMxRes, TOTMnRes, EnRes, RegSig, Sig, IncDis, DisSig, AvRes;