I am having problems with the sensorless algorithm not triggering a loss of sync or startup fault when the motor is not moving. The speed feedback from the estimator says I am moving at 1155 RPM, but the motor is really not moving - however no fault is triggered. The flux calculated by the estimator looks to be right near the 50% threshold.
How is the flux this high when the motor is not moving? What is the equation used to calculate flux in the estimator?
I don't know if this helps you at all see what is going on -
As you can see below, I try to go to 3 deg/s in sensorless mode - The Cyan line shows my actual position (Read by the resolver on my other drive controller - this one has the resolver connected but is not controlling currently) This cyan line should be moving up rapidly but is instead being pulled down slowly at -3.68 RPM by a very heavy object. The Speed Feedback from the estimator does ramp to 1155 RPM (black signal at in lower part of graph) - however the cyan line shows the motor is really not moving up at this speed. The D current goes to 150A (pink trace) in the startup mode, and then makes the handoff to the estimator successfully. The Q Current ( black trace in middle of screen) however seems to not be very highand oscillates between 6A and -11A before finally faulting after 86 seconds on Loss of Sync (I have this threshold set to fault in 2s). Have you seen something like this before - Why would the flux not be below the 0.5*rated threshold when the motor is not being driven by the control but instead barely moving in the wrong direction? What is the equation used to calculate flux? I would think the flux would be very low if the motor is barely moving in the wrong direction?
We can have a call about this if this is a better approach to figure out what is happening here. This makes me a little nervous, as my system needs to fault rapidly. Waiting 86 seconds to fault could have very negative consequences.
That does help a little bit, thanks. Does your motor begin rotating in the correct direction during startup? If your motor isn't able to begin rotating the correct direction during startup, it is unlikely that it will correctly work in sensorless. You could try increasing the startup current in order to get the motor to begin the rotation.
I would not reduce the Sync Error Minimum speed to 0, we've found that below the recommended setting you get a very poor value for the estimated flux and it can cause the fault to false trigger.
The Flux is calculated based on the modulation percentage, phase current, and motor/drive parameters. We use 50% of rated as a baseline. It might need to be adjusted for your specific motor in order to better dial the fault in to meet your requirements.
That is part of the problem which I resolved by applying D current while my motor brake is releasing. The load was moving the motor in the opposite direction before the startup block kicked in. It seemed the startup block was unable to move the motor in the correct direction if the motor was already moving. The sensorless mode did not seem to work correctly in this case, as it thought the motor was moving in the correct direction at the correct speed.
My biggest concern was how long it took to fault on the loss of sync. This looks to be triggered by the flux threshold which I have set to 50%. It seems in this case the flux was greater than 50% rated. I had -5.8A of Q current feedback, and my ABC phase current RMS was around 2.7A . I was able to replicate this in the lab and it looked like my flux was at around 0.12 wheras my rated was 0.22 - Just above the threshold. So maybe I need to increase that threshold to around 70% or something.
If open-loop startup cannot rotate the motor in the correct direction, the sensorless estimator will not be able to control the motor. It sounds like in your situation you needed to modify the current used at startup. Applying d-axis current after releasing a mechanical brake can certainly help with startup.
Makes sense you may need to adjust the fault threshold based on your testing experience.
I am running sensorlessly. My Sync Error Minimum speed is 350 RPM. That makes since why it was not faulting then. Could I set this to 0 without causing problems? I do not ever want to get in a case where I cannot fault if the motor is not moving.