# Decentralized Robust Control of a Network of Inverter-Based Distributed Generation Systems
## 3 Design of Robust Controllers
### Sequential Design of Decentralized Controllers Using the \(\mu\)-Synthesis Technique  
The block diagram of inverter \(\#i\) is demonstrated in Figure 3 based on the system dynamical equations in (3) and (4) and the uncertainty and performance equations in (16)-(19). The relationships between the inputs and outputs of the \(\delta\) parameters (\(\delta_{L_{i}}\), \(\delta_{C_{i}}\), \(\delta_{u_{i}}\), and \(\delta_{e_{i}}\)) are represented as follows:  
\[I_{i}=\left[ \begin{array}{c}p_{L_{i}}\\ p_{C_{i}}\\ i_{load_{i}}\\ v_{ref_{i}}\end{array} \right]=\underbrace{\left[ \begin{array}{cccc}\delta _{L_{i}}&0&0&0\\ 0&\delta_{C_{i}}&0&0\\ 0&0&\delta_{u_{i}}&0\\ 0&0&0&\delta_{e_{i}}\end{array} \right]}_{\Delta_{i}}\underbrace{\left[ \begin{array}{c}q_{L_{i}}\\ q_{C_{i}}\\ u_{i}\\ e_{i}\end{array} \right]}_{O_{i}}=\Delta_{i}O_{i} \tag{20}\]  
where all the variables are indicated in Figure 3.  
For a subnetwork of IBDGs including \(m\) inverters, the extended inverter block diagrams in Figure 3 are concatenated to form the overall subnetwork block diagram in the form of \(\Delta/G/K\) (uncertainty/nominal system/controller) illustrated in Figure 4c, with the \(\Delta_{i}\)s defined in Equation (20). The decentralized robust controllers \(C_{i}\) (\(i=1,...,m\)) are designed based on the robust control condition, as follows [36]:  
\[ \begin{split}&\mu_{\Delta}(\mathcal{F}_{L}(G(s),K(s)))<1\\ & K(s)\stackrel{{\Delta}}{{=}}diag(K_{1}(s),C_{2}(s ),...,K_{m}(s))\end{split}  \tag{21}\]  
where \(F_{L}(.,. )\) represents the lower LFT of its arguments and \"\(\mu\)\" denotes the \(\mu\) norm [37]. The proposed sequential design procedure of decentralized robust controllers for a subnetwork of \(m\) inverters includes the following steps:  
* **Step 1. ** While controllers \(K_{2}\),..., \(K_{m}\), and uncertainty matrices \(\Delta_{2}\),..., \(\Delta_{m}\) are left open (Figure 4a), controller \(K_{1}\) is designed for system \(G\) and uncertainty matrix \(\Delta_{1}\) using the \(D\)-\(K\) iteration algorithm [36; 38]. Then, controller \(K_{1}\) is placed in the loop with system \(G\) to form the closed-loop system \(G_{1}\). * **Step 2. ** While controllers \(K_{3}\),..., \(K_{m}\), and uncertainty matrices \(\Delta_{3}\),..., \(\Delta_{m}\) are left open (Figure 4b), controller \(K_{2}\) is designed for system \(G_{1}\) and uncertainty matrices \(\Delta_{1}\) and \(\Delta_{2}\) using the \(D\)-\(K\) iteration algorithm. Then, controller \(K_{2}\) is placed in the loop with system \(G_{1}\) to form the closed-loop system \(G_{2}\). \(\vdots\)
* **Step m.** Controller \(K_{m}\) is designed for system \(G_{m-1}\) and the uncertainty matrices \(\Delta_{1}\),..., \(\Delta_{m}\) using the \(D\)-\(K\) iteration algorithm. Then, controller \(K_{m}\) is placed in the loop with system \(G_{m-1}\) to form the overall closed-loop system \(G_{m}\), which is simulated. The \(D\)-\(K\) iteration algorithm is illustrated in Algorithm 1 and implemented in the MATLAB environment using the command \"dkit\". In this algorithm, \(D_{l}(s)\) and \(D_{r}(s)\) respectively represent the left and right scaling matrices, defined as follows:  
\[D_{l}(s)=D_{r}(s)=diag(d_{1}(s),...,d_{4}(s)) \tag{22}\]  
where \(d_{1}(s),...,d_{4}(s)\) respectively denote the scaling functions corresponding to the four uncertainty parameters \(\delta_{L_{l}}\), \(\delta_{C_{i}}\),\(\delta_{u_{i}}\), and \(\delta_{\ell_{i}}\) in (20). The matrices \(D_{l}(s)\) and \(D_{r}(s)\) are employed to calculate an upper bound for \(\mu_{\Delta}(\mathcal{F}_{L}(G(s),K(s)))\) in (21). Interested readers are referred to [36; 38], which elucidate more details about this algorithm. Figure 4: The sequential design of the decentralized controllers: (**a**) the first generation system loop while the other loops are left open; (**b**) the second generation system loop while the first loop is designed and in place and the other loops are left open; (**c**) the \(n^{th}\) generation system loop while the previous loops are designed and in place.