Over Excitation Limiter Model: OEL1

To be documented.
Model Equations and/or Block Diagrams
Parameters:
Vfdflag | 0 for field current; 1 for field voltage |
Ifdset | Pickup level of time dependent excitation limit, per unit |
Ifdmax | Level of hard excitation limit, per unit |
Tpickup | Timer setting for time dependent limit |
RunBack | Parameter of voltage regulator reference adjustment |
Tmax | Definite time delay for generator trip if field current exceeds Ifdmax |
Tset | Definite time delay for generator trip if field current exceeds Ifdset |
Ifcont | Maximum continuous field current, per unit |
Alarm | If 0 take action, if > 0 only alarm with no action except generator tripping |
1) Tpickup Parameter:
The OEL1 limiter Runback is set based on the limiter timer set by the Tpickup parameter:
a) If Tpickup > 0 then the field current limiter timer will have an inverse characteristic behavior. The Tpickup will be the delay in operation and will be activated when the field current exceeds Ifdset by 1 per unit.
b) If Tpickup < 0 then the field current limiter will have a definite time characteristic and will be the time the field current must remain above the Ifdset to be activated.
2) Runback Parameter:
The Runback parameter set the behavior of the current or voltage limiter when the time dependent element operates (limiter timer set by Tpickup):
a) If Runback > 0 then the voltage regulator reference is biased by the negative direction ramping at the rate if 1/Runback per unit per second as long as the field current or field voltage (as selected by Vfdflag) exceeds Ifcont.
If the selected value falls under Ifcont then ramping is stopped and the voltage regulator reference remains frozen at the biased value.
b) If Runback < 0 then the voltage regulator reference is biased and set to Runback per unit.
c) If Runback = 0 then the generator Exciter is set to the Hard Limit of Ifcont.
3) The Hard Limiter:
The Hard limiter is set when the generator field current >= Ifdmax
The Hard Limiter acts immediately to limit the excitation system output voltage and is set the following way by the Ifdmax parameter
a) When Ifdmax > 0 then the Hard Limiter is set to Ifdmax.
b) When Ifdmax < 0 then the Hard Limiter is set to Ifcont
4) Generator Trip:
a) If Generator Current > Ifdmax for Tmax seconds or,
b) If Generator Current > Tfdset for Tset seconds.
Notes: The implementation of the Hard Limiters are only allowed in the following exciters:
esdc1a esdc2a esdc4b esst1a_ge esst1a_ge exac1 exac1a exac2 exac8b exbbc exdc1 exdc2_ge exdc2a exst1_ge rexs rexsys
Pseudo Code of OEL1 algorithm:
HardLimit = Ifcont if Ifdmax <=0 else HardLimit = Ifdmax
If fVfdflag = 0 Then InputSignal := FieldCurrent
Else InputSignal:= EField
Function Local_DetermineVOEL(SetRunbackSeconds)
If Runback < 0 then begin
VOEL = Runback
FrozenLimitToRunBack := true
End
Else Begin
If SetRunbackSeconds >= 0 then begin
VOEL := -1/(fRunBack)* SetRunbackSeconds + oldVOEL
FrozenLimitToRunBack := true
End
End
End function
Function LOCAL_GetRunBackSeconds
If (TPickup < 0) and (AboveIfdInputSignalSetTime >= Abs(TPickup)) Then Begin
result := Present Time - AboveIfdInputSignalSetTime- - Abs(TPickup)
End
Else If (fTPickUp > 0) Then Begin // Inverse time
InverseCharacteristic TripReset(IO,local_NewTime);
If InverseCharacteristic Tripped Then Begin // Meaning it got to one second
result := InverseCharacteristic.TripTime
End
End
End function
If IfieldCurrent > Ifdmax then
OEL1 is at HardLimit.
If IfieldCurrent > Ifdmax for TMax time then Trip the Unit.
End
If (IfieldCurrent > fIfdSet) Then Begin
If IfieldCurrent > fIfdSet for TMax time then Trip the Unit.
End
If InputSignal > fIfdSet Then Begin
AlreadyReset = false;
If AboveIfdInputSignalSetTime = 0 then AboveIfdInputSignalSetTime = PresentTime
SetRunbackSeconds := PresentTime
If LOCAL_GetRunBackSeconds >= 0 then begin
If (Runback = 0) and (Alarm = 0) then begin
OEL1 set at HardLimit = Ifcont
End
End
If Runback <> 0 then begin
Local_DetermineVOEL(LOCAL_GetRunBackSeconds)
If (fRunback <> 0) and (FrozenLimitToRunBack) and (Alarm = 0) then begin
VOEL SendingSignal := true;
End
End
Else Begin
If (fRunback <> 0) and (FrozenLimitToRunBack) and (Alarm = 0) then begin
VOEL SendingSignal := true;
End
If (fRunback <> 0) and (InputSignal > fIfcont) and (not AlreadyReset) and (Alarm = 0) then begin
If LOCAL_GetRunBackSeconds >= 0 then begin
LOCAL_DetermineVOEL(LOCAL_GetRunBackSeconds)
End
End
Else begin
If (Runback <> 0) and (FrozenLimitToRunBack) then begin
oldVOEL := fVOEL
If (not AlreadyReset) then begin
VOEL Frozen
End
End
AboveIfdInputSignalSetTime := Set to Zero;
InverseCharacteristic(Reset to Zero) // Reset to zero
If (not fAlreadyReset) then begin
Reset
End
AlreadyReset := true
RunbackisZeroActivated := false
End
End