26
[email protected] m http:// www.powerworld.com 01 South First Street ampaign, Illinois 61820 (217) 384.6330 01 South First Street ampaign, Illinois 61820 (217) 384.6330 Automatic Generation Control in Transient Stability Simulation WECC MVWG November 20, 2014 Jamie Weber, Ph.D. Director of Software Development [email protected] 217 384 6330 ext 13

[email protected] 2001 South First Street Champaign, Illinois 61820 +1 (217) 384.6330 Incorporation of Automatic Generation

Embed Size (px)

Citation preview

Page 1: Support@powerworld.com  2001 South First Street Champaign, Illinois 61820 +1 (217) 384.6330 Incorporation of Automatic Generation

[email protected]://www.powerworld.com

2001 South First StreetChampaign, Illinois 61820+1 (217) 384.6330

2001 South First StreetChampaign, Illinois 61820+1 (217) 384.6330

Incorporation of Automatic Generation Control in

Transient Stability SimulationWECC MVWG

November 20, 2014Jamie Weber, Ph.D.

Director of Software [email protected]

217 384 6330 ext 13

Page 2: Support@powerworld.com  2001 South First Street Champaign, Illinois 61820 +1 (217) 384.6330 Incorporation of Automatic Generation

2© 2014 PowerWorld Corporation

• Desire: Implementation of AGC response in Transient Stability

• LCFB1 model does this on a local level for one generator

• Want this across an area instead

Area AGC in Transient Stability

Page 3: Support@powerworld.com  2001 South First Street Champaign, Illinois 61820 +1 (217) 384.6330 Incorporation of Automatic Generation

3© 2014 PowerWorld Corporation

• New Transient Stability Model with an Area

–Area AGC Model – New Model• Industry has always used a modular approach for generator models

– Machine (Generator/Converter Model)– Exciter (P and Q controller)– Governor (Drive Train)– Stabilizer (Pitch Control)– Relay Model– Under Excitation Limiter– Over Excitation Limiter– Compensator Model – Aerodynamic Model (recent addition for Type 3 Wind)– Pref Controller (recent addition for renewable and LCFB1)– Plant Controller (recent addition for renewable)

–AGC Controller – New Model Type

Software Implementation

Page 4: Support@powerworld.com  2001 South First Street Champaign, Illinois 61820 +1 (217) 384.6330 Incorporation of Automatic Generation

4© 2014 PowerWorld Corporation

General Signal FlowArea

GenAGCControl1PartFact1

Active1

AreaAGCACE

Governor1

MWReference1

Generator1

GenAGCControl2PartFact2

Active2

Governor2

MWReference2

Generator2 Generator3

...

Update AGC Control at an interval

Page 5: Support@powerworld.com  2001 South First Street Champaign, Illinois 61820 +1 (217) 384.6330 Incorporation of Automatic Generation

5© 2014 PowerWorld Corporation

• Create a new Area AGC Model with following

Area AGC Model:AreaAGC

Parameter Description Units

Bus Specification of the bus at which frequency measurement is taken

Bias Frequency Bias [MW/0.1Hz] MW/0.1Hz

Deadband No response if ACE within this deadband MW

PanicHighOn Panic Mode is entered if the frequency goes above this Hz

PanicHighOff If a panic mode is entered due to HIGH frequency, this is the frequency in Hz BELOW which the system must fall to exit the panic mode

Hz

PanicLowOn Panic mode is entered if the frequency goes below this Hz

PanicLowOff If a panic mode is entered due to LOW frequency, this is the frequency in Hz ABOVE which the system must recover to exit the panic mode

Hz

UpdateTime AGC Update Cycle Time in Seconds. AGC signals are updated at this interval

Seconds

Page 6: Support@powerworld.com  2001 South First Street Champaign, Illinois 61820 +1 (217) 384.6330 Incorporation of Automatic Generation

6© 2014 PowerWorld Corporation

• Area Frequency is measured at one bus• ACE calculation uses

– Bias and Deadband terms– List of tie-lines for the area (Area designations matter)

• What changes in “Panic Mode”– Generators with AGC Mode = 2 (LOCAL) or 3 (BASELOAD)

will participate in AGC just like they were set to AGC Mode = 1 (ON)

