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