## 3 Controller Design and Genetic Algorithm Optimization Approach
### PI Control Based on Pole Placement Method  
PI control is a classical control method that adjusts the controller output by comparing the error between the actual output and the desired output. In this article, a pole-placement-based PI control method is employed, which achieves control objectives by placing the poles at desired locations in the system. Specifically, based on the system model and  
Figure 1: The topology structure of the DAB converter.  
desired performance requirements, the required pole positions are calculated and applied to the PI controller.  
According to Equation (5), the small-signal model of the DAB can be expressed as:  
\[\frac{\mathrm{d}\tilde{\sigma}_{\mathrm{o}}}{\mathrm{d}t}=-\frac{1}{R_{\mathrm{ o}}C_{\mathrm{o}}}\tilde{\sigma}_{\mathrm{o}}+\frac{N\overline{V}_{\mathrm{i}}(1-2 \overline{D})}{2f_{\mathrm{s}}LC_{\mathrm{o}}}\tilde{d}+\frac{N\overline{D}(1 -\overline{D})}{2f_{\mathrm{s}}LC_{\mathrm{o}}}\tilde{\sigma}_{\mathrm{i}} \tag{7}\]  
Taking \(\tilde{\sigma}_{\mathrm{o}}\) as the first state variable and \(\int_{0}^{t}(\tilde{\sigma}_{\mathrm{o}}-\tilde{\sigma}_{\mathrm{o}}^{*})dt\) as the second state variable, where \(\tilde{\sigma}_{\mathrm{o}}^{*}\) represents the desired output voltage value, the state variables can be defined as:  
\[X(t)=\begin{bmatrix}X_{1}(t)\\ X_{2}(t)\end{bmatrix}=\begin{bmatrix}\tilde{\sigma}_{\mathrm{o}}\\ \int_{0}^{t}(\tilde{\sigma}_{\mathrm{o}}-\tilde{\sigma}_{\mathrm{o}}^{*})dt \end{bmatrix} \tag{8}\]  
The state equation is given by:  
\[\dot{X}(t)=\begin{bmatrix}-\frac{1}{R_{\mathrm{o}}C_{\mathrm{o}}}&0\\ 1&0\end{bmatrix}X(t)+\begin{bmatrix}\frac{N\overline{V}_{\mathrm{i}}(1-2 \overline{D})}{2f_{\mathrm{s}}LC_{\mathrm{o}}}\\ 0\end{bmatrix}\tilde{d}+\begin{bmatrix}\frac{N\overline{D}(1-\overline{D})}{2f _{\mathrm{s}}LC_{\mathrm{o}}}\\ 0\end{bmatrix}\tilde{\sigma}_{\mathrm{i}}+\begin{bmatrix}0\\ -1\end{bmatrix}\tilde{\sigma}_{\mathrm{o}}^{*} \tag{9}\]  
Ignoring the terms \(\tilde{\sigma}_{\mathrm{i}}\) and \(\tilde{\sigma}_{\mathrm{o}}^{*}\), the above equation can be expressed as an open-loop state-space representation:  
\[\begin{cases}\dot{X}(t)=AX(t)+BU(t)\\ y(t)=CX(t)+DU(t)\end{cases} \tag{10}\]  
where  
\[A=\begin{bmatrix}-\frac{1}{R_{\mathrm{o}}C_{\mathrm{o}}}&0\\ 1&0\end{bmatrix},B=\begin{bmatrix}\frac{N\overline{V}_{\mathrm{i}}(1-2 \overline{D})}{2f_{\mathrm{s}}LC_{\mathrm{o}}}\\ 0\end{bmatrix},C=\begin{bmatrix}1&0\end{bmatrix},D=0\]  
As shown in Figure 2, let the state feedback control be \(\tilde{d}=-KX(t)\), where \(K=\begin{bmatrix}k_{\mathrm{P}}&k_{\mathrm{i}}\end{bmatrix}\) and \(B_{1}\) is the first component of input matrix \(B\). Determine \(K\) such that the eigenvalues (poles) of the matrix \(A-BK\) are placed at specified locations, which are also the roots of the characteristic polynomial of the matrix \(A-BK\):  
\[\det(\lambda I-(A-BK))=\lambda^{2}+\left(\frac{1}{R_{\mathrm{o}}C_{\mathrm{o}} }+B_{1}k_{\mathrm{P}}\right)\lambda+B_{1}k_{\mathrm{i}}=\lambda^{2}+2\xi\omega _{\mathrm{n}}\lambda+\omega_{\mathrm{n}}^{2} \tag{11}\]  
where \(\xi\) is the damping coefficient of the second-order system, and \(\omega_{\mathrm{n}}\) is the undamped natural frequency of the second-order system. \(\xi\) and \(\omega_{\mathrm{n}}\) can be calculated based on the desired overshoot and peak time of the system using the following formulas:  
\[\begin{cases}\delta=\exp\left(-\frac{\pi\xi}{\sqrt{1-\xi^{2}}}\right)\\ t_{\mathrm{P}}=\frac{\pi}{\omega_{\mathrm{n}}\sqrt{1-\xi^{2}}}\end{cases} \tag{12}\]  
where \(\delta\) represents the overshoot of the second-order system, and \(t_{\mathrm{P}}\) represents the peak time of the second-order system. By solving the characteristic polynomial and placing the poles at the locations determined by the desired overshoot and peak time of the second-order system, the coefficients of the feedback control can be obtained as:  
\[\begin{cases}k_{\mathrm{P}}=\frac{2\xi\omega_{\mathrm{n}}-\frac{1}{R_{\mathrm{ o}}C_{\mathrm{o}}}}{B_{1}}\\ k_{\mathrm{i}}=\frac{\omega_{\mathrm{n}}^{2}}{B_{1}}\end{cases} \tag{13}\]