Forums

PID autotuning - not working for heating application

Started by Frank W. November 5, 2009
On Nov 10, 2:59=A0pm, Tim Wescott <t...@seemywebsite.com> wrote:
> Speaking of overkill, why not just use an on-off thermostat with some > hysteresis?
Good idea, then there are no gains to tweak so coffee can be made right away and the coffee drinking can begin. How accurate must the temperature control be on a coffee maker and who would be able to tell the difference between 85 and 86 degrees C? 85-86 degrees seems to be a few degrees too low unless Frank W knows something the rest of the world doesn't. Peter Nachtwey
pnachtwey" <pnachtwey@gmail.com> wrote:

> unless Frank W knows something the rest of the world doesn't
Don't speak for the rest of the world if you are an ignoramus. - With a thermostat, temperature swings are far more pronounced than you claim. It's not just two degrees: The PID has reduced temperature swings of ~15 degree Celsius with the original thermostat to nearly nothing. Such variations had a noticeable influence on taste (cold = sour). Here's a PID-vs-thermostat temperature plot for a different, slightly higher-end 500$ home coffee machine which has even bigger 23.9C swings: http://www.espressoparts.com/espressoparts/content/graphics/pagebuilder/pidsd3c_silvia_tempplot.jpg - An equally important benefit is that with a PID instead of a thermostat, the PV is adjustable. Different beans/roasts call for different brew temperature - roughly between 85 and 99 degree Celsius.
> Here's a >PID-vs-thermostat temperature plot for a different, slightly higher-end
500$
>home coffee machine which has even bigger 23.9C swings: >http://www.espressoparts.com/espressoparts/content/graphics/pagebuilder/pidsd3c_silvia_tempplot.jpg >- An equally important benefit is that with a PID instead of a
thermostat,
>the PV is adjustable. Different beans/roasts call for different brew >temperature - roughly between 85 and 99 degree Celsius >
Just for interest, is the boiler pressurised? I saw that the graph show temepratures higher than 100 deg C. and wondered how they were achieved. --------------------------------------- This message was sent using the comp.arch.embedded web interface on http://www.EmbeddedRelated.com
On Nov 11, 12:54=A0am, "Frank W." <frankw_use...@mailinator.com> wrote:
> pnachtwey" <pnacht...@gmail.com> wrote: > > unless Frank W knows something the rest of the world doesn't > > Don't speak for the rest of the world if you are an ignoramus.
You have pissed me off. I searched the internet, the rest of the world, to find the correct brewing temperature and normal limits which apparently you don't know and know one else has bothered to do. DON'T YOU THINK THAT IS IMPORTANT???? I see have wasted my time. Peter Nachtwey
On Wed, 11 Nov 2009 09:54:22 +0100, Frank W. wrote:

