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.

Controller goes in overcurrent in EST_State_Rs state

Genius 5910 points


Hi,

The problem is that at initializiation the 3 fase lie on top of each other. And then the move to there 3 phase position. Only they don't stop at the max current position. They go to the max position.

So I guess I have a problem with my current feedback. I can't find the part that is responsible for the motor initialization and which variable is used for the current feedback. Can someone please point me at in correct direction.

 Thanks.

  • can you clarify? I really don't understand the question.

    You have the current sense Hardware.

    These values will let you set in user.h

    USER_IQ_FULL_SCALE_CURRENT_A // set to a value >= 1/2 of ADC_FULL_SCALE

    USER_ADC_FULL_SCALE_CURRENT_A  // set by your current sense hardware

    and you need to check the sign being used in HAL_updateAdcBias  as well as the sign being used in HAL_readAdcData

    this is discussed in chapter 5 of SPRUHJ1

  • That is the third time you tell me to read chapter 5. That is a very basic description. Please give tell me a  technical answer how to verify my current feedback is correct.

    I show the problem with these picture: At start up initialization CTRL_State_OffLine:

    At EST_State_Rs:

    There is a max offset between the pfases. So the feedback loop is not correct. If I look at:  intr_obj.ctrlHandle->Idq_in.value[0] I see the current value I (more or less) I Expect. So I think they is a problem with the fbackValue value. (in CTRL_runOnLine).  So I'm there at the moment.

     NOTE: Green is also 5V per div. The attenuation is not set correctly.

  • all I can recommend is checking your HW, checking your calculations, verifying the software settings match, verify offset bias is reasonable, verify proper amount of current is being observed during RoverL (1/2 of the RES_EST_CURRENT)
  • I think the problem is with the PID for Id and Iq

    See this data:

    ctrlHandle->Idq_in.value[0]    long    0.08104866743 (Q-Value(24))    
    ctrlHandle->Idq_ref.value[0]    long    0.0 (Q-Value(24))    
    ctrlHandle->Vdq_out.value[0]    long    0.0 (Q-Value(24))    
    PwmData.Tabc.value[0]    long    0.005154013634 (Q-Value(24))    
    PwmData.Tabc.value[1]    long    0.6052870154 (Q-Value(24))    
    PwmData.Tabc.value[2]    long    -0.603518188 (Q-Value(24))    
    ctrlHandle->Vdq_out.value[1]    long    0.6962512136 (Q-Value(24))    
    ctrlHandle->Idq_in.value[1]    long    0.00113427639 (Q-Value(24))    
    ctrlHandle->Idq_ref.value[1]    long    0.0 (Q-Value(24))    

    Pid id is closed but Iq is not. And that is very odd for a BLDC motor. any suggestions where to look or what the problem is.

     Thanks

  • are you still talking about the RsRecalc state?
    There isn't going to be any issue with the PI controllers in this state...nothing is being controlled.