Automatic Generation Control (AGC) & Economic Dispatch (ED)
The generation control system regulates the output power according to operational and economic constraints.
- Performs area control error (ACE) calculations
- Calculates desired generation
- Performs closed-loop control of generating units
- Validates telemetered and operator-entered data
Monitoring Limits:
- Up to SMP MXGCUN generating units
- Up to SMP MXTLAG tie lines
- Up to SMP MXNCLD nonconforming loads
- Calculates economic operating points
- Determines economic participation factors
- Works with AGC to meet system load
- Optimizes generation costs
Source Data Structures
- SOAGC - AGC Miscellaneous Parameters
- SOGEN - AGC Generating Unit Data
- SOGEN1 - Additional Unit Data
- SOAGTL - Additional Tie Line Data
- SODYSC - Dynamic Schedules
- SOFREQ - Frequency Sources
- SOCARD - Raise/Lower Controls
- SOUDG - Unit Desired Generation
- SOGENX - External Unit Data
- SOGDCS - DCS Data
- SOPLNT - Plant Information
- SOHLDY - Holiday Dates
- SONERC - NERC Monitoring
- SOJOU - Jointly Owned Units
- SOGCAR - Control Area Data
- SOCSPS - Short-term CPS Control
- SOEDC - ED Parameters
- SOHRCV - Heat Rate Curves
- SOFUEL - Fuel Type Information
- SOGTCD - Unit Fuel Parameters
- SOVECT - ED Vectors
- SOCCYC - Combined Cycle Data
- SOSCCV - Steam Unit Curves
- SOHYRS - Hydro Reservoir Data
- SOHYCN - Canal Connections
- SOHYPL - Hydro Plant Data
- SOHYUP - Upstream/Downstream
- SOHYMR - Marginal Water Curves
- SOHYWR - Water Flow Release
- SOHYAB - Afterbay Elevation
- SOHYHL - Hydraulic Losses
- SOHYPM - Pumping Mode Flow
- SOHYEU - Engineering Units
AGC Miscellaneous Parameters (SOAGC)
Key Element: GCARNM (Control Area Name)
| Element |
Description |
Format |
Default |
Updateable |
| A5AFL | ACE Filter - indicates if ACE filter is on | 4 char | "Y" | Hotting |
| A5AMD | ACE Mode - CNT, CF, TLB, TLTB, CFT | 4 char | "TLB" | Hotting |
| ACEGN1 | ACE Filter Gain - Equal weight moving average | REAL | 0.5 | Hotting |
| ACEGN2 | ACE Filter Gain - Exponential weight moving average | REAL | 0.5 | Hotting |
| EWMANP | Number of points in equal weight moving average | INTEGER | 15 | Hotting |
| XWMATC | Time constant for exponential weighted moving average | REAL | 20.0 | Hotting |
| FK1 | Threshold for ignoring small ACE (MW*min) | REAL | 2.0 | Hotting |
| FK2 | Minimum threshold to filter ACE (MW) | REAL | 5.0 | Hotting |
| FK3 | Modified ACE gain | REAL | 0.5 | Hotting |
| FK5 | Threshold for overriding ACE filter (MW) | REAL | 50.0 | Hotting |
| Element |
Description |
Format |
Default |
Updateable |
| A3FLM | Time error filter flag | 4 char | "N" | Hotting |
| A4FLM | Frequency deviation filter flag | 4 char | "N" | Hotting |
| AFRELM | Frequency deviation limit (Hz) for alarm | REAL | 0.3 | Hotting |
| DBFRED | Actual frequency alarm limit deadband (Hz) | REAL | 0.01 | Hotting |
| FREQ | Rated operating frequency (Hz) | REAL | 60.0 | No |
| FREDLM | Frequency deviation limit for AGC timeout (Hz) | REAL | 0.5 | No |
| FREBCT | Frequency bias constant (MW/.1 Hz) | REAL | 30.0 | Hotting |
| LDDAMP | Frequency bias load damping factor (1/0.1 Hz) | REAL | 0.0 | Hotting |
| Element |
Description |
Format |
Default |
Updateable |
| A1LST | Start count limit (cycles before execution) | INTEGER | 4 | Hotting |
| AGCLM | Time limit for AGC timing out (seconds) | INTEGER | 300 | Hotting |
| ALPHA1 | First measurement smoothing constant (2-sec basis) | REAL | 0.7 | Hotting |
| DELT | Elapsed time between AGC execution cycles (seconds) | INTEGER | 4 | No |
| DELTM | Minimum time between ED executions (seconds) | INTEGER | 60 | Hotting |
| DELTT | Maximum time between ED executions (seconds) | INTEGER | 300 | Hotting |
| MCHGLM | Max time AGC can be suspended without changing unit status | INTEGER | 9999 | Hotting |
| Element |
Description |
Format |
Default |
Updateable |
| K1 | Level of ACE to start emergency assist (MW) | INTEGER | 200 | Hotting |
| K2 | Level of ACE for excessive ACE alarm (MW) | INTEGER | 100 | Hotting |
| K4 | Threshold for actual generation vs basepoints to start ED | INTEGER | 50 | Hotting |
| K5 | Level of ACE to start selective blocking (MW) | INTEGER | 50 | Hotting |
| K10 | Threshold for change of actual interchange to start ED | INTEGER | 50 | Hotting |
| KD2 | Deadband for excessive ACE (MW) | INTEGER | 2 | Hotting |
| NIDLIM | Limit for deviation between actual and scheduled interchange | INTEGER | 50 | Hotting |
| Element |
Description |
Format |
Default |
Updateable |
| ZSPILM | Spike filter counts limit | INTEGER | 4 | Hotting |
| ZSPIMW | Spike filter MW threshold | INTEGER | 20 | Hotting |
| Element |
Description |
Format |
Default |
| PEAKT1 | 1st start time for peak/off-peak (HHMM) | INTEGER | 0006 |
| PEAKT2 | 1st stop time for peak/off-peak (HHMM) | INTEGER | 0009 |
| PEAKT3 | 2nd start time for peak/off-peak (HHMM) | INTEGER | 1800 |
| PEAKT4 | 2nd stop time for peak/off-peak (HHMM) | INTEGER | 2000 |
| Element |
Description |
Format |
Default |
| EXAFLG | External ACE flag (Y/N) | 4 char | "N" |
| EXACOE | External ACE coefficient | REAL | 1.0 |
| EXANAM | External ACE substation/point name | SUBSIZ+SPTSIZ | " " |
Basic Generator Data (SOGEN)
Key Element: CGENUN
| Element |
Description |
Format |
Default |
Updateable |
| CGENUN | Generator customer name | EQPSIZ char | Required | No |
| CTLTYP | Control type (R/L or SETP) | 4 char | "R/L" | No |
| EDISP | Economically dispatchable flag | 4 char | "Y" | No |
| HCURVE | Heat rate curve flag | 4 char | "Y" | No |
| UNTYPE | Generator type (THRM/HYDR/WIND) | 4 char | "THRM" | No |
| ICTYPE | Internal combustion turbine type | 4 char | " " | No |
| AGCFLG | AGC model flag | 4 char | "AGC" | No |
| PLTNAM | Power plant name | EQPSIZ char | Required | No |
Generator Telemetry Data (SOGEN)
| Element |
Description |
Format |
Default |
| EPGENP | Primary MW measurement source | SUBSIZ+SPTSIZ | Required |
| EPGENA | Alternate MW measurement source | SUBSIZ+SPTSIZ | " " |
| EBRCN1 | Breaker status - path 1 | SUBSIZ+SPTSIZ | Required |
| EBRCN2 | Breaker status - path 2 | SUBSIZ+SPTSIZ | " " |
| ECONST | Local/Remote switch status | SUBSIZ+SPTSIZ | " " |
| EHILIM | High MW regulating limit source | SUBSIZ+SPTSIZ | " " |
| ELOLIM | Low MW regulating limit source | SUBSIZ+SPTSIZ | " " |
Generator Ratings (SOGEN)
| Element |
Description |
Format |
Default |
| HLIMH | Hard high limit - maximum capability (MW) | INTEGER | Required |
| HLIML | Hard low limit - minimum capability (MW) | INTEGER | 0 |
| EHL | Economic high limit (MW) | INTEGER | HLIMH |
| ELL | Economic low limit (MW) | INTEGER | HLIML |
| RATEX | Maximum sustained ramp rate (MW/min) | REAL | Required |
| SPDREG | Governor speed regulation (per unit) | REAL | 0.05 |
| RANGE | Regulation range (MW) | INTEGER | HLIMH |
| THRESH | Minimum MW for on-line determination | INTEGER | 0 |
Control Mode Validity Flags (SOGEN)
| Element |
Description |
Default |
| IMAUTO | AUTOMATIC mode validity | "Y" |
| IMBASE | BASELOAD mode validity | "Y" |
| IMBREG | BASELOAD AND REGULATING mode validity | "Y" |
| IMECON | ECONOMIC mode validity | "Y" |
| IMMAND | MANUAL-DISPATCH mode validity | "Y" |
| IMMANL | MANUAL mode validity | "Y" |
| IMTEST | TEST mode validity | "Y" |
Pulse Control Parameters (SOGEN)
| Element |
Description |
Default |
| K7 | Threshold for accumulated unit control error | 20 MW |
| K9 | Long pulse threshold (max MW per cycle) | 5 MW |
| KD | Tracking error threshold | 2.0 MW |
| K6 | Tracking alarm threshold | 10 MW |
| MINPLS | Minimum pulse length (0-7) | 0 |
| PCLONG | Long pulse wait (cycles) | 2 |
| PCSHRT | Short pulse wait (cycles) | 0 |
Additional Generator Data (SOGEN1)
| Element |
Description |
Default |
| AGGNAM | Aggregate unit name | " " |
| COMBIN | Combined cycle flag | "N" |
| FRQNAM | Frequency source name | Required |
| GCARNM | Control area name | " " |
| NAFLG | Network Applications generator flag | "NA" |
| EQGENP | Primary MVAR measurement | " " |
| CONNCT | Connectivity status (pseudo) | " " |
| AUXLDP | Auxiliary load measurement | " " |
| RMPUP | Up ramp rate telemetry | " " |
| RMPDN | Down ramp rate telemetry | " " |
Prohibited Zones (SOGEN1)
| Element |
Description |
Default |
| PRZL1 | Prohibited zone 1 lower limit (MW) | 0.0 |
| PRZU1 | Prohibited zone 1 upper limit (MW) | 0.0 |
| PRZL2 | Prohibited zone 2 lower limit (MW) | 0.0 |
| PRZU2 | Prohibited zone 2 upper limit (MW) | 0.0 |
Pulse Durations (SOGEN1.PULSL1-7)
Pulse duration in milliseconds for raise/lower pulse lengths 1-7
| Value Range |
Allowable Value |
| 0-14 | No check needed |
| 15-310 | Must be multiple of 10 |
| 320-3100 | Must be multiple of 100 |
| 3200-10000 | Must be multiple of 1000 |
Default: 0 for all pulse lengths
Gas Turbine Temperature Model (SOGEN1)
P = mT + b where P = MW capability, T = ambient temperature
| GTSLOP |
Slope of GT MW capability vs temperature line |
Default: 0 (negative for GT) |
| GTYINT |
Y-intercept of GT MW capability vs temperature line |
Default: 0 |
Ambient temperature source: SOAGC.TMPNAM
Tie Line Data
| Element |
Description |
Format |
Default |
| CFCTNA | Circuit customer name | EQPSIZ char | Required |
| AGGTIE | Aggregate tie-line name | EQPSIZ char | " " |
| BNDTIE | Tie line error limit deadband (MW) | REAL | 1.0 |
| EDBUS | Economic Dispatch bus number | INTEGER | 0 |
| GCARNF | "From" end control area name | 8 char | " " |
| GCARNT | "To" end control area name | 8 char | " " |
| TIEPs | Primary tie line measurement source | SUBSIZ+SPTSIZ | " " |
| TIEAS | Alternate tie line measurement source | SUBSIZ+SPTSIZ | " " |
| TIERNG | Tie line error limit (MW) | REAL | 10.0 |
| TLSIGN | Sign convention flag (Y/N) | 4 char | "N" |
| Element |
Description |
Default |
| CFTRNA | Transformer customer name | Required |
| AGGTIE | Aggregate tie-line name | " " |
| BNDTIE | Tie line error limit deadband (MW) | 1.0 |
| EDBUS | Economic Dispatch bus number | 0 |
| GCARNF | "From" end control area name | " " |
| GCARNT | "To" end control area name | " " |
| TIEPs | Primary tie line measurement source | " " |
| TIEAS | Alternate tie line measurement source | " " |
| TIERNG | Tie line error limit (MW) | 10.0 |
| TLSIGN | Sign convention flag (Y/N) | "N" |
| CFCTNA |
Tie line customer name (matches SOCIRC/SOTRAN) |
Required |
| MWHMST |
MWH measurement substation/point name |
" " |
ED Algorithm Parameters (SOEDC)
Key Element: GCARNM
Loss Matrix Method: RECPFb = 1 - 2*(B)b*(P) - (BO)b
Constant Method: RECPFk = 1 - C1k - C2k * DESGEN
| Element |
Description |
Default |
| GCARNM | Control area name | " " |
| EDLOSM | Penalty factor calculation method (BMTX/LINR) | "LINR" |
| CORR | Initial correction factor (MW*MW/$) | 5000.0 |
| ERRBPT | Tolerance for Gauss-Seidel convergence | 0.0002 |
| ERRTPW | Tolerance for lambda convergence | 0.001 |
| ITALIM | Max Gauss-Seidel iterations | 30 |
| LAMLIM | Max lambda iterations | 50 |
| SCALE | Convergence acceleration factor | 1.0 |
| PFFILT | Penalty factor smoothing constant (0-1) | 0.9 |
| AAED1 | Constant term for system losses, set 1 (MW) | 0.0 |
| BBED1 | Linear term coefficient, set 1 | 0.0 |
| CCED1 | Quadratic term coefficient, set 1 (1/MW) | 0.0 |
| BOO1 | Constant loss term, set 1 (MW) | 0.0 |
Fuel Type Information (SOFUEL)
Key Element: FUELNM
| Element |
Description |
Default |
| FUELNM | Fuel name (4 char) | Required |
| FUELNB | Fuel type number (1-MXFLTP) | Required |
| FCOST | Fuel cost ($/vol) | 0.0 |
| FCNTNT | Fuel heat content (MBtu/vol) | 0.0 |
| NOXRAT | NOx content per volume | 0.0 |
| SO2RAT | SO2 content per volume | 0.0 |
| NAME | Long fuel name | blank |
Heat Rate Curves (SOHRCV)
Key Element: CGENUN
Piecewise linear approximation with SMP NMHTRS breakpoints
| CGENUN | Generator customer name | Required |
| CCURVi | Combined cycle curve indicator (Y/N) | "N" |
| X11...X1j | Heat rate MW breakpoints (MW) | 0.0 |
| Y11...Y1j | Heat rate values (MBtu/MW.h) | 0.0 |
| Z11...Z1j | O&M cost rate ($/MW) | 0.0 |
Unit Fuel Type Parameters (SOGTCD)
Key Element: CGENUN
| CGENUN | Generator customer name | Required |
| COSTA1 | Fuel cost adjustment factor, set 1 (%) | 100.0 |
| FNAME1 | Fuel name, fuel 1 | Required |
| MNPUT1 | Heat input for minimum output, curve #1 (MBtu/hr) | 0.0 |
| UNBSM1 | Unit base maintenance cost ($/hour) | 0.0 |
ED Vectors (SOVECT)
Key Element: EDBUS
| EDBUS | Economic Dispatch bus number (1-MAXEDB) | Required |
| C1SET1 | Constant term for penalty factor calculations, set 1 | 0.0 |
| C2SET1 | Linear term for penalty factor calculations, set 1 (1/MW) | 0.0 |
Hydro Reservoir Data (SOHYRS)
Key Element: RESNAM
Elevation-stored volume curve: polynomial of 4th degree
| Element |
Description |
Default |
| RESNAM | Reservoir name | Required |
| WTSNAM | Associated watershed name | Required |
| RVRNAM | River name | Required |
| MAXELV | Maximum reservoir elevation (m) | 0.0 |
| MINELV | Minimum reservoir elevation (m) | 0.0 |
| REFER1 | Reference elevation, piece one (m) | 1000.0 |
| REFER2 | Reference elevation, piece two (m) | 0.0 |
| COEF10-14 | Curve coefficients - first piece | 0.0 |
| COEF20-24 | Curve coefficients - second piece | 0.0 |
| NULSTR | Null storage capacity flag (Y/N) | "N" |
| NNWFLG | No natural water inflow flag (Y/N) | "N" |
| FORNWI | Forecast natural water inflow (m3/sec) | 0.0 |
| PLNRSE | Planned reservoir elevation (m) | 0.0 |
| PLNWVL | Planned water value ($/m3) | 1.0 |
| SENSIB | Sensibility coefficient (K) | 0.0 |
Hydro Plant Data (SOHYPL)
Key Element: HYPNAM
| HYPNAM | Hydro plant name | Required |
| WTSNAM | Associated watershed name | Required |
| UNAME1-10 | Unit customer names (1-10 units) | blank |
| DOWNRS | Downstream reservoir flag (Y/N) | "N" |
| PARPLN | Parallel hydro plant flag (Y/N) | "N" |
| SUSCHM | Current scheme measurement | None |
| TUBFLW | Plant water discharge measurement | " " |
Hydro Unit Marginal Water Curves (SOHYMR)
Key: HYPNAM, SCHEME, NTHEAD
Mc = f(Pg, Hn) where Hn = net head, Pg = MW generation
| HYPNAM | Hydro plant name | Required |
| SCHEME | Scheme type number (1-10) | 1 |
| NTHEAD | Applicable net head value (m) | 0.0 |
| MARMW1-7 | MW breakpoints | 0.0 |
| MARWR1-7 | Marginal water rate (m3/MWh) | 0.0 |
Hydro Unit Water Flow Release (SOHYWR)
Key: HYPNAM, SCHEME, NTHEAD
Qu = f(Pg, Hn) - polynomial of 3rd degree
| HYPNAM | Hydro plant name | Required |
| SCHEME | Scheme type number (1-10) | 1 |
| NTHEAD | Hydro-unit net head value (m) | 0.0 |
| WFLOW0-3 | Water flow release coefficients | 0.0 |
Hydro Plant Afterbay Elevation (SOHYAB)
Key: HYPNAM, SCHEME
Caa = f(Qt+Qv, Ceaa, Qtcp) - 1, 3, or 9 curves per plant/scheme
| HYPNAM | Hydro plant name | Required |
| SCHEME | Scheme type number (1-10) | 1 |
| DNELEV | Downstream reservoir elevation (Ceaa) | 0.0 |
| PRFLOW | Water flow release from parallel plant | 0.0 |
| MXFLOW | Max total water flow release | 0.0 |
| ABELV0-3 | Afterbay elevation coefficients | 0.0 |
| ABRTDB | Afterbay RTDB measurement point | " " |
Hydro Engineering Units (SOHYEU)
| FLOWRL | Water flow release units | "m3/s" |
| MWFLOW | Marginal water flow rate units | "m3/MWh" |
| RESELV | Reservoir elevation units | "m" |
| RESVOL | Reservoir volume units | "Mm3" |
| WVALUE | Water value units | "$/m3" |
IDB to RTDB Data Transfer (SORXFR)
Key Element: SEQNUM
Transfers applications data to RTDB for ICCP export
| Element |
Description |
| SEQNUM | Sequence number (unique key) |
| DSNAME | IDB data structure name |
| DSMODE | Data structure mode |
| BANK | Data structure bank |
| ELNAME | Element name |
| RECNO | Record number |
| KDSNAM | Key data structure name |
| KDMODE | Key data structure mode |
| KBANK | Key data structure bank |
| KELNAM | Key element name |
| KEY | Key value to match |
| SUBNAM | RTDB substation name |
| PNTNAM | RTDB point name |
| PNTYPE | Point type (STATUS/ANALOG/ACCUMU) |
| UPDTIM | Update periodicity (seconds) |
RTDB to IDB Data Transfer (SOIXFR)
Key Element: SEQNUM
Transfers RTDB measurements to IDB for applications
| Element |
Description |
| SEQNUM | Sequence number (unique key) |
| SUBNAM | RTDB substation name |
| PNTNAM | RTDB point name |
| PNTYPE | Point type (STATUS/ANALOG/ACCUMU) |
| UPDTIM | Update periodicity (seconds) |
| DSNAME | IDB data structure name |
| DSMODE | Data structure mode |
| BANK | Data structure bank |
| ELNAME | Element name |
| RECNO | Record number |
| KDSNAM | Key data structure name |
| KDMODE | Key data structure mode |
| KBANK | Key data structure bank |
| KELNAM | Key element name |
| KEY | Key value to match |