I'm looking to design a cascaded controller to transform a BLDC into a servomotor. The system has a motor current controller in the inner loop, which is controlled by a torque controller, which is controlled by a an angular speed controller, which is controlled by a position controller.

The system is extremely dynamic and I'm looking at position settlement times smaller than 0.02 s, so the time constants of the inner loops are much faster than this.

I'm fairly new to controller design, so I'm looking at which control techniques I should use. I came across many techniques and don't know which one I should prioritize, in order to guide my learning process.

At first I thought about classical techniques such as a PID controller designed by Root Locus and Frequency Response techniques. Do you think these will be enough? If so, which technique would be better for this application and why? Should I consider state-space instead?

Are these techniques appropriate, or I should resort to other modern techniques such as fuzzy logic, optimal control, predictive model control, etc?

  • $\begingroup$ fairly new to controller design and already decided how to nest various control loops and sensors? I suggest you first figure out what you want done in the edge cases- movements from distant, nearby positions, when there is insufficient power to move as fast as you wish and when movement can't help but overshoot. Think control algorithms after you figure out what you want/need. $\endgroup$
    – Abel
    Dec 28, 2021 at 8:53
  • $\begingroup$ I need more information about the models. $\endgroup$
    – John Knox
    Jul 2 at 23:32
  • $\begingroup$ Cascaded PI controllers usually get you quite far in these kinds of applications. Feedforward to each internal input is usually crucial for good servo performance. $\endgroup$ Jul 3 at 20:12


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.