1 Introduction

Recently, the increased deployment of wind power has brought challenges to electric power systems operation because of its power output uncertainty. To reliably operate the system, stochastic optimization, such as chance-constrained optimal power flow (CC-OPF), has been introduced [1, 2] to minimize the cost of system generation while maintaining reliability and avoiding constraint violations within a defined risk level. Previously, the Gaussian distribution was used to represent wind power forecasting uncertainty [3, 4], but this assumption might lead to an estimation error for the system condition. Distributionally robust CC-OPF (DRCC-OPF) is proposed in [3], which needed only the forecasting mean and variance information, and can lead to a conservative dispatch and high generation cost because the result is robust for any forecasting errors distribution. This violation probability is either higher or lower than the predefined violation level using the predefined distribution assumptions. A higher violation means the system risk level is higher than the preferred level. A lower violation means that the system cost is higher than the optimal value. Therefore, choosing an appropriate coefficient can give a trade-off between the system reliability and cost. In this letter, an adjustable and distributionally robust chance-constrained (ADRCC) optimal power flow (OPF) model is proposed to obtain this optimal coefficient.

When the wind power forecasting uncertainty is taken into consideration, the CC-OPF model is given by:

$$ { \hbox{min} }\mathop \sum \limits_{i = 1}^{N} c_{i} G_{exp,i} $$
(1)
$$ {\text{s}} . {\text{t}} .\;\;\mathop \sum \limits_{i = 1}^{N} \left( {G_{i} + P_{i} } \right) - \mathop \sum \limits_{i = 1}^{N} D_{i} = 0 $$
(2)
$$ { \Pr }\left( {\mathop \sum \limits_{i = 1}^{N} GSF_{l,i} \cdot \left( {G_{i} + P_{i} - D_{i} } \right) \le LU_{l} } \right) \ge 1 - \epsilon $$
(3)
$$ { \Pr }\left( { - LU_{l} \le \mathop \sum \limits_{i = 1}^{N} GSF_{l,i} \cdot \left( {G_{i} + P_{i} - D_{i} } \right)} \right) \ge 1 - \epsilon $$
(4)
$$ { \Pr }\left( {G_{i} \le G_{{i,{ \hbox{max} }}} } \right) \ge 1 - \epsilon $$
(5)
$$ { \Pr }\left( {G_{{i,{ \hbox{min} }}} \le G_{i} } \right) \ge 1 - \epsilon $$
(6)
$$ G_{i} = G_{exp,i} + \Delta G_{i} $$
(7)
$$ P_{i} = P_{exp,i} + \Delta P_{i} $$
(8)
$$ \Delta G_{i} = \beta_{i} \left( { - \mathop \sum \limits_{i = 1}^{N} \Delta P_{i} } \right) $$
(9)
$$ \mathop \sum \limits_{i = 1}^{N} \beta_{i} = 1 $$
(10)
$$ - \mathop \sum \limits_{i = 1}^{N} \Delta P_{i} = \mathop \sum \limits_{i = 1}^{N} \Delta G_{i} $$
(11)

where \( N \) is the number of generators in the system; \( G_{i} \) is the generation power output; \( D_{i} \) is the load amount; \( P_{i} \) is the forecasted wind power; \( c_{i} \) is the offer price of generation; \( G_{exp,i} \) is the expected generation power output; \( P_{exp,i} \) is the expected wind power; \( \Delta G_{i} \) is the generation response to the wind uncertainty; \( \Delta P_{i} \) is the uncertain output of wind power; \( \beta_{i} \) is the sharing factor of generation for the wind uncertain power output; \( GSF_{l,i} \) is the system generation shift factor; \( LU_{l} \) is the transmission limit; \( G_{{i,{ \hbox{max} }}} \) and \( G_{{i,{ \hbox{min} }}} \) are the generation upper and lower limits, respectively; (3)–(6) are the chance constraints considering the impact of the wind uncertainty on the transmission overload and generation output violation; \( \epsilon \) is the confidence level in the chance constraints (mostly between 1% and 5%). The decision variable in the model is the generation dispatch \( G_{exp,i} \) and the balancing factor \( \beta_{i} \).

Define that the uncertain part of wind power output \( \Delta \varvec{P} \) has the mean as µ and covariance as \( \varvec{\varSigma} \) which is a positive semidefinite matrix. In addition, define \( \varvec{a}_{l} \left(\varvec{\beta}\right) \) as a one-column matrix whose element \( a_{l,i} \left(\varvec{\beta}\right) \) is given by (12), and \( \varvec{b}_{i} \left(\varvec{\beta}\right) \) as a one-column matrix given by (13).

