0x2010 Torque Controller

General Scope of the Torque Controller

The task of the torque controller is to make sure that the torque currently produced by the motor corresponds to the desired torque. This makes it one of the core algorithms of a motion control device like SOMANET Drive. It is used whenever a motor is driven. In general, the RMS value of motor phase currents is proportional with the generated torque. The ratio between these two is known as torque constant k_T (as defined in object 0x2003:2).

Reference Torque Generation

The reference torque can be updated in every execution step. In cyclic synchronous torque mode, the reference torque is transferred directly from the EtherCAT master to the torque controller via the PDO (object 0x6071). In other modes, a position or velocity controller is running on the SOMANET Drive and act as higher level control, so their outputs act as reference for the torque controller. The offset torque 0x60B2 is also part of the reference torque as described in Feed Forward Control

Functional Description and Controller Structure

The following figure represents the structure of the torque controller. The implemented torque control algorithm is based on field oriented control (FOC).

image/svg+xml

Model-Predictive Current Controller

The purpose of the model-predictive current controller (block “Current Controller” in the block diagram) is to make the actual torque-generating current match the requested torque-generating current.

Just as a regular PID current controller, the model-predictive current controller tries to remove the current error.

Instead of a PID structure, it internally uses a model-based approach to determine the required voltages at motor terminals.

The underlying equations allow to predict the current over one sampling period and calculate the required voltages so that by the end of the following voltage application period, the current errors will be suppressed to 0.

As base for these calculations, the motor parameters (0x2003) are used. These should be set precisely to achieve good performance.

This controller structure can theoretically suppress the error values of motor currents to 0 in only one control execution period. However, it is sensitive to sensor noise and also depends on the model accuracy. In order to optimize the model-based controller for real-world applications, two tuning parameters are added:

An integrator is added and parameterized by the gain Ki (0x2010:2). This makes the controller robust to inaccuracies of the model. A proportional gain is introduced in order to soften the actions of the model-based sub-structure: Kp (0x2010:1) can take values between 0 and 1, where high values typically make the system sensitive to noise, while low values reduce the control bandwidth.

Both parameters are tuned by default and work universally for a wide range of system setups. It is not recommended to change these parameters.

For further information on current control and model-based current control, in particular, see IEEE publications 6775336 and 6775315.

Name Index:Sub Type Bit Size Min Data Max Data Default Data Unit Access PDO Mapping
Controller Kp 0x2010:1 REAL 32 0 0 readwrite

In the case of using predictive controllers for current loop the unit is undefined, and the default value is 2500. Moreover, Increasing this parameter directly amplifies the amplitude of applied voltages, and as a result, has an effect similar to Kp in the case of using a PID controller. 

The range of this torque controller gain is 0 to 100,000,000.

 

Name Index:Sub Type Bit Size Min Data Max Data Default Data Unit Access PDO Mapping
Controller Ki 0x2010:2 REAL 32 0 0 readwrite

The unit of this gain is 0.16 [uV/(Second * Amp_rms)]. The default value is 40000. The range of this torque controller gain is 0 to 100,000,000. 

Name Index:Sub Type Bit Size Min Data Max Data Default Data Unit Access PDO Mapping
Controller Kd 0x2010:3 REAL 32 0 0 readwrite

This parameter is undefined for predictive current controller.

The range of this torque controller gain is 0 to 100,000,000.

Name Index:Sub Type Bit Size Options Unit Access PDO Mapping
Field Weakening Enabled 0x2010:4 UDINT 32
Disabled 0
Enabled 1
1 readwrite

In many applications, it is required to extend the velocity range of an electric motor.

This parameter enables or disables “Field Weakening”, a feature that increases the speed range of a PM motor by weakening the magnetic field of the rotor linearly over the speed range.

The user should set 3 parameters:

1. Field Weakening Starting Speed (Subitem 6)

2. Field Weakening Ending Speed (Subitem7)

3. Percentage of Field Weakening (f) (Subitem 5)

Note:

While the field weakening feature is enabled, it is assumed that the Drive is in its normal conditions with no fault.

Name Index:Sub Type Bit Size Min Data Max Data Default Data Unit Access PDO Mapping
Field Weakening Percentage 0x2010:5 UDINT 32 0 0 1 readwrite

Percentage of Field weakening. This field can have an integer value in the range of [0-100], and determines the "RMS" value of phase currents which are (only) generated to weaken the field. For example, if set to 10, then 10% of rated current will be injected in motor phases to weaken the rotor field. WARNING: Based on motor type, values more than 25% can lead to instability of torque control service. While tuning, proceed with "small steps", "limited power supply voltage" and "limited power supply current".

Name Index:Sub Type Bit Size Min Data Max Data Default Data Unit Access PDO Mapping
Field Weakening Starting Speed 0x2010:6 UDINT 32 0 0 rpm readwrite

Field weakening is increased linearly from 0% (at starting speed point) to its final value (at ending speed point).

Name Index:Sub Type Bit Size Min Data Max Data Default Data Unit Access PDO Mapping
Field Weakening Ending Speed 0x2010:7 UDINT 32 0 0 rpm readwrite

Field weakening is increased linearly from 0% (at starting speed point) to its final value (at ending speed point).

Name Index:Sub Type Bit Size Min Data Max Data Default Data Unit Access PDO Mapping
Commutation Angle Measurement Delay 0x2010:8 UDINT 32 0 μs readwrite