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 current waveform and maximum speed issue.

Other Parts Discussed in Thread: DRV8312, MOTORWARE

Good day.

We faced strange phenomenon when we tested our motor with Lab5b or 10a.

If we try to increase motor speed to 60000rpm, suddenly driver board (DRV8312-69M) suspends its operation. As the result, we cannot achieve 60000rpm.

We observed when shut down occurred, motor driver current waveform is distorted and current amplitude becomes bigger especially motor rotation speed is increasing. So it finally will reach to current limit value then DRV8312 shuts down.

On the other hand, we confirmed DRV8312 outputs “FAULT” signal at that time.

By our analysis,

 (Problem1) Motor driver current amplitude unstable.

 (Problem2) Its waveform shape is distorted.

 But when motor rotation speed is low, it looks so goog...

Regarding waveform and our setting (user.h), Please refer to attachment.

When we increase motor speed, driver current amplitude unstable and will be bigger, so finally reach to limit value then shut down.

 

And we found that if we decrease a controller gain Kp value, this phenomenon will be improved a little. But it is not still enough.

 

Could you give us any advice to improve driver output waveform?

 

Test conditions are below.

 Motor (4 pole pairs. Sensor less type)

  Rs=0.364(Ohm)

  Ls=79.6uH

  Ke=1.9mV/Hz 

(We got these values from actual measurement and correct based on calculation method written in user’s manual “SPRUHJ1D”. So we believe these are true.)

 

 Kit: DRV8312-69M-KIT

 (Original condition and modified condition. We changed C50, C55 and C50 from 0.047uF to 0.022uF. At the same time, we changed USER_VOLTAGE_FILTER_POLE_Hz from 714Hz to 1523Hz.)

 Power supply voltage: 24V

 Target speed: 60000rpm

 CCS version: CCS 5.5.0.00077

 Motorware version: 12

 Compiler version: 6.2.6

 

Best regards.

3666.waveform.pdf

5808.user.h

  • the issue is that you have a 4 KHz motor!!

    I see you took as many steps as possible to try to solve this.

    You set max Frequency to 2000 Hz, which will allow you to command NEARLY 4 KHz (but not quite).
    With frequencies of 4 KHz you would need your current controller to run close to 40 KHz, you have it at 30 KHz, with 30 KHz FAST estimator, which is probably loading your CPU 100%.  You can use the FEM module to check the CPU usage, but I would guess you may be overflowing your interrupt.

    You moved your voltage filter very high, but it certainly is more prone to drift...I'm curious if your Flux measurement are stable across the speed range?  I would guess they are increasing or decreasing substantially at higher speeds.

    The 90 KHz PWM is also very high, and on this board is certainly leading to some poor current samples at higher modulations. 

     

    With all of these things added together, In my opinion it will be nearly impossible to run this motor with InstaSPIN-FOC on a 90 MHz device. You would need to run the control system faster.

  • Dear Chris.

    Thank you for your reply

    We understood what you say.

    To achieve 60000rpm, we have to take any countermeasure.

    By the way, may we know how the maximum speed with our condition is?

    Is maximum speed 50000rpm or 55000rpm?

    We want to know the reasonable maximum speed with our current setting

    And if we used 2poles pair (4 poles), can we achieve 60000rpm?

     

    Your cooperation is highly appreciated.

  • Junji Takiguchi said:

    By the way, may we know how the maximum speed with our condition is?

    Very hard to say....best case I'd venture around 45-50 KRPM.

    Junji Takiguchi said:

    And if we used 2poles pair (4 poles), can we achieve 60000rpm?

    YES!  A 2KHz motor is on the high side of reasonable.  60 KHz PWM, 20 KHz current, 10-20 KHz estimator for the 90 MHz F2806x will allow this for sure with good HW design.

     

  • 3157.user.h4807.motorware_selecting_user_variables_v2p0 53,000rpm PWM60kHz TIC=2.xlsx

    Dear Chris.

    Thank you for useful informations.

     

    Let us raise 8 poles (4 pairs) motor maximum speed issue again.

    We set parameters in user.h as attached.

    In this setting, we set “USER_VOLTAGE_FILTER_POLE_Hz” as 2000Hz.

    But latest our target speed is 53000rpm, so calculation result will be 3533Hz.

     (53000rpm*4/60=3533Hz)

    But if we input this value in check sheet, false will appear in EST rate column.

    So we had to reduce it from 3533Hz to 2000Hz.  

     

    Question.

    1)    Filter pole setting 2000Hz is acceptable?

    Even if it’s OK or not, please let us know its reason.

    2)    What is the purpose this filter?

     Would you teach us its purpose? We have checked user's manual, but it is still unclear.

     

    I attached our excel check sheet and user.h.

    Many thanks!

     

  • Junji Takiguchi said:
    In this setting, we set “USER_VOLTAGE_FILTER_POLE_Hz” as 2000Hz.

    You can not change this value unless you actually change the pole location of the phase voltage HW filters.  This filter is used to filter out high frequency PWM switching and allow us to compensate for the filter in software inside the FAST library.  Because capacitors can drift, at higher frequencies the filter will not behave as well as it should. We would recommend limiting this to < 600 Hz.  The lower the better, but you can only set your IQ_FREQUENCY to a value <= 4 * USER_VOLTAGE_FILTER_POLE_Hz....one of the reasons I once again say that your motor is not a good candidate for InstaSPIN-FOC (and probably not any closed loop current control solution, especially with a 90 MHz processor and very low inductance motor).

    My recommendation to use InstaSPIN-FOC would be to reduce the number of pole pairs in your motor design in an effort to keep the maximum frequency < 2000.

     

  • Dear Chris.

    I have some questions about this filter setting.

    I would like to know how to decide a value of “USER_VOLTAGE_FILTER_POLE_Hz”  in user.h and hard ware.

    As my understanding, this filter must eliminate PWB frequency element, but need to pass a signal that necessary to feedback. So we do not need to set it too high and up to PWB frequency a little.

    ( Now we are trying to use 60 kHz PWB frequency due to CPU load.)

    I know that way is not only one because motor user’s purposes are different.

    Some user needs a stability of motor rotation speed; another customer requires motor to follow speed changing order.

    But I need some clue to fix filter pole frequency. On the other hand, a formula written in User’s manual brings a too high result value as you know.

    So please let me know some examples how to fix this value.

    And is there any good way to evaluate filter characteristic is OK or not?

    After fix the value, we have to confirm that setting is good or no good.

    Please advice.

     

  • for 60 kHz I would say a maximum filter pole of 2 kHz. That would be low enough to filter PWM frequency (30 times lower than PWM frequency) and high enough to allow 4 kHz of electrical frequency to pass by the filter.

    I would like to try this myself, so I need some time to modify the hardware to have a 2 kHz frequency filter.

    -Jorge