Set t 'hours' / t1*t24/ m 'set of shifting appliances' /m1*m9/ p 'set of phases of appliances' /p1*p3/; scalar PL1 'max power limit that can be taken from grid(KW)' /15/ PL2 'max power limit that can be supplied to grid(KW)' /10/ CEb 'Charging efficiency of battery' / 0.95/ DEb 'Discharge efficiency of battery' /0.9 / Pbcharate 'Battery Charging Rate (KW)' / 1.3/ Pbdisrate 'Battery Discharge Rate (KW)' / 1/ SOEbini /1.5/ SOEbmax /3 / SOEbmin / 1/ CEev /0.95/ DEev /0.9/ Pevdisrate /3/ Pevcharate /3.3/ SOEevini /4/ SOEevmax /8/ SOEevmin /2.4/ Q 'EWH capacity (KW)' / 2 / R 'EWH thermal resistance' / 10 / C 'EWH Thermal Capacitance' /863.4 / Thwmin /30/ Thwmax /60 / Tmax /38 /; table data(t,*) 'Cbuy' 'Csold' 'CL' 'PVgen' 'Tair' t1 4.8 5 2.8 0 26 t2 4.6 5 3.6 0 25 t3 4.6 5 3.6 0 24 t4 4.6 5 3.6 0 24 t5 4.6 5 4.6 0 24 t6 4.8 5 3.6 0 23 t7 5.2 5 5.5 2 22 t8 5.5 5 3.8 1.2 23 t9 5.9 5 4.0 2.4 26 t10 6.7 5 5.0 4 28 t11 6.7 5 5.0 4.24 31 t12 7.4 5 5.5 5.84 33 t13 7.8 5 5.2 4.4 35 t14 7.4 5 5.0 5.2 36 t15 8.4 5 5.0 4.24 38 t16 7.8 5 5.0 2.4 38 t17 8.4 5 5.2 0.8 38 t18 7.4 5 6.5 0 36 t19 7 5 4.0 0 35 t20 6.5 5 4.0 0 34 t21 6.5 5 5.0 0 30 t22 6 5 4.0 0 28 t23 5.5 5 6.2 0 26 t24 5.1 5 4.0 0 26; table phasepower(m,p,*) 'power' 'Period' m1.p1 0.15 1 m1.p2 2 1 m1.p3 0.15 1 m2.p1 0.2 2 m2.p2 0.15 1 m3.p1 2.2 1 m3.p2 0.15 1 m3.p3 0 0 m4.p1 1 1 m4.p2 0.5 1 m5.p1 0.2 1 m5.p2 1.5 1 m6.p1 2 1 m7.p1 1.5 1 m8.p1 1 2 m8.p2 0 0 m9.p1 0.5 2 m9.p2 1 1; table SA(m,*) 'Tstart' 'Tend' 'Operationtimes' 'ActualTOP' 'Delayparameter(g)' 'LOP(hr)' m1 1 13 1 9 2 3 m2 11 23 1 19 3 3 m3 1 12 1 19 3 2 m4 2 23 1 19 2 2 m5 4 13 1 9 2 2 m6 5 23 1 20 3 1 m7 1 22 1 12 3 1 m8 6 20 1 18 2 2 m9 5 16 1 13 3 3; *parameter TOPstart(t) 'starting time of appliances'/t1 1, t2 2, t3 3, t4 4, t5 5, t6 6, t7 7, t8 8, t9 9, t10 10, t11 11, t12 12, t13 13, t14 14, t15 15, t16 16, t17 17, t18 18, t19 19, t20 20, t21 21, t22 22, t23 23, t24 24/; *parameter N(m) 'number of times an appliance has to be operated' / m1 2, m2 1, m3 1, m4 1, m5 1, m6 1, m7 1, m8 1, m9 1/; Variable Pgrid(t),Ppvused(t),Pbused(t),Pbdis(t),Pbcha(t),SOEb(t),Pevused(t),SOEev(t),Pevcha(t),Pevdis(t),OF,of1,of2,DTR(m),DI(m),Psold(t),Ppvsold(t),Pbsold(t),Pevsold(t),Pewh(t),Thw(t),Pmach(m,t); Variable Tbegin(m),cost,discomfort,a,b; binary variable Ugrid(t),Ub(t),Uev(t),Ugrid(t),Uph(m,p,t),Uewh(t),Yph(m,p,t),Zph(m,p,t),Uewh(t); Equation eq,pb,eq1,eq2,eq3,eq4,eq5,eq6,eq7,eq8,eq9,eq10,eq11,eq12,eq13,eq14,eq15,eq16,eq17,eq18,eq19,eq20,eq21,eq22,eq23,eq24,eq25,eq26,eq27,eq28,eq29,eq30,eq31,eq32,eq33,eq34,eq35,eq36; *pb(t)..Pgrid(t)+Ppvused(t) =e= data(t,'CL')+(Pevcha(t)$(((ord(t)>16)and(ord(t)<25))or((ord(t)>0)and(ord(t)<7))))+Pbcha(t)+sum(m,Pmach(m,t))+Pewh(t); pb(t)..Pgrid(t)+Ppvused(t)+Pbused(t)+((Pevused(t))$(((ord(t)>16)and(ord(t)<25))or((ord(t)>0)and(ord(t)<7)))) =e= data(t,'CL')+(Pevcha(t)$(((ord(t)>16)and(ord(t)<25))or((ord(t)>0)and(ord(t)<7))))+Pbcha(t)+sum(m,Pmach(m,t))+Pewh(t); eq1(t)..Pgrid(t) =l= PL1*Ugrid(t); eq2(t)..Psold(t) =l= PL2*(1-Ugrid(t)); eq3(t)..Psold(t) =e= Ppvsold(t)+Pbsold(t)+(Pevsold(t)$(((ord(t)>16)and(ord(t)<25))or((ord(t)>0)and(ord(t)<7)))); eq4(t)..Ppvused(t)+Ppvsold(t) =e= data(t,'PVgen'); *Battery eq5(t)..Pbused(t)+Pbsold(t) =e= DEb*Pbdis(t); eq6(t)..Pbcha(t)=l= Pbcharate*Ub(t); eq7(t)..Pbcha(t)=g= 0; eq8(t)..Pbdis(t)=l= Pbdisrate*(1-Ub(t)); eq9(t)..Pbdis(t)=g= 0; eq10(t)$(ord(t)=1)..SOEb(t)=e= SOEbini; eq11(t)$(ord(t)>1)..SOEb(t)=e= SOEb(t-1) + (CEb*Pbcha(t)) - (Pbdis(t)/DEb); *EV eq12(t)$(((ord(t)>16)and(ord(t)<25))or((ord(t)>0)and(ord(t)<7)))..Pevused(t)+Pevsold(t)=e= DEev*(Pevdis(t)$(((ord(t)>16)and(ord(t)<25))or((ord(t)>0)and(ord(t)<7)))); eq13(t)$(((ord(t)>16)and(ord(t)<25))or((ord(t)>0)and(ord(t)<7)))..Pevcha(t)=l= Pevcharate*Uev(t); eq14(t)$(((ord(t)>16)and(ord(t)<25))or((ord(t)>0)and(ord(t)<7)))..Pevcha(t)=g= 0; eq15(t)$(((ord(t)>16)and(ord(t)<25))or((ord(t)>0)and(ord(t)<7)))..Pevdis(t)=l= Pevdisrate*(1-Uev(t)); eq16(t)$(((ord(t)>16)and(ord(t)<25))or((ord(t)>0)and(ord(t)<7)))..Pevdis(t)=g= 0; eq17(t)$(ord(t)=17)..SOEev(t)=e= SOEevini + CEev*Pevcha(t) - (Pevdis(t)/DEev); eq18(t)$(((ord(t)>17)and(ord(t)<25))or((ord(t)>0)and(ord(t)<7)))..SOEev(t)=e= SOEev(t-1)+ CEev*Pevcha(t) - Pevdis(t)/DEev; *eq14(t)..SOEev(t)=e= SOEevini + (CEev*Pevcha(t)) - Pevdis(t)/DEev; eq19(t)$(((ord(t)>16)and(ord(t)<25))or((ord(t)>0)and(ord(t)<7)))..SOEev(t)=l= SOEevmax; eq20(t)$(((ord(t)>16)and(ord(t)<25))or((ord(t)>0)and(ord(t)<7)))..SOEev(t)=g= SOEevmin; eq21(m,t)..Pmach(m,t)=e= sum(p,Uph(m,p,t)*phasepower(m,p,'power')); eq22(m,t)..sum(p,Uph(m,p,t))=l=1; eq23(m,p,t)..Yph(m,p,t) =e= Zph(m,p,t+phasepower(m,p,'period')); eq24(m,p,t)$(ord(t)>1) ..Yph(m,p,t)-Zph(m,p,t) =e= Uph(m,p,t)-Uph(m,p,t-1); eq25(m,p,t)$(ord(p)SA(m,'Tstart') and ord(t)< SA(m,'Tend')),Yph(m,p,t)) =e= SA(m,'No_of_operation_times'); *eq26(m,p,t)$(ord(t)>Tbegin(m) and ord(t)< SA(m,'Tend'))..Yph(m,p,t) =e= SA(m,'Operationtimes'); *eq26(m,p)..sum(t,Yph(m,p,t)) =e= SA(m,'Operationtimes'); *eq26(m,p)..sum(t$((ord(t)>Tbegin(m)) and (ord(t)< SA(m,'Tend'))),Yph(m,p,t)) =e= SA(m,'Operationtimes'); *eq26(m,p,t)$(ord(t)>SA(m,'Tstart') and ord(t)< SA(m,'Tend'))..Yph(m,p,t) =e= SA(m,'Operationtimes'); eq26(m,p)..sum(t$(ord(t)>0 and ord(t)< 24),Yph(m,p,t)) =e= SA(m,'Operationtimes'); *$(ord(t)>SA(m,'Tstart') and ord(t)< (SA(m,'ActualTOP')+SA(m,'LOP(hr)'))) *eq26(m,p)..sum(t$(ord(t)>SA(m,'Tstart') and ord(t)< SA(m,'Tend')),Yph(m,p,t)) =e= SA(m,'Operationtimes'); *SA(m,'Operationtimes'); *t *sum(t$(ord(t)>SA(m,'Tstart') and ord(t)< SA(m,'Tend')),Usa(t)) =e= SA(m,'No_of_operation_times'); *eq26(m)..sum(t $(ord(t)>SA(m,'Tstart') and ord(t)< SA(m,'Tend')),Yph(t)) =e= SA(m,'No_of_operation_times'); *eq27(t)$(ord(t)>1)..Thw(t)=e= data(t,'Tair')+(Q*R*Uewh(t)) - (data(t,'Tair')-Thw(t-1))* exp(-1/R*C); eq27(t)$(ord(t)=1)..Thw(t)=e=Thwmin; eq28(t)$(ord(t)>1).. Thw(t)=e= data(t,'Tair')+(Q*R*Uewh(t))- (data(t,'Tair')-Thw(t-1))* exp(-1/R*C); eq29(t)..Pewh(t)=e=Q*Uewh(t); eq30(t)..Thw(t)=g=Thwmin; eq31(t)..Thw(t)=l=Thwmax; *eq32(m)..DI(m) =e= SA(m,'Delayparameter(g)')*((SA(m,'ActualTOP')- TOPstart(t))**2); eq..cost =e= sum(t,(Pgrid(t)*data(t,'Cbuy'))-(Psold(t)*data(t,'Csold'))); eq32(m)..DTR(m) =e=((SA(m,'ActualTOP')-SA(m,'Tstart'))/(SA(m,'Tend')-SA(m,'LOP(hr)')-SA(m,'Tstart'))); eq33(m)..DI(m) =e= (SA(m,'Delayparameter(g)')**DTR(m)); eq34..discomfort =e= sum(m,DI(m)); eq35..OF =e= (a*cost) + (b*discomfort); eq36..a+b=e=1; *eq34(m)..Tbegin(m) =l= SA(m,'Tend')- SA(m,'LOP(hr)'); *eq35..of2 =e= sum(m,DI(m)); *eq32(x)$(ord(x)>0 and ord(x)<9)..DI1(x) =l= dont-dim1(x); *eq33(x)$(ord(x)>0 and ord(x)<19)..DI2(x) =l= dont1-dim2(x); *eq33(x)..DI2 =e= 3*(((19-(dim2(x)$ (ord(x)>0 and ord(x)<19))))**2); *eq32(m)..DI(m) =e= SA(m,'Delayparameter(g)')*((SA(m,'ActualTOP')- SA(m,'Tstart'))**2); *eq33..of2 =e= sum(m,DI(m)); *DTR =e= ((SA(m,'ActualTOP')-SA(m,'Tstart'))/(SA(m,'Tend')-SA(m,'LOP(hr)')-SA(m,'Tstart'))); *eq32(m)..DTR(m) =e=((SA(m,'ActualTOP')-SA(m,'Tstart'))/(SA(m,'Tend')-SA(m,'LOP(hr)')-SA(m,'Tstart'))); *eq33(m)..DI(m) =e= (SA(m,'Delayparameter(g)')**DTR(m)); *eq34..of2 =e= sum(m,DI(m)); *eq4..sum(t$((ord(t)>Tsabegin(m)) and (ord(t)1)..Yph(m,p,t)-Zph(m,p,t) =e= Uph(m,p,t)-Uph(m,p,t-1); *eq8(m,p,t)$(ord(p)<3)..Zph(m,p,t) =e= Zph(m,p,t+1); *eq9(m,p)..sum(t,Yph(m,p,t)) =e= Nm *eq10..Pmach(m,t)=l= machdata(m,'Pmax')*Umach(m,t); *eq5(m,t)..Pmach(m,t)=g= machdata(m,'Pmin')*Umach(m,t); *eq12(t)$(((ord(t)>16)or(ord(t)<25))or((ord(t)>0)or(ord(t)<7)))..Pevcha(t)=g=0; *t is ta and td *eq13(t)$(((ord(t)>16)or(ord(t)<25))or((ord(t)>0)or(ord(t)<7)))..Pevcha(t)=l=Pevcharate*Uev(t); *eq14(t)$(((ord(t)>16)or(ord(t)<25))or((ord(t)>0)or(ord(t)<7)))..Pevdis(t)=g=0; *t is ta and td *eq15(t)$(((ord(t)>16)or(ord(t)<24))or((ord(t)>0)or(ord(t)<7)))..Pevdis(t)=l=Pevdisrate*(1-Uev(t)); *t is ta *eq16(ta(t)).. SOEev(t)=e= SOEevini + (CEev*Pevcha(t)) - Pevdis(t)/DEev; *eq17(ta(t),td(t))..SOEev(t)=e= SOEev(t-1)+ (CEev*Pevcha(t)) - Pevdis(t)/DEev; *$(ord(t)= ord(ta)) $(ord(t)= ord(ta) and ord(td)) *t is ta and td *eq17(t)$(((ord(t)>16)or(ord(t)<25))or((ord(t)>0)or(ord(t)<7)))..SOEev(t)=e= SOEev(t-1)+ CEev* Pevcha(t) - Pevdis(t); *eq18(t)$(((ord(t)>16)or(ord(t)<25))or((ord(t)>0)or(ord(t)<7)))..SOEev(t)=l=SOEevmax; *eq19(t)$(((ord(t)>16)or(ord(t)<25))or((ord(t)>0)or(ord(t)<7)))..SOEev(t)=g=SOEevmin; *t is td *eq20(t)$(ord(t)=7)..SOEev(t)=e=SOEevmax; *limits *DTR.lo = 0; Pgrid.lo(t) = 0; a.lo = 0; a.up = 1; b.lo = 0; b.up = 1; *Pgrid.up(t) = 10; Psold.lo(t) = 0; *Psold.up(t) = 10; SOEb.up(t) = SOEbmax; SOEb.lo(t) = SOEbmin; SOEb.fx('t1')=SOEbini; *SOEb.fx('t18')=SOEbini; *Pbcha.up(t) = Pbcharate; *Pbcha.lo(t) = 0; *Pbdis.up(t) = Pbdisrate; *Pbdis.lo(t) = 0; *Pevcha.up(t) = Pevcharate; *Pevcha.lo(t) = 0; *Pevdis.up(t) = Pevdisrate; *Pevdis.lo(t) = 0; *SOEev.up(t) = SOEevmax; *SOEev.lo(t) = SOEevmin; *SOEev.fx('t1')= SOEevini; SOEev.fx('t7')= SOEevmax; *SOEev.fx(t)$(ord(t)=7)= SOEevmax; *Pevcha.up(t)$(((ord(t)>16)or(ord(t)<25))or((ord(t)>0)or(ord(t)<7)))=Pevcharate; *Pevcha.lo(t) = 0; *Pevdis.up(t)$(((ord(t)>16)or(ord(t)<25))or((ord(t)>0)or(ord(t)<7)))=Pevdisrate; *Pevdis.lo(t) = 0; Model problem / all /; solve problem using MINLP minimizing OF; $ontext Set counter / c1*c12 /; Scalar E; Parameter report(counter,*), ranges(*); solve problem using MINLP minimizing of1; ranges('OF1max') = of1.l; ranges('OF2min') = of2.l; solve problem using MINLP minimizing of2; ranges('OF2max') = of2.l; ranges('OF1min') = of1.l; loop(counter, E = (ranges('OF2max') - ranges('OF2min'))*(ord(counter) - 1)/(card(counter) - 1) + ranges('OF2min'); of2.lo = E; solve problem using MINLP minimizing of1; report(counter,'OF1') = of1.l; report(counter,'OF2') = of2.l; report(counter,'E') = E; ); display report; *solve problem using MIP minimizing of1; $offtext Parameter rep(t,*); rep(t,'Pgrid') = Pgrid.l(t); rep(t,'Psold') = Psold.l(t); rep(t,'PVgen') = data(t,'PVgen'); rep(t,'PVused')= Ppvused.l(t); rep(t,'PVsold')= Ppvsold.l(t); rep(t,'Pevused')= Pevused.l(t); rep(t,'Pevsold')= Pevsold.l(t); rep(t,'Pevcha') = Pevcha.l(t); rep(t,'Pevdis') = Pevdis.l(t); rep(t,'SOEev') = SOEev.l(t); rep(t,'Pbused')= Pbused.l(t); rep(t,'Pbsold')= Pbsold.l(t); rep(t,'Pbcha') = Pbcha.l(t); rep(t,'Pbdis') = Pbdis.l(t); rep(t,'SOEb') = SOEb.l(t); rep(t,'Constant Load') = data(t,'CL'); rep(t,'Thw') = Thw.l(t); rep(t,'Pewh') = Pewh.l(t); Parameter rep1(m,t,*); rep1(m,t,'Pmach') =Pmach.l(m,t); Parameter rep2(m,p,t,*); rep2(m,p,t,'Uph') = Uph.l(m,p,t); Display rep; Display rep1; Display rep2; *=== Export to Excel using GDX utilities $call xlsdump results.gdx mudump.gdx *=== First unload to GDX file (occurs during execution phase) *execute_unload "Bi_OF.gdx"rep; *execute 'gdxxrw "Bi_OF.gdx" par=rep rng= Sheet1!a1'; *=== Now write to variable levels to Excel file from GDX *=== Since we do not specify a sheet, data is placed in first sheet $ontext execute 'gdxxrw Bi_OF.gdx var=Pgrid rng=Sheet1!a1'; execute 'gdxxrw Bi_OF.gdx var=Psold rng=Sheet1!a3'; execute 'gdxxrw Bi_OF.gdx var=Ppvused rng=Sheet1!a5'; execute 'gdxxrw Bi_OF.gdx var=Ppvsold rng=Sheet1!a7'; execute 'gdxxrw Bi_OF.gdx var=Pevused rng=Sheet1!a9'; execute 'gdxxrw Bi_OF.gdx var=Pevsold rng=Sheet1!a11'; execute 'gdxxrw Bi_OF.gdx var=Pevcha rng=Sheet1!a13'; execute 'gdxxrw Bi_OF.gdx var=Pevdis rng=Sheet1!a15'; execute 'gdxxrw Bi_OF.gdx var=Pbcha rng=Sheet1!a17'; execute 'gdxxrw Bi_OF.gdx var=Pbdis rng=Sheet1!a19'; execute 'gdxxrw Bi_OF.gdx var=Pbused rng=Sheet1!a21'; execute 'gdxxrw Bi_OF.gdx var=SOEb rng=Sheet1!a23'; execute 'gdxxrw Bi_OF.gdx var=SOEev rng=Sheet1!a25'; $offtext *=== First unload to GDX file (occurs during execution phase) *execute_unload "results.gdx"report1; *execute 'gdxxrw.exe "results.gdx" par=report rng= Result!a2'; $ontext rep(t,'Pbused')= Pbused.l(t); rep(t,'Pbsold')= Pbsold.l(t); rep(t,'Pbcha') = Pbcha.l(t); rep(t,'Pbdis') = Pbdis.l(t); rep(t,'SOEb') = SOEb.l(t); *EV eq11(t)..Pevused(t)+Pevsold(t)=e= DEev*Pevdis(t); eq12(t)$(((ord(t)>16)or(ord(t)<25))or((ord(t)>0)or(ord(t)<7)))..Pevcha(t)=g=0; *t is ta and td eq13(t)$(((ord(t)>16)or(ord(t)<25))or((ord(t)>0)or(ord(t)<7)))..Pevcha(t)=l=Pevcharate*Uev(t); eq14(t)$(((ord(t)>16)or(ord(t)<25))or((ord(t)>0)or(ord(t)<7)))..Pevdis(t)=g=0; *t is ta and td eq15(t)$(((ord(t)>16)or(ord(t)<24))or((ord(t)>0)or(ord(t)<7)))..Pevdis(t)=l=Pevdisrate*(1-Uev(t)); *t is ta eq16(t)$(ord(t)=17)..SOEev(t)=e= SOEevini + CEev * Pevcha(t) - Pevdis(t); *t is ta and td eq17(t)$(((ord(t)>16)or(ord(t)<25))or((ord(t)>0)or(ord(t)<7)))..SOEev(t)=e= SOEev(t-1)+ CEev* Pevcha(t) - Pevdis(t); eq18(t)$(((ord(t)>16)or(ord(t)<25))or((ord(t)>0)or(ord(t)<7)))..SOEev(t)=l=SOEevmax; eq19(t)$(((ord(t)>16)or(ord(t)<25))or((ord(t)>0)or(ord(t)<7)))..SOEev(t)=g=SOEevmin; *t is td eq20(t)$(ord(t)=7)..SOEev(t)=e=SOEevmax; model problem /all/; solve problem using MINLP minimizing of; $offtext $ontext Parameter rep(t,*); rep(t,'Pgrid') = Pgrid.l(t); rep(t,'Psold') = Psold.l(t); rep(t,'PVgen') = data(t,'PVgen'); rep(t,'PVused')= Ppvused.l(t); rep(t,'PVsold')= Ppvsold.l(t); rep(t,'Pbused')= Pbused.l(t); rep(t,'Pbsold')= Pbsold.l(t); rep(t,'Pbcha') = Pbcha.l(t); rep(t,'Pbdis') = Pbdis.l(t); rep(t,'SOEb') = SOEb.l(t); rep(t,'Constant Load') = data(t,'CL'); equation eq,pb,eq1,eq2,eq3,eq4,eq5,eq7,eq9,eq10,eq11,eq12,eq6,eq8; *eq13; eq..of =e= sum(t,((Pgrid(t)*data(t,'Cbuy'))-(Psold(t)*data(t,'Csold')))); pb(t)..Pgrid(t)+Ppvused(t)+Pbused(t) =e= data(t,'CL'); eq1(t)..Pgrid(t) =l= PL1*Ugrid(t); *eq13(t)..Pgrid(t) =g= 0; eq2(t)..Ppvused(t)+Ppvsold(t) =e= data(t,'PVgen'); eq3(t)..Psold(t) =l= ((Ppvsold(t)+Pbsold(t)) * (1-Ugrid(t))); *Battery eq4(t)..Pbused(t)+Pbsold(t) =e= DEb*Pbdis(t); eq6(t)..Pbcha(t) =g= 0; eq5(t)..Pbcha(t) =e= CEb*Pbcharate*Ub(t); eq8(t)..Pbdis(t) =g= 0; eq7(t)..Pbdis(t) =e= Pbdisrate*(1-Ub(t)); eq10(t)$(ord(t)=1)..SOEb(t) =e= SOEbini; eq9(t)$((ord(t)>1) and (ord(t)<24))..SOEb(t)=e= SOEb(t-1)+(CEb*Pbcha(t))-Pbdis(t); eq11(t)..SOEb(t) =l= SOEbmax; eq12(t)..SOEb(t) =g= SOEbmin; model problem /all/; solve problem using MINLP minimizing of; $offtext $ontext Positive Variable x1; Free Variable x2; Free Variable z; Negative Variable x3; Equations con1,con2,con3,obj ; con1.. x1 + x2 + x3 =L= 7; con2.. 4*x1 + 2*x2 =E= 40; con3.. 10*x1 + x3 =G= 30; obj.. 30*x1 + 100*x2 - 50*x3 =E= z; Model SampleProblem1 /con1,con2,con3,obj/ ; *Model SampleProblem1 /all/ : Options LP = Cplex; Solve SampleProblem1 using LP maximizing z; Display x1.L, x2.L, x3.L, z.L; $offtext