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.

MOTORWARE: Lab1b High Current Issue

Part Number: MOTORWARE
Other Parts Discussed in Thread: BOOSTXL-DRV8301, DRV8301

Hello,

I am trying to run lab1b (open loop V/Hz control) using an unloaded BLDC motor with the characteristics below and it’s drawing a very large amount of current (over 5 Amps) from the DC power supply with the default speed of 100 RPM.  It’s drawing a high current both on custom driver hardware and on the BOOSTXL-DRV8301 driver.  Could someone please review my settings and let me know where the issue could be?  Will this lab naturally draw high current due to such a low series resistance?  I am able to run the BLDC motor unloaded with Lab1c without the high current issue and it's only drawing 100mA or so at the default speed of 100 RPM and setting the Iq value (Iq_RefA) to 2A for the current controller.

 

I have a BLDC motor with the following characteristics:

Sinusoidal BEMF

10 pole (5 pole pairs)

Kv = 80 RPM/V

Kt = 17 In*Oz/A

Single phase inductance 45µH (phase to phase inductance 90µH)

Single phase resistance 11.5mΩ (phase to phase resistance 23mΩ)

Max Power 15kW

Max RPM 8000 RPM

Max Voltage 100V

 

Here are my motor settings in the user_j1.h header file:

#elif (USER_MOTOR == MY_MOTOR)                       // Name must match the motor #define
#define USER_MOTOR_TYPE                 MOTOR_Type_Pm   // Motor_Type_Pm (All Synchronous: BLDC, PMSM, SMPM, IPM) or Motor_Type_Induction (Asynchronous ACI)
#define USER_MOTOR_NUM_POLE_PAIRS       (5)             // PAIRS, not total poles. Used to calculate user RPM from rotor Hz only
#define USER_MOTOR_Rr                   (NULL)          // Induction motors only, else NULL
#define USER_MOTOR_Rs                   (0.0115)        // Identified phase to neutral in a Y equivalent circuit (Ohms, float)
#define USER_MOTOR_Ls_d                 (0.00004535)    // For PM, Identified average stator inductance  (Henry, float)
#define USER_MOTOR_Ls_q                 (0.00004535)    // For PM, Identified average stator inductance  (Henry, float)
#define USER_MOTOR_RATED_FLUX           (0.0866)    // Identified TOTAL flux linkage between the rotor and the stator (V/Hz)
#define USER_MOTOR_MAGNETIZING_CURRENT  (NULL)          // Induction motors only, else NULL
#define USER_MOTOR_RES_EST_CURRENT      (2.0)           // During Motor ID, maximum current (Amperes, float) used for Rs estimation, 10-20% rated current
#define USER_MOTOR_IND_EST_CURRENT      (-2.0)          // During Motor ID, maximum current (negative Amperes, float) used for Ls estimation, use just enough to enable rotation
#define USER_MOTOR_MAX_CURRENT          (7.0)           // CRITICAL: Used during ID and run-time, sets a limit on the maximum current command output of the provided Speed PI Controller to the Iq controller
#define USER_MOTOR_FLUX_EST_FREQ_Hz     (20.0)          // During Motor ID, maximum commanded speed (Hz, float), ~10% rated
#define USER_MOTOR_ENCODER_LINES        (1000.0)        // Motor Encoder Lines Ratio
#define USER_MOTOR_MAX_SPEED_KRPM       (8.0)
#define USER_SYSTEM_INERTIA             (0.02)
#define USER_SYSTEM_FRICTION            (0.01)

