Method WakeAndShake¶
The WakeAndShake alignment method injects current on different commutation angles, which causes relatively small movements in the system. These movements are detected, and the WakeAndShake method determines the absolute electrical angle based on the directions of these movements. This approach results in less movement in the system compared to other alignment methods. This section describes the phases and visualizes the movement detection procedure in Indication of the relevant signals when the WakeAndShake alignment completes.
Wake phase: The following steps describe how the Wake phase determines a \(0.5 \pi\) wide search range (on the unit circle) in which the absolute electrical angle is located.
The Movement detection procedure is executed twice. First with AngleOffset 0 ,then with AngleOffset \(0.5 \pi\).
If no movement was detected during both movement detection procedures, then an AbortedException is thrown.
If movement was only detected for an angle offset equal to 0, then an extra movement detection procedure is executed for an AngleOffset of \(\pi\).
If movement was only detected for an angle offset equal to \(0.5 \pi\), the movement detection procedure is repeated with an AngleOffset of \(1.5 \pi\).
Shake phase: The following steps describe how the Shake phase iteratively reduces the search range to find the absolute electrical angle.
The Movement detection procedure is executed with the AngleOffset value set in the middle of the search range, according to a bisection search algorithm.
If movement larger than ThresholdAngle is detected, the current AngleOffset value is set as new LowerBound/UpperBound of the search range, depending on the direction of movement found in the previous step. The next iteration (step 2.a) is started with the new search range.
If no significant movement is detected, or if the search range is smaller than ThresholdAngle, then the alignment will be considered successful. The procedure is completed by setting the IsAligned flag to True.
Note
It is assumed that the motion system has enough friction to slow down by itself.
The alignment error is not calculated.
If movement larger than the DeltaAngle is detected during any step, an AbortedException is thrown.
Movement detection¶
Movement detection procedure:
Ramp: The demand current is ramped in RampTime seconds from LowCurrent to HighCurrent until significant movement is detected or HighCurrent is reached.
Hold: The demand current is kept at HighCurrent until significant movement is detected or HoldTime is exceeded.
Wait: The TheWakeAndShake method sets the demand current to zero and waits MoveTime seconds for the system to stop moving.
Note
A movement is considered significant if it exceeds ThresholdAngle.
Signals¶
The signals applicable for this method are given in Alignment signals for method WakeAndShake.
Name |
Data type |
R/W |
Description |
---|---|---|---|
ThresholdAngle |
Float |
RW |
Angular [rad] threshold for movement detection. |
DeltaAngle |
Float |
RW |
Maximum angular [rad] movement during alignment. Ignored when set to zero. |
HighCurrent |
Float |
RW |
Maximum current used during alignment. |
LowCurrent |
Float |
RW |
Current that doesn’t result in motion (optional). |
RampTime |
Float |
RW |
Current ramp time [s]. |
HoldTime |
Float |
RW |
HighCurrent hold time [s]. |
MoveTime |
Float |
RW |
Time [s] to wait for the system to stop moving after the current injection. |
Run exceptions¶
The WakeAndShake alignment method can fail with the run exceptions given in Alignment run exceptions for method WakeAndShake.
Run exception |
Description |
---|---|
TimeoutException |
The configured timeout was exceeded. |
AbortedException |
The alignment procedure was aborted due to one of the following reasons:
The exact abort reason is given by the exception message available via the RunException property on the Alignment interface. |