Question

When I try to use the SISOtool in matlab, it gives me this equation for the PID controller

0.056301 * (1+1000s)
           s(1+4.2s)

This means that the equation comes out to something with an S^2 in the denominator. Which is not the equation for a PID.

I don't understand what to do with that. Does that mean that a PID does not exist for this system?

Was it helpful?

Solution

Does that mean that a PID does not exist for this system?

No, it doesn't.

Textbooks introduce the transfer function of a PID controller using expressions like

C(s) = Kp + Ki/s + Kd*s

for simplicity and to emphasise the conceptual aspects. However, a pure differentiation is rarely a useful term. You can see that both in the time and the frequency domain. As s increases, the last term above increases without bound. In the time domain, the last term will differentiate not only useful signals, but also any noise in the input of the PID controller. Now recall what happens when you differentiate a sin or a cos: you get the frequency at the front as a coefficient. Anyway, these are two aspects of the same phenomenon. So, the next step to start designing a more practical PID is to replace the term Kd*s with a filter of the form

Kd*A*s/(s+A)

If you sum the terms in C(s) with this filter substituted for Kd*s you will get an s^2 in the denominator.

The control toolbox in MatLab is quite developed (at least for linear systems). I wouldn't dismiss quickly the results it gives. On the other hand, it is good to scrutinise them.

OTHER TIPS

You can see the expression for your PID controller by exporting the designed controller to MATLAB and then doing pid(controller)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top