Upload
briana-turner
View
213
Download
0
Embed Size (px)
Citation preview
[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
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
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
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
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
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
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
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
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
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∗𝐵𝑖𝑎𝑠
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
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
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
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
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
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
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
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
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
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
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
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
23© 2014 PowerWorld Corporation
Model Explorer
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
25© 2014 PowerWorld Corporation
Example: GGOV1
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