$$ a_{l,i} \left(\varvec{\beta}\right) = - \mathop \sum \limits_{k = 1}^{N} GSF_{l,k} \cdot \beta_{k} + GSF_{l,i} $$
(12)
$$ \varvec{b}_{i} \left(\varvec{\beta}\right) = {\underbrace {{[\begin{array}{*{20}c} {\beta_{i} } & \cdots & {\beta_{i} } \\ \end{array} ]}}_{W}}^{\text{T}} $$
(13)

where W is the number of wind power plants.

Then, introduce auxiliary variables \( \eta_{PF,l} \) and \( \eta_{g,i} \) as shown in (14) and (15).

$$ \sqrt {\varvec{a}_{l} \left(\varvec{\beta}\right)^{\text{T}} \varvec{\varSigma a}_{l} \left(\varvec{\beta}\right)} \le \eta_{PF,l} $$
(14)
$$ \sqrt {\varvec{b}_{i} \left(\varvec{\beta}\right)^{\text{T}} \varvec{\varSigma b}_{i} \left(\varvec{\beta}\right)} \le \eta_{g,i} $$
(15)

Equations (14) and (15) can be formulated as second-order cone constraints as:

$$ {\|} {\varvec{\varSigma}^{{\frac{1}{2}}} \varvec{a}_{l} \left(\varvec{\beta}\right)} {\|_{2}} \le \eta_{PF,l} $$
(16)
$$ \| \varvec{\varSigma}^{{\frac{1}{2}}} \varvec{b}_{i} \left(\varvec{\beta}\right)\|_{2} \le \eta_{g,i} $$
(17)

The CC-OPF model is then formulated as (1), (12), (13), (16)–(22).

$$ \mathop \sum \limits_{i = 1}^{N} \left( {G_{exp,i} + P_{exp,i} } \right) - \mathop \sum \limits_{i = 1}^{N} D_{i} = 0 $$
(18)
$$ - \mathop \sum \limits_{i = 1}^{N} \left[ {GSF_{l,i} \cdot \left( {G_{exp,i} + P_{exp,i} - D_{i} } \right) + a_{l,i} \left(\varvec{\beta}\right)\mu_{i} } \right] - K_{\epsilon } \eta_{PF,l} \ge - LU_{l} $$
(19)
$$ \mathop \sum \limits_{i = 1}^{N} \left[ {GSF_{l,i} \cdot \left( {G_{exp,i} + P_{exp,i} - D_{i} } \right) + a_{l,i} \left(\varvec{\beta}\right)\mu_{i} } \right] - K_{\epsilon } \eta_{PF,l} \ge - LU_{l} $$
(20)
$$ - G_{i} - \beta_{i} \mathop \sum \limits_{k = 1}^{N} \mu_{k} - K_{\epsilon } \eta_{g,i} \ge - G_{{i,{ \hbox{max} }}} $$
(21)
$$ G_{i} + \beta_{i} \mathop \sum \limits_{k = 1}^{N} \mu_{k} - K_{\epsilon } \eta_{g,i} \ge G_{{i,{ \hbox{min} }}} $$
(22)

where \( K_{\epsilon } \) is the coefficient to control the robustness of the chance constraints to wind power forecasting errors. If the forecasting error follows a Gaussian distribution [5], the value of \( K_{\epsilon } \) is decided by (23).

$$ K_{\epsilon } = \varPsi^{ - 1} \left( {1 - \epsilon } \right) $$
(23)

where \( \varPsi \left( x \right) \) is the cumulative distribution function (CDF) of Gaussian distribution.

2 ADRCC-OPF

In (23), \( K_{\epsilon } \) is obtained based on the Gaussian distribution assumption for the wind power forecasting errors, which is not always the case in actual practice, as shown in Fig. 1 [4]. This section discusses the proposed ADRCC-OPF model that does not need the Gaussian distribution assumption for wind power forecasting errors and can control the tradeoff between the reliability and the system cost.

Fig. 1
figure 1

Wind power forecasting error distribution

First, the assumption is that the first- and second-order moments of the uncertain variables (mean and covariance) are estimated based on the historical data [2]. A set \( \varvec{p} \) of all the possible distributions \( \varvec{P} \) satisfying the mean and covariance values are represented as:

$$ \varvec{p} = \left\{ {\varvec{P} \in P_{0} \left( {{\mathbf{R}}^{\left| v \right|} } \right):\varvec{E}_{\varvec{P}} \left[\varvec{\omega}\right] =\varvec{\mu},\varvec{E}_{\varvec{P}} \left[ {\varvec{\omega \omega }^{\text{T}} } \right] =\varvec{\varSigma}} \right\} $$
(24)

