cancel
Showing results for 
Search instead for 
Did you mean: 

What cause MC_START_UP Failure with RUC_Exec routine?

BTrem.1
Senior II

I saw a problem posted 2 years ago similar to my problem now but the issue was closed with a ticket filed and I can't access any follow ups. Start-up failure, MC_START_UP fault flag getting set sometimes. Posted on April 12, 2018 at 23:49

Using the MCSDK 5.4.5, I can startup and run a BLDC motor most of the time. About 10% of the time, I get a Start-up failure and in the code I'm running it hits a breakpoint when RUC_Exec returns false causing a failure. I have modified values in the start up ramp table (current, time and speed) but haven't found a suitable result. The motor appears to be spinning up smoothly without any audible noise but then stops with the MC_START_UP fault.

I haven't found the source code for RUC_Exec. I'd like to know what condition is causing the failure so I know where to fix my code.

3 REPLIES 3
AntoineC
ST Employee

Hello BTrem.1,

I would like to advise you to install the full version of our MCSDK to get the source code for the rev-up part.

Please find below the link to ask this version:

https://www.st.com/en/embedded-software/x-cube-mcsdk-ful.html

Regarding the error encountered, a START-UP failure can occurred during the START state or the SWITCH_OVER state of the state machine. You can refer to the mc_task.c to identify in which case you are in debug mode.

--> A Start-Up Failure occurred during the START of the state machine

To go out of the START state, the Observer speed has to be N times (defined in the workbench) in the range of the speed expected by the virtual speed sensor (used for the open loop rev-up part). When the minimum speed is reached the convergence is checked to go out of the START state in the Time dedicated for the Start-Up. If the time is over a start-up failure occurred.

Few Reasons for Start-Up failure in Start state:

-The minimum start-up speed is too high

-The range of the comparison speed is too narrow

-The time for start-up is too short

-The final speed ramp of the start-up phase is too low

-Too much load

-The speed measured by the Observer is not reliable

--> A Start-Up Failure occurred during the SWITCH OVER of the state machine: at the end of the pre-defined time (defined in the workbench) for the Switch Over state, the virtual speed sensor has to be in the reliability range. The SWITCH_OVER state has to take place during the rev-up phases. When the loop is closed we go out of the Switch Over state and the rev-up is over.

Few Reasons for Start-Up failure:

-Switch Over duration is too high

-Rev-up phases time is too short

-VSS speed is not in the range of the authorized speed (0 to Max)

-The minimum start-up speed is too high

I hope it can help you, try to identify what is your behavior.

Best Regards,

Antoine

Thanks for replying, I did get a writeup on the start-uo phases but have some questions to clarify what I'm seeing.

Here is a plot from MCSDK

The Reference speed is 1849rpm and the min observer speed is 1500rpm. The ramp up phase time is 4.5sec.

As you can see the speed ramps up but I get an error at speed 1621. The error reported is SPEED_FEEDBACK. I have the number of consecutive tests set to 5.

Can you explain why I might be getting this error & what I should try next?

Regards, Brian

AntoineC
ST Employee

Hello Brian,

I can't see your attached file, please be sure to add the image or file with the dedicated button.

--> In general a Speed Feedback error occurred if the average of the speed measured by the STO PLL is not reliable.

In the high frequency, the rotor speed is stored in a buffer of size X. In the medium frequency, the variance of the buffer values is calculated. If the variance is in the range set in the workbench the speed is reliable. The speed is not reliable if the variance is not in the range X times.

It seems that in your case the speed is not reliable during the Switch_Over state and the speed feedback error is handled when you are in the Run state so the motor doesn't start.

If we consider motor parameters well defined. You have to focus on the speed and the current reading.

  • For low inductance motor, increase the PWM frequency and the number of samplings.
  • Rework your speed regulator.
  • Rework your Torque and Flux regulators.
  • Have a look on your current, if signals are noisy you have to decrease G2 Observer parameter to reduce the impact of the noise on the Back EMF estimation.
  • You can check ADC sampling time, T-Rise and T-Noise of power switches.

I invite you to watch MOOC videos where tips are provided for solving errors and help the user to start a motor.

https://www.youtube.com/watch?v=Xhtba2DvEuI&list=PLnMKNibPkDnFWRMG4nOz3XDRI5-rsXCr5&index=5

Best Regards,

Antoine