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.

Motor ID skips RoverL phase

Other Parts Discussed in Thread: MOTORWARE, TMS320F28027F

Hi,

we are porting Instaspin FOC into our own HW. Measurements of phase currents and phase voltages are working fine and rest of our HW looks fine too, but we are not able to go trough identification process at all. Really weird thing is that motor ID is always skipping RoverL phase and goes directly  to Rs identification, also ID goes to error during RatedFlux phase. Also identified RS is really high (in order of 1000 Ohms) and not corresponding real values at all. Used motor type is BLDC and we do not have any problem whit it on BOOST-XL board.

What can cause that Motor ID is skipping RoverL phase?

Thanks for help.

Jozef.

  • sounds like the clocking is completely off. are you using MotorWare projects as is with just the HAL changes for your board?
  • Yes, I am using MotorWare project with HAL changes for my board. I am able to change duration of offset measurement ( user.c ctrlWaitTime[CTRL_State_OffLine]).
  • which project are you using?

    attach your user.h please

  • Dear Chris,

    I am using proj_lab02.c.

    Please see attached user.h file.

    Regards,

    Jozef.

    6835.user.h

  • I don't see anything wrong with your clocking / TICKs.

    It's strange that it's skipping through the states...that shouldn't be affected by the current/voltage sense. Are you sure you didn't change the WaitTimes incorrectly?

    What's the meaning of this _EXT_A variable and how is it being used?

    #define USER_ADC_FULL_SCALE_CURRENT_A (82.50)
    #define USER_ADC_FULL_SCALE_CURRENT_EXT_A (84.6153840)


    in the future I would change your voltage filter pole (HW & SW) to about 400 Hz
    #define USER_VOLTAGE_FILTER_POLE_Hz (795.932)
  • Using external circuit to measure phase C with different gain settings so I add some additional settings and made changes in code to count with different gain settings. I did test voltage and current measurements twice and it works fine.

    But I have found one HW problem which maybe is related with this issue.
    I have connected PWM-A channel to Low side of halfbridge and PWM-B to High side instead of PWM-A <-> H and PWM-B <-> L. This can lead to bad current measurements for sure, but why is RoverL phase is skipped ? Am I right?

    Also is possible to change PWM-A and PWM-B channels somehow in firmware? If not I will have to do it in my current HW.
  • "I have connected PWM-A channel to Low side of halfbridge and PWM-B to High side instead of PWM-A <-> H and PWM-B <-> L"

    You did this for all 3 phases?

    Yes, it is certainly an issue. I agree I'm surprised the initial RoverL phase is completely passed over though...maybe it isn't? Is there a value in ctrl.RoverL ?
  • Yes I did it for all 3 phases. Is there any simple way how to change it in firmware?

    I can't tell you right now if there is any value in ctrl.RoverL right now (don't have HW with me), will check it tommorow.

  • Dear Chris,

    I did check if is ctrl.RoverL changed and yes it is to value -1, so maybe RoverL phase is finished really fast??

    Can you check also my previous question regarding PWMA and PWB channels changing between in firmware?

    Also could you please explain me your comment regarding filter pole or why is my calculation of filter pole wrong?

    "in the future I would change your voltage filter pole (HW & SW) to about 400 Hz
    #define USER_VOLTAGE_FILTER_POLE_Hz (795.932)"

    Jozef

  • I would start by solving your PWM layout issue first. If those signals are inverted RoverL won't work correctly.
    I believe you can invert these in the PWM module, but I'm not sure exactly how to do so. You will probably need to review the ePWM User's Guide for TMS320F28027F

    for the FILTER_POLE, the value you selected is too large and will be more susceptible to component drift. It is recommended for most synchronous motors to choose a value between 300-400 Hz for best results.