.

Phase-Finding for Kollmorgen CD and PicoDAD Drives

Overview

Servo drives need to know the electrical angle of the shaft so that they can correctly commutate the motor. If the electrical angle is not known, it will result in a reduction of the available torque, the addition of a static bias to the torque, and possibly an inversion of the torque’s polarity. The electrical angle is available when a resolver, commutating encoder, or absolute encoder is used. However, in certain circumstances, only an incremental position measurement may be available. In such cases, a process can be used to determine the electrical angle called phase- finding.

There are various phase-finding techniques which typically rely on the shaft (or the forcer in the case of a linear motor) being free of static loads or excessive inertias. If these conditions are met, then one of the following phase-finding techniques can be used.

 
  • Applying a forced commutation to move the motor to a predetermined position where the torque generated is zero and updating controller variables accordingly.

  • Using a motion control algorithm that will “bring” the commutation angle of the motor from the initial, unknown position to the current motor position (instead of moving the motor).

The disadvantage of the first method is that it requires the motor to be moved, which produces a “jumpy” motion that may not be tolerable in some cases (ex: linear motor applications).

The second method is designed to solve this problem by implementing a closed loop commutation-lock algorithm that adjusts the commutation angle to the motor position rather than moving the motor to a predetermined place. The motor will move very slightly; motion of about ±4 electrical degrees is expected, but it can also be as high as ±15 electrical degrees.

Phase-finding is commonly used on applications with linear scales. The presence of a static load such as gravity or an end-stop spring is problematic and may cause phase-finding to generate an erroneous value.

 

Autonomous Drive Actions

An autonomous drive action is one where the motion is controlled and sequenced locally by the drive rather than by the motion controller. Phase-finding is a typical autonomous drive action.

Normal, networked-controlled, closed-loop operation of a drive under SynqNet involves supplying a torque demand to the drive and receiving position feedback. At this time the network is cyclic and the amplifier enable bit (AMPEN) is set.

If the drive is carrying out an autonomous drive action such as phase-finding or drive-sequenced homing, then we deviate from normal SynqNet closed-loop operation of a drive. The network must by cyclic and AMPEN must be TRUE to allow the drive to operate (in some drives this is a hard-wired signal, not just a software flag). But at the same time, the motion controller’s control law must not influence the torque applied to the motor.

The motion controller firmware has built-in mechanisms to manage this process. For more information, please see Motor Phase-Finding.

 

Parameters Used During Phase Finding

INITGAIN

INITGAIN sets the gain for the encoder initialization process controller. Generally, it is set to 1000. Set it to a lower value if too much motion is experienced.

INITGAIN
Parameter
Description
Parameter Index
0x30
Data Access
Read/Write
Units
N/A
Default
1000
Data Type
Integer
Range
100 to 10000
EEPROM
Yes

 

IENCSTART

IENCSTART sets the maximum current for the commutation initialization process.

IENCSTART
Parameter
Description
Parameter Index
0x31
Data Access
Read/Write
Units
% of MICONT
Default
25
Data Type
Integer
Range
0 to 177
EEPROM
Yes

 

ENCSTART

ENCSTART puts the drive into an Encoder Initialization state. This can be used when MENCTYPE is set to value 3 or 4, for encoder initialization without Halls.

This is an “action”-type instruction; it does not read or write a parameter, but causes a specific action to be take. Use this parameter as if it were a write-only parameter with a data value of zero.

If the ENCSTART instruction is executed with the encoder type (MENCTYPE) set to a value other than 3 or 4, an error message MENCTYPE MISMATCH will be returned.

If ENCSTART is executed when the feedback type is Resolver, the error message NOT AVAILABLE will be returned.

The ENCSTART instruction is also implemented in Direct Command 0x60. This is used in the phaseFind Utility.

ENCSTART
Parameter
Description
Parameter Index
0x49
Data Access
Action
Units
N/A
Default
N/A
Data Type
Integer
Range
0
EEPROM
No

 

INITTIME

INITTIME sets the timer for the commutation initialization process. This is the time between the first and second current steps. Increasing this time can help with phase-finding when the friction is low.

INITTIME
Parameter
Description
Parameter Index
0x64
Data Access
Read/Write
Units
milliseconds
Default
25
Data Type
Integer
Range
108 to 16000
EEPROM
Yes

 

MJ

MJ sets the combined inertia of the motor and the load. For rotary motors, the motor inertia is that of the rotor. For linear motors, the motor inertia refers to the motor coil mass (linear motors, MOTORTYPE= 2). This parameter is necessary when “Wake-No-Shake” encoder commutation initialization is used.

MJ
Parameter
Description
Parameter Index
0x32
Data Access
Read/Write
Units
Rotary: Kg * m2 * 10-6
Linear: grams
Default
0
Data Type
Integer
Range
0 to 2,000,000,000
EEPROM
Yes

 

