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.

CCS/MOTORWARE: why estimated Speed not stable in motorware lab5a?

Part Number: MOTORWARE

Tool/software: Code Composer Studio

I run lab5a program on my fitness bike project using F28069M controlCARD .The generated power is consumed on cement resistance.
The SPMSM motor's parameters have been identified and record parameters in user.h.
If set gMotorVars.IqRef_A positive ,for example _IQ(0.1).The motor stop for torque is not enough.then ride the bike forward in generate power mode, gMotorVars.Speed_krpm is alawys positive.

If set gMotorVars.IqRef_A _IQ(-0.1) to simulate ascent road, then ride bike make PMSM motor forward again,gMotorVars.Speed_krpm vary from -0.30 to +0.45(-300rpm to 450rpm),and gMotorVars.Torque_Nm vary between positive and negative also.

Why the estimated speed varies between positive and negative when rotor always forward?

  • Any load on the motor? Did you call the updateIqRef() to set the right reference speed for the estimator?

  • People drive motor spin forward through pedal and chain.Motor work on generator mode.The Iq_ref  and  feedback current is approximate when people not involved in.But if people drive the motor ,the current feedback  far big than Iq_ref which cause Iq PID saturated,and estimated speed and torque vary between positive and negative .

      Function updateIqRef() is in the while loop,I haven't modify it.The reference speed is set as fellow.

    if(_IQabs(gMotorVars.Speed_krpm) < _IQ(0.01))
    {
    if(iq_ref < _IQ(0.0))
    {
    CTRL_setSpd_ref_krpm(handle,_IQ(-0.01));
    }
    else if(iq_ref > _IQ(0.0))
    {
    CTRL_setSpd_ref_krpm(handle,_IQ(0.01));
    }
    }

  • When set _IQ(0.7)or _IQ(-0.7),motor spin forward or reverse without people involed in,the load is bicycle wheel and chain.

  • Using the lab02b/lab02c to identify the motor parameters, and make sure that enough reference current is set for starting the motor.

    nd please take a look at chapter 14 (Managing Full Load at Startup, Low-Speed and Speed Reversal) in InstaSPIN USer's Guide. http://www.ti.com/lit/ug/spruhj1h/spruhj1h.pdf 

  • I have done lab02b again .

    The positive or  negative Iq_ref set is just to simulate downward slope or ascent road using the motor.For example,a negative Iq_ref set means ascent resistance but must not enough to drive motor spin reverse.

    my question is:if give a enough Iq_ref ,motor will spin forward or reverse depend on Iq_ref,the estimated speed_krpm and torque_num is normal,the feedback current is close to iq_ref .If set Iq_ref a negative value, the motor should spin reverse but stop for starting current is not enough,then people  drive  motor spin forward into generator mode through  pedal and chain.The speed_krmp and torque_num value vary between negative and positive randomly when motor always spin forward drived by people. The feedback current is far big than Iq_ref.I have write a control algorithm depend on speed_krmp and torque_num cann't normal run.

       I have read chapter 14 but cann't found answer.

  • The estimator needs the reference speed to know the rotation direction when the estimator is difficult to get the rotor angle and speed at zero or low speed, especially the force angle is enabled.

    Chapter 14 shows how to start spinning the motor at a heavy load. You'd better enable Rs calibration and force angle.