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.

TIDA-010056: Control mode used at start-up

Part Number: MSP430FR2355
Other Parts Discussed in Thread: TIDA-010056, DRV8350

Tool/software: Code Composer Studio

For TIDA-010056 application code whether both open loop control and closed loop control is implemented, for initial start up which type of control has been used.

  • Hello,

    Based on the Trapezoidal Control of BLDC Motors Using Hall Effect Sensors app note, open loop control is used at startup and then switched to closed loop control after picking up speed.

    Regards,

    James

  • 1) How to implement open loop and closed loop control, how to ensure smooth transition between open loop to closed loop.

    2) With reference to TIDA-010056 application board whether  torque vs speed graph is available for 1KW motor.Please provide.

    3) In the application code TIDA-010056 which line  Closed loop control is implemented.Can you provide the details how to transition from Open loop to closed loop.

    4) In the code whether both speed PI and Current PI loop is implemented. To get more stall torque Is it required to implement both PI.

  • Hello Elavarasan,

    I noticed that you're asking a lot about commutation and algorithm design theory rather than "how can the DRV83x or MSPx enable the algorithm I'm trying to create". Algorithm creation is not trivial and companies spend a lot of money on software and firmware teams to develop an algorithm based on specifications and then figure out if the processor or controller and motor driver that can support the performance they're looking for.

    As such, the reference code for the TIDA-010056, which is provided on the page (and you can download the code and look at it in the CCS environment) is rudimentary. We expect the customer to come up with their own code and methodology for their own algorithms. TI does develop their own algorithms so I can give you some very basic guidance, but most of the development will have to come sources other than TI.   

    Now, onto your questions.

    1) How to implement open loop and closed loop control, how to ensure smooth transition between open loop to closed loop. 3) In the application code TIDA-010056 which line  Closed loop control is implemented. Can you provide the details how to transition from Open loop to closed loop.

    Open loop is a concept only needed with sensorless commutation (and less than ideal sensored algorithms, such as 1 Hall sensor operation), as information about the motor's "rough" position, isn't reliable until there is higher Back EMF voltage. This code is tailored to hall sensors sensored with a optional code to replaced the hall sensors with the comparators on the MSP to measure BEMF zero crossing. As such, open loop would still need to be implemented in this code.

    A smooth transition could mean a lot of things. Again, the goal is to get info about the BEMF or hall sensors to figure out some "rough" idea where the rotor is. So once some threshold of confidence about the position of the rotor, then the commutation can more highly depend on the sources. Because sensored uses direct sensing, we can achieve this basic level of closed loop instantly. So, blind commutation would be needed for sensorless as BEMF needs to get to a sufficient level that a controller would be able to sense.

    In the more advanced topic of closed loop refers to 4) as using the speed and current as feedback (as opposed to just zero crossing transitions) can give a lot more control the hands of the user.

    2) With reference to TIDA-010056 application board whether  torque vs speed graph is available for 1KW motor.Please provide.

    The torque vs speed graph is not available for this design as testing that criteria was not defined during testing.

    In your own set up, that will depend on how you implement the commutation. We used a basic 6 step trapezoidal. There's plenty of sources how do this within TI and outside. There's also plenty of commutation papers on more complex algorithms such as sinusoidal commutation or Field Oriented Control, you'll need to do some research on what is good.

    4) In the code whether both speed PI and Current PI loop is implemented. To get more stall torque Is it required to implement both PI.

    The code does not implement either PI loop in either case.

    It uses simple "speed loop" by looking at current speed and target speed and increasing the speed linearly if the current speed and target speed do not match. As I'm sure you know, this is prone to oscillations or overshoot which can be helped by creating a PI loop and adjusting the Ki and Pi coefficents. Again, there are plenty of resources on this theory outside of TI, unfortunately, you'll have to do some research.

    Closing thoughts:

    We are best equipped to answer questions about the devices specifically used in the reference design, not necessarily the theory behind good commutation and motor spinning algorithms, unless TI is the one that made the algorithm. If you have any questions about how your algorithm interacts with the algorithm you've made, we can definitely help more concretely.

    An example would be, I want dead time between the high side and low side FETs, but the DRV8350 already has this feature, can I still implement dead time in addition to the device?

    Best,

    -Cole

  • Thanks for your reply, Highly appreciated for the useful information.

**Attention** This is a public forum