I have a system where y = 1/x. (y=output, x=input) If I calculate the PID error not by reading y, but by reading 1/y (so linearizing the system), will my system be nicely linearized, and the PID working better?
$\begingroup$
$\endgroup$
7
-
1$\begingroup$ Does the system have any states ? Or is it fully described by the relation $y=1/x$ ? If so, why is a PID controller being used to control it ? $\endgroup$– AJNNov 15, 2021 at 14:42
-
$\begingroup$ Very close. If the plant has a 1/x nonlinearity, don't do 1/x to the error, do it to the output of your controller block (i.e. "compensator") which is generating the input to your plant. Obviously there will be issues for small values of x, as it approaches 0, so you may want to deviate from the 1/x function and limit it at some point. $\endgroup$– Pete WNov 15, 2021 at 14:59
-
$\begingroup$ @AJN It's actually a heat exchanger where in my case: P = cm°∆T. I'm controlling ∆T with m° (mass flow). I could fit a nice 1/x on my measured points, so I'm guessing it describes my system well. PID is used just to demomstrate how a PID controller works. $\endgroup$– Asdasd34Nov 15, 2021 at 15:28
-
$\begingroup$ @Pete W I get it now so thank you a lot, but then how can I determine an accurate FOPDT model from data? Because if I get it right, my system still acts different in every x-y pair. Do I just measure step response from x=0% to x=100%? $\endgroup$– Asdasd34Nov 15, 2021 at 15:36
-
$\begingroup$ Depends if you need your tuning to cover a wide range or not. For a narrower range, a local linearization can be used. So instead of y=a/x, it's y=ax+b, thus useful only in a limited range. But much simpler, since PID is used essentially with no modification. Temp controller auto tune usually does a smaller test step, like 10-20% of output, and this is one of the reasons. (the other is to keep from hitting various limits, and to get it done faster). $\endgroup$– Pete WNov 15, 2021 at 15:40
|
Show 2 more comments