Current Control#

Synchronous-frame two-degrees-of-freedom (2DOF) proportional-integral (PI) current control can be used in grid converters [1]. This control structure allows to compensate for the cross-coupling originating from rotating coordinates as well as to improve disturbance rejection. A 2DOF PI current controller is available in the motulator.grid.control.CurrentController class, whose base class is motulator.common.control.ComplexPIController.

Note

This controller design assumes an L filter, but it can also be applied with LCL filters (see the 10-kVA converter, LCL filter example). If LCL-resonance damping and very low sampling frequencies are needed, the controller could be designed directly in the discrete-time domain taking the LCL filter dynamics into account [2].

2DOF PI Controller#

The design of synchronous-frame 2DOF PI current control is considered in the continuous-time domain, even though the actual implementation is discrete. Two typical gain selections for this control type are known as the internal-model-control (IMC) design [3] and the complex-vector design [4]. Here, only the complex-vector design is considered, see Complex-Vector 2DOF PI Controller, which is compatible with the motulator.common.control.ComplexPIController base class. The controller can be expressed in a state-space form as

(1)#\[\begin{split}\frac{\mathrm{d} \boldsymbol{u}_\mathrm{i}}{\mathrm{d} t} &= (\boldsymbol{k}_\mathrm{i} + \mathrm{j}\omega_\mathrm{c}\boldsymbol{k}_\mathrm{t} )\left(\boldsymbol{i}_\mathrm{c,ref} - \boldsymbol{i}_\mathrm{c}\right) \\ \boldsymbol{u}_\mathrm{c,ref} &= \boldsymbol{k}_\mathrm{t}\boldsymbol{i}_\mathrm{c,ref} - \boldsymbol{k}_\mathrm{p}\boldsymbol{i}_\mathrm{c} + \boldsymbol{u}_\mathrm{i}\end{split}\]

where \(\boldsymbol{u}_\mathrm{c,ref}\) is the output of the controller, i.e., the converter voltage reference, \(\boldsymbol{i}_\mathrm{c}\) is the measured converter current, \(\boldsymbol{i}_\mathrm{c,ref}\) is the converter current reference, \(\boldsymbol{u}_\mathrm{i}\) is the the integral state, and \(\omega_\mathrm{c}\) is the angular speed of the coordinate system. Furthermore, \(\boldsymbol{k}_\mathrm{t}\) is the reference-feedforward gain, \(\boldsymbol{k}_\mathrm{p}\) is the proportional gain, and \(\boldsymbol{k}_\mathrm{i}\) is the integral gain.

Closed-Loop System#

Consider the grid model in synchronous coordinates

(2)#\[L\frac{\mathrm{d}\boldsymbol{i}_\mathrm{c}}{\mathrm{d} t} = \boldsymbol{u}_\mathrm{c} - \boldsymbol{u}_\mathrm{g} - \mathrm{j} \omega_\mathrm{c} L \boldsymbol{i}_\mathrm{c}\]

where \(\boldsymbol{u}_\mathrm{c}\) is the converter output voltage, \(\boldsymbol{u}_\mathrm{g}\) is the grid (or PCC) voltage, and \(L\) is the inductance. Ideal converter voltage production is assumed, \(\boldsymbol{u}_\mathrm{c} = \boldsymbol{u}_\mathrm{c,ref}\). Using (1) and (2), the closed-loop system in the Laplace domain becomes

\[\boldsymbol{i}_\mathrm{c} = \boldsymbol{G}_\mathrm{c}(s)\boldsymbol{i}_\mathrm{c,ref} - \boldsymbol{Y}_\mathrm{c}(s)\boldsymbol{u}_\mathrm{g}\]

The disturbance rejection depends on the closed-loop admittance

(3)#\[\boldsymbol{Y}_\mathrm{c}(s) = \frac{s}{L s^2 + (\boldsymbol{k}_\mathrm{p} + \mathrm{j}\omega_\mathrm{c} L) s + \boldsymbol{k}_\mathrm{i} + \mathrm{j}\omega_\mathrm{c} \boldsymbol{k}_\mathrm{t}}\]

The closed-loop poles can be arbitrarily placed by means of the gains. The reference-tracking transfer function is

(4)#\[\boldsymbol{G}_\mathrm{c}(s) = \frac{(s + \mathrm{j}\omega_\mathrm{c}) \boldsymbol{k}_\mathrm{t} + \boldsymbol{k}_\mathrm{i} }{L s^2 + (\boldsymbol{k}_\mathrm{p} + \mathrm{j}\omega_\mathrm{c} L) s + \boldsymbol{k}_\mathrm{i} + \mathrm{j}\omega_\mathrm{c} \boldsymbol{k}_\mathrm{t}}\]

whose zero can be placed by means of the reference-feedforward gain \(\boldsymbol{k}_\mathrm{t}\).

Gain Selection#

Consider the gains

\[\boldsymbol{k}_\mathrm{p} = 2\alpha_\mathrm{c} \hat L \qquad\qquad \boldsymbol{k}_\mathrm{i} = \alpha_\mathrm{c}^2\hat L \qquad \qquad \boldsymbol{k}_\mathrm{t} = \alpha_\mathrm{c} \hat L\]

where \(\hat L\) is the inductance estimate. Assuming accurate parameter estimates, the closed-loop transfer functions (3) and (4) reduce to

\[\boldsymbol{Y}_\mathrm{c}(s) = \frac{s}{L (s + \alpha_\mathrm{c})(s + \alpha_\mathrm{c} + \mathrm{j}\omega_\mathrm{c})} \qquad\qquad \boldsymbol{G}_\mathrm{c}(s) = \frac{\alpha_\mathrm{c}}{s + \alpha_\mathrm{c}}\]

It can be seen that this design results in the first-order reference-tracking dynamics. Furthermore, one pole is placed at the real axis at \(s=-\alpha_\mathrm{c}\) and another pole at \(s= -\alpha_\mathrm{c} - \mathrm{j}\omega_\mathrm{c}\). This gain selection is used in the motulator.grid.control.CurrentController class.

The converter output voltage is limited in practice due to the limited DC-bus voltage of the converter. Consequently, the realized (limited) voltage reference is

\[\bar{\boldsymbol{u}}_\mathrm{c,ref} = \mathrm{sat}(\boldsymbol{u}_\mathrm{c,ref})\]

where \(\mathrm{sat}(\cdot)\) is the saturation function. The limited voltage can be obtained from a pulse-width modulation (PWM) algorithm (see the motulator.common.control.PWM class). The anti-windup of the integrator is included in the implementation of the motulator.common.control.ComplexPIController base class.

References