Speed Control#
A speed controller is implemented in the motulator.drive.control.SpeedController
class, whose base class is motulator.common.control.PIController
. In the following, the tuning of the speed controller is discussed. The presented approach can be extended to many other control tasks as well.
2DOF PI Controller#
Even if controllers operate in the discrete-time domain, they are often designed and analyzed in the continuous-time domain. The state-space form of a simple 2DOF PI speed controller is given by [1]
where \(\omega_\mathrm{M}\) is the measured (or estimated) mechanical angular speed of the rotor, \(\omega_\mathrm{M,ref}\) is the reference angular speed, and \(\tau_\mathrm{i}\) is the the integral state. Furthermore, \(k_\mathrm{t}\) is the reference feedforward gain, \(k_\mathrm{p}\) is the proportional gain, and \(k_\mathrm{i}\) is the integral gain. Setting \(k_\mathrm{t} = k_\mathrm{p}\) results in the standard PI controller. This 2DOF PI controller can also be understood as a state feedback controller with integral action and reference feedforward [2].
Closed-Loop System#
For simplicity, let us assume ideal torque control (\(\tau_\mathrm{M} = \tau_\mathrm{M,ref}\)) and a stiff mechanical system
where \(\tau_\mathrm{M}\) is the electromagnetic torque, \(\tau_\mathrm{L}\) is the load torque, and \(J\) is the total moment of inertia. In the Laplace domain, the closed-loop system resulting from (1) and (2) is given by
where it can be seen that the gain \(k_\mathrm{t}\) allows to place the reference-tracking zero.
Gain Selection#
The gain selection [3]
results in
where \(\alpha_\mathrm{s}\) is the closed-loop bandwidth of reference tracking and \(\hat{J} = J\) is assumed.
References