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.

BLDC Position Control Reference Design

Other Parts Discussed in Thread: TMDSCNCD28054MISO, MOTORWARE

I am looking for a TI reference design for driving a 3 phase BLDC linear actuator with encoder.  This is position control. 

The Insta-SPIN and Insta-FOC GUI does not show position control.

I currently have the DRV8301LS31-kit and a F22027 driver board.

  • Hi Alan

    Position control with encoder is usually refer to the high level system control. Our motor control algorithms are more focused on the lower level such as current(torque) and speed control. Given the lower level controls are well tuned, it will be much easier to apply position control with MAX efficiency and dynamic response. Generally, most of the position control with encoder can be done with standard P or PI or PID control. You can do some search on the websites, there will be lots of related resources. 

    Also, since our C2000 serials have the QEP module designed to dealing with the encoder inputs, I think you can get usefull info on the C2000 forum.

    http://e2e.ti.com/support/microcontrollers/c2000/f/171.aspx

    Best regards,

  • Alan,

    The TI reference design that implements position control is featured in InstaSPIN-MOTION.  This reference design is not available for the F28027 microcontroller.  It is available for the TMS320F2805xM and TMS320F2806xM devices.  You can buy ControlCards for these parts to use with your motor driver board.  I've added the part numbers below:

    TMDSCNCD28054MISO

    TMDSCNCD28069MISO

  • Adam,
    I have received the TMDSCNCD28069MISO and installed it to the DRV8301-LS31 kit. The motor identification loop is impressive.
    Is InstaSPIN Motion a sensored feedback application? If not, is there a version available that uses the QEP incremental sensor?

    In my linear actuator, the amount of travel is only a distance of 40 pole pairs. Can the SpinTAC "Estimate Motor Inertia" be accomplished in that distance?

    If I set the Motion Profiler to a very low Target Speed, the motor does not spin. It only jerks every once and awhile. Is that due to sensorless operation? It can not figure out where the rotor position is?

    I need to drive multiple motors that move a common shuttle. Have you demonstrated that with your software?
    Thanks
    Alan
  • download MotorWare and work through the InstaSPIN-FOC labs to understand the overall control system, motor ID, OffSet calibration, Rs calibration, and motor tuning. Then work through the InstaSPIN-MOTION labs to understand inertia/friction ID, how to tune the SpinTAC controller, and adding a QEP for velocity or postion+velocity applications.

    Multiple Motors:
    Both the F2805x and 6x devices support dual instantiation of the control systems, meaning you can drive two motors (assuming you have enough ADC chs / other GPIO/peripherals and MIPS for the control frequencies required). However, we have not released a software example yet that shows how to do this (it works, we have customer in production driving two motors, but it is somewhat complex and we need to make a clean example for broad release; we hope to do this in mid-2015).
  • Alan,

    InstaSPIN-MOTION works with:

    • Sensorless Velocity Control
    • Sensored Velocity Control
    • Sensored Position Control

    The example code for sensored position control makes use of a QEP sensor.

    The SpinTAC Inertia Estimation is an open loop inertia estimation algorithm.  So while it can't guarantee that it can complete the inertia estimation in that distance, I have customers who are able to complete the inertia estimation in less than 1 revolution of the motor.  In order to do that you need to reduce the goal speed and decrease the ramp time.  This will complete the inertia identification faster.

    The is correct, in order to spin at slow speeds you will need to make use of a sensor.  Also make sure that the bandwidth of the speed/position controller is tuned high enough.  If you don't increase the gain of the controller you won't be able to hold speed as tightly.