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 speed oscillates at high(ish) speed

Other Parts Discussed in Thread: MOTORWARE, LAUNCHXL-F28027F, DRV8301, BOOSTXL-DRV8301

Hi,

I have encountered a problem with the motors I have run with the DRV8301-HC-EVM equipped with the F2806x cCard kit. 
The motor speed starts to oscillates quite badly at high speed (depending on motor but below rated speed, from 3500rpm and up, see attached picture of the GUI) under no load resulting in a significant increase in current and several times it has set the short circuit protection of my power supply at some 25A. The motors I have tried with are in the 100-150W range, 12V, 6-10 pole machines and the behaviour is the same when operating from the GUI or the labs. The identification process works fine with a slight increase in Est Current (2,-2) and Est Frequency (40). 
When decreasing the proportional and integral parts of the speed controller it is possible to reach slightly higher speeds but still not as high as rated, the response is then also very slow.

Is this just a matter of fiddling with the controller parameters or is there something else I can look into?

Regards
Anton

  • And the picture which I forgot to attach.

  • Anton,

    Anton Karlsson said:
    Is this just a matter of fiddling with the controller parameters or is there something else I can look into?

    there are several things to think about

    yes, tuning the speed regulators is certainly critical, and will often solve the issue assuming everything else is correct / reasonable.  since you have the 6x card you can try InstaSPIN-MOTION. This enables a very quick way to easily tune the speed controller with a single knob and get excellent performance.

    Let's discuss the portion in bold, and start at the beginning, with:

    Motor parameters.

    1. Are the parameters reasonable?  I discuss this starting on page 26 in the UNIVERSAL GUI QSG (which was accidently left out of the most recent MotorWare release, but I attach here for your reference)

    2. If they are not reasonable, it is recommended to use MotorWare projects instead of the "FOC or MOTION GUI" that you have posted a picture of. The MotorWare project has all the latest features, fixes, and flexibility required. 

    Also, there is the issue of "hardware appropriateness" for your motor. 

    1. This is discussed in the QSG for the "FOC or MOTION GUI" available here:

    C:\ti\motorware\motorware_1_01_00_13\docs\guis\hvkits_8312s_8301s\instaspin_motion

    Since you have a 12V/~12A motor, the DRV8301 EVM may not the best solution. Especially if the motor is higher speed - which these typically are - they will have smaller Bemf constants which make it more difficult to get good resolution on a 66V scale of this hardware.  Also, this EVM doesn't have the best current sensing, so high speed motors (which will have a low inductance) will have issues with getting good current information at higher speeds.  I know for sure you will have better overall results with the 6-24V BOOSTXL-DRV8301 inverter. This is what I use for all low voltage and especially high speed motors.  Right now you can only run this inverter with InstaSPIN-FOC using LAUNCHXL-F28027F, but in January you will be able to also test -MOTION with a 6x enabled LAUNCHXL board.  BUT, you don't HAVE to change EVMs. At least initially we should be able to get reasonable performance with the DRV8301 EVM you have in most cases.

    So, at this point I'd like you to screen shot the Motor Identification tab of your GUI, and let's see if the settings and ID results make sense.

    qsg_gui_universal.pdf
  • Chris,

    Thanks for your reply, as usual.

    Attached are two screenshots of the Motor ID tab of the GUI of two different motors. To me the values seem reasonable and they repeat quite well. The motors are not extremely high-reving, 4500-5500 rpm.

  • 1st image:

    Rs / Ls = 0.05 / 0.000055 = ~1 KHz.  This is reasonable.

    Isc = flux / 2pi / Ls = ~66A. Reasonable for your motors

    Can you confirm that during ID the motor ramps up to a speed (40 Hz = 80 RPM) and keeps spinning until the very end when the Green Light illuminates?

    As I mentioned, with 12V bus you are giving up quite a bit of resolution...this isn't ideal. But it should effect you more on low-speed than high. One thing we added in MotorWare is an angle compensation algorithm for higher speed.

    You are having issues at 3500 RPM.  What is the expected max speed? Trying to figure out where you are on the max scale. But still, 3500 RPM is 175 Hz...there should be no problems at these speeds at all.

    These higher speed, low Ls, low inertia motors: the default Speed Gains are going to be too stiff. You need to tune these yourself, but I find a good starting point is take the default values for Kp and Ki and divide both by 10.  You may need to go lower for highest speeds.

    Assuming the motor ID is all correct, I would just look at the speed loop tuning. Regardless, I recommend moving to MotorWare projects soon.

    2nd image:

    Rs / Ls = 1800 Hz

    Isc = 19A

    also reasonable, and I like the higher inductance of this motor better

    With these frequencies you DO need to move to MotorWare as you will want to run the current and possibly estimator at a higher frequency.

    give me a bit more information on exactly what you're  seeing.

  • ChrisClearman said:
    Can you confirm that during ID the motor ramps up to a speed (40 Hz = 80 RPM) and keeps spinning until the very end when the Green Light illuminates?


    Yes. Altough 40Hz = 800 RPM, right?

    ChrisClearman said:
    You are having issues at 3500 RPM.  What is the expected max speed?

    For the second motor this is close to, if not is, its maximum speed. The first one should be able to reach somewhere around 5.5kRPM.

     

    ChrisClearman said:
    ..., but I find a good starting point is take the default values for Kp and Ki and divide both by 10.

    Good input.

    I am now running the Motorware projects instead, it works okay with the gains turned right down. I'll continue trying to figure out a balance there between response time and stability. 
    One thing, you mention the resolution of the bus voltage isn't is possible to change the values of USER_IQ/ADC_FULL_SCALE_VOLTAGE/CURRENT in user.h to address at least a part this issue?

  • Anton Karlsson said:

    Can you confirm that during ID the motor ramps up to a speed (40 Hz = 80 RPM) and keeps spinning until the very end when the Green Light illuminates?


    Yes. Altough 40Hz = 800 RPM, right?

    [/quote]

    Yes. TYPO!

  • Anton Karlsson said:
    For the second motor this is close to, if not is, its maximum speed. The first one should be able to reach somewhere around 5.5kRPM.

    Another thing I forgot to mention is that the "frozen" GUI has a different space vector modulation and current sampling scheme in use, which isn't quite as good. We updated this in MotorWare, and proj_lab10 will let you choose the modulation; 1.0 (sine), 1.15 (space vector), 1.333 (trapezoidal).  MotorWare labs will work better at highest speeds.

    Anton Karlsson said:
    One thing, you mention the resolution of the bus voltage isn't is possible to change the values of USER_IQ/ADC_FULL_SCALE_VOLTAGE/CURRENT in user.h to address at least a part this issue?

    Yes - you will get better performance by changing the real HW scaling of this EVM or by building your own PCB.  This DRV8301 EVM doesn't have the best current sense layout either (the opamp should be as close to the MCU ADC channel as possible, we did the opposite).  The BOOSTXL-DRV8301 is a bit better in this regard and is already scaled better for your voltage.

    for your user.h the only thing you need to insure is that the IQ_FULL_SCALE_VOLTAGE is low enough to give you the required flux resolution but large enough to have the range for your maximum Bemf voltage which will occur at your FLUX_V/Hz * MAX_FREQ

    this is the point of the spreadsheet

    C:\ti\motorware\motorware_1_01_00_13\docs\labs