1 Introduction

Voltage instability in power systems is a slow phenomenon, which primarily occurs due to heavy loading, contingencies, undesired operation of tap-changing transformers, and shortage of reactive power injection arising due to reactive power limits of generators [1]. Voltage instability may lead to abnormally low voltages throughout the system and may cause a partial or complete blackout. The Voltage Stability Margin (VSM) of a power system is measured as the possible increase in active power demand from the present loading condition [2,3,4].

1.1 Related works

Different techniques are used for the assessment of voltage stability, such as the Continuation Power Flow method (CPF) [2, 5], tangent vector determination [2], eigenvalue analysis [6], machine learning-based approaches [7, 8], evaluation of Voltage Stability Indices (VSIs), like the singularity of the Jacobian matrix [3], Thevenin-based indices [9], and indices based on power flow solution [10,11,12].

Several preventive and corrective actions are employed to ensure the enhancement of voltage stability of a power system, for example, shunt compensation using capacitors or FACT devices, controlling the generator excitation and thereby regulating its reactive power output, load shedding, or timely blocking the tap-changers of transformers [13]. In [14], a wide area measurement-based sensitivity approach is proposed for voltage control. A new VSI (\(L'\)) is derived and its sensitivity values w.r.t to the control variables are used to decide the optimal control actions. In [15, 16], a real-time preventive control is proposed based on the Thevenin parameter identification. Here, the generator terminal voltage and shunt capacitor are taken as the control variables. In [17], the critical reactive power reserves are enhanced by calculating the optimal control actions, solving a convex quadratic optimization problem, where load shedding and shunt compensation are employed. An optimization problem is solved in [18] using Hybrid Differential Evolution (HDE) technique to determine the optimal control settings for voltage control. The control variables chosen for this work are On-Load Tap Changer (OLTC), Static VAR Compensators (SVCs) and generator excitation settings. In [19], a method for selecting optimal control actions to maintain voltage stability is described. The robustness of this method makes it suitable for real-time applications. In [20], the optimal preventive and corrective control actions to minimize the voltage risk are found by solving a nonlinear optimization algorithm using Positive Constraint Relaxation Algorithm (PCRA), taking load shedding and generator excitation as control variables. In [21], the Modified Crow Search Algorithm (MCSA) is used to determine the optimal control variables to maintain the voltage stability of a power system integrated with wind generators. A fuzzy logic controller is designed in [22] to determine the minimum reactive power support required for ensuring the voltage stability of a power system.

With the increasing penetration of Renewable Energy Sources (RESs) in the power system, uncertainty in power demand and consumption is becoming increasingly prevalent. This intermittency has negative impact on system voltage stability. Many recent studies have focused on the assessment and regulation of voltage stability margins in presence of randomness due to RESs integration. In [23, 24], the authors have developed a technique for probabilistic voltage stability assessment, where they have addressed the issue of selecting a power increment direction so that it guarantees the reliability of voltage stability assessment. The impact of wind power uncertainty on a micro-grid’s voltage stability is done in [25]. A model is proposed which guarantees the voltage stability for a defined voltage stability margin. Reference [26] introduces a Stochastic Response Surface Method (SRSM) for analyzing the voltage stability. The input to the SRSM model is the wind speed which follows the Weibull probability distribution curve, and the output is the composite matrix spectral radius of the dynamic system.

The Model Predictive Control (MPC)-based voltage control has received increasing interest from researchers over the year due to the ease of modelling constraints related to voltage stability and the flexibility of performing online optimization. In [27], a decentralized MPC-based secondary voltage controller is proposed, which regulates the set-point of reactive power compensators in each area of a power system. In [28], an MPC-based voltage controller is proposed for long-term voltage stability, with an objective to bring the system voltages close to reference voltages. The detailed modelling of power system components necessary for voltage stability evaluation, such as tap-changers, over-excitation limiters, and doubly fed induction generators for wind turbines, are done here. An MPC-based controller using Galerkin method is proposed in [29] to improve the mid-term voltage stability of a power system. The Galerkin method is based on polynomial approximation, which helps to retain the nonlinearity of power systems and thus provides better voltage control. SVCs and tap-changing transformers are used as control variables for an MPC-based controller in [30]. Since the control variables are both continuous and discrete, a mixed integer quadratic programming problem is solved for calculating the optimal control inputs. In [31], a distributed MPC-based voltage controller is proposed for long-term voltage stability of multi-area power systems. An MPC-based voltage controller for distribution networks with high Distributed Generation penetration is presented in [32]. The interaction between transmission and distribution networks is also investigated here. In [33], the MPC-based voltage controller employs under-voltage load shedding to maintain voltage stability in the system. Multi-valued Particle Swarm Optimization along with MPC-based voltage control scheme is proposed in [34], which uses transformer tap-ratios and capacitor banks as control variables.

1.2 Research gaps

From the above literature survey, the following scope of work can be identified. (1) To the best of the authors’ knowledge, the study of controller performance for different types of loads is not reported anywhere. (2) The calculation of sensitivities of VSIs w.r.t control variable and the inclusion of the VSIs in the constraints of the optimization problem is not available in any of the mentioned works. These research gaps motivated us to propose a novel MPC-based voltage control technique.

1.3 Contributions

In this paper, an MPC-based voltage controller is proposed. Some commonly used line and bus VSIs are used as a measure of voltage stability. The proposed controller is actuated only when there is a disturbance in the system, leading to a risk of voltage instability and, in turn, causing the VSIs to cross allowable limits. At first, a linear relationship between the voltage phasors and control variables is derived. Using this linear relation, a state-space model for the proposed voltage controller is formulated. By minimizing a quadratic cost function, the proposed MPC voltage controller calculates the optimal values of generator reactive power injections and SVC outputs to maintain a stable system voltage. Several constraints, such as limits on incremental input changes, size of control inputs, load bus voltage magnitudes, generator voltage control capability, and line and VSI limits, are added to the optimization problem to make the model more practical. While rescheduling reactive power injections, only the most sensitive control inputs are varied for voltage control. The performance of the controller is tested in the presence of different load models and contingencies. The main contributions of this research work are as follows:

  1. 1.

    Using sensitivity analysis, a linear state-space model of a power system is developed, which models the frequency and voltage dependency of load and generation.

  2. 2.

    An MPC-based control technique is developed for calculating the optimal control action to be applied sequentially for maintaining voltage stability. Generator excitation and SVCs are regulated for the purpose of voltage control. The control variables that are more sensitive to voltage and frequency variations are regulated for the control action.

  3. 3.

    The sensitivity of several VSIs w.r.t the control variables are derived. This helps to include the VSIs in constraints of the optimization problem.

  4. 4.

    The performance of the proposed control technique is demonstrated on different IEEE test systems in the presence of different types of load and contingencies.

1.4 Paper organization

The remainder of this paper is organized as follows: Section 2 describes the most commonly used VSIs for measuring voltage stability. In Sect. 3, sensitivity analysis is performed to find a linear relationship between the state variables and the control inputs. In Sect. 4, the design of the proposed controller is discussed. Several case studies are presented in Sect. 5. In Sect. 6, the scope and limitations of the proposed research work has been discussed, and Sect. 7 concludes the paper.

2 Indices to determine voltage sability

The VSIs are broadly divided into two categories, namely bus VSIs and line VSIs. Some of the VSIs from each category are defined in the following sections.

2.1 Bus voltage stability indices

Bus VSIs are used to determine the voltage stability of each load bus in a system. Also, the weak buses can be determined using either the maximum or minimum values of the indices. Some of the bus VSIs are listed below.

Using the \(\bar{Y}\)-bus matrix and the voltage phasors, a voltage stability indicator, referred to as L-index, is proposed in [11], which is calculated for each load bus as

$$\begin{aligned} L_j = \left| 1-\frac{\sum _{i\in \mathcal {N}_{g}}\bar{F}_{ji}\bar{V}_i}{\bar{V}_j} \right| , \forall j\in \mathcal {N}_{lb} \end{aligned}$$
(1)

where \(\mathcal {N}_{g}, \mathcal {N}_{lb}\) are the set of all generator and load buses, respectively. \(\bar{V}_i, \bar{V}_j\) are the voltage phasors at ith and jth bus, respectively. The elements \(\bar{F}_{ji}\) are calculated from the \(\bar{Y}\)-bus matrix of the network as:

$$\begin{aligned} F = -\bar{Y}_{LL}^{-1}\bar{Y}_{LG}, \hspace{5pt} \begin{bmatrix} \bar{I}_L \\ \bar{I}_G \end{bmatrix} = \begin{bmatrix} \bar{Y}_{LL} &{} \bar{Y}_{LG}\\ \bar{Y}_{GL} &{} \bar{Y}_{GG} \end{bmatrix} \begin{bmatrix} \bar{V}_L \\ \bar{V}_G \end{bmatrix} \end{aligned}$$
(2)

The L-index value for a load bus varies between 0 and 1, where \(L_j=1\) indicates a voltage collapse at bus j.

In [12], an I index is proposed for each load bus.

$$\begin{aligned} I_i = \frac{\partial P_i/\partial \delta _i}{\sum _{j=1,j\ne i}^{n}B_{ij}V_j} \end{aligned}$$
(3)

where, for an n-bus system, \({\partial P_i/\partial \delta _i}\) is calculated from the load flow Jacobian matrix, B matrix is the imaginary part of the \(\bar{Y}\) bus matrix, and \(V_j\) is the voltage magnitude at load bus j. An \(I_i > 0.5\) indicates voltage collapse at the ith load bus.

2.2 Line voltage stability indices

The line VSIs are measures of the voltage stability of a transmission line. A \(\pi \)-section model of a transmission line, shown in Fig. 1 is used for defining the line VSIs.

Fig. 1
figure 1

A \(\pi \)-section model of transmission line

Let \(V_s\angle \delta _s, V_r\angle \delta _r\) be the voltage phasors at the sending and the receiving end buses, respectively, and \(\delta =\delta _s-\delta _r\). \(\bar{S}_s = P_s + jQ_s, \bar{S}_r = P_r + jQ_r\) be the apparent power injections at the sending and the receiving end buses, respectively. \(\bar{y}_0, r,x, \theta \) be the shunt admittance, resistance, reactance, and impedance angle, respectively, of the transmission line. Some widely used line VSIs are defined below.

Fast Voltage Stability Index (FVSI) was proposed in [35] and is calculated for each transmission line as:

$$\begin{aligned} FVSI = \frac{4z^2Q_r}{V_s^2x} \end{aligned}$$
(4)

\( FVSI > 1 \) for a line indicates that one of the buses connected to the concerned line may experience a sudden voltage drop, which may finally lead to voltage collapse.

The voltage stability index \(L_{mn}\) has been proposed in [36]. For each transmission line, \(L_{mn}\) is calculated as (5). \(L_{mn} > 1\) indicates voltage collapse in the system.

$$\begin{aligned} L_{mn} = \frac{4xQ_r}{V_s^2\sin ^2(\theta -\delta )} \end{aligned}$$
(5)

Voltage Reactive Power Index (VQI) has been introduced in [37]. VQI for any line is calculated as defined in (6), where \(y =|1/(r+jx)|\) is magnitude of the admittance of the transmission line. Here, \(VQI<1\) indicates a stable system and \(VQI>1\) suggests a voltage collapse.

$$\begin{aligned} VQI = \frac{4Q_r}{yV_s^2} \end{aligned}$$
(6)

Voltage Stability Load Index (VSLI) is proposed in [38] and is calculated using (7). \( VSLI > 1\) value exceeding indicates voltage collapse at one of the buses connected to the line.

$$\begin{aligned} VSLI= \frac{4(V_sV_r\cos \delta -V_r^2\cos \delta )}{V_s^2} \end{aligned}$$
(7)

3 Sensitivity analysis

Practically, the load and generation of a power system change with varying frequency and bus voltage magnitudes. The frequency dependency of the real power output of a generator can be expressed as:

$$\begin{aligned} P_{g_i} = P_{set_i} - \frac{P_{g_i}^{max}}{R_i}\Delta f, \quad P_{g_i}^{min} \le P_{g_i} \le P_{g_i}^{max} \end{aligned}$$
(8)

where \(P_{g_i}\) and \(P_{set_i}\) are the actual and set value of active power generation at bus i, respectively, \(\Delta f\) is the frequency deviation from the nominal value, \(P_{g_i}^{max}\) and \(P_{g_i}^{min}\) are a maximum and minimum generation at bus i, respectively, and \(R_i\) is the regulation constant [39]. Similarly, the loads are considered frequency and voltage-dependent as:

$$\begin{aligned} P_{d_i}= & {} P_{d0_i}\left( 1 + k_i\Delta f\right) \left( a_i + b_iV_i + c_iV_i^2 \right) \end{aligned}$$
(9)
$$\begin{aligned} Q_{d_i}= & {} Q_{d0_i}\left( 1 + k_i'\Delta f\right) \left( a_i' + b_i'V_i + c_i'V_i^2 \right) \end{aligned}$$
(10)

where \(P_{d_i}\) and \(Q_{d_i}\) are the actual active and reactive power load at bus i, \(P_{d0_i}\) and \(Q_{d0_i}\) are the active and reactive power load for nominal voltage and frequency, respectively, and \(V_i\) is the voltage magnitude. Here, \(a_i + b_i + c_i = 1\) and \( a_i' + b_i' + c_i' = 1\).

At any bus i, active and reactive power balance equations can be written as:

$$\begin{aligned} f_{p_i}&: P_i - P_{g_i} + P_{d_i} = 0 \end{aligned}$$
(11)
$$\begin{aligned} f_{q_i}&: Q_i - Q_{g_i} + Q_{d_i} = 0 \end{aligned}$$
(12)

where

$$\begin{aligned} P_i&= V_i \sum _{k = 1}^n V_k \{G_{ik}\cos (\delta _i - \delta _k) + B_{ik}\sin (\delta _i - \delta _k)\} \end{aligned}$$
(13)
$$\begin{aligned} Q_i&= V_i \sum _{k = 1}^n V_k \{G_{ik}\sin (\delta _i - \delta _k) - B_{ik}\cos (\delta _i - \delta _k)\} \end{aligned}$$
(14)

3.1 Linear relationship between bus voltages, system frequency and reactive power injections

Equation (11) can be re-written as:

$$\begin{aligned} P_i + \left( \frac{P_{max_i}}{R_i}\right) \Delta f + P_{d_i} = P_{set_i} \end{aligned}$$
(15)

Linearizing (15) using first-order Taylor’s series approximation, we get:

$$\begin{aligned}&\sum _{k = 1, k \ne s}^n \frac{\partial P_i}{\partial \delta _k}\Delta \delta _k + \left( \frac{P_{max_i}}{R_i} \right) \Delta (\Delta f) \nonumber \\&\quad + \frac{\partial P_{d_i}}{\partial V_i} \Delta V_i + \frac{\partial P_{d_i}}{\partial (\Delta f)}\Delta (\Delta f) =0 \end{aligned}$$
(16)
$$\begin{aligned}&\quad \text {where } \sum _{k = 1, k \ne s}^n \frac{\partial P_i}{\partial \delta _k}\Delta \delta _k = \sum _{k = 1, k \ne s}^n \left( -V_i B_{ik} \right) \Delta \delta _k \end{aligned}$$
(17)

Assuming \(\Delta f\Delta V_i \approx 0\), we can write:

$$\begin{aligned} \frac{\partial P_{d_i}}{\partial V_i} \Delta V_i&= P_{d0_i}\left( b_i + 2c_iV_i \right) \Delta V_i \end{aligned}$$
(18)
$$\begin{aligned} \frac{\partial P_{d_i}}{\partial (\Delta f)} \Delta (\Delta f)&= P_{d0_i}k_i\left( a_i + b_iV_i + c_iV_i^2 \right) \Delta (\Delta f)\nonumber \\ \end{aligned}$$
(19)

Re-arranging (16), we get:

$$\begin{aligned} \sum _{k=1, k\ne s}^n&\left( -B_{ik} \right) \Delta \delta _k+ \xi _i \Delta (\Delta f)+ \eta _i \Delta V_i=0 \nonumber \\ \text {where }\xi _i&= \frac{1}{V_i}\left[ \frac{P_{max_i}}{R_i} + P_{d0_i}k_i\left( a_i + b_iV_i + c_iV_i^2 \right) \right] \nonumber \\ \eta _i&= \frac{P_{d0_i}}{V_i}\left( b_i + 2c_iV_i \right) \end{aligned}$$
(20)

Similarly, for the reactive power balance equation (12):

$$\begin{aligned}&\sum _{k = 1}^n \frac{\partial Q_i}{\partial V_k}\Delta V_k + \frac{\partial Q_{d_i}}{\partial V_i} \Delta V_i + \frac{\partial Q_{d_i}}{\partial (\Delta f)}\Delta (\Delta f) \nonumber \\&\quad + \frac{\partial Q_{d_i}}{\partial Q_{d0_i}}\Delta Q_{d0_i} = \Delta Q_{g_i} \end{aligned}$$
(21)

Replacing (14) and (10) in (11) and ignoring product of two incremental change in variables, we can write:

$$\begin{aligned}&\sum _{k = 1, k \ne s}^n \frac{\partial Q_i}{\partial V_k}\Delta V_k = \sum _{k = 1, k \ne s}^n \left( -V_i B_{ik} \right) \Delta V_k \end{aligned}$$
(22)
$$\begin{aligned}&\frac{\partial Q_i}{\partial V_k}\Delta V_k = Q_{d0_i}\left( b_i' + 2c_i'V_i \right) \Delta V_k \end{aligned}$$
(23)
$$\begin{aligned}&\frac{\partial Q_{d_i}}{\partial (\Delta f)} \Delta (\Delta f) = Q_{d0_i}k_i'\left( a_i' + b_i'V_i + c_i'V_i^2 \right) \Delta (\Delta f) \end{aligned}$$
(24)
$$\begin{aligned}&\frac{\partial Q_{d_i}}{\partial Q_{d0_i}} \Delta Q_{d0_i} = \left( a_i' + b_i'V_i + c_i'V_i^2 \right) \Delta Q_{d0_i} \end{aligned}$$
(25)

Equation (21) can be re-written as:

$$\begin{aligned}&\sum _{k = 1, k \ne s}^n \tilde{B}_{ik}''\Delta V_k + \xi _i' \Delta (\Delta f) + \gamma _i' \Delta Q_{d0_i} = \frac{\Delta Q_{g_i}}{V_i} \nonumber \\ \text {where }\tilde{B}_{ik}''&= {\left\{ \begin{array}{ll} -B_{ik}, \text { if } i \ne k\\ -B_{ii} + \frac{Q_{d0_i}}{V_i}\left( b_i + 2c_iV_i \right) , \text { otherwise}. \end{array}\right. } \nonumber \\ \xi _i'&= \frac{Q_{d0_i}}{V_i}k_i'\left( a_i' + b_i'V_i + c_i'V_i^2 \right) , \nonumber \\ \gamma _i'&= \frac{1}{V_i}\left( a_i' + b_i'V_i + c_i'V_i^2\right) \end{aligned}$$
(26)

Writing (20) and (26) for all buses and expressing in matrix form, we get:

$$\begin{aligned} \begin{bmatrix} A_1 &{} A_2 \\ A_3 &{} A_4 \\ \end{bmatrix}\begin{bmatrix} \Delta \tilde{\delta }\\ \Delta \bar{V} \end{bmatrix}=\begin{bmatrix} 0 &{} 0 \\ A_5 &{} A_6 \\ \end{bmatrix}\begin{bmatrix} \Delta \bar{Q}_g \\ \Delta \bar{Q}_{d0} \end{bmatrix} \end{aligned}$$
(27)

where \(\Delta \bar{Q}_{g} = \left[ \Delta Q_{g_1}, \Delta Q_{g_2}, \dots , \Delta Q_{g_n}\right] ^T \), \(\Delta \bar{Q}_{d0} = \)

\([\Delta Q_{d0_1}, \Delta Q_{d0_2}, \dots , \Delta Q_{d0_n}]^T\), and

$$\begin{aligned} {A_1}_{ik}&= {\left\{ \begin{array}{ll} -B_{ik}, \text { if } k \ne s\\ \xi _i, \text { otherwise}. \end{array}\right. } {A_2}_{ik} = {\left\{ \begin{array}{ll} \eta _i, \text { if } i = k\\ 0, \text { otherwise}. \end{array}\right. }\\ {A_3}_{ik}&= {\left\{ \begin{array}{ll} \xi _i', \text { if } k = s\\ 0, \text { otherwise}. \end{array}\right. } {A_4}_{ik} = \tilde{B}_{ik}'' \\ {A_5}_{ik}&= {\left\{ \begin{array}{ll} 1/V_i, \text { if } i = k\\ 0, \text { otherwise}. \end{array}\right. } \\ {A_6}_{ik}&= {\left\{ \begin{array}{ll} -\gamma _i, \text { if } i = k\\ 0, \text { otherwise}. \end{array}\right. } \end{aligned}$$

Equation (27) can be re-written as:

$$\begin{aligned}&\begin{bmatrix} \Delta \tilde{\delta }\\ \Delta \bar{V} \end{bmatrix}=\begin{bmatrix} S^{\delta }_{q_{g}} &{} S^{\delta }_{q_{d0}} \\ S^{v}_{q_{g}} &{} S^{v}_{q_{d0}} \\ \end{bmatrix}\begin{bmatrix} \Delta \bar{Q}_g \\ \Delta \bar{Q}_{d0} \end{bmatrix} \end{aligned}$$
(28)
$$\begin{aligned}&\quad \text {where } \begin{bmatrix} S^{\delta }_{q_{g}} &{} S^{\delta }_{q_{d0}} \\ S^{v}_{q_{g}} &{} S^{v}_{q_{d0}} \\ \end{bmatrix} =\begin{bmatrix} A_1 &{} A_2 \\ A_3 &{} A_4 \\ \end{bmatrix}^{-1}\begin{bmatrix} 0 &{} 0 \\ A_5 &{} A_6 \\ \end{bmatrix} \end{aligned}$$
(29)

Equation (28) establishes a linear relationship between bus voltage magnitudes, angles and frequency, and reactive power injections.

3.2 Linear relationship between line powers and reactive power injections

Let \(P_{ik}\) denote the active power flow through line ik, connected between bus i and k. Then,

$$\begin{aligned} P_{ik}&= g_{ik}V_i^2 - V_iV_k\{ g_{ik} \cos (\delta _i - \delta _k) \nonumber \\&\quad + b_{ik}\sin (\delta _i - \delta _k)\} \end{aligned}$$
(30)

where \((g_{ik} + jb_{ik})\) is the admittance of line ik. Change in power flow through line ik due to change in the injection can be determined as:

$$\begin{aligned} \Delta P_{ik} = \begin{bmatrix} S^{p_{ik}}_{\delta }&S^{p_{ik}}_{v} \end{bmatrix}\begin{bmatrix} \Delta \tilde{\delta }\\ \Delta \bar{V} \end{bmatrix} \end{aligned}$$
(31)

where, for \(j = 1, 2, \cdots , n\)

$$\begin{aligned} {S^{p_{ik}}_{\delta }}_{1j}&= {\left\{ \begin{array}{ll} -V_ib_{ik}, \text { if } j = i, j \ne s\\ +V_ib_{ik}, \text { if } j = k, j \ne s\\ 0, \text { otherwise}. \end{array}\right. } \end{aligned}$$

Similarly, \({S^{p_{ik}}_{v}}_{1j} = 2g_{ik}V_i\) if \(j = i\), and \({S^{p_{ik}}_{v}}_{1j} = 0\) for all other values of j. Replacing (28) in (31), we can write

$$\begin{aligned} \Delta P_{ik} = \begin{bmatrix} S^{p_{ik}}_{u} \end{bmatrix}\begin{bmatrix} \Delta \bar{Q}_g^T \;&\Delta \bar{Q}_{d0}^T \end{bmatrix}^T \end{aligned}$$
(32)

where, \(\begin{bmatrix} S^{p_{ik}}_{u} \end{bmatrix} = \begin{bmatrix} S^{p_{ik}}_{q_{g}}&S^{p_{ik}}_{q_{d0}} \end{bmatrix}, S^{p_{ik}}_{u} = \begin{bmatrix} S^{p_{ik}}_{\delta }&S^{p_{ik}}_{v} \end{bmatrix}\begin{bmatrix} S^{\delta }_{q_{g}} &{} S^{\delta }_{q_{d0}} \\ S^{v}_{q_{g}} &{} S^{v}_{q_{d0}} \end{bmatrix} \)

3.3 Linear relationship between reactive power injections and voltage sability indices

A linear relationship between the mentioned VSIs and power injections is expressed as in (33). Here, \(\psi \) represents one of the VSIs among {\(L_i,FVSI,L_{mn},VQI,VSLI\)}, depending upon which VSI constraint is used for voltage stability measurement.

$$\begin{aligned} \Delta \psi = \begin{bmatrix} S^{\psi }_{u} \end{bmatrix}\begin{bmatrix} \Delta \bar{Q}_g^T \;&\Delta \bar{Q}_{d0}^T \end{bmatrix}^T \end{aligned}$$
(33)

where \(S^{\psi }_{u} = \begin{bmatrix} S^{\psi }_{\delta }&S^{\psi }_{v} \end{bmatrix}\begin{bmatrix} S^{\delta }_{q_{g}} &{} S^{\delta }_{q_{d0}} \\ S^{v}_{q_{g}} &{} S^{v}_{q_{d0}} \\ \end{bmatrix}\) and

$$\begin{aligned} S^{L_i}_{v_k}&= {\left\{ \begin{array}{ll} \left| 1+\left( \sum _{i\in \mathcal {N}_{g}}F_{ji}{V}_i (\cos \delta +j\sin \delta )\right) /{V}_j^2 \right| ,\\ \text { if } k = j \\ \left| 1{-}F_{ji}(\cos \delta {+}j\sin \delta )/{V}_j \right| ,\\ \text { if } k{\ne } j, k\in \mathcal {N}_{g} \\ 0, \text { otherwise} \end{array}\right. }\\ S^{L_i}_{\delta _k}&= {\left\{ \begin{array}{ll} \left| 1-\left( \sum _{i\in \mathcal {N}_{g}}F_{ji}V_i(\sin \delta -j\cos \delta )\right) /{V}_j \right| , \\ \text { if } k = j\\ \left| 1+F_{ji}V_i(\sin \delta -j\cos \delta )/{V}_j \right| , \\ \text { if } k\ne j, k\in \mathcal {N}_{g}\\ 0, \text { otherwise} \end{array}\right. } \\ S^{FVSI}_{v_k}&= {\left\{ \begin{array}{ll} \left( V_s^2\frac{\partial Q_r}{\partial V_s} - 2V_sQ_r\right) /V_s^4, \text { if } k = s\\ 4Z^2\frac{\partial Q_r}{\partial V_r}/(XV_s^2), \\ \text { if } k=r \\ 0, \text { otherwise} \end{array}\right. }\\ S^{FVSI}_{\delta _k}&= {\left\{ \begin{array}{ll} 4Z^2\frac{\partial Q_r}{\partial \delta _s}/(XV_s^2), \text { if } k = s\\ 4Z^2\frac{\partial Q_r}{\partial \delta _r}/(XV_s^2), \text { if } k=r \\ 0, \text { otherwise} \end{array}\right. } \\ S^{L_{mn}}_{v_k}&= {\left\{ \begin{array}{ll} \frac{4X(V_s^2\frac{\partial Q_r}{\partial V_s} - 2V_sQ_r)}{V_s^4(\sin (\theta -\delta ))^2}, \text { if } k = s\\ \frac{4X}{(V_s\sin (\theta -\delta ))^2}\frac{\partial Q_r}{\partial V_r}, \text { if } k=r. \\ 0, \text { otherwise} \end{array}\right. }\\ S^{L_{mn}}_{\delta _k}&= {\left\{ \begin{array}{ll} \frac{4X}{V_s^2}\frac{(\sin (\theta -\delta ))^2\frac{\partial Q_r}{\partial \delta _s}+2Q_r\sin (\theta -\delta )\cos (\theta -\delta )}{(\sin (\theta -\delta ))^4}, \text { if } k = s\\ \frac{4X}{V_s^2}\frac{(\sin (\theta -\delta ))^2\frac{\partial Q_r}{\partial \delta _r}-2Q_r\sin (\theta -\delta )\cos (\theta -\delta )}{(\sin (\theta -\delta ))^4}, \text { if } k=r \\ 0, \text { otherwise} \end{array}\right. } \\ S^{VQI}_{v_k}&= {\left\{ \begin{array}{ll} 4(V_s^2\frac{\partial Q_r}{\partial V_s} - 2V_sQ_r)/\left( |B|V_s^4\right) , \text { if } k = s\\ 4\frac{\partial Q_r}{\partial V_r}/(|B|V_s^2), \text { if } k=r \\ 0, \text { otherwise} \end{array}\right. } \\ S^{VQI}_{\delta _k}&= {\left\{ \begin{array}{ll} 4\frac{\partial Q_r}{\partial \delta _s}/(|B|V_s^2), \text { if } k = s\\ 4\frac{\partial Q_r}{\partial \delta _r}/(|B|V_s^2), \text { if } k=r \\ 0, \text { otherwise} \end{array}\right. }\\ S^{VSLI}_{v_k}&= {\left\{ \begin{array}{ll} \frac{4\cos \delta (Vs^2(V_r-V_r^2)-2V_s(V_sV_r-V_r^2))}{V_s^4}, \text { if } k = s\\ 4\cos \delta (V_s-2V_r)/V_s^2,\text { if } k=r \\ 0, \text { otherwise} \end{array}\right. }\\ S^{VSLI}_{\delta _k}&= {\left\{ \begin{array}{ll} -4\sin \delta (V_sV_r-V_r^2)/V_s^2, \text { if } k = s\\ 4\sin \delta (V_sV_r-V_r^2)/V_s^2, \text { if } k=r \\ 0, \text { otherwise.} \end{array}\right. } \end{aligned}$$

These linear relations are further used to model the constraints for the proposed model predictive controller.

4 Controller design

Using the relationship between frequency, voltage and power injections as presented in Sect. 3, a state-space model of a power system is derived next.

4.1 State variable representation

The voltage magnitudes at the load buses are taken as state variable vector \(\bar{x}_m\), and the output variable vector (\(\bar{y}_m\)) is taken the same as the state variable vector.

Let \(\mathcal {G}\) be the participating generators whose reactive power generations are to be controlled. \(\mathcal {L}\) be set of controllable SVCs. \(n_g'\) and \(n_d'\) be the number of elements in \(\mathcal {G}\) and \(\mathcal {L}\), respectively. The control input vector u can be formed as:

$$u = [\underbrace{ \cdots Q_{g_j} \cdots }_{(1\times n_g')}|\underbrace{ \cdots Q_{d0_j} \cdots }_{(1\times n_d')}]^T$$

where \(i\in \mathcal {L}\) and \(j \in \mathcal {G}\). Hence, the total number of control variables \(m = (n_d'+ n_g')\).

The input matrix \(B_m\) is formed as \( \left[ \bar{S}^{v}_{q_{g}}\; \bar{S}^{v}_{q_{d0}}\right] \), where \(\bar{S}^{v}_{q_{g}}\) is formed by taking the rows corresponding to the participating generators from \(S^{v}_{q_{g}}\) matrix eliminating all the columns corresponding to the generators that are not in \(\mathcal {G}\). Similarly, the matrices \(\bar{S}^{v}_{q_{d0}}\) can be formed by taking rows corresponding to the load buses of \({S}^{v}_{q_{d0}}\) and eliminating all the loads that are not in \(\mathcal {L}\). The state matrices \(A_m, C_m\) are identity matrices of dimension equal to the number of participating load buses.

4.2 Model predictive control

MPC utilizes the system state-space model to predict the optimal control inputs required to reduce the difference between predicted output and the reference [40].

4.2.1 Objective function

The objective function P1, for voltage control, has two parts. The first term attempts to minimize the deviation of load bus voltages from its nominal value and the second term regulates the size of control inputs.

$$\begin{aligned} {\texttt {P1} : }\underset{\Delta \hat{U}}{minimize} \quad \hat{Y}^{T} W\hat{Y} + \Delta \hat{U}^TR \Delta \hat{U} \end{aligned}$$
(34)

where \(\hat{Y} = [\Delta \bar{V}(k+1|k)\; \Delta \bar{V}(k+2|k) \cdots \Delta \bar{V}(k+N_p|k)]^T\) is the predicted voltage deviation at step 1 to \(N_p\) (prediction horizon), \(\Delta \hat{V}\) contains the voltages at the load buses. W is a diagonal matrix of dimension \(N_p \times N_p\), where pth diagonal element of W matrix can be assigned as:

$$\begin{aligned} w_{pp} = w_{min} + \left( w_{max} - w_{min} \right) \frac{p - 1}{N_p - 1} \end{aligned}$$
(35)

\(p = 1, 2, \ldots , N_p\). Typically, we take \(w_{max} \ge w_{min}\) to ensure larger, and hence quicker, change in control input at the early stage of corrective action. R is an \(mN_c \times mN_c\) dimensional diagonal matrix, with its diagonal element \(R_{ii}\) storing the incremental cost of rescheduling generation or SVCs at bus i, where m is the number of inputs and \(N_c\) is the control horizon.

While minimizing P1, the following set of constraints must be satisfied.

4.2.2 Limits on incremental change in input

The amount of control input change should be within physical and operational limits. C1 imposes these practical constraints on \(\Delta \hat{U}\).

\({\texttt {C1} : } \text {For } p = 1,2, \cdots ,N_c\)

$$\begin{aligned} \Delta Q_{g_i}^{min}&\le \Delta Q_{g_i}(k+p|k) \le \Delta Q_{g_i}^{max}, \forall i, i \in \mathcal {G} \end{aligned}$$
(36)
$$\begin{aligned} \Delta Q_{d0_i}^{min}&\le \Delta Q_{d0_i}(k+p|k) \le \Delta Q_{d0_i}^{max}, \forall i, i \in \mathcal {L} \end{aligned}$$
(37)

4.2.3 Limits on size of control input

Each generator has a limit on the amount of reactive power it can deliver. Also, there is an upper and lower limit of reactive power the SVCs can supply.

\({\texttt {C2}: } \text {For } p = 1,2, \cdots ,N_c\)

$$\begin{aligned} Q_{g_i}^{min}&\le Q_{g_i}(k+p|k) \le Q_{g_i}^{max}, \forall i, i \in \mathcal {G} \end{aligned}$$
(38)
$$\begin{aligned} Q_{d0_i}^{min}&\le Q_{d0_i}(k+p|k) \le Q_{d0_i}^{max}, \forall i, i \in \mathcal {L} \end{aligned}$$
(39)

4.2.4 Limits on voltage magnitude at the load buses

The load bus voltage magnitudes should be allowed to vary only within some minimum and maximum threshold values. Here, \(\mathcal {N}_{lb}\) is the set of all load buses.

$$\begin{aligned}&{\texttt {C3} : } \text {For } p = 1, \cdots ,N_c, \nonumber \\&\quad V_{i}^{min} \le V_{i}(k+p|k) \le V_{i}^{max}, \forall i, i \in \mathcal {N}_{lb} \end{aligned}$$
(40)

4.2.5 Limits on generator voltage control capability

There is always a minimum and maximum limit on generator terminal voltage control capability. In the below equation, \(\Delta V_{i}\) represents ith generator terminal voltage.

$$\begin{aligned}&{\texttt {C4} : } \text {For } p = 1, \cdots ,N_c, \nonumber \\&\quad \Delta V_{i}^{min} \le \Delta V_{i}(k+p|k) \le \Delta V_{i}^{max}, \forall i, i \in \mathcal {G} \end{aligned}$$
(41)

4.2.6 Line limit

The constraint C5 ensures that, during rescheduling, active power flowing in any line l does not exceed a specified line limit.

\({\texttt {C5} : } \forall l, l \in \mathcal {N}_{L} \text { and } \text {for } p = 1,2, \cdots ,N_c\)

$$\begin{aligned}&\sum _{j \in \mathcal {G}} {S^{p_{ik}}_{q_{g}}}_{lj} \Delta Q_{g_j}(k+N_p|k) \nonumber \\&\quad + \sum _{j \in \mathcal {L}} {S^{p_{ik}}_{q_{d0}}}_{lj} \Delta Q_{d0_j}(k+N_p|k) \le \Delta P_l \end{aligned}$$
(42)

where \(\mathcal {N}_{L}\) is the set of lines on which overloading is to be averted.

4.2.7 Limits on VSIs

The constraint C6 ensures that after control action, the VSIs are within their threshold limit.

\({\texttt {C6}: } \forall l, l \in \mathcal {N}_{lb}\)

$$\begin{aligned}&\sum _{j \in \mathcal {G}} {S^{\psi }_{q_{g}}}_{lj} \Delta Q_{g_j}(k+N_p|k) \nonumber \\&\quad + \sum _{j \in \mathcal {L}} {S^{\psi }_{q_{d0}}}_{lj} \Delta Q_{d0_j}(k+N_p|k) \le \Delta \psi ^{th} \end{aligned}$$
(43)

4.3 Implementation of MPC

The above optimization problem can be expressed in a quadratic programming form as follows:

$$\begin{aligned} \underset{\Delta \hat{U}^\star }{Minimize}\quad \hat{Y}^{T} W\hat{Y} + \Delta \hat{U}^TR \Delta \hat{U} \end{aligned}$$
(44)

Subject to:

$$\begin{aligned} \Delta u_i^{min}&\le \Delta \hat{u}_{i}(k + p|k) \le \Delta u_i^{max} \nonumber \\&\quad \forall i \in \mathcal {N}_B, p = 1,2,\cdots ,N_c; \mathcal {N}_B = \mathcal {G} \cup \mathcal {L} \end{aligned}$$
(45)
$$\begin{aligned} u_i^{min}-u_i^{0}&\le \Delta \hat{u}_{i}(k + p|k) \le u_i^{max}- u_i^{0} \nonumber \\&\quad \forall i \in \mathcal {N}_B, p = 1,2,\cdots ,N_c \end{aligned}$$
(46)
$$\begin{aligned} V_{m}^{min}&\le V_{m}^0 + \sum _{i \in \mathcal {G}} S^{v}_{q_{g_{mi}}}\Delta \hat{u}_{i}(k + p|k) \nonumber \\&\quad + \sum _{j \in \mathcal {L}} S^{v}_{q_{d0_{mj}}}\Delta \hat{u}_{j}(k + p|k) \nonumber \\&\le \Delta V_{m}^{max}, \quad \forall m \in \mathcal {N}_{lb}, p = 1,2, \cdots ,N_c\nonumber \\ \end{aligned}$$
(47)
$$\begin{aligned} \Delta V_{m}^{min}&\le \sum _{i \in \mathcal {G}} S^{v}_{q_{g_{mi}}}\Delta \hat{u}_{i}(k + p|k)\nonumber \\&\quad + \sum _{j \in \mathcal {L}} S^{v}_{q_{d0_{mj}}}\Delta \hat{u}_{j}(k + p|k)\nonumber \\&\le \Delta V_{m}^{max}, \quad \forall m \in \mathcal {G}, p = 1,2, \cdots ,N_c \end{aligned}$$
(48)
$$\begin{aligned}&\sum _{j \in \mathcal {G}} {S^{p_{ik}}_{q_{g}}}_{lj} \Delta \hat{u}_{g_j}(k+N_p|k) \nonumber \\&\quad + \sum _{j \in \mathcal {L}} {S^{p_{ik}}_{q_{d0}}}_{lj} \Delta \hat{u}_{d0_j}(k+N_p|k) \nonumber \\&\le \Delta P_l, \quad \forall l \in \mathcal {N}_L, p = 1,2, \cdots ,N_c \end{aligned}$$
(49)
$$\begin{aligned}&\sum _{j \in \mathcal {G}} {S^{\psi }_{q_{g}}}_{lj} \Delta \hat{u}_j(k+N_p|k) \nonumber \\&\quad + \sum _{j \in \mathcal {L}} {S^{\psi }_{q_{d0}}}_{lj} \Delta \hat{u}_j(k+N_p|k) \nonumber \\&\le \Delta \psi ^{th}, \quad \forall l \in \mathcal {N}_{lb}, p = 1,2, \cdots ,N_c \end{aligned}$$
(50)

The first (\(n_g' + n_d'\)) elements of \(\Delta \hat{U}^\star \) are scanned and applied as corrective control action.

4.4 Remarks

Conventionally, the terminal voltage of the generators is controlled by the Automatic Voltage Regulator (AVR), which primarily offers local control. The proposed strategy obtains a global corrective control scheme that determines the desired settings of the generators’ reactive power outputs and SVC outputs by considering the entire system equations (11)–(12). The desired reactive power supply from a generator can be extracted either by setting \(Q_{g_i}\) directly or by fixing the reference voltage (\(V_{ref}\)) of the AVR equal to the voltage magnitude obtained from the solution of the above optimization problem.

5 Case studies

Several case studies are carried out on three test systems, IEEE 9-bus system, IEEE New England 39-bus system and IEEE 118-bus to validate the effectiveness of the proposed approach.

5.1 IEEE 9-bus system

The IEEE 9-bus system contains three load buses {5,6,8} and three generator buses {1,2,3}. It is assumed that SVC is available in all load buses, and all the generators have AVR, which regulates the terminal voltage and adjusts the reactive power to the magnitude requested by the controller.

5.1.1 Selection of weak bus

The weak bus is identified by gradually increasing the active power demand and observing their voltages simultaneously. The load bus, where the voltage collapses first, is identified as the weakest bus [3]. It can be observed from Fig. 2 that at 2.6 times of base-case loading (\(P_{d_0}\)), the voltage of bus-5 collapses first. Different stability indices at this loading condition, presented in Tables 1 and 2, show that the VSIs associated with bus-5 reach near the threshold values when the load increased to 2.6 times, indicating it to be the weak bus.

Fig. 2
figure 2

Voltage stability margin for IEEE 9-bus system

Table 1 Bus VSIs near critical loading point
Table 2 Line VSIs near critical loading point

5.1.2 Voltage control in the presence of different types of load

In this case study, the performance of the proposed controller is evaluated and compared in the presence of (1) Voltage and Frequency Dependent load (VFD load), (2) Frequency-Dependent, Voltage-Independent load (FDVI load) (3) Voltage-Dependent, Frequency-Independent load (VDFI load), and (4) Constant Power load (CP load). The parameters used to model above four types of load are listed in Table 3.

Table 3 Load and generator parameters

The proposed MPC-based controller operates when any one of the mentioned VSIs crosses a predefined allowable limit, indicating that the system is moving toward voltage instability. In all the case studies presented here, the allowable limit of VSIs is taken as 0.5. If any VSI exceeds 0.5, the voltage controller is actuated.

To simulate a stressed condition, all loads are increased up to 2.2\(P_{d_0}\). It may be observed from Table 4 that for all types of loads, the VSIs exceed the predefined threshold limit with this loading condition. Furthermore, the voltage magnitude at the weak bus comes below a safe margin.

Table 4 Initial VSIs and weak bus voltage for different types of load

The MPC-based voltage controller is then employed to calculate the optimal values for SVCs and generator reactive power required to improve the voltage stability of the system. The control action is completed in a fixed number of steps by setting \(N_p, N_c=5\). In each step of the corrective action, the control inputs are allowed to vary within \(\pm 5\%\) of their nominal value. The maximum size of SVC connected at each load bus is \(\pm 1.50\) pu. The voltages at the load buses are kept within 0.90-1.05 pu. The terminal voltage of generators is allowed to vary within \(\pm 5\%\) of their nominal value. The maximum active power transfer capacity of each transmission line is capped at 200% of the active power flowing through the lines in base-case operating conditions. In all the case studies demonstrated it is assumed that \(w_{min} = 1\) and \(w_{max} = 10^5\).

The optimal values of the incremental control inputs, along with the VSIs and the weak bus voltage, in each step of control action for all the load types are presented in Tables 5, 6, 7 and 8. It may be observed that with each step of control action, all the VSIs move toward 0. Also, the voltage of the weak bus gradually improves, suggesting an improvement in voltage stability. Figure 3a–d shows that with each step of control action knee point of the PV curve shifts rightward. This indicates that the proposed controller successfully enhances the steady-state voltage stability of the system while ensuring that all the physical and security constraints are met.

Table 5 Optimal change \((\times 10^{-3})\) in the control input in pu and VSIs in case of VFD load
Table 6 Optimal change \((\times 10^{-3})\) in the control input in pu and VSIs in case of FDVI load
Table 7 Optimal change \((\times 10^{-3})\) in the control input in pu and VSIs in case of VDFI load
Table 8 Optimal change \((\times 10^{-3})\) in the control input in pu and VSIs in case of CP load
Fig. 3
figure 3

VSM increase with each control step in the presence of different types of load

Table 4 shows that with VFD load, the VSIs get the lowest magnitude, and the weak bus voltage magnitude is the highest, followed by VDFI, FDVI, and CP load. The increase in VSM after the final control step, shown in Fig. 3a–d, is also the maximum for the VFD load and least for the CP load because of the following reason. As the nominal load (\(P_{d0_i}\)) increases, the system voltages and the frequency drop. For VFD loads, a drop in voltage magnitude and frequency result in a larger reduction in active power demand (\(P_{d_i}\)) than with VDFI or FDVI loads, which in turn improves stability and reduces the values of VSIs. Whereas since the CP loads are independent of the voltage and frequency changes, no automatic reduction of demand results during the increase in nominal load. Also, it may be noted that the absence of voltage dependency in loads hampers the proposed controller performance more than the absence of frequency dependency.

In the above example, we have used the Brute-Force technique to select the size of the control and prediction horizon. A lesser value of \(N_p\) and \(N_c\) indicate quicker control action. However, achieving the desired output in a less number of steps requires a larger incremental change in control input. Therefore, it may sometimes violate the constraints C1-C6, and the optimization problem stated in Sect. 4.3 may become infeasible. On the contrary, a large value of \(N_p\) and \(N_c\) gives a smoother control at the expense of a larger correction time. We initially chose a small value of \(N_p\) and \(N_c\) and solved the optimization problem. In case the optimization problem becomes infeasible, the value of the control horizon can be increased by one, and the problem can be solved again.

5.1.3 Effect on HOPF bifurcation

Studies have proven that along with the Saddle Node Bifurcation (SNB) which is a static bifurcation, dynamic bifurcation (primarily HOPF bifurcation) may also lead to voltage instability [2, 4]. HOPF bifurcation occurs before the SNB, and is a good indicator that system is approaching a voltage collapse. HOPF bifurcation can be calculated by incrementally increasing the load while observing the eigen values of the reduced Jacobian matrix of power system. The reduced Jacobian matrix in turn is calculated by linearizing the power system’s Differential Algebraic Equations (DAE) [41]. The loading condition at which a pair of eigen values cross the imaginary axis from left-half plane to right is considered as the HOPF bifurcation point.

In this subsection, the system is assumed to be initially operating at a stressed loading condition (2.2\(P_{d0}\) loading). Figure 4 represents the trajectories of both the HOPF bifurcation point and VSM with step-wise voltage control action. We may observe that following each step of optimal control both the HOPF bifurcation point and VSM keeps shifting rightwards, indicating an improvement in voltage stability. Fig. 5 shows the gradual shift in eigen value associated with Generator 3 toward the left of \(j \omega \) axis with the application of each step of control action. This proves that the proposed voltage controller not only improves the VSM but also increases the load at which HOPF bifurcation occurs.

Fig. 4
figure 4

Trajectories of HOPF bifurcation point and VSM

Fig. 5
figure 5

Eigen value trajectory

5.2 IEEE 39-bus system

In this section, the performance of the proposed controller is demonstrated on the IEEE 39-bus New England test system. Similar parameters are taken for the controller design as in the 9-bus system case study. Unlike the 9-bus system, in this case, we assumed only a set of load buses \(\mathcal {L}\) = {12,15,16,18,21,23-27} have SVCs, and the reactive power is adjustable for generators at bus \(\mathcal {G}\) = {33-38} only. These participating buses are selected using the sensitivity matrix \(S_u^{\psi }\). Buses with larger \(S_u^{\psi }\) values are chosen for control actions.

The weak bus was identified using the continuation power flow technique. Figure 6 shows that the voltage collapse occurs first at bus-12 at approximately \(2.2P_{d_0}\) loading, indicating bus-12 to be the weak bus and VSM as \(2.2P_{d_0}\).

Fig. 6
figure 6

Voltage stability margin for IEEE 39-bus system

With these, the performance of the proposed controller to improve the stability margin of the system is tested for three different cases: voltage control from a (1) Case A: stressed loading condition, (2) Case B: stressed loading condition along with large disturbance (generator and line outage), and (3) Case C: stressed loading condition along with a random intermediate small disturbance (load change). For all the cases, change in several VSIs with the application of control actions is observed.

Fig. 7
figure 7

Voltage control for IEEE 39-bus system (Case A)

5.2.1 Voltage control from a stressed loading condition

To simulate a stressed condition, all loads are increased to 1.27\(P_{d_0}\) pu. The controller, on sensing that VSIs have crossed their threshold, takes optimal control actions to restore voltage stability in the system.

The optimal change in per-unit reactive power generation settings and per-unit reactive power demand with the sequential control input change at some of the participating generator and load buses are shown in Fig. 7a, and b, respectively, and the resulting voltage profile of some network buses and the VSIs are shown in Fig. 7c, and d, respectively. It may be observed that the voltage profile of all buses is improved in a step-wise manner; also, all VSIs reduce sequentially and finally settle to a value that is within a pre-defined threshold.

5.2.2 Voltage control from a stressed loading condition in the presence of large disturbances

In this section, two different scenarios are generated to test the performance of the proposed controller in the presence of large disturbances. In the first case (referred to as Case B1), line 2-3 is disconnected from the system while loading increased to \(1.27P_{d_0}\). In the second example (Case B2), the generator at bus-34 is removed after increasing the load to \(1.27P_{d_0}\).

The change in VSM due to contingency is shown in Fig. 8a. The line outage results in a decrease in VSM from 2.2 to 1.9\(P_{d_0}\). The proposed controller is invoked to find the optimal settings of reactive power generation and SVC outputs. Figure 8b shows that even after a line outage, the controller actions bring back the system voltages and VSIs within their safe operational limits.

Fig. 8
figure 8

Performance of the controller during line outage (Case B1)

Fig. 9
figure 9

Performance of the controller during generator outage (Case B2)

Case B2 demonstrates the controller performance when there is a generator outage along with a load change. On outage of a generator, the remaining generators increase their reactive power outputs to match the load demand. However, the reactive power output of a generator is limited by Over Excitation Limiters (OELs), thus creating a shortage of reactive power in the system, resulting in a voltage drop or voltage instability. The resulting change in VSM due to the outage of the generator at bus-34 is shown in Fig. 9a, where there is a sharper decrease in VSM from 2.20 to 1.78\(P_{d_0}\) (23.6% decrease) as compared to a 14% decrease in case of a line outage (Case B1). This situation demands stricter control actions to avoid voltage instability. The change in VSIs due to the change in control input is depicted in Fig. 9b. Similar to Case B1, all the VSIs reach the desired range after incorporating the corrective actions.

5.2.3 Voltage control in the presence of small disturbances

In Case C, the loads in the system are initially increased to \(1.25P_{d0}\), and the proposed voltage controller is invoked when the FVSI crosses a pre-defined threshold. To examine the robustness of the proposed controller, the active power demand of the system is increased by 5% in the middle of the control action (\(k = 2\)). Although the voltage magnitude of bus 12 increased after the implementation of the first step of the control action, due to the intermediate increase in load, the bus voltages reduced, and the FVSI increased again at this moment (refer to Fig. 10a and b). As the proposed model predictive controller rebuilds the state-space model of the power system at the beginning of each step, the effect of any intermediate disturbance in the network is automatically included while formulating the sensitivity matrices described in Sect. 3. Figure 10a and b shows that voltage magnitudes and the FVSI finally settle to the desired ranges, as defined by the constraints C3 and C6, irrespective of intermediate disturbances. It may be clarified here that a large intermediate disturbance (contingency or load change) may demand longer corrective action to achieve the desired response. This can be accomplished by increasing the control horizon as per need.

Fig. 10
figure 10

Performance of the controller in the presence of intermediate change in load (Case C)

5.2.4 Voltage control in absence of sufficient reactive power support

In this section, the controller’s performance is tested under three different scenarios:

  • Case D1: All loads increased to \(1.5 P_{d0}\). Reactive power output supplied by any generator or SVCs does not saturate.

  • Case D2: All loads increased to \(1.5 P_{d0}\) and reactive power output from a generator is saturated, however reactive power output supplied by any SVC does not saturate.

  • Case D3: All loads increased to \(1.5 P_{d0}\) and Reactive power output from a generator as well as a SVC is saturated.

In all the above three cases, the reactive power limits of generators and SVCs are set by including constraint C2 in our optimization problem.

The simulation of Case D1 is similar as presented in earlier sections, and the results are shown in Fig. 11. The variations in reactive power outputs of generator at bus 38 and SVC at bus 15 are shown in Fig. 11a and b, respectively. It may be observed that the reactive power outputs of neither the generator nor the SVC is saturated. The resulting voltage profile of a few buses are shown in Fig. 11c.

Fig. 11
figure 11

Voltage control for IEEE 39-bus system (Case D1)

In Case D2, along with the load increase it is also assumed that the reactive power output of the generator at bus 38 is saturated as shown in 12a. However, it is assumed that reactive power supplied by the SVCs does not saturate. This case is implemented by tightening the upper reactive power limit of Generator at bus 38 from 1.8 pu to 1.75 pu, while keeping the reactive power limits of SVC similar as Case 1. Under this scenario, the shortfall in system reactive power requirement is fulfilled by the remaining generators and SVCs as shown in Fig. 12.

Fig. 12
figure 12

Voltage control for IEEE 39-bus system (Case D2)

Fig. 13
figure 13

Voltage control for IEEE 39-bus system (Case D3)

Another scenario is explored in Case D3 where, along with the load increase and reactive power saturation of the generator at Bus 38, it is assumed that the reactive power output of the SVC installed at bus 15 also saturates, as shown in Figs. 13a and b, respectively. This further widens the gap between reactive power demand and production. In this case, we tighten the reactive power limits of both the generator (Bus-38) and SVC (Bus-15). The remaining generators and SVCs reactive power output is insufficient in filling this gap. Thereby, as a final measure, the proposed algorithm recommends load shedding at some load buses (buses-6,9,10) to reduce the demand of reactive power as shown in Fig. 13c.

In the above three cases, constraint C2 restricts the control input to change beyond the given limit and hence load-shedding is employed whenever needed. These case studies demonstrates the proposed controller’s robustness even in the absence of sufficient reactive power support.

5.2.5 Voltage control considering dynamics

In the previous section, we ignored the dynamics of the power systems. Practically, any change in control input is followed by some oscillations in voltage phasors before they settle to new values. In this section, we demonstrate a case study in which we create an initial disturbance at \(t=0s\), by changing the loading condition to 1.3\(P_{d0}\). As a result, the VSIs cross their threshold and control actions are initiated. The voltage magnitudes of a few load buses are shown in Fig. 14. The proposed MPC-based controller determines the optimal change in control input, assuming a linear state-space model as described in Sect. 4. The prediction and control horizons of the controller are selected as \(N_p,N_c=10\). The controllers reschedule the SVCs and generation settings in steps monitoring the oscillations in voltages. A new control action is executed only when the transients in voltage have settled down [42]. The dynamics of the power system are simulated using the Simultaneous-Implicit method. In each time step, differential equations of the synchronous machines are integrated numerically and then active and reactive power balance equations at all buses are solved simultaneously using Newton’s method [41]. While simulating the dynamics, the loads’ voltage and frequency dependencies are considered explicitly. It may be observed from Fig. 14, at the end of final control step (\(k=10\)), all load bus voltages are within their threshold limits.

5.3 IEEE 118-bus system

This section demonstrates the performance of proposed controller on the 118-bus test system. Figure 15 shows that the voltage collapse occurs first at bus-44 at 3.27\(P_{d0}\) loading, indicating that bus-44 is the weakest bus and VSM is 3.27\(P_{d0}\). Here, the controller’s performance is evaluated in presence of several line outages along with a stressed loading condition. Lines 5-11, 18-19, 37-40, 56-58 are disconnected from the system and all loads are increased to 2.1 times of base case values. As a result, there is a 12% decrease in VSM which is shown in Fig. 16. The stability indices cross their threshold limit thus control actions are initiated. Figure 17 shows the step-wise corrective actions performed by the proposed controller to enhance the system’s voltage stability. It is to be noted that here also, only the buses with larger sensitivity values are chosen for providing reactive power support.

5.4 Comparison with existing methods in literature

To demonstrate the effectiveness of the proposed control technique, its performance is compared against a preventive control technique proposed in [15], and a Fuzzy logic controller reported [22]. Here, only the control philosophies of the above-mentioned works of literature are used while comparison. To maintain uniformity in comparison, similar control variables and load types are assumed for each of the controllers. The performances of the control mechanisms are compared w.r.t. the post-control VSIs magnitudes and the weak bus voltage for the IEEE 39-bus system. To initiate a stressed condition, all loads are increased by 1.27 times. The initial values of VSIs and the weak bus voltage magnitude are shown in Table 9. Table 10 shows the post-control indices values for each of the control techniques considering different types of load. It may be observed that compared to the other two control techniques, on implementing the proposed MPC-based control technique, the \(V_{min}\) is the highest and VSIs have the lowest magnitudes for each load type. The proposed technique achieves a superior result as it explicitly builds the state-space model of the entire power system in each stage of control actions, and incorporates the change in operating conditions due to the change in control inputs during corrective action.

5.5 Computation time

All the simulations were performed on a PC with an Intel i3 processor, 4 GB RAM, and 64-bit operation system and the control technique was implemented in MATLAB R2017b. The computing time required for a single step of control action along with the time for complete control action (5 steps) is calculated for each of the test systems. After conducting the experiment 50 times, the best, average, and worst case computing time was noted and is shown in Table 11. It may be observed that the mentioned computational time makes the control technique suitable for real-time applications. Also, the computational time depends upon the PC configurations and thus can be improved if a PC with a higher configuration is adopted.

Fig. 14
figure 14

Dynamic voltage control in IEEE 39-bus system

Fig. 15
figure 15

Voltage stability margin for IEEE 118-bus system

6 Scope and limitations

This study aims to develop an MPC-based voltage controller which ensures voltage stability in a power system by optimally scheduling the reactive power output of those generators and SVCs which are most sensitive to voltage and frequency variation. Various operational and physical constraints are added while solving the controller’s optimization problem. The controller’s performance is also evaluated for different types of loads and contingencies.

Fig. 16
figure 16

Voltage Stability Margin for 118-bus system after line outage

Fig. 17
figure 17

Voltage control for IEEE 118-bus system

For larger power systems, the size of state-space model and the number of constraints to be included also increases. This leads to an increased computational complexity while evaluating the optimal control inputs. Addressing this challenge may necessitate the allocation of additional computational resources, potentially incurring higher costs. Also, the integration of renewable energy to the existing power system may introduce uncertainty which may lead to voltage instability. This impact of RES integration has not been explored in this research work and can be considered as a future direction of this research.

Table 9 Weak bus voltage (in pu) and stability indices before incorporating control action
Table 10 Comparison of weak bus voltage (in pu) and stability indices obtained after incorporating different types of control actions

7 Conclusions

Table 11 Computational time for the proposed control technique (50 trials)

In this paper, an MPC-based voltage controller is proposed, which, by taking optimal control actions, ensures that the voltage stability of the system is maintained at all times. The generator’s reactive power output and SVC are assumed controllable. A sensitivity analysis is performed to establish linear relation between the voltage phasors and control inputs, and from that, a state-space model for the controller is derived. The optimal sequence of control input is determined by solving a quadratic optimization problem. Some commonly used VSIs are used to evaluate the system voltage stability. The control actions are taken only when any of the VSIs exceed its threshold; linear relation between VSIs and control inputs is derived, which helps to model the VSIs as constraints of the optimization problem. The controller reschedules the generator’s reactive power and calculates the optimal SVC output required to improve the system voltage profile and restore the VSIs within a predefined threshold limit. Several case studies are performed on different test systems to validate the proposed approach. The performance of the proposed voltage controller is tested in the presence of different types of loads and contingencies. The performance is found to be the best when there is voltage and frequency dependency in the load. The VSI magnitudes and the VSM, before and after the control actions, are compared, and it suggests that the proposed controller is successful in improving the system voltage stability in each of the mentioned case studies.