Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
RESOLVED - Phasing Issues
#1
Hi, I am operating a PowerBrickLV with 5/15A axes. My problem is, that the phase searching with the stepper routine does not work reliably. How is it, that it works some times and not the other. My fix is too manually phase the motor. However then I experience another problem. The sense of direction for commutating changes randomly it seems. So I have to check if it runs, and if not I change the sign on the parameters Motor[x].Pwmsf and Motor[x].PhaseOffset. How is that possible? I would think that the direction sense for commutating is given by the hardware and could not change.... Is that correct or a bug?

[EDIT]
-->Solution: Swapping two motor leads.
[EDIT]
Reply
#2
This could be the result of “insufficient” settings on the following:
Motor[x].PhaseFindingDac
Motor[x].PhaseFindingTime

See the section “Automatic Stepper Phasing” in the “Power Brick LV User Manual” for implementation details:
“http://forums.deltatau.com/filedepot/download.php?f=Power PMAC/Manuals/Hardware Reference Manual/Power Brick LV User Manual.pdf”
Reply
#3
In a recent posting you refer to (I assume same mechanism) needing more motor current, in part due to stiff bearings.
This can affect the success of the two step phase finding algorithm.
The algorithm looks at rotor (encoder) position and assumes magnetic alignment when a phase is excited, and then validates by checking if the motor moves an appropriate distance when a different phase is excited. If the delta is too big/small, the alignment cannot be trusted and the test fails.
Causes are generally twofold:
- physical obstruction, stiff mechanism, bias due to gravity.
- Magnetic pole irregularities in the motor. This is always present to some degree and can cause random pass/fail results depending on which pole/magnet happens to be in position at start-up.
Motor[x].PhasePosSf is used to determine the 'correct' movement of the rotor during phase finding. It may be possible to alter this value during phase finding to loosen up the pass/fail criteria but it must be returned to the proper value.
DT should be consulted.
Reply
#4
(11-22-2019, 12:23 PM)steve.milici Wrote: This could be the result of “insufficient” settings on the following:
Motor[x].PhaseFindingDac
Motor[x].PhaseFindingTime

See the section “Automatic Stepper Phasing” in the “Power Brick LV User Manual” for implementation details:
“http://forums.deltatau.com/filedepot/download.php?f=Power PMAC/Manuals/Hardware Reference Manual/Power Brick LV User Manual.pdf”

Ok-thx for the tip.
Reply
#5
(11-22-2019, 01:33 PM)mbalentine Wrote: In a recent posting you refer to (I assume same mechanism) needing more motor current, in part due to stiff bearings.
This can affect the success of the two step phase finding algorithm.
The algorithm looks at rotor (encoder) position and assumes magnetic alignment when a phase is excited, and then validates by checking if the motor moves an appropriate distance when a different phase is excited. If the delta is too big/small, the alignment cannot be trusted and the test fails.
Causes are generally twofold:
- physical obstruction, stiff mechanism, bias due to gravity.
- Magnetic pole irregularities in the motor. This is always present to some degree and can cause random pass/fail results depending on which pole/magnet happens to be in position at start-up.
Motor[x].PhasePosSf is used to determine the 'correct' movement of the rotor during phase finding. It may be possible to alter this value during phase finding to loosen up the pass/fail criteria but it must be returned to the proper value.
DT should be consulted.

That is correct, I encountered this issue especially with this motor. However, if I do the phasing manually I there is no algorithm present I would assume. Maybe the changes are made by the algorithm when I try an automatic phasing, do not succeed and then do the manual force phasing. Thx for the explanation.
Reply
#6
If phasing the motor manually works, you probably just need to increase the settings Motor[x].PhaseFindingDac and Motor[x].PhaseFindingTime.

I suppose it is possible Motor[x]. AbsPhasePosOffset is set incorrectly. This is checked against the distance between the two locations the motor locked to in units of PhasePos. It is typically set to 2048/5 and if it the motor does not move far enough the phasing attempt will be considered a failure.
Reply
#7
(11-27-2019, 11:38 AM)Eric Hotchkiss Wrote: If phasing the motor manually works, you probably just need to increase the settings Motor[x].PhaseFindingDac and Motor[x].PhaseFindingTime.

I suppose it is possible Motor[x]. AbsPhasePosOffset is set incorrectly. This is checked against the distance between the two locations the motor locked to in units of PhasePos. It is typically set to 2048/5 and if it the motor does not move far enough the phasing attempt will be considered a failure.

Hi Eric Hotchkiss, I was going after my problems with the "stepper" phasing-search method with a brushless test motor not connected to any load. It would just not phase although I was able to phase it manually and jog it when I changed the sense of direction of commutation. So I thought it should work. After thoroughly going through everything bit by bit and reading up on the parameters I thought that something has to be wrong. I went back to the manual and read the line: "Try swapping two motor leads." In case it does not work. That was my remedy. In hindsight it is seems sensible that I had to change the sense of direction of commutation to be able to run the motor. Because that is what I achieved by swapping two leads. Before I assumed the algorithm would work that out for me.
Reply
#8
I have a question about the "four-guess" method:

The manual says that it can adjust for external loads. It seems that it would be applicable where the "stepper-motor" method would fail. Is that correct?
Is it also able to adjust for friction?
Best regards,
hannsx
Reply
#9
Just a quick FYI on phase direction.
The problem you cite should have shown up in the Open Loop Test where the motor is phased forward and the position is displayed graphically. You can also observe your mechanism to see if it is moving in a positive direction. This is the point in commissioning where feedback, phasing, and mechanism direction are confirmed to all be in agreement.
Very important to confirm agreement of motor & feedback to prevent a potential runaway condition. (phase algorithms will also fail since the movement is not what the algorithm anticipates)
Once the motor & feedback are in agreement, the mechanism direction can be reversed by changing both motor phase AND encoder direction sense.

Eric Hotchkiss pointed out a method available in PPMAC of reversing motor phasing without swapping wires here:
http://forums.deltatau.com/showthread.ph...ight=phase
Note that in these instructions the encoder direction sense is being changed along with motor phase direction. It is assumed these are already in agreement.
Reply
#10
The Turbo PMAC has the "two guess" method for phasing search. It makes two guesses as to the phase angle that are 90 degrees apart and observes the response. Since the generated torque is proportional to the cosine of the error in the guess, it can calculate the "true" angle.

The method assumes that any load torques are insignificant compared to the applied torque. It is especially vulnerable to directional load torques such as gravity.

By expanding the method in Power PMAC to four guesses all 90 degrees apart, we can compare the responses of the pairs of guesses 180 degrees apart to understand the effect of directional load torques and compensate for them. This has improved the reliability of this search type.

However, most people who have compared this method to the "stepper motor" method believe the stepper motor method is still more robust. The tradeoff is that it requires larger motion in the search.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)