Skip to main content

Stack Exchange Network

Stack Exchange network consists of 183 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.

Visit Stack Exchange
Asked
Modified 2 months ago
Viewed 58 times
1
\$\begingroup\$

Is my intention to do SPWM on BLDC using 32bit MCU with 6PWM. To do this I will be using 512 point sine LTU. I already do this by just feeding the PWM outputs of the MCU and I'm able to move the BLDC without any problems. But this is done in open loop, so my question is regarding close loop. As I understand If I wanna close the loop by sensing Bemf I will need to put the sine wave in phase with the Bemf. I need to implement a PLL between the sine wave and the Bemf and then accordinng to the difference update the PWM (incrementing or decrementing the position of the pointer to the LTU).

My questions are:

  1. How do I perform this PLL in code?

  2. In a close loop do I need to send the duty cycle to the motor like in the commutation control? Sense Bemf, PLL and send duty cicle to PWM, sense again bemf...and so on? Open loop is not a problem to do, but close the loop sensing the Bemf and how to do that inn code without example code is difficult. Is there a reference to read about SPWM? I know that most people use FOC, but first I wanna understand SPWM close loop.

\$\endgroup\$

1 Answer 1

1
\$\begingroup\$

Try not to reinvent warm water. You have two common approaches:

  1. Six step commutation technique- the output current is trapezoidal. Only two coils are powered in the same time, the third acts as sensor to detect magnetic pole crossing (zero cross detector). With a current sensor you do close the loop for the PWM current control, while zero cross detector changes commutation sequence.
  2. Field oriented control (FOC). The BEMF is sensed at very precise timing interval - many authors use different types, some of them are even patented. All three phases are continuously fed - the output current is sinusoidal.
\$\endgroup\$

Your Answer

Post as a guest

Required, but never shown

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.

Morty Proxy This is a proxified and sanitized view of the page, visit original site.