$TITLE M A G I C POWER SCHEDULING PROBLEM (MAGIC,SEQ=12) * A NUMBER OF POWER STATIONS ARE COMMETED TO MEET DEMAND FOR A PARTICUALR DAY. THREE TYPES OF GENERATORS HAVING * DIFFERENT OPERATING CHARACTERISTICS ARE AVAILABLE. GENERATING UNITS CAN BE SHUT DOWN OR OPERATE BETWEEN * MINIMUM AND MAXIMUM OUTPUT LEVELS. UNITS CAN BE STARTED UP OR CLOSED DOWN IN EVERY DEMAND BLOCK. * * REFERENCE: R E DAY AND H P WILLIAMS, MAGIC: THE DESIGN AND USE OF AN INTERACTIVE MODELLING LANGUAGE * FOR MATHEMATICAL PROGRAMMING, DEPARTEMNT BUSINESS STUDIES, UNIVERSITY OF EDINBURGH, * EDINGURGH, UK, FEBRUARY 1982. * * H P WILLIAMS, MODEL BUILDING IN MATHEMATICAL PROGRAMMING, WILEY, NEW YORK, 1978. SETS T DEMAND BLOCKS / 12PM-6AM, 6AM-9AM, 9AM-3PM, 3PM-6PM, 6PM-12PM / G GENERATORS / TYPE-1, TYPE-2, TYPE-3 / PARAMETERS DEM(T) DEMAND (1000MW) / 12PM-6AM 15, 6AM-9AM 30, 9AM-3PM 25, 3PM-6PM 40, 6PM-12PM 27 / DUR(T) DURATION (HOURS) / 12PM-6AM 6, 6AM-9AM 3, 9AM-3PM 6, 3PM-6PM 3, 6PM-12PM 6 / TABLE DATA(G,*) GENERATION DATA MIN-POW MAX-POW COST-MIN COST-INC START NUMBER * (1000MW) (1000MW) (L/H) (L/H/MW) (L) (UNITS) TYPE-1 .85 2.0 1000 2.0 2000 12 TYPE-2 1.25 1.75 2600 1.3 1000 10 TYPE-3 1.5 4.0 3000 3.0 500 5 PARAMETERS PEAK PEAK POWER (1000 MW) ENER(T) ENERGY DEMAND IN LOAD BLOCK (1000MWH) TENER TOTAL ENERGY DEMANDED (1000MWH) LF LOAD FACTOR ; PEAK = SMAX(T, DEM(T)); ENER(T) = DUR(T)*DEM(T); TENER = SUM(T, ENER(T)); LF = TENER/(PEAK*24); DISPLAY PEAK, TENER, LF, ENER; $EJECT VARIABLES X(G,T) GENERATOR OUTPUT (1000MW) N(G,T) NUMBER OF GENERATORS IN USE S(G,T) NUMBER OF GENERATORS STARTED UP COST TOTAL OPERATING COST (L) INTEGER VARIABLES N; POSITIVE VARIABLE S; EQUATIONS POW(T) DEMAND FOR POWER (1000MW) RES(T) SPINNING RESERVE REQUIREMENTS (1000MW) ST(G,T) START-UP DEFINITION MINU(G,T) MINIMUM GENERATION LEVEL (1000MW) MAXU(G,T) MAXIMUM GENERATION LEVEL (1000MW) CDEF COST DEFINITION (L); POW(T).. SUM(G, X(G,T)) =G= DEM(T); RES(T).. SUM(G, DATA(G,"MAX-POW")*N(G,T)) =G= 1.15*DEM(T); ST(G,T).. S(G,T) =G= N(G,T) - N(G,T--1); MINU(G,T).. X(G,T) =G= DATA(G,"MIN-POW")*N(G,T); MAXU(G,T).. X(G,T) =L= DATA(G,"MAX-POW")*N(G,T); CDEF.. COST =E= SUM((G,T), DUR(T)*DATA(G,"COST-MIN")*N(G,T) + DATA(G,"START")*S(G,T) + 1000*DUR(T)*DATA(G,"COST-INC")*(X(G,T)-DATA(G,"MIN-POW")*N(G,T)) ); N.UP(G,T) = DATA(G,"NUMBER"); MODEL WILLIAM / ALL /; SOLVE WILLIAM MINIMIZING COST USING MIP; PARAMETER REP SUMMARY REPORT; REP(T,"DEMAND") = DEM(T); REP(T,"SPINNING") = SUM(G, DATA(G,"MAX-POW")*N.L(G,T)); REP(T,"START-UPS") = SUM(G, S.L(G,T)); REP(T,"M-COST") = -POW.M(T)/DUR(T)/1000; DISPLAY REP;