I'm trying to control a system where the controller sample rate is physically fixed and the plant has significant dynamics on the same order as the sample rate. I understand that one would prefer to have the sample rate considerably faster than the plant dynamics, but the physics of this system are such that this is inherently impossible. I can get some control of the system by hand-tuning a PID, but it seems considerably sub-optimal.

Is there a strategy for developing a controller like this?

Edit: I should add that the plant is this situation is a relatively complex LTI plant with reverberations caused by pure time delays. The delay cycles are a bit slower than the Nyquist frequency. The plant is stable.

  • $\begingroup$ not a good one. if you have significant content above Nyquist, i think you might be screwed. $\endgroup$ – robert bristow-johnson Jun 21 '16 at 23:50
  • $\begingroup$ Do you have a model for the plant dynamics? $\endgroup$ – datageist Jun 22 '16 at 0:26
  • $\begingroup$ Would a low-pass-filter of sufficient order be able to suppress those dynamics? $\endgroup$ – fibonatic Jun 22 '16 at 11:15
  • $\begingroup$ Robert: There is some content above Nyquist, but the main dynamics I hope to address are between 0.1 and 0.5 Fs. $\endgroup$ – tkw954 Jun 23 '16 at 15:00
  • $\begingroup$ datageist: I have a model. It's a relatively complex linear system with reverberations due to pure time delays. The delay cycles are a bit slower than the Nyquist frequency. $\endgroup$ – tkw954 Jun 23 '16 at 15:03

Depending on your plant you might be able to do something. If the plant is unstable, but dominantly linear, you should be able to get a very accurate model using exact discretization (zero-order hold). Either you will be able to stabilize your plant using PID, or PID will be of too low order, in which case you need to switch to a control law matching you plant order. The H-infinity synthesis framework (robust control) will do that for you. Here you can also include uncertainty weights to limit control law gain, which might help esp. if your system is not linear. Depending on the uncertainty you might not be able to find a feasible control law for stabilization, however...

If your plant is stable, or stabilizable, you can further improve performance using feed-forward control. Here the sampling time should not be of much concern, and you can use something like zero phase error tracking.

  • $\begingroup$ There is no such thing as exact discretization and zero-order hold is one of the worst you can do in terms of stability. $\endgroup$ – percusse Dec 21 '16 at 2:39
  • $\begingroup$ @percusse: how come it works in every single lab set-up I've ever done then? $\endgroup$ – Arnfinn Dec 22 '16 at 4:07
  • $\begingroup$ Because you are not close to their sampling frequency. $\endgroup$ – percusse Dec 22 '16 at 4:27
  • $\begingroup$ @percusse: but I have been, still works $\endgroup$ – Arnfinn Dec 22 '16 at 4:28
  • $\begingroup$ It cannot always work. It has no stability invariance properties and we spend at least 10 percent of our work in each project discretization of controllers. You can find examples of instabilities induced by discretizations with a google search $\endgroup$ – percusse Dec 22 '16 at 4:30

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.