#define USER_MOTOR_FREQ_LOW             (13.33)         // Hz - suggested to set to 10% of rated motor frequency
#define USER_MOTOR_FREQ_HIGH            (133.33)        // Hz - suggested to set to 100% of rated motor frequency
#define USER_MOTOR_FREQ_MAX             (160.0)         // Hz - suggested to set to 120% of rated motor frequency
#define USER_MOTOR_VOLT_MIN             (15.0)          // Volt - suggested to set to 15% of rated motor voltage
#define USER_MOTOR_VOLT_MAX             (100.0)         // Volt - suggested to set to 100% of rated motor voltage

  • Hi John,

    For lab1b, did you try varying the V/f profile to see the performance? For Lab1c, does the current follows the given reference?

    Thanks,

    Jiaxin

  • Hi Jiaxin,

    Yes I have tried varying the motor frequency limits and the voltage but it still seems to draw high current in the same way.  It does try to rotate, or rotates very little, during the high current operation.  For Lab1c, I haven't been able to measure the current yet because I don't have a current probe but will be getting one soon.  Lab1c seems to be working as intended though.  The only real difference I can tell between Lab1b and Lab1c seems to be the V/Hz profile generator and the Iqd current PI controller which is why I thought something was wrong with either my motor frequency settings or motor voltage settings (for the V/Hz profile).  Additionally, I didn't know if this was an issue or not, but I'm only supplying 24V to the DC bus at 100RPM for both labs since it was the rated voltage of the BOOSTXL-DRV8301.  Also, since this was enough voltage to turn the motor at 100RPM using Lab1c, I assumed it would be enough to work for Lab1b.

    Is there a way I can check the V/Hz profile to ensure it's being setup correctly?

  • Hi John,

    What is the rated frequency and rated voltage of the motor? Please pay attention that the V/f profile is set based on the rated values. For Lab1c, you can monitor the variables "refValue" and "fbackValue" in the Id and Iq PID_Obj to see if "fbackValue" is following "refValue".

    Thanks,

    Jiaxin

  • Hi Jiaxin,

    Thank you for the advise on Lab1c.  For Lab1b, the rated frequency I calculated from the RPM similar to how they did in the lab.  So for 8,000 RPM I calculated 133.33 Hz (and calculated the others based on the percentages).  The voltage I took off of the motor datasheet which listed 100V.

    I think the real issue is since the default RPM is so low (i.e., 100 RPM or 1.67 Hz) I'm in the compensation region as shown in the figure below from Lab1b:

    The lab explains to set USER_MOTOR_FREQ_LOW to 10% of rated motor frequency which for my case is 800 RPM or 13.33 Hz motor frequency.  Since the default RPM of 100 RPM (or 1.67 Hz) is below 800 RPM, the motor starts in this zone and stays there.  Therefore, I would only enter the linear region once I pass 800 RPM or 13.33 Hz motor frequency.

    Thanks,

    John

  • Hi John,

    Starting a 100v rated motor in open loop versus closed loop and bus voltage +24v is asking to trip OVC faults depending on static cogging torque of the rotor facing stator poles. You might have better luck with 80v and maintain a 20v safety margin DRV8301 maximum bus voltage. We can start and run large 36 pole motor 30-100RPM from +24vdc 5-7A. However, motor current varies depending on the phase current algorithm and rotor speed being greatly reduced. Phase voltage directly relates to maximum motor speed in most all brushless FOC modulation schemes and SPM motors.

    Regards,

  • Hi John,

    Based on the information in the initial post, 8000 RPM is the max RPM instead of the rated value, right? If 8000 RPM is being used, according to synchronous speed formula, f is calculated as 666.7 Hz (given pole pairs is 5), isn't it?

     Thanks,

    Jiaxin

  • Hi Jiaxin,

    Yes I understand that and tried those values based off of the equation below but they didn't seem to work either.  Maybe since the speed is still low and in the voltage compensation region? 

    Also, I noticed based off of the user J1 header file, the Teknic M2310PLN04K motor frequencies were calculated based off of MOTOR_FREQ = RPM/60 since:

    MOTOR_FREQ_LOW = 10%*(6000/60) = 10.0

    MOTOR_FREQ_HIGH = 100%*(6000/60) = 100.0

    MOTOR_FREQ_MAX = 120%*(6000/60) = 120.0

    That's why I initially came up with those values since it was following the method of how they calculated the motor frequency in the lab.

    Thanks,

    John

  • Hi John,

    I miss read your post thought DRV8301 +65V could handle 100v since TI now has 100v gate drive controller IC. You will never get 100V motor to run at any rated speed or anywhere near, no matter what user.h open loop frequency are set. Closed loop does not use low or high frequency, though suspect maximum frequency might be used for motor over speed detection in newer SDK. BTW: Ideally you can series two +24v SMPS to make +48v, will make huge difference motor, will run at even half rated voltage so 48v - 50v might get near 3800 - 4000 RPM.

    Regards

  • Hi Genatco,

    Sorry for the confusion but I'm not planning on running the motor at rated speed (I wasn't planning on even going past 1000 RPM).  I was just using the DRV8301 to run the motor at a low RPM and had the motor unloaded to test a comparison against a custom driver design.  I was just mentioning that I had the same issues using the DRV8301 compared to a custom driver (i.e., the high current is probably not a driver issue).  I've also ran the motor unloaded at low RPMs with the DRV8301 at 24V in some of the other labs and it seemed to be working properly.

    I'm mainly just interested in verifying the phase voltage waveforms and other signals that are discussed in lab1b on a custom driver.  However, with the current being so high at 100RPM, I wasn't sure if that was an issue or if it's to be expected with the V/Hz operating mode.  The lab only mentions that it's possible to experience motor vibration while running the lab.

    Thanks,

    John

  • Hi John,

    I still feel there is an issue with the V/f profile setting of your own motor.

    Thanks,

    Jiaxin

  • Hi Jiaxin,

    Are there any other settings you think I should try?  I tried seeing if a lower RPM would work but I'm getting the same results.

    Thanks,

    John

  • Hi John,

    Does lab01c work? If you couldn't get the exact motor profile, you may try closed-loop control.

    Thanks,

    Jiaxin

  • Hi Jiaxin,

    Yes lab01c works well with minimum current draw (<0.5A) at 100RPM.  At higher RPM there is slightly more current draw but it's still well within reason (<1A).  Is this method just really inefficient for low inductance motors?  Thanks again for the help.

    Sincerely,

    John

  • Hi John,

    The current draw at no load condition should be small. Lab01c only has the current loop closed. You may continue evaluating with dual closed-loop (speed control loop and current control loop).

    Thanks,

    Jiaxin

  • Hi Jiaxin,

    Ok thanks for the help.

    Sincerely,

    John