– ACE Calculation will no longer include tie-line flow portion. ACE is only concerned with returning to nominal frequency (60 Hz)

Notes on AreaAGC model

Page 7: Support@powerworld.com  2001 South First Street Champaign, Illinois 61820 +1 (217) 384.6330 Incorporation of Automatic Generation

7© 2014 PowerWorld Corporation

Generator Other Model:AGCSetpoint

Parameter Description Units

Mode Integer Value 0 (OFF), 1 (ON), 2 (LOCAL), or 3 (BASELOAD)• OFF – means it’s ignored for AGC purposes• ON – means it participates in AGC• LOCAL – means it normally doesn’t particular in AGC, but

during Panic Mode it will participate• BASELOAD – means it only participates if moving Pref pushes

the generator back toward it’s initial valueDefault Integer Value 0 (No, use specific values), 1 (get values from case)

If value set to 1, then PartFact, Pmax, and Pmin will be obtained from the power flow input data and stability record values are ignored

PartFact Participation Factor for us in AGC None

Pmax Maximum Power reference signal output MW

Pmin Minimum Power reference signal output MW

Page 8: Support@powerworld.com  2001 South First Street Champaign, Illinois 61820 +1 (217) 384.6330 Incorporation of Automatic Generation

8© 2014 PowerWorld Corporation

Generator Other Model:AGCPulseRate

Parameter Description Units

Mode Integer Value 0 (OFF), 1 (ON), 2 (LOCAL), or 3 (BASELOAD)

Default Integer Value 0 (No, use specific values), 1 (get values from case)If value set to 1, then PartFact, Pmax, and Pmin will be obtained from the power flow input data and stability record values are ignored

PartFact Participation Factor for us in AGC None

Pmax Maximum Power reference signal output MW

Pmin Minimum Power reference signal output MW

PulseRate Rate at which the MWReference signal changes MW/Second

PulseLength Length of time that the pulse up or down occurs. This should normally be less than the Area AGC Model’s UpdateTime. Thus the UpdateTime may be 10 seconds and PulseLength is 2 seconds

Second

PulseLengthPanic When Area AGC Model enters panic mode, then you can increase the length of the pulse.

Second

Page 9: Support@powerworld.com  2001 South First Street Champaign, Illinois 61820 +1 (217) 384.6330 Incorporation of Automatic Generation

9© 2014 PowerWorld Corporation

• AGC update is done at a user-specified interval of UpdateTime seconds– Handled at the start of each time-step (within numerical

integration this update is “algebraic”)• Process done each update is as follows

– CalculateACE– Call UpdateAGCSignal on each generator in the area– Call RespondToAGCSignal on each generator in the area

• Also requires update of many other models to receive a MWReference input signal (discussed shortly)

AreaAGC Update

Page 10: Support@powerworld.com  2001 South First Street Champaign, Illinois 61820 +1 (217) 384.6330 Incorporation of Automatic Generation

10© 2014 PowerWorld Corporation

• Calculation ACE– Area designations determine the list of tie-line. ACE

attempts to bring tie-line flows back to initial condition

– Normal Operation ACE Equation

– Panic Mode ACE Equations (ignore tielines)

• For both, also apply dead-band as follows

AGC ACE Calculation

𝐴𝐶𝐸=(𝑀𝑒𝑎𝑠𝐵𝑢𝑠𝐹𝑟𝑒𝑞−𝑁𝑜𝑚𝑖𝑛𝑎𝑙𝐹𝑟𝑒𝑞 )∗10∗𝐵𝑖𝑎𝑠+[ ∑𝑡 𝑖𝑒𝑙𝑖𝑛𝑒𝑠

(𝑀𝑊 )− 𝐼𝑛𝑖𝑡𝑇𝑖𝑒𝐹𝑙𝑜𝑤 ]𝐴𝐶𝐸=(𝑀𝑒𝑎𝑠 𝐵𝑢𝑠𝐹𝑟𝑒𝑞−𝑁𝑜𝑚𝑖𝑛𝑎𝑙𝐹𝑟𝑒𝑞 )∗10∗𝐵𝑖𝑎𝑠

Page 11: Support@powerworld.com  2001 South First Street Champaign, Illinois 61820 +1 (217) 384.6330 Incorporation of Automatic Generation

11© 2014 PowerWorld Corporation

