Forums

PID Heater Control

Started by rickman November 22, 2015
On Monday, November 23, 2015 at 6:24:25 PM UTC-5, Tim Wescott wrote:
> On Mon, 23 Nov 2015 13:11:02 -0800, George Herold wrote: > > > On Monday, November 23, 2015 at 3:07:59 PM UTC-5, Tim Wescott wrote: > >> On Mon, 23 Nov 2015 14:48:16 -0500, rickman wrote: > >> > >> > On 11/23/2015 2:17 PM, Tim Wescott wrote: > >> >> On Mon, 23 Nov 2015 13:43:30 -0500, rickman wrote: > >> >> > >> >>> On 11/23/2015 1:07 PM, Tim Wescott wrote: > >> >>>> On Sun, 22 Nov 2015 14:33:55 -0500, rickman wrote: > >> >>>> > >> >>>>> If a heater is controlled by turning it on and off, does a PID > >> >>>>> algorithm help in more closely controlling the temperature? > >> >>>>> > >> >>>>> Will running the PID loop faster than the temperature measurement > >> >>>>> improve anything? > >> >>>>> > >> >>>>> How would a PID control be an improvement over a simple > >> >>>>> temperature comparison with or without an anticipator? > >> >>>> > >> >>>> On a totally different line of thought than my previous response: > >> >>>> > >> >>>> A traditional thermostat/anticipator acts, more or less, like a > >> >>>> proportional-derivative controller with a relay output ("relay" is > >> >>>> just control systems jargon for an on-off switch). There's > >> >>>> usually hysteresis in the switch, but that's not uncommon with > >> >>>> relay-output controllers, and it's the anticipator that -- more or > >> >>>> less -- provides the derivative action. > >> >>>> > >> >>>> (Note the "more or less" -- "sorta-kinda" might be better. At any > >> >>>> rate, don't get wrapped around the axle if it's not exactly the > >> >>>> same -- > >> >>>> because it isn't.) > >> >>>> > >> >>>> Such a system will still show some sensitivity of the long-term > >> >>>> average controlled temperature to ambient conditions -- your plant > >> >>>> (or house, whatever) will be a bit colder on average when ambient > >> >>>> is colder, and warmer on average when ambient is warmer. > >> >>>> > >> >>>> Putting a bit of integrator action into a controller like that > >> >>>> will, perforce, guarantee that the average temperature of the > >> >>>> plant is as close to correct as can be achieved with available > >> >>>> sensors. It won't prevent the heat from cycling up and down, > >> >>>> however -- that's a consequence of turning the heat on and off > >> >>>> close to, or slower than, the thermal time constant of the plant. > >> >>>> > >> >>>> Whether the benefit from integral action in the controller is > >> >>>> worth the effort in such a circumstance is going to depend on the > >> >>>> individual cases. I suspect that in general it won't, but I'm > >> >>>> sure there are edge cases where it'll be all that's needed. > >> >>> > >> >>> It is not clear to me that your assumptions are correct. For > >> >>> example, > >> >>> ignoring the issue of the anticipator, the idea that without an > >> >>> integral term in the control loop, the average temperature will be > >> >>> sensitive to the ambient isn't clear to me. Consider the > >> >>> controlled temperature as a function of time in two cases. In one > >> >>> case the heat leaking from the chamber is 1/10 the rate at which > >> >>> the heating element adds heat and in the other case heat leaks at > >> >>> 1/2 the rate of the heater. The control loop is a simple > >> >>> temperature set point with a fixed amount of plus and minus > >> >>> hysteresis. In the 1/10 rate case the heat will be on 1/10 of the > >> >>> time. The graph will be a saw tooth with the warming slope being > >> >>> 1/9th the width of the cooling slope. The average temperature will > >> >>> be the set point. The 1/2 cooling rate will give a sawtooth graph > >> >>> with equal heating and cooling periods... and again the average > >> >>> temperature will be the set point. > >> >>> > >> >>> What periods of heating and cooling would you expect a PID > >> >>> controller could provide if it is not using PWM modulation of the > >> >>> heating, but rather the PID loop directly turns the heat on or off? > >> >>> > >> >>> If heating a house, the furnace should not be cycled too often, so > >> >>> there is no opportunity to modulate the heat cycle over short > >> >>> periods. > >> >>> However, the system is question is an electric oven so such > >> >>> modulation would be possible, but only by adding another layer of > >> >>> complexity to the code which is not what is being discussed. > >> >> > >> >> I'm not going to spend my free time simulating your system for you. > >> >> That's what you're paid to do. So why don't you spend your free -- > >> >> or paid -- time simulating your system for you? > >> >> > >> >> I've done this stuff before, it's too long for me to remember the > >> >> detailed answer, but I do remember that when you actually take the > >> >> trouble to simulate the system, or calculate it's behavior > >> >> mathematically, you find a dependency on average temperature with > >> >> ambient. > >> > > >> > I'm not asking you to simulate anything. I just described a system > >> > simple enough to be simulated in your head and gave you the result. > >> > It may be somewhat unrealistic given the vagaries of real world > >> > situations, > >> > but it is clear enough to show a set point controller maintains an > >> > average temperature controlled by the set point when the cooling > >> > losses are constant, at least to a first order approximation. > >> > >> Well, there you go. You're smarter than the resident control expert. > >> > >> Have fun! > > > > Rick may not want to be "prickly", but he often comes across that way. > > I'll take him at his word though. No insult intended Rick, but smart > > people sometimes are less adept at the social graces. > > > > Besides driving the error signal to zero, doesn't a PI controller also > > have a faster response, compared to just P? Instead of a flat gain, you > > get more gain at lower frequencies. (That might not be right.. I'm far > > from a control expert :^) > > Only for certain plants, but yes, often a PI controller can drive things > close to target faster than just a proportional can. And when it > happens, it's because of more gain at lower frequencies.
Excellent, I forgot to add that it has to be in the linear zone, at full power, it's power times heat capacity. Half of me needs to find a new job, but if I stay where I am then a computer controlled thermal loop is in the future. An excuse to buy your book. George H.
> > -- > > Tim Wescott > Wescott Design Services > http://www.wescottdesign.com
On 11/23/2015 7:06 PM, Tim Wescott wrote:
> On Mon, 23 Nov 2015 17:08:32 -0500, rickman wrote: > >> On 11/23/2015 4:11 PM, George Herold wrote: >>> On Monday, November 23, 2015 at 3:07:59 PM UTC-5, Tim Wescott wrote: >>>> On Mon, 23 Nov 2015 14:48:16 -0500, rickman wrote: >>>> >>>>> On 11/23/2015 2:17 PM, Tim Wescott wrote: >>>>>> On Mon, 23 Nov 2015 13:43:30 -0500, rickman wrote: >>>>>> >>>>>>> On 11/23/2015 1:07 PM, Tim Wescott wrote: >>>>>>>> On Sun, 22 Nov 2015 14:33:55 -0500, rickman wrote: >>>>>>>> >>>>>>>>> If a heater is controlled by turning it on and off, does a PID >>>>>>>>> algorithm help in more closely controlling the temperature? >>>>>>>>> >>>>>>>>> Will running the PID loop faster than the temperature measurement >>>>>>>>> improve anything? >>>>>>>>> >>>>>>>>> How would a PID control be an improvement over a simple >>>>>>>>> temperature comparison with or without an anticipator? >>>>>>>> >>>>>>>> On a totally different line of thought than my previous response: >>>>>>>> >>>>>>>> A traditional thermostat/anticipator acts, more or less, like a >>>>>>>> proportional-derivative controller with a relay output ("relay" is >>>>>>>> just control systems jargon for an on-off switch). There's >>>>>>>> usually hysteresis in the switch, but that's not uncommon with >>>>>>>> relay-output controllers, and it's the anticipator that -- more or >>>>>>>> less -- provides the derivative action. >>>>>>>> >>>>>>>> (Note the "more or less" -- "sorta-kinda" might be better. At any >>>>>>>> rate, don't get wrapped around the axle if it's not exactly the >>>>>>>> same -- >>>>>>>> because it isn't.) >>>>>>>> >>>>>>>> Such a system will still show some sensitivity of the long-term >>>>>>>> average controlled temperature to ambient conditions -- your plant >>>>>>>> (or house, whatever) will be a bit colder on average when ambient >>>>>>>> is colder, and warmer on average when ambient is warmer. >>>>>>>> >>>>>>>> Putting a bit of integrator action into a controller like that >>>>>>>> will, perforce, guarantee that the average temperature of the >>>>>>>> plant is as close to correct as can be achieved with available >>>>>>>> sensors. It won't prevent the heat from cycling up and down, >>>>>>>> however -- that's a consequence of turning the heat on and off >>>>>>>> close to, or slower than, the thermal time constant of the plant. >>>>>>>> >>>>>>>> Whether the benefit from integral action in the controller is >>>>>>>> worth the effort in such a circumstance is going to depend on the >>>>>>>> individual cases. I suspect that in general it won't, but I'm >>>>>>>> sure there are edge cases where it'll be all that's needed. >>>>>>> >>>>>>> It is not clear to me that your assumptions are correct. For >>>>>>> example, >>>>>>> ignoring the issue of the anticipator, the idea that without an >>>>>>> integral term in the control loop, the average temperature will be >>>>>>> sensitive to the ambient isn't clear to me. Consider the >>>>>>> controlled temperature as a function of time in two cases. In one >>>>>>> case the heat leaking from the chamber is 1/10 the rate at which >>>>>>> the heating element adds heat and in the other case heat leaks at >>>>>>> 1/2 the rate of the heater. The control loop is a simple >>>>>>> temperature set point with a fixed amount of plus and minus >>>>>>> hysteresis. In the 1/10 rate case the heat will be on 1/10 of the >>>>>>> time. The graph will be a saw tooth with the warming slope being >>>>>>> 1/9th the width of the cooling slope. The average temperature will >>>>>>> be the set point. The 1/2 cooling rate will give a sawtooth graph >>>>>>> with equal heating and cooling periods... and again the average >>>>>>> temperature will be the set point. >>>>>>> >>>>>>> What periods of heating and cooling would you expect a PID >>>>>>> controller could provide if it is not using PWM modulation of the >>>>>>> heating, but rather the PID loop directly turns the heat on or off? >>>>>>> >>>>>>> If heating a house, the furnace should not be cycled too often, so >>>>>>> there is no opportunity to modulate the heat cycle over short >>>>>>> periods. >>>>>>> However, the system is question is an electric oven so such >>>>>>> modulation would be possible, but only by adding another layer of >>>>>>> complexity to the code which is not what is being discussed. >>>>>> >>>>>> I'm not going to spend my free time simulating your system for you. >>>>>> That's what you're paid to do. So why don't you spend your free -- >>>>>> or paid -- time simulating your system for you? >>>>>> >>>>>> I've done this stuff before, it's too long for me to remember the >>>>>> detailed answer, but I do remember that when you actually take the >>>>>> trouble to simulate the system, or calculate it's behavior >>>>>> mathematically, you find a dependency on average temperature with >>>>>> ambient. >>>>> >>>>> I'm not asking you to simulate anything. I just described a system >>>>> simple enough to be simulated in your head and gave you the result. >>>>> It may be somewhat unrealistic given the vagaries of real world >>>>> situations, >>>>> but it is clear enough to show a set point controller maintains an >>>>> average temperature controlled by the set point when the cooling >>>>> losses are constant, at least to a first order approximation. >>>> >>>> Well, there you go. You're smarter than the resident control expert. >>>> >>>> Have fun! >>> >>> Rick may not want to be "prickly", but he often comes across that way. >>> I'll take him at his word though. No insult intended Rick, but smart >>> people sometimes are less adept at the social graces. >> >> Certainly there is no intent to tick people off. I guess it just comes >> naturally... ?? I consider it to be a shortcoming of the medium. I >> write with a deadpan emotional intent, most of the time, but I guess it >> must be read as though I am trying to offend. >> >> I really don't know what Tim is ticked off about. I give a *very* >> simple example that can be considered entirely in your mind and describe >> the results. Tim seems to think it requires simulation and gets mad >> about it when I point out how simple it is. Or maybe I'm not >> understanding what he is upset about. Don't know. >> >> >>> Besides driving the error signal to zero, doesn't a PI controller also >>> have a faster response, compared to just P? Instead of a flat gain, >>> you get more gain at lower frequencies. (That might not be right.. I'm >>> far from a control expert :^) >> >> Ok, but your model assumes there is some variability to the control I >> think. If the control consists of deciding on each cycle of the PID >> loop whether to turn the heater on or off, how does a PID controller >> improve response? > > That's been answered! Just read! > >> If the desire is to turn the heater on at a smaller >> deviation from the set point, the hysteresis can be set closer to the >> set point, no? To be honest, if you don't care how often the heat is >> turned on, why would you even need hysteresis? Just turn on the heat >> when the temperature is below the set point and off again when the set >> point is reached. Then the only issue is the overshoot from the thermal >> mass of the heating element. An anticipator can help with that. > > If you're going to refuse to use well-known useful techniques like PWM-ing > an ON/OFF output, or using a sigma-delta modulator, then yes, an old > traditional bang-bang controller with an anticipator may work best. > > But why refuse to use well-known useful techniques?
Tim, you aren't grasping the situation. I am not designing a controller. Someone else is. I have asked him why he is using a PID controller in the way he is and he isn't interested in discussing it. So I'm trying to understand why a PID controller might be used in that way. Adding a PWM to it doesn't help me understand how a PID can be used in the way it is being used.
>> The other point was that running the PID loop faster than the >> temperature is updated seems pointless. > > If it's properly tuned it may lead to better precision by turning the > heater on or off part-way between temperature measurements. That doesn't > mean that it's a good decision, that's just a (very slight) advantage > that it may have.
I'm not seeing how it would turn the heater on and off again in the smaller cycles. If there was a decision made to turn the heat on with the temperature update, that heat would most likely remain on until the temperature reading was updated, no? I suppose it is possible that the D term might result in the threshold being crossed at the start and then reversed at the next cycle when the D term goes to zero. In fact, I can see this causing the heat to turn on when it is *not* desired because the temperature is above the set point. Of course this is largely hand waving because a PID controller is not so easy to analyze with words. So if you say it may have a very slight advantage, I won't argue that point. But at best it seems it would be a vanishingly small advantage and even that would require the PID controller to be very well tuned to the task which might even require tuning for different items places in the oven giving very different thermal masses to the overall device.
>> The person who has designed >> this approach creates a process for each part of the algorithm, one for >> measuring the temperature, one for running the PID and others. I'm not >> clear at all why he thinks the PID is usefully run faster than the >> temperature is updated. I can't get anything out of him other than >> because "it's fun". > > OK. So your real concern is that you've got some out of control > designer, presumably a software guy, who's so severely unprofessional > that he's letting himself be motivated by what's "fun" instead of what's > best for the project. Meaning that he could do something just as "fun" > with bang-bang control, to an equal level of dismay on your part. So the > basic problem you're trying to address is only incidental to the PID > controller.
This is not a "project" in any professional sense. An amateur is doing this has a home project. I just wanted to understand how the PID might be useful. So far I am still pretty convinced a set point controller will give virtually as good a result with less work and complication.
> (BTW: "because it's fun" is very occasionally an allowable excuse for > doing something in my book, but generally only if there's plenty of slack > in that part of the project, the guy's attention isn't needed elsewhere, > AND if the guy has a track record of giving up on the "fun" stuff if it > isn't panning out. If someone is sticking to something substandard > "because it's fun" at risk to the project, then they need to be > encouraged, possibly with a pink slip, to go find a more "fun" place to > work.) > >> I'm just trying to understand how a PID controller >> can work better than the set point controller when there is no >> proportional control over the heat, just on and off. > > Well, I already told you that, several times. Possibly because I took > your questions at face value. > >> The only thing I can think is that the PID, when properly designed, will >> inherently consider the thermal mass of the heating element while with >> the set point controller it has to be accounted for by an anticipator. >> Even so, I don't see the two as much similar, is that wrong? > > They're not all that similar, and there's no reason that a bang-bang > controller might not be inherently better in certain circumstances -- but > whether a PID is better than bang-bang or visa-versa depends on the plant > and what you're trying to do with it. There's no one right answer. > > The above assumes that each controller is designed by someone who cares. > Certainly, a bang-bang controller designed by someone focused on getting > decent performance has a very good chance of outperforming anything > designed by a guy who doesn't give a shit about doing a good job if > there's "fun" to be had. > > Certainly, if a bang-bang controller is so far better than adequate that > no one could want anything better, and if that bang-bang controller isn't > adorned with an anticipator that's more ornate than the PID controller > that might be used instead, then it's probably the way to go -- no matter > how "cool" the PID controller may be. > > There are cases, in fact, where bang-bang control may well be superior. > If you get a PID controller all tuned up to within a gnat's eyelash of > perfect for an empty oven, it may have a horrid, even an unstable, > response to an oven with a big thermal mass in it (even if -- or possibly > especially if -- it has nice PWM'd output). Ditto if you tune it up for > the big thermal mass and then try to run it with an empty oven. > > It's been known since the 1950's that bang-bang control can be a much > better alternative to either robustly tuned linear control or to on-line > adaptive control -- in fact, the signal motivation for adaptive control > theory (aside from the pretty math) since the 1960's was that bang-bang > control works scares the bejabbers out of a human pilot, however well it > works in an unmanned missile. This leaves the control system designer > contemplating robust or adaptive control of some sort. > >> BTW, who is "the resident control expert"? > > Has this question been answered to your satisfaction?
Lol. Without having faces I have a hard time remembering names and personalities. I have learned a few like John Larkin and Joerg. But I often mix up Tim Wescott and Jim Thompson just because the names "feel" similar to me. I believe Jim is the one with the far right politics that he shares a lot. I hope I'm not offending anyone by mixing up the two of you. Hmmm, I just realized you are the same guy I see in c.a.e. Thanks for the insight. -- Rick
On Mon, 23 Nov 2015 22:04:17 -0500, rickman wrote:

> On 11/23/2015 7:06 PM, Tim Wescott wrote: >> On Mon, 23 Nov 2015 17:08:32 -0500, rickman wrote: >> >>> On 11/23/2015 4:11 PM, George Herold wrote: >>>> On Monday, November 23, 2015 at 3:07:59 PM UTC-5, Tim Wescott wrote: >>>>> On Mon, 23 Nov 2015 14:48:16 -0500, rickman wrote: >>>>> >>>>>> On 11/23/2015 2:17 PM, Tim Wescott wrote: >>>>>>> On Mon, 23 Nov 2015 13:43:30 -0500, rickman wrote: >>>>>>> >>>>>>>> On 11/23/2015 1:07 PM, Tim Wescott wrote: >>>>>>>>> On Sun, 22 Nov 2015 14:33:55 -0500, rickman wrote: >>>>>>>>> >>>>>>>>>> If a heater is controlled by turning it on and off, does a PID >>>>>>>>>> algorithm help in more closely controlling the temperature? >>>>>>>>>> >>>>>>>>>> Will running the PID loop faster than the temperature >>>>>>>>>> measurement improve anything? >>>>>>>>>> >>>>>>>>>> How would a PID control be an improvement over a simple >>>>>>>>>> temperature comparison with or without an anticipator? >>>>>>>>> >>>>>>>>> On a totally different line of thought than my previous >>>>>>>>> response: >>>>>>>>> >>>>>>>>> A traditional thermostat/anticipator acts, more or less, like a >>>>>>>>> proportional-derivative controller with a relay output ("relay" >>>>>>>>> is just control systems jargon for an on-off switch). There's >>>>>>>>> usually hysteresis in the switch, but that's not uncommon with >>>>>>>>> relay-output controllers, and it's the anticipator that -- more >>>>>>>>> or less -- provides the derivative action. >>>>>>>>> >>>>>>>>> (Note the "more or less" -- "sorta-kinda" might be better. At >>>>>>>>> any rate, don't get wrapped around the axle if it's not exactly >>>>>>>>> the same -- >>>>>>>>> because it isn't.) >>>>>>>>> >>>>>>>>> Such a system will still show some sensitivity of the long-term >>>>>>>>> average controlled temperature to ambient conditions -- your >>>>>>>>> plant (or house, whatever) will be a bit colder on average when >>>>>>>>> ambient is colder, and warmer on average when ambient is warmer. >>>>>>>>> >>>>>>>>> Putting a bit of integrator action into a controller like that >>>>>>>>> will, perforce, guarantee that the average temperature of the >>>>>>>>> plant is as close to correct as can be achieved with available >>>>>>>>> sensors. It won't prevent the heat from cycling up and down, >>>>>>>>> however -- that's a consequence of turning the heat on and off >>>>>>>>> close to, or slower than, the thermal time constant of the >>>>>>>>> plant. >>>>>>>>> >>>>>>>>> Whether the benefit from integral action in the controller is >>>>>>>>> worth the effort in such a circumstance is going to depend on >>>>>>>>> the individual cases. I suspect that in general it won't, but >>>>>>>>> I'm sure there are edge cases where it'll be all that's needed. >>>>>>>> >>>>>>>> It is not clear to me that your assumptions are correct. For >>>>>>>> example, >>>>>>>> ignoring the issue of the anticipator, the idea that without an >>>>>>>> integral term in the control loop, the average temperature will >>>>>>>> be sensitive to the ambient isn't clear to me. Consider the >>>>>>>> controlled temperature as a function of time in two cases. In >>>>>>>> one case the heat leaking from the chamber is 1/10 the rate at >>>>>>>> which the heating element adds heat and in the other case heat >>>>>>>> leaks at 1/2 the rate of the heater. The control loop is a >>>>>>>> simple temperature set point with a fixed amount of plus and >>>>>>>> minus hysteresis. In the 1/10 rate case the heat will be on 1/10 >>>>>>>> of the time. The graph will be a saw tooth with the warming >>>>>>>> slope being 1/9th the width of the cooling slope. The average >>>>>>>> temperature will be the set point. The 1/2 cooling rate will >>>>>>>> give a sawtooth graph with equal heating and cooling periods... >>>>>>>> and again the average temperature will be the set point. >>>>>>>> >>>>>>>> What periods of heating and cooling would you expect a PID >>>>>>>> controller could provide if it is not using PWM modulation of the >>>>>>>> heating, but rather the PID loop directly turns the heat on or >>>>>>>> off? >>>>>>>> >>>>>>>> If heating a house, the furnace should not be cycled too often, >>>>>>>> so there is no opportunity to modulate the heat cycle over short >>>>>>>> periods. >>>>>>>> However, the system is question is an electric oven so such >>>>>>>> modulation would be possible, but only by adding another layer of >>>>>>>> complexity to the code which is not what is being discussed. >>>>>>> >>>>>>> I'm not going to spend my free time simulating your system for >>>>>>> you. >>>>>>> That's what you're paid to do. So why don't you spend your free >>>>>>> -- >>>>>>> or paid -- time simulating your system for you? >>>>>>> >>>>>>> I've done this stuff before, it's too long for me to remember the >>>>>>> detailed answer, but I do remember that when you actually take the >>>>>>> trouble to simulate the system, or calculate it's behavior >>>>>>> mathematically, you find a dependency on average temperature with >>>>>>> ambient. >>>>>> >>>>>> I'm not asking you to simulate anything. I just described a system >>>>>> simple enough to be simulated in your head and gave you the result. >>>>>> It may be somewhat unrealistic given the vagaries of real world >>>>>> situations, >>>>>> but it is clear enough to show a set point controller maintains an >>>>>> average temperature controlled by the set point when the cooling >>>>>> losses are constant, at least to a first order approximation. >>>>> >>>>> Well, there you go. You're smarter than the resident control >>>>> expert. >>>>> >>>>> Have fun! >>>> >>>> Rick may not want to be "prickly", but he often comes across that >>>> way. I'll take him at his word though. No insult intended Rick, but >>>> smart people sometimes are less adept at the social graces. >>> >>> Certainly there is no intent to tick people off. I guess it just comes >>> naturally... ?? I consider it to be a shortcoming of the medium. I >>> write with a deadpan emotional intent, most of the time, but I guess >>> it must be read as though I am trying to offend. >>> >>> I really don't know what Tim is ticked off about. I give a *very* >>> simple example that can be considered entirely in your mind and >>> describe the results. Tim seems to think it requires simulation and >>> gets mad about it when I point out how simple it is. Or maybe I'm not >>> understanding what he is upset about. Don't know. >>> >>> >>>> Besides driving the error signal to zero, doesn't a PI controller >>>> also have a faster response, compared to just P? Instead of a flat >>>> gain, you get more gain at lower frequencies. (That might not be >>>> right.. I'm far from a control expert :^) >>> >>> Ok, but your model assumes there is some variability to the control I >>> think. If the control consists of deciding on each cycle of the PID >>> loop whether to turn the heater on or off, how does a PID controller >>> improve response? >> >> That's been answered! Just read! >> >>> If the desire is to turn the heater on at a smaller deviation from the >>> set point, the hysteresis can be set closer to the set point, no? To >>> be honest, if you don't care how often the heat is turned on, why >>> would you even need hysteresis? Just turn on the heat when the >>> temperature is below the set point and off again when the set point is >>> reached. Then the only issue is the overshoot from the thermal mass >>> of the heating element. An anticipator can help with that. >> >> If you're going to refuse to use well-known useful techniques like >> PWM-ing an ON/OFF output, or using a sigma-delta modulator, then yes, >> an old traditional bang-bang controller with an anticipator may work >> best. >> >> But why refuse to use well-known useful techniques? > > Tim, you aren't grasping the situation. I am not designing a > controller. Someone else is. I have asked him why he is using a PID > controller in the way he is and he isn't interested in discussing it. So > I'm trying to understand why a PID controller might be used in that way. > Adding a PWM to it doesn't help me understand how a PID can be used in > the way it is being used.
PWM-ing the heater, as long as it's faster than the relevant time constants, makes it act more like it's being driven in a linear fashion. In the extreme, if you PWM the thing within the heating element's time constant, it'll act close to "real" linear control. The guy's design does sound way more elaborate than is necessary or even desirable -- if you did need a PID controller you could implement the PID part in about ten lines of code, and the Sigma-Delta modulator in another ten -- with room for comments.
>>> The other point was that running the PID loop faster than the >>> temperature is updated seems pointless. >> >> If it's properly tuned it may lead to better precision by turning the >> heater on or off part-way between temperature measurements. That >> doesn't mean that it's a good decision, that's just a (very slight) >> advantage that it may have. > > I'm not seeing how it would turn the heater on and off again in the > smaller cycles. If there was a decision made to turn the heat on with > the temperature update, that heat would most likely remain on until the > temperature reading was updated, no? I suppose it is possible that the > D term might result in the threshold being crossed at the start and then > reversed at the next cycle when the D term goes to zero. In fact, I can > see this causing the heat to turn on when it is *not* desired because > the temperature is above the set point.
Unless something strange is going on it wouldn't go in smaller cycles -- but the pulses could be shorter than the temperature read time. Overall I think it would lead to a slight improvement, but "slight" is definitely the operative word.
> Of course this is largely hand waving because a PID controller is not so > easy to analyze with words. So if you say it may have a very slight > advantage, I won't argue that point. But at best it seems it would be a > vanishingly small advantage and even that would require the PID > controller to be very well tuned to the task which might even require > tuning for different items places in the oven giving very different > thermal masses to the overall device.
Somewhere in one of the sub-threads I address that: yes, using linear control ends up meaning that you're subject to the need to tune. Having the on/off element saves you from that to some extent.
>>> The person who has designed this approach creates a process for each >>> part of the algorithm, one for measuring the temperature, one for >>> running the PID and others. I'm not clear at all why he thinks the >>> PID is usefully run faster than the temperature is updated. I can't >>> get anything out of him other than because "it's fun". >> >> OK. So your real concern is that you've got some out of control >> designer, presumably a software guy, who's so severely unprofessional >> that he's letting himself be motivated by what's "fun" instead of >> what's best for the project. Meaning that he could do something just >> as "fun" with bang-bang control, to an equal level of dismay on your >> part. So the basic problem you're trying to address is only incidental >> to the PID controller. > > This is not a "project" in any professional sense. An amateur is doing > this has a home project. I just wanted to understand how the PID might > be useful. So far I am still pretty convinced a set point controller > will give virtually as good a result with less work and complication.
I think that applies to a lot of thermal loops. I have implemented thermal loops with PID control in the past, but that's where (1) the temperature control needed to be very fine indeed, (2) the cooling element was throttleable, and (3) the plant was fixed, with no need to work for anything from an empty oven to one filled with a turkey (or a crucible, or whatever).
>> (BTW: "because it's fun" is very occasionally an allowable excuse for >> doing something in my book, but generally only if there's plenty of >> slack in that part of the project, the guy's attention isn't needed >> elsewhere, AND if the guy has a track record of giving up on the "fun" >> stuff if it isn't panning out. If someone is sticking to something >> substandard "because it's fun" at risk to the project, then they need >> to be encouraged, possibly with a pink slip, to go find a more "fun" >> place to work.) >> >>> I'm just trying to understand how a PID controller can work better >>> than the set point controller when there is no proportional control >>> over the heat, just on and off. >> >> Well, I already told you that, several times. Possibly because I took >> your questions at face value. >> >>> The only thing I can think is that the PID, when properly designed, >>> will inherently consider the thermal mass of the heating element while >>> with the set point controller it has to be accounted for by an >>> anticipator. Even so, I don't see the two as much similar, is that >>> wrong? >> >> They're not all that similar, and there's no reason that a bang-bang >> controller might not be inherently better in certain circumstances -- >> but whether a PID is better than bang-bang or visa-versa depends on the >> plant and what you're trying to do with it. There's no one right >> answer. >> >> The above assumes that each controller is designed by someone who >> cares. Certainly, a bang-bang controller designed by someone focused on >> getting decent performance has a very good chance of outperforming >> anything designed by a guy who doesn't give a shit about doing a good >> job if there's "fun" to be had. >> >> Certainly, if a bang-bang controller is so far better than adequate >> that no one could want anything better, and if that bang-bang >> controller isn't adorned with an anticipator that's more ornate than >> the PID controller that might be used instead, then it's probably the >> way to go -- no matter how "cool" the PID controller may be. >> >> There are cases, in fact, where bang-bang control may well be superior. >> If you get a PID controller all tuned up to within a gnat's eyelash of >> perfect for an empty oven, it may have a horrid, even an unstable, >> response to an oven with a big thermal mass in it (even if -- or >> possibly especially if -- it has nice PWM'd output). Ditto if you tune >> it up for the big thermal mass and then try to run it with an empty >> oven. >> >> It's been known since the 1950's that bang-bang control can be a much >> better alternative to either robustly tuned linear control or to >> on-line adaptive control -- in fact, the signal motivation for adaptive >> control theory (aside from the pretty math) since the 1960's was that >> bang-bang control works scares the bejabbers out of a human pilot, >> however well it works in an unmanned missile. This leaves the control >> system designer contemplating robust or adaptive control of some sort. >> >>> BTW, who is "the resident control expert"? >> >> Has this question been answered to your satisfaction? > > Lol. Without having faces I have a hard time remembering names and > personalities. I have learned a few like John Larkin and Joerg. But I > often mix up Tim Wescott and Jim Thompson just because the names "feel" > similar to me. I believe Jim is the one with the far right politics > that he shares a lot. I hope I'm not offending anyone by mixing up the > two of you. Hmmm, I just realized you are the same guy I see in c.a.e. > Thanks for the insight.
Well, my left-wing friends all think I'm a right-wing wacko. Of course, my right-wing friends all think I'm a left-wing wacko. I am glad that they have something to agree on, I just wish it was something else. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com
On 11/23/2015 8:24 PM, George Herold wrote:
> On Monday, November 23, 2015 at 5:08:39 PM UTC-5, rickman wrote: >> On 11/23/2015 4:11 PM, George Herold wrote: > <big snip> >>>> Well, there you go. You're smarter than the resident control expert. >>>> >>>> Have fun! >>> >>> Rick may not want to be "prickly", but he often comes across that way. >>> I'll take him at his word though. No insult intended Rick, but smart >>> people sometimes are less adept at the social graces. >> >> Certainly there is no intent to tick people off. I guess it just comes >> naturally... ?? I consider it to be a shortcoming of the medium. I >> write with a deadpan emotional intent, most of the time, but I guess it >> must be read as though I am trying to offend. >> >> I really don't know what Tim is ticked off about. I give a *very* >> simple example that can be considered entirely in your mind and describe >> the results. Tim seems to think it requires simulation and gets mad >> about it when I point out how simple it is. Or maybe I'm not >> understanding what he is upset about. Don't know. > >> >> >>> Besides driving the error signal to zero, doesn't a PI controller also >>> have a faster response, compared to just P? Instead of a flat gain, >>> you get more gain at lower frequencies. (That might not be right.. >>> I'm far from a control expert :^) >> >> Ok, but your model assumes there is some variability to the control I >> think. If the control consists of deciding on each cycle of the PID >> loop whether to turn the heater on or off, how does a PID controller >> improve response? If the desire is to turn the heater on at a smaller >> deviation from the set point, the hysteresis can be set closer to the >> set point, no? To be honest, if you don't care how often the heat is >> turned on, why would you even need hysteresis? Just turn on the heat >> when the temperature is below the set point and off again when the set >> point is reached. Then the only issue is the overshoot from the thermal >> mass of the heating element. An anticipator can help with that. >> >> The other point was that running the PID loop faster than the >> temperature is updated seems pointless. The person who has designed >> this approach creates a process for each part of the algorithm, one for >> measuring the temperature, one for running the PID and others. I'm not >> clear at all why he thinks the PID is usefully run faster than the >> temperature is updated. I can't get anything out of him other than >> because "it's fun". I'm just trying to understand how a PID controller >> can work better than the set point controller when there is no >> proportional control over the heat, just on and off. >> >> The only thing I can think is that the PID, when properly designed, will >> inherently consider the thermal mass of the heating element while with >> the set point controller it has to be accounted for by an anticipator. >> Even so, I don't see the two as much similar, is that wrong? >> >> BTW, who is "the resident control expert"? >> >> -- >> >> Rick > > Rick, I stopped reading, I don't really understand alot of whatever you are > trying to say. You can simulate control loops in spice, or build 'em and > measure.. then post circuits.
Next time I can save you some trouble typing. On Reddit they just type TLDR -- Rick
> >> Rick > > > > Rick, I stopped reading, I don't really understand alot of whatever you are > > trying to say. You can simulate control loops in spice, or build 'em and > > measure.. then post circuits. > > Next time I can save you some trouble typing. On Reddit they just type > > TLDR > > -- > > Rick
Bottom line as i see it,,, your band bang controller can be thought of as only the P part of a PID controller. If you add the I and the D parts you __may__ get faster and / or tighter control of the temperature at the expense of more complexity. It sounds like you don't need the tighter control and don't want the additional complexity. Fair enough. Nothing to argue about Mark
On Tuesday, November 24, 2015 at 6:05:17 AM UTC-8, mako...@yahoo.com wrote:

> Bottom line as i see it,,, > > your band bang controller can be thought of as only the P part of a PID controller.
The classic PID controller drives a heater to any value from zero to 100%; it will cheerfully park heater output at 37% if that maintains a steady state (basically, within the offset-voltage errors of the temperature sensor). But, a 'bang bang' controller will turn the heater fully ON (ramping upward in temperature), then fully OFF (ramping downward in temperature) and makes a triangle-wave temperature versus time curve.
> > If you add the I and the D parts you __may__ get faster and / or tighter control of the temperature at the expense of more complexity.
The D part inhibits overshoot/undershoot, and the I part makes the temperature not go below the setpoint when heating is required, and not go above the setpoint when cooling is required. If the gain (P) is 1.00 per C, then at 0.37 heat (that's the thirty-seven-percent point) the error temperature for a P controller, (T - Tset), is T - Tset = - 0.37 / P = -0.37 Celsius With an I term of 1 per Celsius-second, that deviation vanishes in a few milliseconds.
In article <88a9992a-ea43-45a4-a934-865eefb86f9b@googlegroups.com>,
whit3rd  <whit3rd@gmail.com> wrote:

>The classic PID controller drives a heater to any value from zero to 100%; it will >cheerfully park heater output at 37% if that maintains a steady state (basically, >within the offset-voltage errors of the temperature sensor). > >But, a 'bang bang' controller will turn the heater fully ON (ramping upward in >temperature), then fully OFF (ramping downward in temperature) and makes a >triangle-wave temperature versus time curve.
>The D part inhibits overshoot/undershoot, and the I part makes the temperature not >go below the setpoint when heating is required, and not go above the setpoint >when cooling is required.
Yup. I think it's best not to conflate the "dimensions" of the control algorithm itself (proportional to error, integral of error, and time-differential of error) with the quantization of the control output (two-state as in bang-bang, multi-state off/low/medium/high, or continuous). Consider 'em separately and then figure out how they interact. I have an GPS-disciplined frequency standard whose internal TCVCXO is somewhat sensitive to room temperature (its oven isn't perfect). The controller output is a near-continuous function - it tweaks the voltage control for the oscillator with extremely fine granularity. The original control algorithm was purely proportional. When room temperature was changing, it was *always* "behind" - its adjustments would follow the temperature change but wouldn't catch up until the temperature stabilized. That's inevitable - a P algorithm has no memory and can't "see the trend", and it can't issue a correction unless there's an error. By switching to a PI algorithm, the average error was reduced by about 95% at these times. There's a bit of overshoot and some well-damped "ringing", but on average it's a great deal closer. I think one would consider a classic thermostat with an anticipator to be a PD controller, with a two-state (full-on, full-off) output. The anticipator will reduce overshoot by providing an (estimated) differential term. Since there's no "I" term, a thermostat of this sort will tend to lag temperature drift from external causes. On the original question: frankly, I don't think there's anything significant to be gained by running a PID-controller algorithm faster than the temperature sensor takes new samples, *if* you have a continuously-variable (or finely-quantized) control output (i.e. one which allows for proportional output). If you don't - if e.g. the heater is necessarily bang-bang (e.g. a solid-state relay controlling an electric heater) then you can run at least a portion of the PID code more frequently, to PWM the heater and thus simulate true proportional control. The PID code wouldn't need to recalculate the output proportion more than once per sensor- measurement period, though - I don't see there's a reason to do so since it won't have any new information available between samples.