Set t Simulation Time /1*60/ cn number of ocnverters /1*3/ *ld loading to converter /1*3/ *alias (t1,t); Parameters R1 rate of reaction for slag blow R2 rate of reaction for iron production R3 rate of reaction for sulphur production R4 Copper lose in slag R5 iron during loading R6 iron during blow mg(t) Matte grade of FSF matte ci(t) FSF Matte input to converter (20 tonns per hour) sb1_len First slag blow length sb2_len Second slag blow length s1_remove Amount fo slag remove during first blow s2_remove Amount fo slag remove during second blow s3_remove Amount fo slag remove during third blow ltc1_time(cn) ltc2_time(cn) ltc3_time(cn) delay1 delay2 delay3 length(cn) temp_time(cn) j1(cn) j2(cn) j3(cn) j4(cn) w1 counter block1(cn) block2(cn) block3(cn) block11(cn) ; ltc1_time(cn)=0; ltc2_time(cn)=0; ltc3_time(cn)=0; delay1=0; delay2=0; delay3=0; length(cn)=0; temp_time(cn)=0; R1 = 1; R2 = 0.8; R3 = 0.025*20; R4= 0.01*20; R5= 0.01*30; R6= 0.01*50; j1(cn)=0; j2(cn)=0; j3(cn)=0; j4(cn)=0; mg(t)=60; ci(t)=20; w1=0; counter=0; block1(cn)=0; block2(cn)=0; block3(cn)=0; sb1_len=80; sb2_len=55; s1_remove=4; s2_remove=4; s3_remove=11; Binary variable sr1(t) First slag remove after first slag blow is finished sr2(t) Second slag remove after second slag blow is finished sr3(t) Third slag remove after third slag blow is finished idle(t) Idle time during the operation of converter sb1(t) First slag blow sb2(t) Second slag blow sb3(t) Second slag blow ltc1(t) Loading to converter FSF matte. ltc11(t) ltc2(t) ltc3(t) cb(t) Copper blow to remove sulphur present in white metal x1(t) em(t) variable int(t) A(t) Agreement scheme variables B(t) C(t) D(t) culoss(t) Copper loss during slag blow mc(t) Matte present in converter at any time isb(t) iron produced during slag blow isb1(t) scb(t) Sulphur produced during copper blow im(t) Amount of iron present in matte at any time sm(t) Amount of sulphur present in matte at any time m1(t) m2(t) m3(t) m4(t) s1(t) s2(t) s3(t) temp empty(t) Z Overallobjective function ; *Initialiation im.lo(t)=0; sm.lo(t)=0; im.up(t)$(ord(t) eq card(t))=0.5; sm.up(t)$(ord(t) eq card(t))=0.5; Equation global_cons1(t) try1(t) try2(t) try3(t) try4(t) try5(t) try6(t) new1(t) new5(t) new8(t) sb1_cons Slag blow constraints sb2_cons ltc_cons1 loading to converter cosntaints ltc_cons2 ltc_cons3 ltc_cons4 ltc_cons5 ltc_cons6 ltc_cons11(t) ltc_cons21(t) ltc_cons31(t) mc_cons1(t) FSF matte present in converter im_cons1(t) Iron present in matte at any time culoss_cons1(t) Copper lost during slag blow obj_func overall objective function ; ******************************* Equations ************************ global_cons1(t).. ltc1(t)+ltc2(t)+ltc3(t)+sb1(t)+sb2(t)+sb3(t)+sr1(t)+sr2(t)+sr3(t)+cb(t)+em(t)=L=1; try1(t).. mc(t)=G=35*sb1(t); try2(t).. m1(t)+s1(t)=G=3*ltc2(t); try3(t).. m1(t)+m2(t)+s1(t)=G=4*sb2(t); try4(t).. m1(t)+m2(t)+s1(t)+s2(t)=G=5*ltc3(t); try5(t).. m1(t)+m2(t)+m3(t)+s1(t)+s2(t)=G=6*sb3(t); try6(t).. m1(t)+m2(t)+m3(t)+s1(t)+s2(t)+s3(t)=G=7*cb(t); new1(t).. sb1(t)+s1(t)=L=1; new5(t).. sb2(t)+s2(t)=L=1; new8(t).. sb3(t)+s3(t)=L=1; sb1_cons.. sum(t,sb1(t))=L=9; sb2_cons.. sum(t,sb2(t))=L=8; ltc_cons1.. sum(t,ltc1(t))=E=2; ltc_cons4.. sum(t$(ord(t) eq delay1),ltc1(t))=E=0; ltc_cons11(t).. m1(t)=E=m1(t-1)+ltc1(t); ltc_cons2.. sum(t,ltc2(t))=E=1; ltc_cons5.. sum(t$(ord(t) eq delay2),ltc2(t))=E=0; ltc_cons21(t).. m2(t)=E=m2(t-1)+ltc2(t); ltc_cons3.. sum(t,ltc3(t))=E=1; ltc_cons6.. sum(t$(ord(t) eq delay3),ltc3(t))=E=0; ltc_cons31(t).. m3(t)=E=m3(t-1)+ltc3(t); mc_cons1(t).. mc(t)=E=mc(t-1)+(ci(t)*ltc1(t))+(ci(t)*ltc2(t))+(ci(t)*ltc3(t))-(R2+R3+R4)*sb1(t) -(R2+R3+R5)*sb2(t)-(R2+R3+R6)*sb3(t)-R3*cb(t); im_cons1(t).. im(t)=E=im(t-1)+(-0.1*mg(t)+10)*ltc1(t)+(-0.1*mg(t)+10)*ltc2(t) +(-0.1*mg(t)+10)*ltc3(t)-R2*sb1(t)-R2*sb2(t)-R2*sb3(t); culoss_cons1(t).. culoss(t)=E=culoss(t-1)+R4*sb1(t)+R5*sb2(t)+R6*sb3(t); ******************************* Equation End ************************ obj_func.. Z=E=sum(t,culoss(t))+sum(t,im(t))+sum(t,sm(t)); Model PSC /All/; *******************Main or Mater loop **************************************** while (w1 eq 0, *********************** Condition check start************************************** loop(cn, block1(cn+1)=ltc1_time(cn+1)$(ltc1_time(cn) eq ltc1_time(cn+1))+ltc1_time(cn)$(ltc1_time(cn) ne ltc1_time(cn+1)); w1=1$(ltc1_time(cn) ne ltc1_time(cn+1) and ltc1_time(cn+1) ne ltc1_time(cn+2)); ); *********************** Condition check start************************************** display block1; ************ Slave loop ******************************* loop(cn, delay1=block1(cn); Solve PSC using MIP minimizing Z; **************** getting time value from binbary variable ******************* loop(t$(j1(cn)=0), ltc1_time(cn)=ltc1_time(cn)$(m1.l(t) ne 2)+ord(t)$(m1.l(t) eq 2); j1(cn)=1$(m1.l(t) eq 2); ); ); display ltc1_time; ); $EXIT