• Using ACE value, process through all generators in the Area to calculate whether that generator will respond and what the summation of the participation factors are– GenAGC.UpdateAGCSignal(

Inputs: Time, ACE, AGCStatus; Outputs: PartFactSum, AGCActive);

• Then ask each GenAGC model to respond to the ACE signal and pass in the PartFactSum.– GenAGCx.RespondToAGCSignal(

Inputs: Time, ACE, AGCStatus,PartFactSum , AGCActive);

Allocate ACE to all Generators

Page 12: Support@powerworld.com  2001 South First Street Champaign, Illinois 61820 +1 (217) 384.6330 Incorporation of Automatic Generation

12© 2014 PowerWorld Corporation

GenAGC.UpdateAGCSignalProcedure UpdateAGCSignal(INPUTS: PresentTime : Time; ACE : float; AGCStatus : AreaAGCStatus; OUTPUTS: PartFactSum : float; AGCActive : boolean);

// Note: AGCStatus = OFF, ON, LOCAL, or BASELOAD// Parameters of GenAGC Controller// Mode, PartFact, Pmax, Pmin

AGCActive = false; if Mode <> OFF then begin // generator AGC is set off so it won't respond if (Pelec > PMax) or (PElec < PMin) then begin AGCActive = True; end else if (Mode = ON) or // Generator is on normal AGC mode (AGCStatus = PanicHigh) or (AGCStatus = PanicLow) // Area on PANIC mode! then begin AGCActive = True; PartFactSum = PartFactSum + PartFact; end else if (Mode = BASELOAD) then begin // Unless under "panic" mode, BaseLoad units try to return to their initial value! local_DeltaPElec := Pelec - GetPGenInitialInMW; if ((local_DeltaPElec > +MWAGCTolerance) and (ACE >= 0)) or ((local_DeltaPElec < -MWAGCTolerance) and (ACE <= 0)) then begin AGCActive = True; PartFactSum = PartFactSum + PartFact; end; end; end;

Unit outside limit

Unit Mode = ONor during Panic

include LOCAL, BASELOAD

Mode = BASELOADOnly respond if pushing back toward initial value

Page 13: Support@powerworld.com  2001 South First Street Champaign, Illinois 61820 +1 (217) 384.6330 Incorporation of Automatic Generation

13© 2014 PowerWorld Corporation

GenAGC.RespondToAGCSignal

Procedure RespondToAGCSignal(INPUTS: PresentTime : Time; ACE : float; AGCStatus : AreaAGCStatus; INPUTS: PartFactSum : float; AGCActive : boolean); if AGCActive then begin if (PElec > PMax) then UseThisMWReference = Pmax else if (PElec < PMin) then UseThisMWReference = Pmin else UseThisMWReference = UseThisMWReference - ACE * PartFact/PartFactSum;

// MWReference signal will simply change immediately to UseThisMWReference end;

Procedure RespondToAGCSignal(INPUTS: PresentTime : Time; ACE : float; AGCStatus : AreaAGCStatus; INPUTS: PartFactSum : float; AGCActive : boolean); if AGCActive then begin if (PElec > PMax) then UseThisPulseRate = -PulseRate else if (PElec < PMin) then UseThisPulseRate = +PulseRate else if (ACE > 0) then UseThisPulseRate = -PulseRate else if (ACE < 0) then UseThisPulseRate = +PulseRate else UseThisPulseRate = 0

if AGCStatus = ON then PulseExpirationTime = PresentTime + PulseLength else PulseExpirationTime = PresentTime + PulseLengthPanic

// MWReference signal will now change with derivative of UseThisPulseRate // until the time PulseExpirationTime is exceeded end;

AGCSetpoint (Set MWReference immediately)

AGCPulseRate (Ramp MWReference up or down with a slope)

Unit outside limit – always respond

Unit outside limit – always respond

Page 14: Support@powerworld.com  2001 South First Street Champaign, Illinois 61820 +1 (217) 384.6330 Incorporation of Automatic Generation

14© 2014 PowerWorld Corporation

Sample MW Reference Values from Generator AGC Control Models

States of AGC\MW Setpoint_Gen One #1gfedcbStates of AGC\MW Setpoint_Gen Bus 2 #1gfedcbStates of AGC\MW Setpoint_Gen Bus 3 #1gfedcb

