This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM263P4: Motor overshoots reference speed at startup when using ESMO

Part Number: AM263P4
Other Parts Discussed in Thread: LVSERVOMTR, BOOSTXL-3PHGANINV

Tool/software:

Hi,

I am using AM263P LP, BOOSTXL 3phGANINV and LVSERVOMTR (Teknic M-2310P-LN-04K).

I'm using TI’s Enhanced Sliding Mode Observer (ESMO) for sensorless motor control, and I’m encountering an issue during low-speed startups:

For instance, When I set a reference speed of 20 Hz, the motor initially ramps up to around 35 Hz, and then settles down to the correct 20 Hz. To fix this, I’ve tried tuning the following parameters:

USER_MOTOR1_SPEED_START_Hz
USER_MOTOR1_SPEED_FORCE_Hz
forceRunTimeDelay
startupTimeDelay

Despite adjusting these values, I couldn’t eliminate the initial speed overshoot.

Is this behavior normal, or does it indicate a configuration problem? What should I focus on to reduce or eliminate this overshoot?

Regards,

Burak

  • Hello Burak,

    First off, just so you know, the eSMO sensorless observer is mainly a good fit for applications that require relatively high speeds. So, you're right to adjust the parameters mentioned. Actually, the startup process operates as an open loop control and isn't related to eSMO at all. I recommend you also tweak these parameters:

    // the speed threshold for running the motor with force open-loop, in Hz
    #define USER_MOTOR1_SPEED_FORCE_Hz (30.0f) // Hz

    // the acceleration for starting the motor, in Hz/s.
    #define USER_MOTOR1_ACCEL_START_Hzps (10.0f) // Hz/s

    In general, if you're looking to reduce speed overshoot at lower speeds in closed loop for eSMO, there are a few important areas to concentrate on for better results:
    PLL gains (Phase Locked Loop parameters)
    Low pass filter settings
    Speed PI controller gains

    Best Regards,

    Masoud

  • Thanks for the reply,

    So, do you encounter this issue with AM263 LP + BOOSTXL-3PhGANINV + LVSERVOMTR combination? Am I doing something wrong in migrating from AM263 LP to AM263P LP? I want to understand this.

    Regards,
    Burak

  • I would like to lower the value of USER_MOTOR1_SPEED_FORCE_Hz, which represents the minimum speed at which the BEMF becomes meaningful. However, I’m unsure about the correct approach to determine this value. Is there a specific formula or guideline I should follow, or is it typically adjusted through trial and error?

  • If we adjust the starting speed from 60 Hz to 20 Hz, I would set "motorVars_M1.accelerationStart_Hzps" to "5" and then update the "motorVars_M1.speedForce_Hz" to ''10".

  • "USER_MOTOR1_SPEED_FORCE_Hz" defines the force open-loop speed threshold of the motor, in Hz. This parameter should be set higher than the minimum rotation speed of the motor, and typically falls between 5%-30% of the rated motor speed.

  • I changed the parameter frswPos_sf which sets the integral start value of the PI controller from 0.6f to 0.3f. This fixed the problem.

    This value is determined 0.6f for ESMO and 1.0f for HALL on your system. What is the reason for this?

  • This parameter is meant for open loop startup, and as the name suggests, we ask users to "Tune this coefficient per the motor/system". The current tuning is primarily for Teknic or Estun motors.

    Best Regards,

    Masoud