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.

Turnigy GliderDrive SK3 motor indentification fail

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

Hi,  

I have 19V power on DRV8301-HC-EVM Rev D with F28069M control card. I am trying to run Turnigy GliderDrive SK3 motor and I have problem with motor identification. During the identification the motor is not spinning smoothly. I tried many Identification Settings and the motor always stops at 46%. I get Status error: EST_State_error.

 Please advise. Any help will be greatly appreciated !

  • 1. you can't use the standard GUI / project www.ti.com/.../motorkitscncd69miso that comes with this kit to ID these low inductance hobby motors
    2. you need to use MotorWare and specifically proj_lab02c to ID this motor using Code Composer Studio
    there is a GUI to make running these projects easier INSTASPINUNIVERSALGUI
    follow
    C:\ti\motorware\motorware_1_01_00_16\docs\guis\universal\qsg_gui_universal.pdf

    you need to update your user.h appropriately per the doc. Let me know if you have questions.

    3. Lastly, this EVM you have has some issues for these types of motors
    a) voltage scaling is much larger than you require for a 19V motors, so resolution isn't as good
    b) the current sense layout isn't ideal so it gets noisy, especially at higher RPM with low inductance motors...also limits the PWM frequency you can use (typically about 18-20 KHz is the highest you can go without seeing more issues). With motors like these you typically want to run 45-60 KHz minimum to help reduce some of the current ripple.

    I haven't looked at your specific motor, but you if it's lower current you would have a bit more luck with using a low cost LAUNCHXL-F28027F or LAUNCHXL-F28069M with BOOSTXL-DRV8301 (24V/10A) or BOOSTXL-DRV8305EVM (42V/15A).

    But give it a try with your hardware first. You should be able to ID and run the motor, just may not get the full performance out of it.
  • Thank you very much for you help and support. I have successfully identified my motor.

    If any one else will try to identify the same motor i have uploaded excel file.

    1321.motorware_selecting_user_variables.xlsx

  • I need your help again.

    I went through Lab 2-3 and updated the motor parameters in user.h. I tried to run at higher rpm (3000) and it started making strange noise.

    Can you direct me to the steps I should take to make motor ready for use.
  • in proj_lab05b you will tune the speed controller

    the default starting values for the speed controller are too stiff for these types of motors with very high currents. a good starting point is usually to divide the Speed Kp and Ki by /10.  The lab write-up for how to tune a speed controller is very confusing...I recommend skipping all the equations and don't try to find a tuning imperically.  instead simply test some steady state and step response speed changes.  Keep Ki constant (/10 from default) and vary Kp until you get a reasonable response for your application.

  • Where can i see step response and speed changes in universal GUI ?
  • unfortunately we don't have datalog/graph data in the MotorWare projects by default. We are planning to release a new lab in the next MotorWare which shows you how to manually test/tune your controllers using the graphing function.

    InstaSPIN_motion proj_lab05f is the only lab which uses any graphing. if it makes sense to you, you can duplicate the approach into proj_lab05b and use the speed signal for the graph.
  • BTW - what are the parameters you ID'd? You can drag/drop the entire user.h into your response if you "Use rich formatting" and I will review
  • Thank you for your help.

    3704.user.h

  • I see some issues.

    1. You are using
    #define USER_PWM_FREQ_kHz (27)

    but also
    #define USER_NUM_PWM_TICKS_PER_ISR_TICK (1)

    so you are running all the controllers at 27 KHz. This is almost using all the MIPS of the 90 MHz F2806x.

    Normally with these types of motors I would suggest running at 45-60 KHz PWM, but the DRV8301 EVM you are using has some issues with running that fast (you can run that fast on the LaunchPad + BoosterPack).

    I would probably limit to
    #define USER_PWM_FREQ_kHz (18.0)
    #define USER_NUM_PWM_TICKS_PER_ISR_TICK (1)

    and then
    #define USER_NUM_CTRL_TICKS_PER_SPEED_TICK (18) // 15 Typical to match PWM, ex: 15KHz PWM, controller, and current loop, 1KHz speed loop
    #define USER_NUM_CTRL_TICKS_PER_TRAJ_TICK (18)

    eventually if you make your own HW I would try using
    (45.0)
    (3)
    (15)

    or
    (60.0)
    (3)
    (20)


    2. you have a very low flux machine so increase this
    #define USER_ZEROSPEEDLIMIT (5.0 / USER_IQ_FULL_SCALE_FREQ_Hz)

    3. You shouldn't have changed this one
    #define USER_MAX_ACCEL_EST_Hzps (5.0)

    everything else looks good