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 =====