> pnachtwey" <pnachtwey@gmail.com> wrote: > >> unless Frank W knows something the rest of the world doesn't > > Don't speak for the rest of the world if you are an ignoramus.
Actually Peter is one of those "control experts" that you were looking for. If anything he can claim more pertinent experience at this stuff than me -- and if a potential customer came to me with a problem that seemed to be in his bailiwick I wouldn't hesitate* to send them his way. Control problems seem to attract overly complicated solutions; so one of the things a responsible control engineer always needs to do is to ask "is there some bone-head simple way to do this that will be adequate".
> - With a thermostat, temperature swings are far more pronounced than you > claim. It's not just two degrees: The PID has reduced temperature swings > of ~15 degree Celsius with the original thermostat to nearly nothing. > Such variations had a noticeable influence on taste (cold = sour). > Here's a PID-vs-thermostat temperature plot for a different, slightly > higher-end 500$ home coffee machine which has even bigger 23.9C swings: > http://www.espressoparts.com/espressoparts/content/graphics/pagebuilder/
pidsd3c_silvia_tempplot.jpg
> - An equally important benefit is that with a PID instead of a > thermostat, the PV is adjustable. Different beans/roasts call for > different brew temperature - roughly between 85 and 99 degree Celsius.
Not to say that you aren't right in the end, but there are thermostats and there are thermostats. Design your software for relay control, keep the hysteresis low and the setpoint adjustable, and you may find that a swing of a degree or two is quite achievable. I don't know if it would be adequate, but you can do a heck of a lot better than a $0.1 snap- action bit of bimetal and a switch. Of course, if "PID control" has become a sales point, then you'd better have it in there. * I may do so wistfully if work were slow, but I'd still do it. -- www.wescottdesign.com
On Nov 10, 11:54=A0am, Tim Wescott <t...@seemywebsite.com> wrote:
> On Tue, 10 Nov 2009 11:54:36 -0500, Datesfat Chicks wrote: > > "Frank W." <frankw_use...@mailinator.com> wrote in message > >news:7lggquF3dt584U1@mid.dfncis.de... > > >> Since all PID temperature controllers have Autotune, there must be a > >> solution for this problem. Any ideas? > > > As you probably know from control theory, the basic theory of a PID > > controller is that you have a system described by a set of linear > > differential equations that is inherently unstable or has some > > performance problems. =A0As a result you strap a PID controller onto it > > (with said controller also described by its own linear differential > > equations), and the resulting system (now described by linear > > differential equations which are a mathematical mix of the underlying > > system and the PID controller) has better characteristics. > > > Did you notice that there is a word that appears many times in my > > description above? > > > Want to guess what the word is? > > > That word is "linear". > > > A system with a time delay is not described by linear differential > > equations. =A0Strapping a PID controller onto it is bad math. > > > One of the more classic examples is a shower or an industrial process > > that mixes fluids of varying temperature and the sensor is located > > substantially downstream from the mixing value. =A0This is a pure time > > delay. =A0My shower at home is like that. =A0I turn the water a little > > hotter. =A0Nothing happens. =A0I turn it a little more hotter. =A0Nothi=
ng
> > happens. =A0Then I turn it a little more hotter. =A0Then the wave of ho=
t
> > liquid hits me and I scream in agony. > > > Over time, I've adapted to my shower. =A0I don't burn myself anymore. > > > I think the control algorithms you want to use for a system like yours > > fall outside the range of PID. =A0I'm sure there is a body of theory th=
at
> > covers it, but I don't know what that is. > > > I would heat the system full bore for a fixed period of time, then stop > > and wait to see how the temperature catches up. =A0And work from there. > > > The best control strategy for that system isn't going to be PID. =A0Tha=
t
> > is a non-linear system. > > I've been resisting forking this over into the control newsgroup: now > it's compelling. > > Systems with delay can be perfectly linear, as well as time invariant -- > they just can't be described by ordinary differential equations with a > finite number of states. > > To be linear, a system only needs to satisfy the superposition property. =
=A0
> A delay element satisfies superposition just fine. > > And while a PID controller may not be the theoretically best controller > for a system with delay, in many cases it's not a bad choice at all. =A0P=
ID
> controllers can and will give perfectly satisfactory service with plants > that have significant delay. =A0The thousands, if not millions, of PID > controllers in mills and factories around the world that are controlling > plants whose responses are dominated by delay certainly belie any > declaration that the PID controller isn't a good choice to control a > plant with delay. > > None of the above is intended to minimize the difficulty in analyzing and > designing a truly optimal controller for a plant with pure delay -- > that's an exercise that can make your brain hurt, and fast. =A0And nothin=
g
> of the above is intended to chase you away from taking plant delays more > directly into account if a discrete-state controller such as a PID won't > let you eke the performance that you need out of your plant. =A0 > > But in the absence of significant nonlinearities or time varying behavior > you can use all the analysis tools that are suitable for linear time > invariant systems on a system with delays just fine. =A0You can do good > design work, without ever having to explicitly write out the differential > equations, much less solving them. > > So if you don't want to get lost in Mathemagic Land searching for > performance that isn't necessary for your product's success, a good ol' > PID controller may be exactly the optimal controller -- in terms of > adequate performance and reasonable engineering time -- even if it > doesn't satisfy any egghead academic measure of "optimal" for the > particular plant you're trying to control. > > --www.wescottdesign.com
I have recently done a thermal MIMO PID controller that ended up preforming adequately despite using very simple controls. Some comments: Even the simplest differential description ends up with an infinite number of state/poles. Most real thermal systems have little tabs and things that foul up theoretical analysis. Therefore: you can start with simple mathematical models to estimate requirements but you always end up with approximations. Pole zero analysis in this case is almost worthless except to roughly get started. Bode and/or Nichol's chart analysis (I used both) works very well; but .. You have to get and use the experimental data. You can use that directly or find a sufficiently good model for the system. You should establish a "process" for the tuning and experiments; the system you take the data on will undoubtedly not be the one that ends up being manufactured. Gotcha's: Scilab's system identification processes are unstable dealing with this type of system. They can be used to attempt modelling but tread carefully and double check. When taking the data, the room/environmental temperature will do everything it can to confound the experiment. Don't worry about the lower frequencies, go to where the phase starts to shift significantly. For the Bode/Nichols derived compensation just redo the experiment (which you probably will) to clarify the standard compensation region round the Bode criterion; 180 degrees +- one or two decades. Try to give at least hints to how the tuning was done for the "outsourced" maintenance people who have to maintain the tuning after the mechanical assembly is altered; unless you want to come back and start over yourself in a year. Really, really examine the code to make sure you don't "windup". I was forced to rely on programmers in another group and I had study the experimental results for a while to realize that the anti-windup code just clipped the output not the integrator. Ray
"RockyG" <RobertGush@gmail.com> wrote:

