Control Modes and Controller Types

The SOMANET Drive can generally be used in

  • Cyclic Sync Torque control mode (CST)
  • Cyclic Sync Velocity control mode (CSV)
  • Cyclic Sync Position control mode (CSP)

Selection of these modes is done by setting the object 0x6060 to the corresponding value as defined in the CiA 402 standard. Using OBLAC Drives, each mode can be activated both in the Playground area and in the Tuning area.

Torque Control

../../../../../../_images/torque_control_loop.png

The torque control modes allow the EtherCAT master to send desired torques to the SOMANET drive. The drive will make sure these torque values are generated in the motor (if the motor is physically able to do so).

The measured variables for the torque feedback are the phase currents. This is why the feedback loop of the torque controller actually consists of several (usually 3) current feedback loops, while internal models expand this structure to be externally accessible as one controller on the torque. As the torque controller incorporates a physical model of the motor, it is crucial to copy its parameters correctly from its datasheet to the motor configuration in the drive.

Overall, the internal structure of the torque controller consists of a model-based feedforward part and a proportional feedback part.

The torque controller is the base for all higher-level controllers like position or velocity control. Therefore, the torque controller described here appears again in all other control structures implemented in SOMANET Drive 1000.

The parameters of the torque control loop have been set to fit a wide variety of applications, altering the default values is recommended for expert users only!

Velocity Control

../../../../../../_images/velocity_control.png

The velocity control modes allow the EtherCAT master to send desired velocities to the SOMANET drive. The drive will make sure these velocity values are reached by the motor (if the motor is physically able to do so).

The internal structure of the velocity controller is a PID feedback structure, along with anti-windup on the integrator and low-pass filtering algorithms on the feedback signal to deal with the sensor noise. It is recommended to use this controller only as a PI controller (leave the D gain set to 0).

On top of the desired velocity input, the velocity controller also accepts a desired ‘offset torque’, which is a dynamically changeable torque value that will be added to the torque value generated by the velocity PI controller. See Feedforward Torque Control and Dynamic Offset Torque for further information.

Although the cascaded position control loop also includes a velocity feedback loop, the velocity controller described here and especially its controller gains are not used as part of any position controller (applies to firmware versions 3.2 and higher). This means the controller gains for the velocity controller described here (objects 0x2011:1 … 0x2011:4) and the velocity cascade being part of the position controller (objects 0x2012:5 … 0x2012:8) are set independently.

Position Control

The position control modes allow the EtherCAT master to send desired positions to the SOMANET drive. The drive will make sure these position values are reached by the motor (if the motor is physically able to do so).

There are two implementations available for position control:

  • Cascaded PID controller
  • Simple PID controller

Cascaded PID Controller

../../../../../../_images/Cascaded_PID1.png

The cascaded position controller consists of two PID feedback cascades. The outer cascade is used to compare the target position (current position setpoint) with the actual position value. From this difference, the PID controller computes a target velocity. The inner cascade will compare this target velocity with the current measured velocity and feed this difference to another PID controller that generates a target torque from this. This target torque is then controlled by the torque / current control loop described in the section on Torque Control. The overall control structure including the underlying torque control loop, the relevant update frequencies and the object numbers is shown in a simplified form in the figure below:

../../../../../../_images/Control_loops.png

Although the two cascades offer a total of 8 controller parameters (P-gain, I-gain, D-gain and integrator limit for each of them), it is not useful to use all of them at the same time. Generally, none of the D-gains should be used in the cascaded controller and the two I-gains should be used only alternatively, not together. This means that the control structure is simplified to a combination of one P controller and one PI controller.

Instead of the cascaded PID controller, OBLAC Drives allows the user to activate the simple PID position controller. This controller represents the simplest and most known form of position control. However, for productive use Synapticon recommends to use the cascaded controller. In the simple PID controller, one Proportional, Integral and Derivative feedback acts on the position itself and will directly generate the target torque / current.

On top of the desired position input, both position control implementations also accept a desired ‘offset torque’, which is a dynamically changeable torque value that will be added to the torque value generated by the velocity PI controller. For further reference see Feedforward Torque Control and Dynamic Offset Torque

Simple PID Controller

../../../../../../_images/SimplePID.png

The cascaded PID controller is generally preferable over the simple PID controller. It is activated by default and apart from academic purposes there are few reasons to switch to the simple PID controller. However, the user can decide which position control structure is preferable for the particular application scenario.

Setting the modes

According to CiA 402, the modes are called by setting the object 0x6060 as follows:

0x6060 Value Control Mode
+8 Cyclic Sync Position Mode
+9 Cyclic Sync Velocity Mode
+10 Cyclic Sync Torque Mode

The cyclic sync mode indicates that the reference values are sent and updated with each EtherCAT communication frame, so a reference signal has to be sent with usually 1 kHz. As an example, to rotate the motor shaft from position A to position B in cyclic sync torque mode within one second, the following information has to be sent to the drive:

  • position A in the beginning
  • 998 intermediate positions
  • position B in the end

OBLAC Drives uses the cyclic sync position, velocity and torque mode to control the drive. Even though the app accepts inputs like velocity and acceleration, this just means that this information is used within the app to compute a reference trajectory. This trajectory is then sent to the drive in the form of individual setpoint values.

However, for some robotic applications it can be helpful to generate such trajectories directly on the drive which means that the high-level robot control will not have to deal with this task. You can do so using EtherCAT communication and the following objects:

Object Meaning Unit
0x607A Target position inc
0x60FF Target velocity inc/s
0x6071 Target torque Per thousands of rated Torque

Please check out further functionality of OBLAC Drives:

  • Learn how to make your drive part of a higher level robotic control structure:

Drive Control via EtherCAT

  • Learn more about automatic and manual approaches for Controller Tuning:

Controller Tuning

  • Increase the performance of your drive even more using Advanced Control Options:

Advanced Control Options