where \( \varvec{\omega} \) is the uncertain variable (here is the wind power forecasting error); \( P_{0} \left( {{\mathbf{R}}^{\left| v \right|} } \right) \) denotes the set of all of the probabilistic distributions on \( {\mathbf{R}}^{\left| v \right|} \) with mean as µ and covariance matrix as \( \varvec{\varSigma} \); \( \varvec{E}_{\varvec{P}} \left[\varvec{\omega}\right] \) represents the expectation of \( \varvec{\omega} \) [3, 6, 7].

When only the mean and covariance of the distribution are obtained from the historical data, for \( \epsilon \in \left( {0,1} \right) \), the distributionally robust chance constraint is formulated with \( K_{\epsilon } \) value decided by (25) [1].

$$ K_{\epsilon } = \sqrt {(1 - \epsilon )/\epsilon } $$
(25)

If the forecasting error distribution is symmetrical with observing the historical forecasting error data, then the DRCC-OPF is formulated [1] with \( K_{\epsilon } \) value decided by (26).

$$ K_{\epsilon } = \sqrt {1/\left( {2\epsilon } \right)} $$
(26)

The values of \( K_{\epsilon } \) in the three cases are listed in Table 1 for \( \epsilon \) varying from 2% to 5%.

Table 1 \( K_{\epsilon } \) values under different distribution assumptions

However, the actual wind power forecasting errors might not be Gaussian or symmetrical. Therefore, using the \( K_{\epsilon } \) listed in Table 1 might lead to over-optimistic or over-conservative results. Using the \( K_{\epsilon } \) values of the distributionally robust case will lead to over-conservative results that has a higher operating cost and is not likely to be adopted by the system operators. Therefore, it is important to choose an appropriate \( K_{\epsilon } \) value leading to a predefined reliability and system cost tradeoff.

For the given \( \epsilon \) value under each distribution assumption (Gaussian, symmetric distributionally robust and distributionally robust), the CC-OPF is performed to obtain the dispatch results and the balancing factors using \( K_{\epsilon } \) values listed in Table 1. With the actual historical wind power forecasting error data, the system actual violations under each distribution assumption are obtained. Comparing the obtained violation value with the predefined value (\( \epsilon \)), the operators can choose the adjustable coefficient as shown in (27) to make the system violation value as close to the predefined value as possible to avoid over-optimistic or over-conservative results shown in Fig. 2.

$$ K_{\epsilon } = K_{\epsilon 1} + \left( {\epsilon - V_{1} } \right)\frac{{K_{\epsilon 2} - K_{\epsilon 1} }}{{V_{2} - V_{1} }} $$
(27)

where \( K_{\epsilon 1} \) and \( K_{\epsilon 2} \) are the coefficients leading to the violation higher and lower than the predefined value, respectively; \( V_{1} \) and \( V_{2} \) are the realized violation values. Here a linear approximation is used for simplicity because the forecasting errors have a linear relationship with \( K_{\epsilon } \) shown in the chance constraints in (19)–(21).

Fig. 2
figure 2

Illustration of \( K_{\epsilon } \) calculation

Note that after obtaining the generation dispatch and the balancing factors, the historical forecasting error data are used to calculate the system violation. In this process, the computation procedure can be paralleled to obtain the violation values under different distribution assumption fast and efficiently.

In the system operation, the system operators can choose the appropriate \( K_{\epsilon } \) based on the actual historical data for each operation interval using the actual system realized wind power deviation. Then in the actual operation, they can choose the appropriate coefficients based on the offline simulation. Similar mechanism can be found in Electricity Reliability Council of Texas (ERCOT) dynamic reserve curve [8].

3 Case studies

The test system has been modified from the PJM 5-bus system depicted in Fig. 3. The numbers besides the generators represent the generation offer price ($/MWh) and capacity (MW). The system parameters are from [9]. In this study, the peak load in this system is 1500 MW in the studied interval, and the total load is equally distributed among buses B, C, and D. Two wind power plants with 300 MW as their forecasted mean power output are located at buses B and C. One-year 8760-hour historical wind forecasting error data are utilized from California Independent System Operator (CAISO) to obtain the forecasting error mean and covariance [4], which are also utilized to examine the system violation with DRCC-OPF.

Fig. 3
figure 3

PJM 5-bus system and generation parameters

