ATC Analysis Methods: Iterated Linear Step (IL)
The Single Linear Step is an extremely fast method for determining the ATC. However, because it only uses present operating point information, controller changes are not taken into account. The linearization assumes that all controllers are fixed. The Iterated Linear Step (IL) method provides an alternative to the Single Linear Step that allows controller changes, but still performs its analysis in a reasonable amount of time. The (IL) method operates as follows:
- Perform Single Linear Step
- During the process where limiters are individually iterated on, it is possible that the single linear step calculation cannot be performed because the contingency aborts due to an Abort contingency action.
- If this occurs when using the iterated method Iterated Linear Step (IL) and not implementing the full contingency, the Iteratively Found string will be set to CTG_ABORTED_LINEAR and the iterative process will stop. The Transfer Limit that is reported is the accumulated transfer amount achieved from this linear iteration process prior to the Abort action being linearly implemented.
- If this occurs when using the Iterated Linear Step (IL) then Full CTG method, the linear iterated method will stop and the process will continue on with the full contingency actually being implemented at this transfer level.
- If generator limits are being enforced for the selected transactors, generators will be excluded from participating in the linear calculations if they are in the seller and they are at their maximum limit or if they are in the buyer and they are at their minimum limit. It is possible that there are no available participation points during the linear step and the reserve limit is encountered. If a reserve limit is encountered during the step where all transfer limiters are iterated on together, the entire ATC process will stop. If a reserve limit is encountered during the step where a limiter is being iterated on individually, the iterations will only stop for that limiter; other limiters will be processed if they do not hit a reserve limit as well. The reserve limit will be reported in the results.
- During the process where limiters are individually iterated on, it is possible that the single linear step calculation cannot be performed because the contingency aborts due to an Abort contingency action.
- Set the Stepsize = Minimum Transfer Limitation found in Single Linear Step which is greater than the specified When iterating, Ignore Limiters below value
- If [Iterations >= 100] then stop
- If the maximum 100 number of iterations is reached, a transfer limitation will be reported highlighted in lime green with the Iteratively Found field set to OSCILLATING indicating that the iterated process is oscillating. The Transfer Limit that is reported is the accumulated transfer amount that has been ramped as of the last successful solution. The maximum number of iterations is a value that is set internally. It is unlikely that this limit will ever be reached because other mechanisms are in place to prevent oscillations.
- The iteration count is reset at the beginning of the iteration process.
- Implement transfer by amount of Stepsize and resolve power flow
- The power flow is solved according to the options set with the Power Flow Solution Options.
- When calculating a transfer between injection groups, the Island-Based AGC Power Flow Solution Options applicable to dispatch using an injection group are used when determining which generators and loads will participate in the transfer. These options include whether or not AGC status should be considered when determining which units will participate in the ramping, whether or not to enforce generator MW limits, and whether or not to allow negative loads. The power factor to use when adjusting load is also specified with these options.
To prevent oscillation of the solution, the Stepsize may be limited if the sign of the Stepsize changes throughout the iterations. At each iteration, the direction of the Stepsize is checked and the Stepsize is bounded based on the accumulated transfer at each iteration. The accumulated transfer is the total amount that the transfer between the seller and buyer has been ramped. The accumulated transfer is updated with the current Stepsize once it has been determined that Stepsize can be achieved. At the start of the iterated process, LowBound is initialized to a large negative number and HighBound is initialized to a large positive number. At each iteration the following checks are performed:
If Stepsize > 0 then LowBound = (Accumulated Transfer)
Else If Stepsize < 0 then HighBound = (Accumulated Transfer)
If Stepsize >= (HighBound - Accumulated Transfer)*0.7
Then Stepsize = (HighBound – Accumulated Transfer)*0.7
Else If Stepsize <= (LowBound - Accumulated Transfer)*0.7
Then Stepsize = (LowBound – Accumulated Transfer)*0.7
- During the implementation of the transfer, if the full Stepsize cannot be achieved, an attempt is made to implement as much of the transfer as possible in smaller stepsizes by reducing the stepsize by half. The stepsize reduction continues until a stepsize is found at which the power flow will solve. Once this stepsize is found, an attempt will be made to ramp to the original full stepsize using the smaller reduced stepsize. If at any point in this process a stepsize cannot be ramped, an iterative process will be used to reduce the stepsize so as much as possible of the full original stepsize can be ramped. The user specified Transfer Tolerance is used to prevent the stepsize from becoming too small.
- If the power flow fails to converge at this point without being able to implement the full Stepsize transfer, a transfer limitation will be reported highlighted in fuchsia with the Iteratively Found field set to POWERFLOW_DIVERGENCE. The Transfer Limit that is reported is the total amount that could be ramped before the power flow failed to converge. This transfer limitation means that the full desired transfer amount cannot be achieved.
- If the full transfer amount cannot be achieved in this process when all limiters are being iterated on, the iterative process will continue and iterate on individual limiters.
- When all limiters are being iterated on, the Limiting Element will show POWERFLOW DIVERGENCE in addition to the Iteratively Found field showing POWERFLOW_DIVERGENCE. This indicates exactly where in the process the ramping could not be achieved.
- If the full transfer amount cannot be achieved in this process when individual limiters are being iterated on, the analysis method selected will dictate how the process continues. If using the Iterated Linear Step (IL) method, a Transfer Limit will be reported that is the total amount that could be ramped before the power flow failed to converge and this limiter will be highlighted in fuchsia with the Iteratively Found field set to POWERFLOW_DIVERGENCE. If the Iterated Linear Step (IL) method is being used as part of the Full CTG Solution method, the process will continue into the contingency solution step unless the limiter that is being iterated on is a base case limitation. If the limiter is a base case limitation, a Transfer Limit will be reported the same as if using the Iterated Linear Step (IL) method.
- If using the Iterated Linear (IL) then Full CTG method and ramping post-contingency, e.g. the option to Force all transfer ramping to occur in pre-contingency states and repeat full CTG solutions is NOT checked, and the full transfer amount cannot be achieved, a transfer limitation will be reported highlighted in gray with the Iteratively Found field set to RAMP_FAIL_IN_FULL_AFTER_CTG. The Transfer Limit that is reported is the total amount that could be ramped before the power flow failed to converge.
- The ramping of the transfer is done so that each step adjusts injection from a common starting point so that the ramping is effectively done in the same direction even if the Stepsize backs off the transfer. At the start of the iterated process, the base case generation and load values are stored. At each step where transfer ramping occurs, the generation and load values are returned to their base case levels and the transfer ramping is implemented from that point. As an example, take the situation where 1000 MW is ramped. The next Stepsize is calculated to be -100 MW. The total transfer amount achieved is then 900 MW. If ramping does not proceed in the same direction, generators that hit maximum limits when ramping out to 1000 MW will back off from these limits when ramping the -100 MW Stepsize. Ramping out to the total transfer amount of 900 MW in one step causes generators to hit their limits and stay there. If the ramping does not proceed in the same direction, ramping out by the total amount in one step and ramping by backing off the transfer will yield different results because some generators will no longer be at limits when ramping in steps. Ramping in the same direction is intended to prevent this discrepancy with generators at limits.
- Reserve limits on generators and loads participating in the transfer will be checked if the option to enforce limits is active for the selected transactors. Reverse limits are checked regardless of how the option to Report Generation Reserve Limits is set with the Common Options. For areas and super areas this means that the global enforcement of generator limits is active, the area enforcement of limits is active, and there is at least one generator whose enforcement of limits is active and this generator is on AGC control. For injection groups this means that the enforcement of limits for the injection group is active. When a reserve limit is found, the current iterations will stop and a transfer limit will be reported with the reserve limit and the area, super area, or injection group that is at a limit. If a reserve limit is encountered during the step where all transfer limiters are iterated on together, the entire ATC process will stop. If a reserve limit is encountered during the step where a limiter is being iterated on individually, the iterations will only stop for that limiter; other limiters will be processed if they do not hit a reserve limit as well.
- If [abs(Stepsize) <= Tolerance] then stop
- At new operating point, go back to first step and repeat
As the initial iteration process is performed, the transfer limiter may be different (i.e. the contingency and limiting element pair may be different) during each iteration. Once the Stepsize is determined to be less than or equal to the tolerance (or the maximum number of iterations is met) the order of the limiters is set.
At this point, the first user specified Transfer Limiters to Iterate On are taken from the list of limiters and the above process is repeated for each limiter individually, with the contingency and limiting element pair of each limiter remaining set as determined in the initial process. Some limiters that will appear in the list of limiters are not valid for iterating on individually. These limiters include those indicating the full transfer amount could not be ramped in the initial process and those indicating that a reserve limitation has been met on the source or sink. These type of limiters will be skipped when choosing those to iterate on individually. Transfer limitations for transfer limits found by iterating on them individually will be highlighted in yellow in the results and the Iteratively Found field will be set to YES.
This method takes into account controller changes that occur as you ramp out to the transfer level, but still avoids the full simulation of contingencies.
This method can be applied between combinations of areas and super areas, OR between two injection groups. Combinations of areas/superareas and injection groups are not allowed.