Phase Finding and the MENCTYPE Parameter

The MENCTYPE parameter is set by the user to tell the drive what type of encoder is connected. When using an encoder that has A/B lines only, and for which execution of the Phase Finding process is necessary, the MENCTYPE parameter may be set to either a value of 3 or 4.

When MENCTYPE is set to 3, phase-finding is triggered by two conditions:

 
  • An explicit command called ENCSTART, is issued to command phase-finding.

  • Enable of the servo drive.

When MENCTYPE is set to 4, phase finding is triggered by the Enable signal only.

NOTE: Once phase finding has been successfully executed, enabling the drive will NOT trigger phase-finding again. In this case, if the user wishes to execute phase-finding again, an ENCSTART command needs to be issued prior to enabling the drive.

CAUTION!
When using MENCTYPE=4, the phase-finding process is triggered by Enable only. When the Enable signal is set, the drive takes control over the motion and ignores the torque command from the motion controller. When the phase-finding process is completed, the drive remains enabled, and the drive continues to respond to the torque command. Since the phase-finding process moves the motor, it should be assumed that there will be a non-zero torque command at the end of the phase-finding process. The drive will then see this as a step command. Depending on the size of the torque step, the resultant motion can be violent.

Thus, when using MENTYPE=4, the motion controller’s Output Offset should be set to zero before the drive is enabled. After the phase-finding process has been completed, the drive should be disabled, the output offset restored, and then the drive can be re-enabled.

For these reasons, it is strongly recommended to use MENCTYPE=3 only.

 

The Phase-Finding Process

 
  1. Disable the drive.

  2. Select the encoder initialization process by setting MENCTYPE to 3. This will automatically set the INITMODE parameter to 2. By itself, the INITMODE parameter does need to be accessed. Execute the CONFIG instruction after changing MENCTYPE. At this point, the 7-segment LED on the drive should show a flashing ‘2’. If MENCTYPE=3 has been saved in the non-volatile memory, the drive will be in this state automatically after power up, and an explicit setting of MENCTYPE will not be required.

    At this point, bit 2 in the Drive Warning Register will be set.

  3. Set the encoder initialization current using the IENCSTART instruction. Set this to the maximum allowed application current.

  4. Set the gain for the process using the INITGAIN instruction. This value will be adjusted during the tuning process. The tuning process will be somewhat of a cut-and-try process.

  5. Set the MJ parameter to the value of the combined inertia of the motor and the load.

  6. Clear the faults on the Motion Supervisor and run the phaseFind Utility. This utility is found in the XMP/BIN/WINNT subdirectory of the MPI installation. In addition, the process can be enabled at any time when the drive is disabled by entering the ENCSTART command (SynqNet parameter 0x49).

  7. Monitor the process by looking at the velocity and by reading the status word WNSERR and the status of ACTIVE.

  8. If the process is successfully completed, the 7-segment LED will show a steady ‘2’, and the Warning bit will be cleared. Otherwise, the LED will show an alternating ‘-‘ and ‘3’. If the process is not successful, bits in the WNSERR query will provide helfpul information for troubleshooting.
MJ
Bit Value
Error Description
Possible Corrective Action
0x0001

WNS Stopped
Indicates whether the WNS process was interrupted due to drive disable (due to fault or disable command).

0x0002
Maximum velocity error
At the end of WNS process the motor should stand still. If the velocity at that time is above threshold, this bit is set.
Reduce value of INITGAIN
0x0004
Too much motion
The motor moved distance which is above threshold during the WNS process.
Reduce value of INITGAIN
0x0008
Motion Profile
If the settling time of the WNS process (step response) is above threshold this bit is set.
Reduce value of INITGAIN
0x0010
Too little motion
Minimum movement of 4.5 electrical degrees is required. This prevents cases of locked motor or not enough current to move the motor.
Increase value of INITSTART, and/or increase value of INITGAIN
0x0020
Encoder initialization failed
This bit is a summary bit of bits 0 to 5.
0x0040
Encoder initialization has been executed (but not necessarily succeeded)

In case bit 2, 3, or 4 were set, the user should modify the WNS gains (INITGAIN, IENCSTART).

 

Evaluating the Commutation Initialization Process

The process makes two velocity jumps. The first velocity jump varies in size and direction (depending on initial location). By examining the nature of the velocity during the commutation initialization, we can come to certain conclusions regarding the validity of the tuning parameters that were used. The following plot shows what form we are looking for in the velocity. We see that the velocity is smooth (more or less), and we see that there is no oscillation.


Commutation Initialization Velocity Response

In the plot above, we see some velocity instability at the end of the deceleration. Ideally, the parameters (IENCSTART and INITGAIN) should be tuned in such a way that this oscillation is not seen.

 

       Legal Notice  |  Tech Email  |  Feedback
      
Copyright ©
2001-2021 Motion Engineering