I'm in charge of a module to control the smoothness with which a platform should move; the platform already implements a closed-loop control on its own but this firmware is closed and I do not have access to source code. It is therefore requested that a closed loop control should implemented on top of that PID, in a superior layer, above a module that already implements a closed loop control, so i have several question:

  1. It's conceptually correct implement a PID control in an upper layer to closed loop control that implements it?
  2. What features may be loose in the lower close loop?
  3. Maybe loop control closed negatively be influenced by the PID that implements the top layer?
  4. Estimate The angular speed, yaw and pitch, based on the position of the motors using Kalman filters can generate values too far from the actual values reported

It is not uncommon to have nested (or hierarchical) control loops in a controller.

Usually the two different loops control two different variables, not the same one. Furthermore, it is assumed that the inner loop is faster then the outer one. If you write the differential equation of the plant, you can easily understand why:

$$ \dot{x} = f(x, \xi)$$ $$ \dot{\xi} = g(x, \xi, u)$$

You have the control $u$ which (directly) influences only the evolution of $\xi$ but you want to control $x$; you can think of designing a two-loop control system: an outer loop controlling $x$ and a second (inner) loop controlling $\xi$. The assumption here is that $\xi$ will converge to the desired value faster than $x$.

This should answer your 1,2,3) questions. About the 4th one, it probably depends on how you implemented the Kalman Filter.


Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.