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.

DRV8301-69M-KIT: Low Inductance motor external inductors

Part Number: DRV8301-69M-KIT
Other Parts Discussed in Thread: MOTORWARE, CSD19506KCS, DRV8305, DRV8301, DRV832X, TIDM-1003, BOOSTXL-DRV8305EVM, CONTROLSUITE

Hello, I am currently working with a custom built motor that is sinusoidal wound and has very low inductance (approximately 5uF per phase) I also have an encoder I can use with the motor if needed. I am attempting to use the TI controller to test a maximum efficiency point but am concerned that I may not be getting the most out of the motor that is possible. I believe that due to the low inductance of the motor it is not fully smoothing the pwm into sinusoidal control signals. I would like to use some line inductors to add external inductance to assist in this process but am concerned in how this may effect the control. Right now I am not concerned with losses before the motor, I can currently take measurements in between the motor and controller so I can isolate the motor performance.

 So some questions

How will external inductance effect the control signals?

Can this be accounted for somehow in the proj_lab code?

What if anything should I change in the code to ensure it is sending a SPWM signal? Or is this default/possible?

Thanks in advance

Jesse

 

  • 1. Add a external inductance on the line to motor will affect the motor efficiency and incorrect rotor angle if using sensorless FOC, we didn't have such algorithm and evaluation on adding a external inductance.

    2. We had a algorithm to control low inductance motor without adding any external inductance, please refer to lab_02c, it's better to use higher pwm frequency which can improve the current waveform.

  • 1. I understand it will effect the efficiency and rotor angle negatively if not accounted for, what I am wondering is how I might go about accounting for the external inductance so the rotor angle is correct. I can use my encoder if that helps track angle better and then if there is some way to add a phase offset to account for the inductors. The motor is sinusoidal wound so the maximum possible efficiency would be if i could feed it a perfect sine wave which is why I am trying to use the external inductors to get a sine into the motor and not count on the motor to be able to smooth the PWM on its own.

    2. I have used lab_02c to identify the motor using 45KHz pwm. I guess this leads me to another couple questions. How high of PWM can the board support without any additional hardware? Also when running sensorless does it do trapazoidal pwm or is it SPWM?

    Thanks again
  • Any further thoughts?
  • We considered the external inductance as stator inductance of motor for the motorware or controSuite motor control algorithm.
  • Ok well I have a couple other questions then.
    1. How high of PWM can the board support without any additional hardware?
    2. Also when running sensorless does it do trapazoidal pwm or is it SPWM?
    3. What differences would there be by me including the external inductance in the lsd and lsq defines vs not including them there? I mean i can measure the inductance of the motor alone and use this value or use the motor plus inductor value.

    Thanks
  • Jesse,
    Thanks for your private message.
    Please review this post on external inductors
    e2e.ti.com/.../1242590

    How high of PWM can the board support without any additional hardware?

    - this is really determined by the gate driver and the "ticks" to keep to interrupt sampling / controllers to a reasonable level. We have run at 100 KHz for some machines.

    Also when running sensorless does it do trapazoidal pwm or is it SPWM?

    - an SVPWM is always used, but as described in lab10 we can move into an overmodulation region to drive in a trapezoidal manner
  • Thank you for the post on the external inductance. I am a little lost on where exactly to put the inductors on the DRV8301-HC-EVM Rev D board. Can you give me a little more insight as to where they should go?

    Regarding the PWM rate if I just keep increasing it will I get an error or indication that i have exceeded the hardware capabilities?

    Thank you again for your help.

    Jesse

  • there is a diagram.

    it has to be between the shunt circuit and the FET

    I don't think you will get any errors reported specifically about the PWM freq

  • Hope ya had a good holiday weekend. I saw the diagram and have been looking at the schematic for the board to figure out where they should go. I am curious if it is possible to place these external inductors on the DRV8301-HC-EVM Rev D board or am I going to need to make my own in order to accomplish this?

    I would really like to understand how to increase my pwm rate as high as possible in order to lower the amount of external inductance (100 kHz would be awesome). Can you provide me more information on how to determine this or how to make sure I am not going to be exceeding the hardware capabilities?

    The motor I am using is a 16 pole (8 pair) approximately .110 ohm phase to phase measured and 10uH phase to phase measured. The target speed is approximately 3000 RPM

    Please let me know if there is any other information I can provide.

    Thanks again

  • increasing the PWM rate is dependent on the driver, FETs, and the MCU (mostly related to interrupt time processor loading).

    I wouldn't use DRV8301 for this high of PWM frequency application. We are about to release a new TI Design for high current applications and we used instead UCC27211D gate drivers with NexFET CSD19506KCS. If you want to use an integrated motor driver I would look at DRV8305 or new DRV832x

    Running 100 KHz PWM would have some things to think about with MotorWare.

    1. you would need to use not only the hardware based PWM_TICKS, but also one of the software ISR_TICKS
    For example you could set
    #define USER_PWM_FREQ_kHz (90.0)
    #define USER_NUM_PWM_TICKS_PER_ISR_TICK (2) // 45 KHz ADC based ISR
    #define USER_NUM_ISR_TICKS_PER_CTRL_TICK (3) // 15 KHz CTRL ISR

    2. this would mean you couldn't use the motor ID feature in you system. Not a huge issue, but be aware. ID the motor using settings that work for ISR_TICKS (1) like the default (45.0), (3), (1)


    Another option is to forgo shunts in your design and just use in-phase current sensors. Then you don't need to worry about low inductance effects as much.
  • How high of PWM would you use the DRV8301 for?

    Any idea on when this new design will be released?

    Are there development modules for the DRV8305 and DRV832x like the DRV8301-HC-EVM? I could not find any but will look more today.

    My goal is to use higher PWM so I can minimize the size of the external inductors. The inductors in my application are really helping to smooth the waveforms before the motor so I can easily measure them and also so I can feed my motor as close to perfect sine wave as possible to be able to achieve highest possible isolated motor performance.
  • I've seen 20 KHz max before. We have used it at 45 KHz but it certainly doesn't perform as good.

    The TIDM-1003 is in the final stages of release, so sometime in June.

    BOOSTXL-DRV8305EVM works with LaunchPads and there is also drv8305q1evm.  Both work with MotorWare.

    Very few applications are actually using external inductors. We were just showing the effect.  Typically if the switching currents are that bad either in-phase current sensors (LEM) are used, or if it's a cost sensitive application a more simple BLDC technique with lower current sampling requirements is used.

  • I was looking at the user.h file for the DRV8305Q1EVM and it says the same thing as the DRV8301 which is :

    //! \brief Defines the Pulse Width Modulation (PWM) frequency, kHz
    //! \brief PWM frequency can be set directly here up to 30 KHz safely (60 KHz MAX in some cases)
    //! \brief For higher PWM frequencies (60 KHz+ typical for low inductance, high current ripple motors) it is recommended to use the ePWM hardware
    //! \brief and adjustable ADC SOC to decimate the ADC conversion done interrupt to the control system, or to use the software Que example.
    //! \brief Otherwise you risk missing interrupts and disrupting the timing of the control state machine

    I am not sure what the ePWM hardware is or how to use it.

    How high of PWM does the DRV8305Q1EVM support?

    Will I be able to use external inductance with the DRV8305Q1EVM?

    Do I need to make a custom board to add the inductors and utilize higher PWM or have people been able to add directly to either board ?

    Thanks again
  • Those comments aren't accurate. They are from the original development with the 90 MHz F2806x series, where 30 KHz PWM and 30 KHz control rates are technically possible, though not practical in a real application.  And they have to do with the overall timing, nothing to do with the driver or even if it should be done in practice.

    The ePWM hardware is the PWM_TICKS mentioned above. It is a HW feature to delay the ADC start of conversion interrupt every 1, 2, or 3 time.

    You would have to consult the DRV8305 datasheet or the Motor Drive forum for max PWM rate.

    I suppose you can, but we haven't done this on any board ourselves. And as I stated it isn't done often in real applications.

  • Ok so couple more questions regarding pwm rate. So you mentioned that you have run up to 100kHz for some machines when I asked how high the board will support without additional hardware but then when I asked how high you would use the 8301 for you said 20khz max but up to 45 with degraded performance.

    I am wondering what hardware was used to accomplish the 100kHz?
    Were you still able to use motorware?
    What do you mean when you say the performance wasn't as good when using 45kHz ?

    Sorry to keep asking about this I am just trying to figure out the best product I can buy from TI that works with motorware that I can operate at above 60kHz preferably 100kHz that I can modify to allow use of external inductors. The external inductor part is sorta a requirement but on the PWM rate it is really just get to as high as possible to minimize inductor size.
  • If my memory is correct this was done on the DRV812-69M-KIT using MotorWare. It was 100 KHz PWM with /3 TICKS = 33.3 KHz control loop. The 90 MHz processor is completely occupied at that rate. It's not practical for an actual product. I would also debate if FOC is the best technique for a motor that requires 100 KHz PWMs....

    For the DRV8301 it doesn't handle higher PWM frequencies as well.

    Why do you think you need an external inductor?
  • I want to use an external inductor to smooth the waveform before the motor so the motor sees as close to a true sine wave as possible. I am trying to build a controller to be able to test maximum efficiency of a motor. I need to feed it sine waves and be able to measure the input to the motor after the controller. The only purpose of increasing the pwm is it enables me to decrease the size of the inductors.
  • you may want to ask over on the Motor Drive forum if there are any limitations. They can recommend the best one. Probably DRV8305

    With MotorWare, if you are using F28069M LP/controlCARD I would make sure
    - when doing motor ID, don't go over 20 KHz for the inner loop decimations
    - don't use any SW decimation when doing motor ID
    - this means you will be limited to 60 KHz PWM, (3), for effective 20 KHz

    Once the motor is ID'd you should be able to go to something like
    - 100 KHz, (2), (2), for effective 25 KHz
  • Thank you Chris for the response this has been helpful.

    Just to clarify when you say "60 KHz PWM, (3), for effective 20 KHz" or "100 KHz, (2), (2), for effective 25 KHz" this means I can set the USER_PWM_FREQ_kHz to 60 or 100 then which ones for the 3 or 2 and 2?

    I am also wondering how I might go about reproducing/editing the DRV8301 EVM board. The design files are provided in controlSuite but I was told they were created using Allegro PCB. Is there any way to edit them without Allegro? I guess I am kinda curious if ya have experience with custom designs. Do people usually edit the existing files or recreate from scratch?

    I saw that the TIDM-1003 has been released and looks to be almost exactly what I need with 2 exceptions. It mentions a max input current of 10A and max output current of 50A but in then in the sections discussing hardware components it seems that the FETs can handle much higher currents. I think basically everything that talked about current ratings listed at least 25A so I curious what determined the 10A input current rating?

    Also listed is an inverter switching frequency, is there a simple way to increase this?

    I understand if the questions on TIDM-1003 should be asked somewhere else, if that is the case please refer me there.

    Thanks again

    Jesse
  • USER_PWM_FREQ_kHz
    USER_NUM_PWM_TICKS_PER_ISR_TICK
    USER_NUM_ISR_TICKS_PER_CTRL_TICK

    "Do people usually edit the existing files or recreate from scratch? "
    It's a mix. Many do start with the design files.

    I'll see if Yanming will answer your questions on the TI Design here.

    "Also listed is an inverter switching frequency, is there a simple way to increase this?"
    Same as we've been discussing above, but I'll let Yanming comment if there is a frequency limitation due to the components selected.
  • 1. The highest pwm frequency can be used which depends on the CPU frequency of MCU, ISR code and Power Module & its driver.
    As Chris discussed with you, there are several parameters need to be set in user.h.
    USER_SYSTEM_FREQ_MHz
    USER_PWM_FREQ_kHz
    USER_NUM_PWM_TICKS_PER_ISR_TICK

    ISR frequency = USER_PWM_FREQ_kHz/USER_NUM_PWM_TICKS_PER_ISR_TICK

    We often recommend ISR frequency is less than 20KHz for 60MHz CPU, and 30KHz for 90MHz CPU, more detail design considerations can be found in section 5 and 8 of InstaSPIN-FOC guide (SPRUHJ1G).

    Most MOSFET and its driver, like DRV8301, DRV8305 and TIDM-1003 hardware can support very high PWM, even up to 200KHz, but the pwm output resolution is very low and CPU interrupt will overflow for the control algorithm can't be executed in time if you set so high pwm frequency.

    2. You have to use the designed s/w to edit the PCB file. As a reference, both BoostXL8031 and BoostXL8305 was designed by Altium AD.

    3. The maximum current have to consider the thermal of PCB board, current shunt resistor, power route. Often, we select the MOSFEF with 1.5~2 times Id of maximum output current, and need a low Rdson for better thermal performance. The maximum input current is calculated from inverter power consumption for 48V DC power supply, and maximum output current is calculated by current shunt resistor and the input range of controller ADC.