Table 2 lists the system generation cost with different distribution assumptions and confidential levels from 2% to 5%. It is obvious that the cost increases with the confidence level. In Gaussian distribution assumption, the cost increase from $15094.8 to $15170.8 when \( \epsilon \) changes from 5% to 2%. In the distributionally robust case, the cost increases from $15597.7 to $16332.5. In addition, the cost increases with the robustness of the wind power forecasting error distribution assumption. For instance, the cost in the distributionally robust case is the highest, the symmetrically distributionally robust case has the second highest cost, and the Gaussian distribution case has the lowest generation cost. It is clear from Table 1 that higher confidence level (lower \( \epsilon \)) and higher robustness of wind power forecasting error distribution lead to a higher \( K_{\epsilon } \). However, this comes at a cost.

Table 2 System generation cost under different distribution assumptions

Figure 4 shows the generation dispatch with \( \epsilon \) of 5%. The generation changes with the conservativeness of the wind power forecasting error. In the distributionally robust case, Gen4 and Gen5 reduce their power outputs while Gen3 increases its power to mitigate the wind power uncertainty. This leads to the increment of system generation cost, since Gen3 has a higher cost than Gen5, as shown in Fig. 3.

Fig. 4
figure 4

Generation dispatch under different distribution assumptions

After the generation dispatch and sharing factors are obtained from the proposed ADRCC-OPF, the historical 8760 wind power forecasting error scenarios are utilized to represent the actual wind power realization and the system violation such as generation violation is calculated [10]. Table 3 shows the output violation of Gen4 under different confidence levels and various distribution assumptions. Figures 5 and 6 are the power flow realization of line 6 and the power output of Gen4 considering the wind power forecasting error.

Table 3 Violation probability of Gen4 under different distribution assumptions
Fig. 5
figure 5

Power flow of line 6 considering wind forecasting errors under different distributions

Fig. 6
figure 6

Output of Gen4 considering wind forecasting errors under different distributions

Table 3 demonstrates that the Gaussian distribution assumption will lead to an optimistic result. For instance, when the confidence level is 1%, Gen4 has a 4.64% probability of violating its generation upper limit. In actual system operation, this will bring risk to system operations. The symmetrically distributionally robust and distributionally robust cases lead to a conservative dispatch because the actual violation possibility of Gen4 is lower than the predefined \( \epsilon \) value in these cases. This over-conservativeness leads to a higher generation cost. Therefore, appropriately choosing the distribution assumption of wind power forecasting error (the value of \( K_{\epsilon } \)) to represent the predefined risk level is of importance for the system operators to tradeoff between the system reliability and the cost. Again, this is also the reason that the proposed method is adjustable in addition to being distributionally robust. In this table, the adjustable coefficients \( K_{\epsilon } \) leading to the violation probability close to the predefined \( \epsilon \) value are also listed. The value of \( K_{\epsilon } \) is obtained using (27). The violation in Gaussian distribution is \( V_{1} \), and the violation in symmetrical distributionally robust case is \( V_{2} \). The values of \( K_{\epsilon } \) in Table 1 for Gaussian and symmetrical distributionally robust are \( K_{\epsilon 1} \) and \( K_{\epsilon 2} \).

In Fig. 5, it is obvious that the transmission power flow will reduce to a narrow range, and that the maximum potential power flow realization reduces, which also leads to lower transmission power flow violations. The black dashed line in Fig. 6 is the upper limit of Gen4. Figure 6 clearly shows that with the conservativeness increases the generation power output will reduce which leads to a lower generation output violation.

The IEEE 118-bus system is tested to verify the proposed model in a large-scale system. The system data is from [9, 11]. Four wind power plants are connected at bus 2, bus 5, bus 53, and bus 86 with the expected power output equal to 300 MW for the studied interval. The confidence level is 5%. The system generation cost and output violation probabilities of Gen2 are listed in Table 4. In this case, the \( K_{\epsilon } \) that leads to the closest value to the defined confidence level should be within the values of the symmetrically distributionally robust case and the distributionally robust case in Table 1.

Table 4 System results under different distribution assumptions

4 Conclusion

This work proposes a new chance-constrained OPF model called ADRCC-OPF. The influence of the distributional robustness for wind power forecasting on the generation cost and system violations is studied. It shows that the Gaussian distribution assumption for wind power forecasting can lead to overoptimistic results for the system violations and bring risk to system operation. The traditional distributionally robust CC-OPF model will lead to over-conservative results with a high operating cost. It is demonstrated in this work that the proposed ADRCC-OPF can achieve an appropriate tradeoff between the conservativeness and the system cost when an appropriate adjustable coefficient is chosen to control the robustness of the chance constraints.