.DriveControl.UsersGuide.SpeedController

Information

The speed controller acts on the current control drive, multiplied by the equation of motion:

Choosing a PI-controller

we obtain the transfer function of the open loop:

Since load torque acts as a disturbance, a controller setting robust against disturbances is choosen, i.e. the symmetrical optimum. The naming "symmetrical optimum" indicates that the phase response is symmetrical with respect to the gain crossover frequency:

Caculating the phase at the gain crossover frequency and maximizing the phase reserve to stability margin, the gain crossover frequency is the geometric mean of Ti and Tsub:

Choosing a parameter a = 2, according to [Schroeder09] resulting in a transfer function = 1 over a wide frequency range, we obtain the integral time constant:

The proportional gain we get from:

This results in a transfer function of the closed loop with a numerator zero:

To avoid the resulting large overshot, it is possible to compensate the numerator's zero with a prefilter:

The transfer function of the speed controlled drive gets:

Note: The load torque acts as a disturbance, but cannot be compensated by a feed-forward. The speed that can be demanded to the drive is limited. Therefore we use a
limited PI controller with feed-forward = 0 and anti-windup. Since maximum acceleration (defined by maximum torque) is limited, a SlewRateLimiter block can be used to limit torque.

The example SpeedControlled applies a reference speed step (which is unphysical!) to the speed controlled drive at stand still, the load torque is linearly dependent on speed switched on after no-load start to demonstrate the effect of a disturbance.

The speed controller demands a limited machine torque accelerating the drive (including the load) until the reference speed is met. When a load torque step is applied, speed drops and the speed controller reacts on that change with a change in the reference torque restoring reference speed.


Generated at 2024-04-25T18:15:59Z by OpenModelicaOpenModelica 1.22.3 using GenerateDoc.mos