Considering the equations shown in User's Guide, Machine and inverter, we can write the transfer function of the drive as:

.

Note: To avoid influence of the current ripple on control, the
measured current is filtered. The small time constants of the
inverter and the smoothing filter are summed up:
T_{σ}=T_{d;}+T_{sI}

Choosing a PI-controller

.

we get the transfer function of the open loop:

.

Compensating the bigger time constant T_{a}, i.e.
**T _{i}=T_{a}**, the transfer function of the
closed loop gets:

.

According to the absolute optimum, we check the absolute of this transfer function, trying to keep it = 1 for a wide frequency range:

Comparing the coefficients in numerator and denominator, we find:

- ω
^{0}: always fulfilled - ω
^{2}: allows to calculate optimal k_{p} - ω
^{4}: not possible to fulfill, results in limited bandwith of the controller

The optimal proportional gain is found as **k _{p} =
R_{a} T_{a} / (2 T_{σ})**.

The transfer function of the current controlled drive gets:

The numerator's zero can be compensated by a first order filter of the reference, resulting in:

The first order with substitute time constant **T _{sub}
= 2 T_{σ} _{is an approximation used for the design of
the further controllers.}**

_{Note: The induced voltage Vi = kφ ω can
be calculated from measured speed and acts like a disturbance.
Therefore Vi should be used as a feed-forward for the
current controller. Furthermore, the voltage that can be applied to
the drive is limited. Therefore we use a
limited PI
controller with feed-forward and anti-windup.}

The example CurrentControlled applies a reference torque step to the torque controlled drive at stand still, the load torque is linearly dependent on speed.

The current controller causes a constant armature current, that causes constant torque delivered by the machine. Speed will rise up to that point of operation, where that torque is in balance with the load torque.

Generated at 2019-11-12T02:39:48Z by OpenModelicaOpenModelica 1.15.0~dev-9-g34505da using GenerateDoc.mos