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.

TMS320F28027F: Infrequent glitch in rpm while running at constant rpm and constant load

Part Number: TMS320F28027F
Other Parts Discussed in Thread: MOTORWARE

I have motorware running on some custom hardware to spin a custom motor with a fan blade on it (So there is a constant load). I have an odd behavior where if I run at a constant rpm (our max speed is 19k rpm) there will be an infrequent glitch in the rpm. This glitch is the rpm dropping significantly, and then recovering back to 19krpm. The issue is this glitch occurs very infrequently and irregularly (I'd say every 30 minutes or so) so we've had a hard time nailing down the root cause. Additionally, if the controller is run for a long enough time I have MOSFETs fail shorted. I'm wondering if this transient rpm "hiccup" is related to these MOSFET failures. 

This hardware is used to spin different motors in different applications, so I know there are aspects of the design that could be improved for this specific motor and speed, but nothing sticks out to me (based on the motorware_selecting_user_variables.xlsx). I've identified this motor with lab2b and the performance otherwise seems good, besides the rpm glitch and MOSFET failures. 

I'm posting because I have a significant amount of successful hours with this hardware and motorware, so I'm unsure where to even begin on this issue. Perhaps it's a PI gain tuning issue, but the fact that it is so infrequent makes me feel like it couldn't be that.

I'll post my user.h in a following message.

Thanks,

Nathan

  • The support engineers are on vacation. However, I have a suggestion in the meanwhile, see if adding PWM max clamping code can help.
  • Hi Ramesh,

    Thanks for the response. Could you describe a little more about the PWM max clamping code? Is this something from TI/motorware that you are referencing that I'm not familiar with?
  • My comment was general in nature. If you need specific details in the code that you are not able to figure it out, then will have to wait for the experts that worked on this.

  • 1. Please ensure that the identified parameters with lab02b/lab02 are copied correctly in user.h.
    2. Please check if the maximum current is enough for high speed, and the motor can run such high speed without field weakening.
    3. Please try to tune the gains of speed PI controller, and use different gains for high speed and low speed if possible.

    Please catch some current waveform during the speed dropped, that should help us to analysis the question.
  • Just wanted to check in and see if there is any update from your side, I haven’t heard from you for two weeks, so I’m assuming you were able to resolve your issue. Please let me know if you have any questions. We would like to close this thread if no any further questions. Thanks.
  • Hi Yanming,

    Apologies for the delay, I've been on vacation a week and a half. Thank you for the response.

    1. I re-ran characterization on several of my custom motors. All of my results match my user.h (Give or take a few %)

    2. I can verify the speed of my motor with a tachometer. I am indeed hitting my target 19k rpm and my gmotorvars.speed_krpm matches.

    3. Different gains for high and low speed is interesting. I'll have to try that. Like I said the rpm glitch is very infrequent (once or twice an hour) so it is very hard to confirm if a change eliminates the issue.

    Some other interesting observations since my last message:

    1. This is actually a few year old code that I have re-purposed for my project. It was based on lab 20 from Motorware 16. I now am successfully running lab 11a from Motorware 18 and have not had this glitch happen yet after a few hours of testing...I didn't see any major motor drive changes in the change log for motorware 17 and 18, it seems like the changes are mostly just re-formatting and removing the control object, so I wasn't expecting this behavior change.

    2. I'm confused by the differences between PID_run_spd() and PID_run(). Why is Ui multiplied by Kp for our currents, but not the speed PID?

    3. The fbackValue for Iq seems very eratic. While spinning the motor at a constant load, I see the speed fbackValue approach the refvalue nicely, but the fbackValue for Iq bounces erratically over and under the refvalue. My phase currents seem fine and the motor is maintaining speed nicely...Is this still a sign my phase current PI gains are incorrect? Or is this expected? I calculated them based on the motorware labs guide.

  • Q2, Please refer to chapter 11 of instaSPIN user's guide (SPRUHJ1G) that has a detailed description of both regulators.

    Q3, You may tune the gains of the current regulator or ensure the current sampling signal is good.