> Just for interest, is the boiler pressurised? I saw that the graph show > temepratures higher than 100 deg C
The boiler of the Rancilio machine, which uses an internal, immersed heating element, is pressurized. But not all are. For example the boiler of a Gaggia Coffee, which uses external heating elements, possesses a steam exhaust tube for pressure relief which is closed (well, almost) by a ball floating before a hole during shots only.
On Nov 11, 10:18=A0am, RRogers <rerog...@plaidheron.com> wrote:
> On Nov 10, 11:54=A0am, Tim Wescott <t...@seemywebsite.com> wrote: > > > > > > > On Tue, 10 Nov 2009 11:54:36 -0500, Datesfat Chicks wrote: > > > "Frank W." <frankw_use...@mailinator.com> wrote in message > > >news:7lggquF3dt584U1@mid.dfncis.de... > > > >> Since all PID temperature controllers have Autotune, there must be a > > >> solution for this problem. Any ideas? > > > > As you probably know from control theory, the basic theory of a PID > > > controller is that you have a system described by a set of linear > > > differential equations that is inherently unstable or has some > > > performance problems. =A0As a result you strap a PID controller onto =
it
> > > (with said controller also described by its own linear differential > > > equations), and the resulting system (now described by linear > > > differential equations which are a mathematical mix of the underlying > > > system and the PID controller) has better characteristics. > > > > Did you notice that there is a word that appears many times in my > > > description above? > > > > Want to guess what the word is? > > > > That word is "linear". > > > > A system with a time delay is not described by linear differential > > > equations. =A0Strapping a PID controller onto it is bad math. > > > > One of the more classic examples is a shower or an industrial process > > > that mixes fluids of varying temperature and the sensor is located > > > substantially downstream from the mixing value. =A0This is a pure tim=
e
> > > delay. =A0My shower at home is like that. =A0I turn the water a littl=
e
> > > hotter. =A0Nothing happens. =A0I turn it a little more hotter. =A0Not=
hing
> > > happens. =A0Then I turn it a little more hotter. =A0Then the wave of =
hot
> > > liquid hits me and I scream in agony. > > > > Over time, I've adapted to my shower. =A0I don't burn myself anymore. > > > > I think the control algorithms you want to use for a system like your=
s
> > > fall outside the range of PID. =A0I'm sure there is a body of theory =
that
> > > covers it, but I don't know what that is. > > > > I would heat the system full bore for a fixed period of time, then st=
op
> > > and wait to see how the temperature catches up. =A0And work from ther=
e.
> > > > The best control strategy for that system isn't going to be PID. =A0T=
hat
> > > is a non-linear system. > > > I've been resisting forking this over into the control newsgroup: now > > it's compelling. > > > Systems with delay can be perfectly linear, as well as time invariant -=
-
> > they just can't be described by ordinary differential equations with a > > finite number of states. > > > To be linear, a system only needs to satisfy the superposition property=
. =A0
> > A delay element satisfies superposition just fine. > > > And while a PID controller may not be the theoretically best controller > > for a system with delay, in many cases it's not a bad choice at all. =
=A0PID
> > controllers can and will give perfectly satisfactory service with plant=
s
> > that have significant delay. =A0The thousands, if not millions, of PID > > controllers in mills and factories around the world that are controllin=
g
> > plants whose responses are dominated by delay certainly belie any > > declaration that the PID controller isn't a good choice to control a > > plant with delay. > > > None of the above is intended to minimize the difficulty in analyzing a=
nd
> > designing a truly optimal controller for a plant with pure delay -- > > that's an exercise that can make your brain hurt, and fast. =A0And noth=
ing
> > of the above is intended to chase you away from taking plant delays mor=
e
> > directly into account if a discrete-state controller such as a PID won'=
t
> > let you eke the performance that you need out of your plant. =A0 > > > But in the absence of significant nonlinearities or time varying behavi=
or
> > you can use all the analysis tools that are suitable for linear time > > invariant systems on a system with delays just fine. =A0You can do good > > design work, without ever having to explicitly write out the differenti=
al
> > equations, much less solving them. > > > So if you don't want to get lost in Mathemagic Land searching for > > performance that isn't necessary for your product's success, a good ol' > > PID controller may be exactly the optimal controller -- in terms of > > adequate performance and reasonable engineering time -- even if it > > doesn't satisfy any egghead academic measure of "optimal" for the > > particular plant you're trying to control. > > > --www.wescottdesign.com > > I have recently done a thermal MIMO =A0PID controller that ended up > preforming adequately despite using very simple controls. > Some comments: > Even the simplest differential description ends up with an infinite > number of state/poles. > Most real thermal systems have little tabs and things that foul up > theoretical analysis. > Therefore: you can start with simple mathematical models to estimate > requirements but you always end up with approximations. > Pole zero analysis in this case is almost worthless except to roughly > get started. > Bode and/or Nichol's chart analysis (I used both) works very well; > but .. > You have to get and use the experimental data. =A0You can use that > directly or find a sufficiently good model for the system. > You should establish a "process" for the tuning and experiments; the > system you take the data on will undoubtedly not be the one that ends > up being manufactured. > Gotcha's: =A0Scilab's system identification processes are unstable > dealing with this type of system. =A0They can be used to attempt > modelling but tread carefully and double check. > When taking the data, the room/environmental temperature will do > everything it can to confound the experiment. > Don't worry about the lower frequencies, go to where the phase starts > to shift significantly. > For the Bode/Nichols derived compensation just redo the experiment > (which you probably will) to clarify the standard compensation region > round the Bode criterion; 180 degrees +- one or two decades. > Try to give at least hints to how the tuning was done for the > "outsourced" maintenance people who have to maintain the tuning after > the mechanical assembly is altered; unless you want to come back and > start over yourself in a year. > > Really, really examine the code to make sure you don't "windup". =A0 I > was forced to rely on programmers in another group and I had study the > experimental results for a while to realize that the anti-windup code > just clipped the output not the integrator. > > Ray
I agree with the last paragraph. However, I have had a lot of success with identifying systems poles and zero. I can then place both where I want with the controller gains. I didn't know Scilab has a system identification function, but I have used the lsqrsolve and optim successfully. Peter Nachtwey
On Nov 12, 8:43=A0pm, pnachtwey <pnacht...@gmail.com> wrote:
> On Nov 11, 10:18=A0am, RRogers <rerog...@plaidheron.com> wrote: > > > On Nov 10, 11:54=A0am, Tim Wescott <t...@seemywebsite.com> wrote: > > > > On Tue, 10 Nov 2009 11:54:36 -0500, Datesfat Chicks wrote: > > > > "Frank W." <frankw_use...@mailinator.com> wrote in message > > > >news:7lggquF3dt584U1@mid.dfncis.de... > > > > >> Since all PID temperature controllers have Autotune, there must be=
a
> > > >> solution for this problem. Any ideas? > > > > > As you probably know from control theory, the basic theory of a PID > > > > controller is that you have a system described by a set of linear > > > > differential equations that is inherently unstable or has some > > > > performance problems. =A0As a result you strap a PID controller ont=
o it
> > > > (with said controller also described by its own linear differential > > > > equations), and the resulting system (now described by linear > > > > differential equations which are a mathematical mix of the underlyi=
ng
> > > > system and the PID controller) has better characteristics. > > > > > Did you notice that there is a word that appears many times in my > > > > description above? > > > > > Want to guess what the word is? > > > > > That word is "linear". > > > > > A system with a time delay is not described by linear differential > > > > equations. =A0Strapping a PID controller onto it is bad math. > > > > > One of the more classic examples is a shower or an industrial proce=
ss
> > > > that mixes fluids of varying temperature and the sensor is located > > > > substantially downstream from the mixing value. =A0This is a pure t=
ime
> > > > delay. =A0My shower at home is like that. =A0I turn the water a lit=
tle
> > > > hotter. =A0Nothing happens. =A0I turn it a little more hotter. =A0N=
othing
> > > > happens. =A0Then I turn it a little more hotter. =A0Then the wave o=
f hot
> > > > liquid hits me and I scream in agony. > > > > > Over time, I've adapted to my shower. =A0I don't burn myself anymor=
e.
> > > > > I think the control algorithms you want to use for a system like yo=
urs
> > > > fall outside the range of PID. =A0I'm sure there is a body of theor=
y that
> > > > covers it, but I don't know what that is. > > > > > I would heat the system full bore for a fixed period of time, then =
stop
> > > > and wait to see how the temperature catches up. =A0And work from th=
ere.
> > > > > The best control strategy for that system isn't going to be PID. =
=A0That
> > > > is a non-linear system. > > > > I've been resisting forking this over into the control newsgroup: now > > > it's compelling. > > > > Systems with delay can be perfectly linear, as well as time invariant=
--
> > > they just can't be described by ordinary differential equations with =
a
> > > finite number of states. > > > > To be linear, a system only needs to satisfy the superposition proper=
ty. =A0
> > > A delay element satisfies superposition just fine. > > > > And while a PID controller may not be the theoretically best controll=
er
> > > for a system with delay, in many cases it's not a bad choice at all. =
=A0PID
> > > controllers can and will give perfectly satisfactory service with pla=
nts
> > > that have significant delay. =A0The thousands, if not millions, of PI=
D
> > > controllers in mills and factories around the world that are controll=
ing
> > > plants whose responses are dominated by delay certainly belie any > > > declaration that the PID controller isn't a good choice to control a > > > plant with delay. > > > > None of the above is intended to minimize the difficulty in analyzing=
and
> > > designing a truly optimal controller for a plant with pure delay -- > > > that's an exercise that can make your brain hurt, and fast. =A0And no=
thing
> > > of the above is intended to chase you away from taking plant delays m=
ore
> > > directly into account if a discrete-state controller such as a PID wo=
n't
> > > let you eke the performance that you need out of your plant. =A0 > > > > But in the absence of significant nonlinearities or time varying beha=
vior
> > > you can use all the analysis tools that are suitable for linear time > > > invariant systems on a system with delays just fine. =A0You can do go=
od
> > > design work, without ever having to explicitly write out the differen=
tial
> > > equations, much less solving them. > > > > So if you don't want to get lost in Mathemagic Land searching for > > > performance that isn't necessary for your product's success, a good o=
l'
> > > PID controller may be exactly the optimal controller -- in terms of > > > adequate performance and reasonable engineering time -- even if it > > > doesn't satisfy any egghead academic measure of "optimal" for the > > > particular plant you're trying to control. > > > > --www.wescottdesign.com > > > I have recently done a thermal MIMO =A0PID controller that ended up > > preforming adequately despite using very simple controls. > > Some comments: > > Even the simplest differential description ends up with an infinite > > number of state/poles. > > Most real thermal systems have little tabs and things that foul up > > theoretical analysis. > > Therefore: you can start with simple mathematical models to estimate > > requirements but you always end up with approximations. > > Pole zero analysis in this case is almost worthless except to roughly > > get started. > > Bode and/or Nichol's chart analysis (I used both) works very well; > > but .. > > You have to get and use the experimental data. =A0You can use that > > directly or find a sufficiently good model for the system. > > You should establish a "process" for the tuning and experiments; the > > system you take the data on will undoubtedly not be the one that ends > > up being manufactured. > > Gotcha's: =A0Scilab's system identification processes are unstable > > dealing with this type of system. =A0They can be used to attempt > > modelling but tread carefully and double check. > > When taking the data, the room/environmental temperature will do > > everything it can to confound the experiment. > > Don't worry about the lower frequencies, go to where the phase starts > > to shift significantly. > > For the Bode/Nichols derived compensation just redo the experiment > > (which you probably will) to clarify the standard compensation region > > round the Bode criterion; 180 degrees +- one or two decades. > > Try to give at least hints to how the tuning was done for the > > "outsourced" maintenance people who have to maintain the tuning after > > the mechanical assembly is altered; unless you want to come back and > > start over yourself in a year. > > > Really, really examine the code to make sure you don't "windup". =A0 I > > was forced to rely on programmers in another group and I had study the > > experimental results for a while to realize that the anti-windup code > > just clipped the output not the integrator. > > > Ray > > I agree with the last paragraph. > However, I have had a lot of success with identifying systems poles > and zero. =A0 I can then place both where I want with the controller > gains. > > I didn't know Scilab has a system identification function, but I have > used the lsqrsolve and optim successfully. > > Peter Nachtwey
Interesting, I have thought about going that route but opted for a more conventional process; System Identification routines. But that wasn't very satisfactory. I have a problem in that I like to continue along routes until I really understand why they don't work. Sometimes I think that half my brain is autistic. Once I get my system identification code reorganized (with or without a gui) I plan to test it against my data and some available test cases from NICONET. Although they don't seem to be MIMO. In biological testing equipment you are forced into MIMO situations in order get the required temperature accuracy over large testing areas and environmental conditions. In addition mammalian reactions are tuned to constant temperature within a narrow band; 37degC in our case (presuming no aliens in the group). I was actually looking forward to doing that; I had never had use MIMO before. Wasn't so enthused after a while; the design process is a lot more complicated and the tools were not robust. Once I resolve (or at least identify) the problems perhaps I will compare the results with lsqrsolve. If your interested I will post a link here; but don't expect anything soon. I am just settling into Mexico, and am not as fast as I used to be. Ray
On Nov 13, 6:44=A0am, RRogers <rerog...@plaidheron.com> wrote:
> On Nov 12, 8:43=A0pm, pnachtwey <pnacht...@gmail.com> wrote: > > > > > > > On Nov 11, 10:18=A0am, RRogers <rerog...@plaidheron.com> wrote: > > > > On Nov 10, 11:54=A0am, Tim Wescott <t...@seemywebsite.com> wrote: > > > > > On Tue, 10 Nov 2009 11:54:36 -0500, Datesfat Chicks wrote: > > > > > "Frank W." <frankw_use...@mailinator.com> wrote in message > > > > >news:7lggquF3dt584U1@mid.dfncis.de... > > > > > >> Since all PID temperature controllers have Autotune, there must =
be a
> > > > >> solution for this problem. Any ideas? > > > > > > As you probably know from control theory, the basic theory of a P=
ID
> > > > > controller is that you have a system described by a set of linear > > > > > differential equations that is inherently unstable or has some > > > > > performance problems. =A0As a result you strap a PID controller o=
nto it
> > > > > (with said controller also described by its own linear differenti=
al
> > > > > equations), and the resulting system (now described by linear > > > > > differential equations which are a mathematical mix of the underl=
ying
> > > > > system and the PID controller) has better characteristics. > > > > > > Did you notice that there is a word that appears many times in my > > > > > description above? > > > > > > Want to guess what the word is? > > > > > > That word is "linear". > > > > > > A system with a time delay is not described by linear differentia=
l
> > > > > equations. =A0Strapping a PID controller onto it is bad math. > > > > > > One of the more classic examples is a shower or an industrial pro=
cess
> > > > > that mixes fluids of varying temperature and the sensor is locate=
d
> > > > > substantially downstream from the mixing value. =A0This is a pure=
time
> > > > > delay. =A0My shower at home is like that. =A0I turn the water a l=
ittle
> > > > > hotter. =A0Nothing happens. =A0I turn it a little more hotter. =
=A0Nothing
> > > > > happens. =A0Then I turn it a little more hotter. =A0Then the wave=
of hot
> > > > > liquid hits me and I scream in agony. > > > > > > Over time, I've adapted to my shower. =A0I don't burn myself anym=
ore.
> > > > > > I think the control algorithms you want to use for a system like =
yours
> > > > > fall outside the range of PID. =A0I'm sure there is a body of the=
ory that
> > > > > covers it, but I don't know what that is. > > > > > > I would heat the system full bore for a fixed period of time, the=
n stop
> > > > > and wait to see how the temperature catches up. =A0And work from =
there.
> > > > > > The best control strategy for that system isn't going to be PID. =
=A0That
> > > > > is a non-linear system. > > > > > I've been resisting forking this over into the control newsgroup: n=
ow
> > > > it's compelling. > > > > > Systems with delay can be perfectly linear, as well as time invaria=
nt --
> > > > they just can't be described by ordinary differential equations wit=
h a
> > > > finite number of states. > > > > > To be linear, a system only needs to satisfy the superposition prop=
erty. =A0
> > > > A delay element satisfies superposition just fine. > > > > > And while a PID controller may not be the theoretically best contro=
ller
> > > > for a system with delay, in many cases it's not a bad choice at all=
. =A0PID
> > > > controllers can and will give perfectly satisfactory service with p=
lants
> > > > that have significant delay. =A0The thousands, if not millions, of =
PID
> > > > controllers in mills and factories around the world that are contro=
lling
> > > > plants whose responses are dominated by delay certainly belie any > > > > declaration that the PID controller isn't a good choice to control =
a
> > > > plant with delay. > > > > > None of the above is intended to minimize the difficulty in analyzi=
ng and
> > > > designing a truly optimal controller for a plant with pure delay -- > > > > that's an exercise that can make your brain hurt, and fast. =A0And =
nothing
> > > > of the above is intended to chase you away from taking plant delays=
more
> > > > directly into account if a discrete-state controller such as a PID =
won't
> > > > let you eke the performance that you need out of your plant. =A0 > > > > > But in the absence of significant nonlinearities or time varying be=
havior
> > > > you can use all the analysis tools that are suitable for linear tim=
e
> > > > invariant systems on a system with delays just fine. =A0You can do =
good
> > > > design work, without ever having to explicitly write out the differ=
ential
> > > > equations, much less solving them. > > > > > So if you don't want to get lost in Mathemagic Land searching for > > > > performance that isn't necessary for your product's success, a good=
ol'
> > > > PID controller may be exactly the optimal controller -- in terms of > > > > adequate performance and reasonable engineering time -- even if it > > > > doesn't satisfy any egghead academic measure of "optimal" for the > > > > particular plant you're trying to control. > > > > > --www.wescottdesign.com > > > > I have recently done a thermal MIMO =A0PID controller that ended up > > > preforming adequately despite using very simple controls. > > > Some comments: > > > Even the simplest differential description ends up with an infinite > > > number of state/poles. > > > Most real thermal systems have little tabs and things that foul up > > > theoretical analysis. > > > Therefore: you can start with simple mathematical models to estimate > > > requirements but you always end up with approximations. > > > Pole zero analysis in this case is almost worthless except to roughly > > > get started. > > > Bode and/or Nichol's chart analysis (I used both) works very well; > > > but .. > > > You have to get and use the experimental data. =A0You can use that > > > directly or find a sufficiently good model for the system. > > > You should establish a "process" for the tuning and experiments; the > > > system you take the data on will undoubtedly not be the one that ends > > > up being manufactured. > > > Gotcha's: =A0Scilab's system identification processes are unstable > > > dealing with this type of system. =A0They can be used to attempt > > > modelling but tread carefully and double check. > > > When taking the data, the room/environmental temperature will do > > > everything it can to confound the experiment. > > > Don't worry about the lower frequencies, go to where the phase starts > > > to shift significantly. > > > For the Bode/Nichols derived compensation just redo the experiment > > > (which you probably will) to clarify the standard compensation region > > > round the Bode criterion; 180 degrees +- one or two decades. > > > Try to give at least hints to how the tuning was done for the > > > "outsourced" maintenance people who have to maintain the tuning after > > > the mechanical assembly is altered; unless you want to come back and > > > start over yourself in a year. > > > > Really, really examine the code to make sure you don't "windup". =A0 =
I
> > > was forced to rely on programmers in another group and I had study th=
e
> > > experimental results for a while to realize that the anti-windup code > > > just clipped the output not the integrator. > > > > Ray > > > I agree with the last paragraph. > > However, I have had a lot of success with identifying systems poles > > and zero. =A0 I can then place both where I want with the controller > > gains. > > > I didn't know Scilab has a system identification function, but I have > > used the lsqrsolve and optim successfully. > > > Peter Nachtwey > > Interesting, I have thought about going that route but opted for a > more conventional process; =A0System Identification routines. =A0But that > wasn't very satisfactory. =A0I have a problem in that I like to continue > along routes until I really understand why they don't work. =A0Sometimes > I think that half my brain is autistic. > Once I get my system identification code reorganized (with or without > a gui) I plan to test it against my data and some available test cases > from NICONET. =A0 Although they don't seem to be MIMO. =A0In biological > testing equipment you are forced into MIMO situations in order get the > required temperature accuracy over large testing areas and > environmental conditions. =A0In addition mammalian reactions are tuned > to constant temperature within a narrow band; 37degC in our case > (presuming no aliens in the group). =A0 I was actually looking forward > to doing that; I had never had use MIMO before. =A0Wasn't so enthused > after a while; the design process is a lot more complicated and the > tools were not robust. > Once I resolve (or at least identify) the problems perhaps I will > compare the results with lsqrsolve. =A0If your interested I will post a > link here; but don't expect anything soon. =A0I am just settling into > Mexico, and am not as fast as I used to be. > > Ray
When you have MIMO test data why don't you share it with us. I would like to have a crack at too. It would be helpful to know what I am fitting data too though so I can get the general form the equations right. I don't know anything about your field of study. The trick is how you use optim() and lsqrsolve(). The best system identification uses Runge-Kutta to integrate the model's system of differential equations. For MIMO systems you will need to use optim(). optim() can optimize a cost function. lsqrsolve() requires two arrays of data, the actual data and the estimated data. I don't know how you would do this if you have two sets of actual data and two sets of estimated data. Peter Nachtwey