Imagine a mass that we want to heat with some closed-loop controller. It's C2 below. Voltage represents temperature. Thermal systems are diffusive, which we represent as a bunch of RC lags. Assume the voltage at C4 is the temperature sensor. If I were to design a PID controller, I'd have to really think about it, or fiddle some, to keep it stable. But if I do a dumb on/off thermostat, it seems to always work. I can tweak the hysteresis and vary the p-p temperature excursions and the switching frequency, but it's always stable. Or maybe it's always unstable. But it works. As Vh gets smaller, the oscillation frequency converges to some limiting value, which is I guess the ultimate performance of a thermostat for this physics. To get any less temperature excursion, I guess I'd have to do a real PID loop. Curious. This may have something to do with the fact that there is no thermal equivalent to an inductor. Version 4 SHEET 1 880 680 WIRE 0 0 -288 0 WIRE 528 0 80 0 WIRE -288 160 -288 0 WIRE -224 160 -288 160 WIRE -96 160 -144 160 WIRE -16 160 -96 160 WIRE 96 160 64 160 WIRE 192 160 96 160 WIRE 304 160 272 160 WIRE 416 160 304 160 WIRE 528 160 528 0 WIRE 528 160 480 160 WIRE -288 224 -288 160 WIRE -96 224 -96 160 WIRE 96 224 96 160 WIRE 304 224 304 160 WIRE -288 336 -288 288 WIRE -96 336 -96 288 WIRE 96 336 96 288 WIRE 304 336 304 288 FLAG -288 336 0 FLAG -96 336 0 FLAG 96 336 0 FLAG 304 336 0 SYMBOL Digital\\schmtinv 416 96 R0 WINDOW 0 2 -10 Left 2 WINDOW 3 -30 23 Left 2 SYMATTR InstName A1 SYMATTR Value Vh=0.002 SYMBOL cap 80 224 R0 WINDOW 0 67 13 Left 2 WINDOW 3 64 44 Left 2 SYMATTR InstName C1 SYMATTR Value 1m SYMBOL cap -112 224 R0 WINDOW 0 63 18 Left 2 WINDOW 3 64 53 Left 2 SYMATTR InstName C2 SYMATTR Value 5m SYMBOL cap -304 224 R0 WINDOW 0 60 22 Left 2 WINDOW 3 66 53 Left 2 SYMATTR InstName C3 SYMATTR Value 1m SYMBOL res -128 144 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R1 SYMATTR Value 1K SYMBOL res 80 144 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R2 SYMATTR Value 1K SYMBOL res 96 -16 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R3 SYMATTR Value 1K SYMBOL cap 288 224 R0 WINDOW 0 67 13 Left 2 WINDOW 3 64 44 Left 2 SYMATTR InstName C4 SYMATTR Value 1m SYMBOL res 288 144 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R4 SYMATTR Value 1K TEXT -208 -56 Left 2 !.tran 50 uic TEXT 192 -88 Left 2 ;THERMOSTAT TEXT 192 -48 Left 2 ;JL July 14, 2015 TEXT -72 80 Left 2 ;===== thermal lags ===== -- John Larkin Highland Technology, Inc picosecond timing precision measurement jlarkin att highlandtechnology dott com http://www.highlandtechnology.com
I don't understand thermostats
Started by ●July 14, 2015
Reply by ●July 14, 20152015-07-14
On Tuesday, July 14, 2015 at 1:29:26 PM UTC-7, John Larkin wrote:> Imagine a mass that we want to heat ...Thermal systems are > diffusive, which we represent as a bunch of RC lags.> ... there is no thermal > equivalent to an inductor.It'd be nice if that were the case, but you CAN get thermal overshoot, just like an inductor, when your components achieve ignition temperature. Usually, there's only one such event, ash doesn't burn. One expects any material substance to react to pressure by reduction in size. One is surprised, then, on examining the behavior of fulminate of mercury.
Reply by ●July 14, 20152015-07-14
On Tue, 14 Jul 2015 13:29:14 -0700, John Larkin wrote:> Imagine a mass that we want to heat with some closed-loop controller. > It's C2 below. Voltage represents temperature. Thermal systems are > diffusive, which we represent as a bunch of RC lags. Assume the voltage > at C4 is the temperature sensor. > > If I were to design a PID controller, I'd have to really think about it, > or fiddle some, to keep it stable. But if I do a dumb on/off thermostat, > it seems to always work. I can tweak the hysteresis and vary the p-p > temperature excursions and the switching frequency, but it's always > stable. Or maybe it's always unstable. But it works.<< snip >> Control theorists would call the behavior a "stable limit cycle". It's always moving around (that's the cycle), but the system exhibits bounded- input, bounded-output stability (that's the "stable"). There's just no way you can analyze the system behavior using a linear model, yet, it works pretty well. You have no hope, even in theory, of settling on the One True Temperature, but if you'll always be within acceptable bounds and the temperature cycling isn't an issue, do you care? -- Tim Wescott Wescott Design Services http://www.wescottdesign.com
Reply by ●July 14, 20152015-07-14
On Tue, 14 Jul 2015 13:29:14 -0700, John Larkin <jlarkin@highlandtechnology.com> wrote:> > >Imagine a mass that we want to heat with some closed-loop controller. >It's C2 below. Voltage represents temperature. Thermal systems are >diffusive, which we represent as a bunch of RC lags. Assume the >voltage at C4 is the temperature sensor. > >If I were to design a PID controller, I'd have to really think about >it, or fiddle some, to keep it stable. But if I do a dumb on/off >thermostat, it seems to always work. I can tweak the hysteresis and >vary the p-p temperature excursions and the switching frequency, but >it's always stable. Or maybe it's always unstable. But it works. > >As Vh gets smaller, the oscillation frequency converges to some >limiting value, which is I guess the ultimate performance of a >thermostat for this physics. To get any less temperature excursion, I >guess I'd have to do a real PID loop. Curious. > >This may have something to do with the fact that there is no thermal >equivalent to an inductor. ><snip> You need a deadbeat controller, long thermal time constants. Cheer s>Version 4 >SHEET 1 880 680 >WIRE 0 0 -288 0 >WIRE 528 0 80 0 >WIRE -288 160 -288 0 >WIRE -224 160 -288 160 >WIRE -96 160 -144 160 >WIRE -16 160 -96 160 >WIRE 96 160 64 160 >WIRE 192 160 96 160 >WIRE 304 160 272 160 >WIRE 416 160 304 160 >WIRE 528 160 528 0 >WIRE 528 160 480 160 >WIRE -288 224 -288 160 >WIRE -96 224 -96 160 >WIRE 96 224 96 160 >WIRE 304 224 304 160 >WIRE -288 336 -288 288 >WIRE -96 336 -96 288 >WIRE 96 336 96 288 >WIRE 304 336 304 288 >FLAG -288 336 0 >FLAG -96 336 0 >FLAG 96 336 0 >FLAG 304 336 0 >SYMBOL Digital\\schmtinv 416 96 R0 >WINDOW 0 2 -10 Left 2 >WINDOW 3 -30 23 Left 2 >SYMATTR InstName A1 >SYMATTR Value Vh=0.002 >SYMBOL cap 80 224 R0 >WINDOW 0 67 13 Left 2 >WINDOW 3 64 44 Left 2 >SYMATTR InstName C1 >SYMATTR Value 1m >SYMBOL cap -112 224 R0 >WINDOW 0 63 18 Left 2 >WINDOW 3 64 53 Left 2 >SYMATTR InstName C2 >SYMATTR Value 5m >SYMBOL cap -304 224 R0 >WINDOW 0 60 22 Left 2 >WINDOW 3 66 53 Left 2 >SYMATTR InstName C3 >SYMATTR Value 1m >SYMBOL res -128 144 R90 >WINDOW 0 0 56 VBottom 2 >WINDOW 3 32 56 VTop 2 >SYMATTR InstName R1 >SYMATTR Value 1K >SYMBOL res 80 144 R90 >WINDOW 0 0 56 VBottom 2 >WINDOW 3 32 56 VTop 2 >SYMATTR InstName R2 >SYMATTR Value 1K >SYMBOL res 96 -16 R90 >WINDOW 0 0 56 VBottom 2 >WINDOW 3 32 56 VTop 2 >SYMATTR InstName R3 >SYMATTR Value 1K >SYMBOL cap 288 224 R0 >WINDOW 0 67 13 Left 2 >WINDOW 3 64 44 Left 2 >SYMATTR InstName C4 >SYMATTR Value 1m >SYMBOL res 288 144 R90 >WINDOW 0 0 56 VBottom 2 >WINDOW 3 32 56 VTop 2 >SYMATTR InstName R4 >SYMATTR Value 1K >TEXT -208 -56 Left 2 !.tran 50 uic >TEXT 192 -88 Left 2 ;THERMOSTAT >TEXT 192 -48 Left 2 ;JL July 14, 2015 >TEXT -72 80 Left 2 ;===== thermal lags =====
Reply by ●July 14, 20152015-07-14
On 7/14/2015 1:29 PM, John Larkin wrote:> > > Imagine a mass that we want to heat with some closed-loop controller. > It's C2 below. Voltage represents temperature. Thermal systems are > diffusive, which we represent as a bunch of RC lags. Assume the > voltage at C4 is the temperature sensor. > > If I were to design a PID controller, I'd have to really think about > it, or fiddle some, to keep it stable. But if I do a dumb on/off > thermostat, it seems to always work. I can tweak the hysteresis and > vary the p-p temperature excursions and the switching frequency, but > it's always stable. Or maybe it's always unstable. But it works. > > As Vh gets smaller, the oscillation frequency converges to some > limiting value, which is I guess the ultimate performance of a > thermostat for this physics. To get any less temperature excursion, I > guess I'd have to do a real PID loop. Curious. > > This may have something to do with the fact that there is no thermal > equivalent to an inductor.All HVAC systems exhibit overshoot (well, face-bypass can control this but no one controls habitable space with such an inefficient approach!). With oil/gas-fired hot water, the thermal mass of the heated water sitting in the radiators continues to warm the interior air long after the "fire" has been removed. Even if you turn off the circulating pump, the heated water in the pipes/radiators still radiates heat -- until it falls to room temperature (if you rely on the water jacket for DHW, then it probably *never* reaches room temperature!) With gas fired forced air, the furnace "coasts" after the thermostat stops calling for heat (to remove the heat stored in the heat exchanger, ducts, etc.). Note that in none of these systems do you have anything more than a bang-bang controller operating. I.e., you can't tell the furnace to produce "36% heat" -- it's on or off. All you can do is fiddle with hysteresis and *size* the plant to fit the load (e.g., too big and too small are both bad options) You can, however, do some prediction to anticipate when the interior temperature will reach the desired setpoint and reduce the call for heat (cooling) before that time. This can reduce hysteresis at the expense of overall efficiency (tolerating a larger deadband gives you better efficiency)
Reply by ●July 14, 20152015-07-14
On Tue, 14 Jul 2015 14:13:36 -0700 (PDT), whit3rd <whit3rd@gmail.com> wrote:>On Tuesday, July 14, 2015 at 1:29:26 PM UTC-7, John Larkin wrote: >> Imagine a mass that we want to heat ...Thermal systems are >> diffusive, which we represent as a bunch of RC lags. > >> ... there is no thermal >> equivalent to an inductor. > >It'd be nice if that were the case, but you CAN get thermal overshoot, >just like an inductor, when your components achieve ignition temperature.But systems composed of heat sources and masses and thermal conductors don't ring or overshoot, whereas mechanical systems do ring and overshoot and oscillate. You have to add some non-thermal element, like electronics or some mechanical gidget, or gain somehow, to make a thermal system ring. Maybe that makes thermostat systems so docile. It does look like, for a nontrivial system, the p-p temperature excursion and frequency will be limited by the process, all the way down to zero hysteresis, which is equivalent to an ideal comparator. So it's kinda hard to get wrong. -- John Larkin Highland Technology, Inc picosecond timing precision measurement jlarkin att highlandtechnology dott com http://www.highlandtechnology.com
Reply by ●July 14, 20152015-07-14
In article <gcabqatiaij1slj29lu0h1bk8ck5gkfcog@4ax.com>, John Larkin <jlarkin@highlandtechnology.com> wrote:>But systems composed of heat sources and masses and thermal conductors >don't ring or overshoot, whereas mechanical systems do ring and >overshoot and oscillate.Seems to me that by limiting the system to "heat sources and masses and thermal conductors", you have eliminated any way for the temperature of the "downstream" parts of the system to affect the heat source. Hence, no feedback... and hence the classic conditions for oscillation cannot be met.> You have to add some non-thermal element, >like electronics or some mechanical gidget, or gain somehow, to make a >thermal system ring.Or like a thermostat? Put a "bang-bang" thermostat into the system to control the heat source, and you've introduced feedback... and at this point, the system sure-and-for-gosh is oscillating! It cycles above and below the setpoint temperature, at a rate set by the thermal mass of the system, the rate of loss-of-heat, and the rate-of-added-heat when the heater is on. Plot the temperature vs. time with the right axis scales, and you'll see something akin to a distorted sine or triangle or sawtooth wave. That's really not very different from the oscillations you'd get in a mechanical system... like a ping-pong ball in a column, with a fixed-force air jet which is turned on every time the ball falls below a specific height.>It does look like, for a nontrivial system, the p-p temperature >excursion and frequency will be limited by the process, all the way >down to zero hysteresis, which is equivalent to an ideal comparator. >So it's kinda hard to get wrong.FSVO "right" and "wrong". If the thermometer has too much thermal mass of its own, or isn't tightly coupled to the air in the room, it'll be slow in sensing the increase (or decrease) in temperature in the process area, and you'll end up with loads of overshoot. Household thermostats often have an "anticipator" built in, to limit this effect. It's a small heater, located near the sensing element, which goes on at the same time as the main house heater. This helps the thermostat "anticipate" the amount by which the main heater is probably warming the room air, and reduces the delay in shutting off when the right temperature is reached. If this sounds a bit like slapping adding a few pF of capacitance across the feedback resistor in an op amp circuit, to cancel out the phase lag caused by stray capacitance at the inverting node... well, yeah!
Reply by ●July 14, 20152015-07-14
On Tue, 14 Jul 2015 17:54:52 -0700, dplatt@coop.radagast.org (Dave Platt) wrote:>In article <gcabqatiaij1slj29lu0h1bk8ck5gkfcog@4ax.com>, >John Larkin <jlarkin@highlandtechnology.com> wrote: > >>But systems composed of heat sources and masses and thermal conductors >>don't ring or overshoot, whereas mechanical systems do ring and >>overshoot and oscillate. > >Seems to me that by limiting the system to "heat sources and masses >and thermal conductors", you have eliminated any way for the >temperature of the "downstream" parts of the system to affect the heat >source. Hence, no feedback... and hence the classic conditions for >oscillation cannot be met.A simple mechanical system, like a rod sticking out of the ground, or a solid sphere, can ring if you whack it. The three basic elements of the differential equation are there. An RLC will ring, ditto. Thermal systems can't ring, because the inductor equivalent doesn't exist. It's like making a circuit out of just resistors and capacitors.> >> You have to add some non-thermal element, >>like electronics or some mechanical gidget, or gain somehow, to make a >>thermal system ring. > >Or like a thermostat?Yup.> >Put a "bang-bang" thermostat into the system to control the heat >source, and you've introduced feedback... and at this point, the >system sure-and-for-gosh is oscillating!Sure. If you add a non-thermal component. It cycles above and below>the setpoint temperature, at a rate set by the thermal mass of the >system, the rate of loss-of-heat, and the rate-of-added-heat when the >heater is on. Plot the temperature vs. time with the right axis >scales, and you'll see something akin to a distorted sine or triangle >or sawtooth wave. > >That's really not very different from the oscillations you'd get in a >mechanical system... like a ping-pong ball in a column, with a >fixed-force air jet which is turned on every time the ball falls below >a specific height. > >>It does look like, for a nontrivial system, the p-p temperature >>excursion and frequency will be limited by the process, all the way >>down to zero hysteresis, which is equivalent to an ideal comparator. >>So it's kinda hard to get wrong. > >FSVO "right" and "wrong". > >If the thermometer has too much thermal mass of its own, or isn't >tightly coupled to the air in the room, it'll be slow in sensing the >increase (or decrease) in temperature in the process area, and you'll >end up with loads of overshoot.My model has several coupled lags, with the last one representing the sensor response. The loop regulates nicely.> >Household thermostats often have an "anticipator" built in, to limit >this effect. It's a small heater, located near the sensing element, >which goes on at the same time as the main house heater. This helps >the thermostat "anticipate" the amount by which the main heater is >probably warming the room air, and reduces the delay in shutting off >when the right temperature is reached.In my circuit, that would be another resistor that leapfrogs several of the RCs. I'll try that. -- John Larkin Highland Technology, Inc picosecond timing precision measurement jlarkin att highlandtechnology dott com http://www.highlandtechnology.com
Reply by ●July 14, 20152015-07-14
In article <gcabqatiaij1slj29lu0h1bk8ck5gkfcog@4ax.com>, jlarkin@highlandtechnology.com says...> > On Tue, 14 Jul 2015 14:13:36 -0700 (PDT), whit3rd <whit3rd@gmail.com> > wrote: > > >On Tuesday, July 14, 2015 at 1:29:26 PM UTC-7, John Larkin wrote: > >> Imagine a mass that we want to heat ...Thermal systems are > >> diffusive, which we represent as a bunch of RC lags. > > > >> ... there is no thermal > >> equivalent to an inductor. > > > >It'd be nice if that were the case, but you CAN get thermal overshoot, > >just like an inductor, when your components achieve ignition temperature. > > But systems composed of heat sources and masses and thermal conductors > don't ring or overshoot, whereas mechanical systems do ring and > overshoot and oscillate. You have to add some non-thermal element, > like electronics or some mechanical gidget, or gain somehow, to make a > thermal system ring. > > Maybe that makes thermostat systems so docile. > > It does look like, for a nontrivial system, the p-p temperature > excursion and frequency will be limited by the process, all the way > down to zero hysteresis, which is equivalent to an ideal comparator. > So it's kinda hard to get wrong.You need to provide a (D) factor for the PID.. As the Precess value reaches Set point value, the D factor will start to shut down the output to the rate of the clime. I've seen many PID controllers and it seems that not everyone is on the same page. They generally get the P correct but seem to have issues with (I) and (D), (D) being a real problem. A good (D) response should actually attempt to lower output power if the rate of change is increasing too fast. And the same for the other way, if the rate of decrease is too fast it should actually increase power output. Some systems are just Pulsed, so in such cases you simply generate what would looks like a slow PWM when (D) needs to do something or your PV is close to set point(SP) (P) will dictate pulse rate to maintain setpoint. If you're interested, there is an analog PID controller used mostly for dancer control but also can be applied for others. Sim the circuit you would like but you'll see how the (lead)(D) function behaves and (Lag)(I) works. This method of control in my opinion is absolutely perfect. I have applied this method in software many times for PID control instead of using built in PID functions which vary all over the place from one device to another. http://wwww.contrexinc.com/PDF/Reflex/tm_12m03_104.pdf In this case, the dancer input would be the PROCESS VALUE (Feed back) DANCER POS is SP (Set point). Gain is (P), Lag (I) and Lead(D).. The break options as you'll see also help to control the impact of the effect, something you don't get in most PID systems. Jamie
Reply by ●July 15, 20152015-07-15
On 15/07/2015 02:10, John Larkin wrote:> the differential equation are there. An RLC will ring, ditto. Thermal > systems can't ring, because the inductor equivalent doesn't exist. > It's like making a circuit out of just resistors and capacitors. >But even circuits without L can ring if there is enough accumulated R-C phase shift? piglet