1514131211109876543210

85

80

75

70

65

60

55

50

45

40

35

30

25

20

States of AGC\MW Setpoint, Gen Bus 2 #1gfedcbStates of AGC\MW Setpoint, Gen Bus 3 #1gfedcbStates of AGC\MW Setpoint, Gen One #1gfedcb

141312111098765432

88

86

84

82

80

78

76

74

72

70

68

66

64

62

60

58

56

54

52

50

AGCSetpoint AGCPulseRateImmediate MWReference change every 3 seconds

Pulse for 1 second

Update every 3 seconds

Page 15: Support@powerworld.com  2001 South First Street Champaign, Illinois 61820 +1 (217) 384.6330 Incorporation of Automatic Generation

15© 2014 PowerWorld Corporation

• This new MWReference will then be passed to the appropriate generator model to respond

• Various types of model must take this as an input1. Each Plant Controller (REPC_A)2. Each Pref Controller (LCFB1, WTGTRQ_A)3. WT3P (old type 3 pitch control)4. Each Governor (all the dozens of governor types)

• The software will send this signal to the model in the order of precedence above

• If none of these model exist, then just change P Mechanical for the machine model appropriately

• If no machine model exists, just change the Pelec for the algebraic model

• Conversion is unique for each model – Be careful of per unit base!

Pass MW Reference Signal

Page 16: Support@powerworld.com  2001 South First Street Champaign, Illinois 61820 +1 (217) 384.6330 Incorporation of Automatic Generation

16© 2014 PowerWorld Corporation

TraditionalSynchronous Machine Modules

Exciter Machine

Voltage Compensation

Network

Stabilizer Governor

VrefVcomp

Efield

Iq Ip

Vs

ActualPmech

Pref

Over/Under Excitation

Limiter

UEL/OEL

Relay Models

AGC Controller

MWReference

Page 17: Support@powerworld.com  2001 South First Street Champaign, Illinois 61820 +1 (217) 384.6330 Incorporation of Automatic Generation

17© 2014 PowerWorld Corporation

2nd Generation Type 3 Wind Turbine

ExciterREEC_A

MachineREGC_A

Voltage Compensation

StabilizerWTGPT_A

GovernorWTGT_A

PRef ControllerWTGTRQ_A

Plant Level Controller

REPC_A

wgwt

ϴ AeroWTGAR_A

Pm

ωref

Qref/Vref

Pref

Vcomp

Ipord

Pref0

Iq Ip

Pord

Network

Iqord

AGC ControllerPlant_Pref

Page 18: Support@powerworld.com  2001 South First Street Champaign, Illinois 61820 +1 (217) 384.6330 Incorporation of Automatic Generation

18© 2014 PowerWorld Corporation

2nd Generation Type 4 Wind Turbine(REGC_A, REEC_A, WTGT_A, REPC_A)

ExciterREEC_A

MachineREGC_A

Voltage Compensation

Network

GovernorWTGT_A

Plant Level Controller

REPC_A

wg

Tm0

Qref/Vref

Pref

Vcomp

Ipord

Iq Ip

Iqord

AGC ControllerPlant_Pref

Page 19: Support@powerworld.com  2001 South First Street Champaign, Illinois 61820 +1 (217) 384.6330 Incorporation of Automatic Generation

19© 2014 PowerWorld Corporation

• Pref is calculated from MWReference by algebra using the following assumptions– Assume the generator is operating at steady state and

nominal frequency (60 Hz)– Calculate what Pref would be using this assumption

• This is what Pref would be when initializing the governor from steady state if the MW output was equal to MWReference

• AGC is driving the frequency back to 60 Hz

• Caveats– For some governors this is not possible

• Isochronous governor (Rselect=0 for some model or R = 0)

– AGC operates in MW units – be careful with per unit values

Conversion of MWReference to Pref

Page 20: Support@powerworld.com  2001 South First Street Champaign, Illinois 61820 +1 (217) 384.6330 Incorporation of Automatic Generation

20© 2014 PowerWorld Corporation

GGOV1 example

𝑮𝒐𝒗𝑶𝒖𝒕=𝑷𝑮𝒆𝒏𝑴𝑾

𝑻𝒓𝒂𝒕𝒆∗𝑲𝒕𝒖𝒓𝒃+𝒘𝒇𝒏𝒍

𝑮𝒐𝒗𝑶𝒖𝒕

Rselect Kigov = 0 Kigov <> 00 Not Possible: Isochronous Isochronous-2 or -1+1

Solve 2 equations to map PgenMW to Pref

Must update Pmwset too

Page 21: Support@powerworld.com  2001 South First Street Champaign, Illinois 61820 +1 (217) 384.6330 Incorporation of Automatic Generation

21© 2014 PowerWorld Corporation

GGOV1 Conversion

Procedure MWReferenceToPref(INPUTS: MWReference : float OUTPUTS: ErrorConditions);

If RSelect = 0 Then begin Error Condition because Isochronous end Else If Kigov <> 0 Then Begin Case RSelect of -1,-2 : Pref = (MWReference/(TurbineMVARate*Kturb)+wfnl)*R; 1 : Pref = (MWReference/(TurbineMVARate)*R; End; End Else Begin Pref:= aDeltaMWOutput/(GetTRate*fKTurb*fKpgov); Case fRSelect of -1,-2 : Pref = (MWReference/(TurbineMVARate*Kturb) + wfnl)/Kpgov*(1+R*Kpgov); 1 : Pref = (MWReference/(TurbineMVARate*Kturb) + wfnl)/Kpgov + R*MWReference/TurbineRate; End; End; // If Kimw <> 0 then you also must change PMWSet value If fKimw <> 0 Then PmwSet := PMWSet + MWReference/GetTRate;

𝑮𝒐𝒗𝑶𝒖𝒕=(𝑷𝒓𝒆𝒇 −𝑹∗𝑮𝒐𝒗𝑶𝒖𝒕 )∗𝑲𝒑𝒈𝒐𝒗

𝑮𝒐𝒗𝑶𝒖𝒕=(𝑷𝒓𝒆𝒇 −𝑹∗ 𝑷𝑮𝒆𝒏𝑴𝑾𝑻𝒓𝒂𝒕𝒆 )∗𝑲𝒑𝒈𝒐𝒗

𝟎=𝑷𝒓𝒆𝒇 −𝑹∗𝑷𝑮𝒆𝒏𝑴𝑾𝑻𝒓𝒂𝒕𝒆

𝟎=𝑷𝒓𝒆𝒇 −𝑹∗𝑮𝒐𝒗𝑶𝒖𝒕

All conditions must meet

In addition, we must enforce equation below depending on other input parameters

Page 22: Support@powerworld.com  2001 South First Street Champaign, Illinois 61820 +1 (217) 384.6330 Incorporation of Automatic Generation

22© 2014 PowerWorld Corporation

• Machine, Exciter, Governor, and Stabilizer remain prominent

• Other Models contain the other categories of modules

• You see it in the Model Explorer

• When inserting a new Other Model from the generator dialog

• Plot Designer in Transient Stability Dialog

Where does it appear in GUI

Page 23: Support@powerworld.com  2001 South First Street Champaign, Illinois 61820 +1 (217) 384.6330 Incorporation of Automatic Generation

23© 2014 PowerWorld Corporation

Model Explorer

Page 24: Support@powerworld.com  2001 South First Street Champaign, Illinois 61820 +1 (217) 384.6330 Incorporation of Automatic Generation

24© 2014 PowerWorld Corporation

• Most often, dead-bands have an output of zero at initialization such as the input to a PI block or when fed in speed deviation

• What about when output is non-zero• We think that appropriate modeling is to apply the

dead-band around the initial condition

Another Note:Initialization of Dead-bands

Page 25: Support@powerworld.com  2001 South First Street Champaign, Illinois 61820 +1 (217) 384.6330 Incorporation of Automatic Generation

25© 2014 PowerWorld Corporation

Example: GGOV1

Page 26: Support@powerworld.com  2001 South First Street Champaign, Illinois 61820 +1 (217) 384.6330 Incorporation of Automatic Generation

26© 2014 PowerWorld Corporation

Handling of Dead-bands

InitOut

InitIn = InitOut

Input

Output

InitOut

InitIn = InitOut+dB

Input

Output

Dead-band around Zero (0.0)

Dead-band aroundInitial Output Value

PowerWorld is switching to ensure we initialize around Initial Output