Part IV — Control

Anticipation, Limits, and Nested Control

Online, with a lab for each exercise: thinking-in-diagrams.aryehnielsen.com

Feedback control diagramsPart IV · Control · Chapter 9 of 12 · the second of two chapters on feedback control diagrams

What happens when correction isn’t enough? A correction can come too late, stop at a limit, follow noise in a reading, or be needed before any gap opens, and one loop’s corrective action can be another’s target. A feedback control diagram shows where each happens, and where a person takes over.

A marathon run to plan

A runner aims to finish a marathon, 42.2 kilometers, in 3 hours 30 minutes. Her watch projects her finish time from her pace so far. While the projection is later than 3:30 she sets herself a faster target pace, and while it is earlier, a slower one. Pace is minutes per kilometer, so the faster she runs, the lower it is.

At the end of each kilometer the watch shows her lap pace, her average over that kilometer. When it is more than 5 seconds slower than her target pace she runs harder; more than 5 seconds faster, she eases off. She runs no harder than the effort she can hold to the finish.

At 30 kilometers she sees a hill ahead and runs harder before she reaches it. If the day turns hot, she drops the plan and runs by feel.

Feedback control diagram: her pace; her finish time Variables: target finish time (target); minutes behind plan (gap); target pace (corrective action); seconds too slow (gap); her effort (corrective action, at most the effort she can hold to the finish); her pace (controlled variable); lap pace (measured value); her finish time (controlled variable); projected finish time (measured value); hill's gradient (external driver); effort she picks by feel (override). Signals: target finish time to minutes behind plan, −; projected finish time to minutes behind plan, +; minutes behind plan to target pace, −; target pace to seconds too slow, −; lap pace to seconds too slow, +; seconds too slow to her effort, +, deadband ±5 seconds per kilometer; her effort to her pace, −; her pace to lap pace, +, with a delay; her pace to her finish time, +; her finish time to projected finish time, +; hill's gradient to her pace, +; hill's gradient to her effort, +; effort she picks by feel to her effort, +. Loop B1 holding the pace, balancing: seconds too slow, her effort, her pace, lap pace, and back to seconds too slow. Loop B2 keeping to the finish time, balancing: minutes behind plan, target pace, seconds too slow, her effort, her pace, her finish time, projected finish time, and back to minutes behind plan. Control loop B1: seconds too slow → her effort → her pace → lap pace; target: target pace. Control loop B2: minutes behind plan → target pace → her finish time → projected finish time; target: target finish time. Nested: B1 inside B2: target pace sets seconds too slow. Feedforward: hill's gradient → her effort. − + − − + +deadband ±5 seconds per kilometer − + + + + + + target finish timetarget minutes behind plangap target pacecorrective action seconds too slowgap her effortcorrective actionat most the effort she can hold to the finish her pacecontrolled variable lap pacemeasured value her finish timecontrolled variable projected finish timemeasured value ‹hill's gradient› effort she picks by feeloverride B1holding the pace B2keeping to the finish time

Her two gaps thinking-in-diagrams.aryehnielsen.com/control/sense-compare-correct/#target-and-gap are minutes behind plan, the projected finish time less the target finish time, and seconds too slow, the lap pace less the target pace.

What the notation expresses

Feedforward

Feedforward is a path of signals from an external driver to a corrective action that passes through no gap. Hill’s gradient → her effort, +, is one: she runs harder as the hill nears, before her pace slows and any gap opens. The gradient also acts on her pace, +, so if she misjudges the hill, she corrects the difference only once the lap pace reads it, up to a kilometer later. Feedforward has no mark of its own.

Sampling and filters

Sampling is how often the measured value updates, and a filter is how it is smoothed. Each is drawn as a delay on the return path thinking-in-diagrams.aryehnielsen.com/control/sense-compare-correct/#delays-in-control, a signal delay thinking-in-diagrams.aryehnielsen.com/accumulation/stocks-inside-feedback/#material-and-signal-delays. Her pace → lap pace carries one: the lap pace is sampled once a kilometer and averaged over it, so a water station or a corner barely moves it, and a slowdown shows up to a kilometer late.

Deadband

A deadband is a range of gaps within which the corrective action stays as it is. It is written beside the gap’s signal to the corrective action: deadband ±5 seconds per kilometer on seconds too slow → her effort. She sets it wider than the few seconds by which her lap pace varies at an unchanged effort.

Saturation

Saturation is the most a corrective action can reach, however wide the gap. It is written beneath the corrective action’s name as at most and its limit: at most the effort she can hold to the finish. At that limit a wider gap changes her effort no further: on a steep hill her pace slows, and the seconds lost are made up only after the top.

Saturation is not a nonlinear effect thinking-in-diagrams.aryehnielsen.com/feedback/delays-drivers-and-competing-loops/#nonlinear-effects. A nonlinear effect belongs to a signal: how strongly one variable changes another across its range. Saturation belongs to the corrective action: a bound on the variable itself, whichever signal reaches it, the gap’s or the gradient’s.

Check your understanding

A basement floods, and someone sets a dehumidifier to bring its air down to 50% relative humidity. The dehumidifier runs flat out, removing at most 20 liters of water a day, and for a week the air stays far wetter than 50%. In a feedback control diagram of the basement, how is that limit drawn?

  1. a as at most 20 liters a day, written beneath water removed, the corrective action
  2. b as a nonlinear effect on the signal from water removed to the basement's humidity
  3. c as a deadband on the signal from the humidity gap to water removed

Feedback: Answers, chapter 9

Competing targets

A shared corrective action is one corrective action on two or more control loops. If she also kept her heart rate below 165 beats a minute, her effort would be the corrective action of a heart-rate loop too. On the hill, as in coupled loops thinking-in-diagrams.aryehnielsen.com/feedback/loops-that-amplify-loops-that-correct/#coupled-loops, seconds too slow would raise her effort while beats too many lowered it, and no effort would close both gaps.

A cross-effect is a signal from a variable of one control loop to a variable of another, itself on no declared loop. A museum gallery with a temperature loop and a humidity loop has one: heater output → gallery humidity, −, since warming air lowers its relative humidity, so each correction of the temperature opens a humidity gap.

Nested loops

A nested loop is a control loop whose target is another loop’s corrective action. B2, keeping to the finish time, runs from minutes behind plan through target pace and on through B1’s gap, effort and pace to her finish time. Nothing marks the nesting: target pace keeps its one role, corrective action, and its signal into seconds too slow makes it B1’s target.

B1 closes a gap within a kilometer or two, and B2 moves the target pace over many: loop dominance thinking-in-diagrams.aryehnielsen.com/feedback/delays-drivers-and-competing-loops/#loop-dominance here runs by timescale, B1 dominating her effort over a kilometer and B2 over the race.

Override and false alarms

An override is a variable a person sets whose signal reaches a corrective action, replacing the loop’s rule for a while; override is written above its name. Effort she picks by feel → her effort: when the day turns hot she drops the plan, and while she runs by feel neither gap changes her effort.

A false alarm is a gap opened by the reading alone. Among tall buildings the watch’s satellite fix drifts, and the lap pace can read 20 seconds slow while her pace holds. By the loop’s rule she would run harder; by override she holds her effort for that kilometer.

The bad diagram

What’s wrong with this diagram of a museum gallery’s humidity?

Feedback control diagram: gallery humidity Variables: target humidity (target); humidity gap (gap); humidifier output (corrective action); gallery humidity (controlled variable); humidity reading (measured value); doors opened by visitors (external driver). Signals: target humidity to humidity gap, +; humidity reading to humidity gap, −; humidity gap to humidifier output, +; humidifier output to gallery humidity, +; gallery humidity to humidity reading, +; doors opened by visitors to gallery humidity, −. Loop B1 humidifying, balancing: humidity gap, humidifier output, gallery humidity, humidity reading, and back to humidity gap. Control loop B1: humidity gap → humidifier output → gallery humidity → humidity reading; target: target humidity. + − + + + − target humiditytarget humidity gapgap humidifier outputcorrective action gallery humiditycontrolled variable humidity readingmeasured value ‹doors opened by visitors› B1humidifying

A museum keeps a gallery’s paintings near 50% relative humidity, and a humidifier adds moisture when the air is drier than that. On a winter day each door a visitor opens lets in cold outdoor air, which, warmed, lowers the gallery’s relative humidity for a minute. The reading, taken straight from the gallery’s humidity, drops, and the humidifier starts, then stops as the air recovers: every door opened changes its output. The lab’s check for at least one deadband reports:

0 signals with a deadband. Brief: at least 1. A deadband is written on the signal from a gap to a corrective action.

The corrected diagram

Corrected, the measured value is hourly average humidity, a filter drawn as a delay on the return path, and the gap’s signal carries deadband ±10 percentage points: while the gap is less than 10 points either way, the humidifier output stays as it is. With the target at 50%, those gaps span the Bizot Green Protocol’s range for paintings, 40–60% relative humidity.

Bad diagram
Feedback control diagram: gallery humidity Variables: target humidity (target); humidity gap (gap); humidifier output (corrective action); gallery humidity (controlled variable); humidity reading (measured value); doors opened by visitors (external driver). Signals: target humidity to humidity gap, +; humidity reading to humidity gap, −; humidity gap to humidifier output, +; humidifier output to gallery humidity, +; gallery humidity to humidity reading, +; doors opened by visitors to gallery humidity, −. Loop B1 humidifying, balancing: humidity gap, humidifier output, gallery humidity, humidity reading, and back to humidity gap. Control loop B1: humidity gap → humidifier output → gallery humidity → humidity reading; target: target humidity. + − + + + − target humiditytarget humidity gapgap humidifier outputcorrective action gallery humiditycontrolled variable humidity readingmeasured value ‹doors opened by visitors› B1humidifying
Corrected diagram
Feedback control diagram: gallery humidity Variables: target humidity (target); humidity gap (gap); humidifier output (corrective action); gallery humidity (controlled variable); hourly average humidity (measured value); doors opened by visitors (external driver). Signals: target humidity to humidity gap, +; hourly average humidity to humidity gap, −; humidity gap to humidifier output, +, deadband ±10 percentage points; humidifier output to gallery humidity, +; gallery humidity to hourly average humidity, +, with a delay; doors opened by visitors to gallery humidity, −. Loop B1 humidifying, balancing: humidity gap, humidifier output, gallery humidity, hourly average humidity, and back to humidity gap. Control loop B1: humidity gap → humidifier output → gallery humidity → hourly average humidity; target: target humidity. + − +deadband ±10 percentage points + + − target humiditytarget humidity gapgap humidifier outputcorrective action gallery humiditycontrolled variable hourly average humiditymeasured value ‹doors opened by visitors› B1humidifying

Changed: 1 label. Signals: 1 delay added, 1 deadband added.

Notation moves

Notation moveWhenWhat it showsExample
Draw a signal from an external driver to a corrective actionThe external driver is seen before it arrivesFeedforward: a correction before any gap openshill’s gradient → her effort
Feedback control diagram Variables: hill's gradient (external driver); her effort (corrective action). Signals: hill's gradient to her effort, +. Feedforward: hill's gradient → her effort. + ‹hill's gradient› her effortcorrective action
Mark a delay on the return pathThe reading is sampled or averagedA reading arriving lateher pace → lap pace
Feedback control diagram: her pace Variables: her pace (controlled variable); lap pace (measured value). Signals: her pace to lap pace, +, with a delay. + her pacecontrolled variable lap pacemeasured value
Write deadband and its band beside the gap’s signalSmall gaps go uncorrectedWhich gaps no correction answersdeadband ±5 seconds per kilometer
Feedback control diagram Variables: seconds too slow (gap); her effort (corrective action). Signals: seconds too slow to her effort, +, deadband ±5 seconds per kilometer. +deadband ±5 seconds per kilometer seconds too slowgap her effortcorrective action
Write at most and the limit beneath a corrective actionThe corrective action has a most it can reachWhere a wider gap stops changing itat most the effort she can hold to the finish
Feedback control diagram Variables: her effort (corrective action, at most the effort she can hold to the finish). her effortcorrective actionat most the effort she can hold to the finish
Give two control loops one corrective actionTwo targets rest on one variableA shared corrective actionher effort, on pace and heart-rate loops
Feedback control diagram: her pace; her heart rate Variables: seconds too slow (gap); her effort (corrective action); beats too many (gap); lap pace (measured value); her pace (controlled variable); her heart rate (controlled variable); heart-rate reading (measured value). Signals: seconds too slow to her effort, +; her effort to her pace, −; her pace to lap pace, +, with a delay; lap pace to seconds too slow, +; beats too many to her effort, −; her effort to her heart rate, +; her heart rate to heart-rate reading, +; heart-rate reading to beats too many, +. Loop B1 holding the pace, balancing: seconds too slow, her effort, her pace, lap pace, and back to seconds too slow. Loop B2 holding the heart rate, balancing: beats too many, her effort, her heart rate, heart-rate reading, and back to beats too many. Control loop B1: seconds too slow → her effort → her pace → lap pace. Control loop B2: beats too many → her effort → her heart rate → heart-rate reading. + − + + − + + + seconds too slowgap her effortcorrective action beats too manygap lap pacemeasured value her pacecontrolled variable her heart ratecontrolled variable heart-rate readingmeasured value B1holding the pace B2holding the heart rate
End one loop’s corrective action at another loop’s gapOne loop moves another’s targetA nested looptarget pace → seconds too slow
Feedback control diagram Variables: target pace (corrective action); seconds too slow (gap). Signals: target pace to seconds too slow, −. − target pacecorrective action seconds too slowgap
Write override above a variable a person setsSomeone can set the loop’s rule asideWhere a person replaces the ruleeffort she picks by feel
Feedback control diagram Variables: effort she picks by feel (override); her effort (corrective action). Signals: effort she picks by feel to her effort, +. + effort she picks by feeloverride her effortcorrective action

Common misreading

Read one way, correcting after every reading keeps a quantity closest to its target. In Deming’s funnel experiment, marbles dropped through a funnel aimed at a mark land scattered around it. Moving the funnel after each drop, from where it stands, by the opposite of the last marble’s miss doubles the variance of where the marbles land (Deming, 1986, as Pyzdek reproduces it). Each move answers a miss that came from chance, and adds a miss of its own.

Changing her effort after each kilometer to cancel the few seconds by which her last lap pace missed her target pace adds that change to the next lap’s variation, and her pace scatters wider; inside the deadband of ±5 seconds per kilometer, her effort stays as it is.

The strongest objection

A diagram of roles holds no number for how hard a loop corrects: how much her effort changes for each second too slow. With the loop’s delays, that number determines whether it settles or oscillates: raised far enough, it makes a loop oscillate, and the longer the delay, the more slowly a loop can be made to correct (Åström and Murray).

Tuning lies outside the diagram. Where the delay sits and where an external driver enters are on it, and they set what any tuning can do. However hard she corrects each second too slow, her effort changes for the hill only after the lap pace reads it; the feedforward path from hill’s gradient changes it before. For a slow reading, the delay to shorten is on the return path: a lap pace averaged over 500 meters arrives sooner, and varies more from lap to lap.

Check your understanding

Check your understanding

A smoke alarm hangs by a kitchen's toaster. When the smoke it reads passes its trigger it sounds, and someone opens the window and fans the smoke out. Toast browned too far sets it off with no fire, so the household presses its hush button, which silences it for ten minutes; then it reads the smoke again. In a feedback control diagram of the kitchen, what is the hush button pressed?

  1. a an override, its signal ending at the alarm's sound
  2. b a new target: a higher trigger for smoke
  3. c an external driver acting on the smoke in the kitchen

Feedback: Answers, chapter 9

A furnace with feedforward, redrawn

Feedback control diagram: outlet temperature Variables: target outlet temperature (target); degrees below target (gap); fuel gas flow (corrective action); outlet temperature (controlled variable); measured outlet temperature (measured value); rate of incoming fluid (external driver). Signals: target outlet temperature to degrees below target, +; measured outlet temperature to degrees below target, −; degrees below target to fuel gas flow, +; fuel gas flow to outlet temperature, +; outlet temperature to measured outlet temperature, +; rate of incoming fluid to outlet temperature, −; rate of incoming fluid to fuel gas flow, +. Loop B1 heating to the target, balancing: degrees below target, fuel gas flow, outlet temperature, measured outlet temperature, and back to degrees below target. Control loop B1: degrees below target → fuel gas flow → outlet temperature → measured outlet temperature; target: target outlet temperature. Feedforward: rate of incoming fluid → fuel gas flow. + − + + + − + target outlet temperaturetarget degrees below targetgap fuel gas flowcorrective action outlet temperaturecontrolled variable measured outlet temperaturemeasured value ‹rate of incoming fluid› B1heating to the target

Redrawn from Peter Woolf and others, Chemical Process Dynamics and Controls (University of Michigan), section 11.2, “Feed Forward Control”, on LibreTexts eng.libretexts.org/Bookshelves/Industrial_and_Systems_Engineering/Chemical_Process_Dynamics_and_Controls_(Woolf)/11%3A_Control_Architectures/11.02%3A_Feed_forward_control-_What_is_it_When_useful_When_not_Common_usage., the furnace drawn after “This system can also be represented by the following”. CC BY 3.0 creativecommons.org/licenses/by/3.0/.

Its boxes dropped and the lines between them drawn as variables with roles: its temperature setpoint as target outlet temperature, the target; its output as outlet temperature, the controlled variable; its output sensor’s reading as measured outlet temperature, the measured value; its input flow disturbance as rate of incoming fluid, the external driver; the gap, which it leaves inside its temperature controller, drawn as degrees below target, and that controller as the signal from the gap to fuel gas flow, the corrective action; its disturbance sensor and feed-forward controller as the signal from rate of incoming fluid to fuel gas flow; polarities added from its text, and the loop named.

Question 1 of 3

Which path in the redrawing is feedforward?

  1. a Rate of incoming fluid → outlet temperature, −.
  2. b Measured outlet temperature → degrees below target, −.
  3. c Rate of incoming fluid → fuel gas flow, +.

Question 2 of 3

Fuel gas flow already rises with the rate of incoming fluid. What is left for B1 to correct?

  1. a Whatever the feedforward rule gets wrong, and any change it doesn’t read, such as in the furnace itself.
  2. b Nothing while the rate of incoming fluid changes, since the feedforward has already made up for it.
  3. c Only a change in the target outlet temperature.

Question 3 of 3

Heat from the burning fuel takes time to pass into the fluid and reach the outlet. Where would a delay be drawn?

  1. a On measured outlet temperature → degrees below target, since the reading comes back late.
  2. b On rate of incoming fluid → fuel gas flow, since feedforward arrives late.
  3. c On fuel gas flow → outlet temperature, B1’s forward path.

Feedback: Answers, chapter 9

Exercises

Passing the checks means meeting the brief, not being right.

FC 06 Entry gates at a concert as trains arrive

Your palette

  • Feedback control diagram Variables: boiler output. boiler output
    variable
  • Causal-loop diagram Variables: price; sales; revenue. Effects: price to sales (−, opposite direction); sales to revenue (+, same direction). − + price sales revenue
    polarity
  • Causal-loop diagram: R1 practice habit Variables: practice; skill; enjoyment. Effects: practice to skill (+, same direction); skill to enjoyment (+, same direction); enjoyment to practice (+, same direction). Loop R1 practice habit, reinforcing: practice, skill, enjoyment, and back to practice. + + + practice skill enjoyment R1practice habit
    loop
  • Causal-loop diagram: B1 warming up Variables: room heat; heating. Effects: room heat to heating (−, opposite direction); heating to room heat (+, same direction). Loop B1 warming up, balancing: room heat, heating, and back to room heat. − + room heat heating B1warming up
    balancing loop
  • Causal-loop diagram Variables: weather (external driver); footfall. Effects: weather to footfall (+, same direction). Boundary the café contains: footfall. Outside every boundary: weather. the café + ‹weather› footfall
    external driver
  • Feedback control diagram Variables: temperature wanted (target); temperature gap (gap); thermometer reading (measured value). Signals: temperature wanted to temperature gap, +; thermometer reading to temperature gap, −. + − temperature wantedtarget temperature gapgap thermometer readingmeasured value
    gapa role, written above its variable's name
  • Feedback control diagram: chlorine in the water Stocks: chlorine in the water (grams, controlled variable). gramschlorine in the watercontrolled variable
    stock
  • Feedback control diagram Stocks: chlorine in the water (grams). Variables: dosing pump speed (corrective action). Flows: dosing, from a cloud to chlorine in the water (grams per hour). Signals: dosing pump speed to dosing, +. dosing + dosing pump speedcorrective action gramschlorine in the water
    flow
  • Stock & flow diagram: water in tub Stocks: water in tub (liters). Flows: draining, from water in tub to a cloud (liters per minute). draining literswater in tub
    cloud
  • Stock & flow diagram: water in tub Stocks: water in tub (liters). Auxiliaries: tap opening. Flows: filling, from a cloud to water in tub (liters per minute). Signals: tap opening to filling, +. filling + literswater in tub tap opening
    signal
  • Feedback control diagram Variables: temperature wanted (target); temperature gap. Signals: temperature wanted to temperature gap, +. + temperature wantedtarget temperature gap
    targeta role, written above its variable's name
  • Feedback control diagram Variables: temperature gap; boiler output (corrective action). Signals: temperature gap to boiler output, +. + temperature gap boiler outputcorrective action
    corrective actiona role, written above its variable's name
  • Feedback control diagram: room temperature Variables: boiler output; room temperature (controlled variable). Signals: boiler output to room temperature, +. + boiler output room temperaturecontrolled variable
    controlled variablea role, written above its variable's name
  • Feedback control diagram Variables: room temperature; thermometer reading (measured value). Signals: room temperature to thermometer reading, +. + room temperature thermometer readingmeasured value
    measured valuea role, written above its variable's name
  • Feedback control diagram Variables: gust seen upwind (external driver); heel past upright (gap); sheet eased (corrective action). Signals: gust seen upwind to sheet eased, +; heel past upright to sheet eased, +. Feedforward: gust seen upwind → sheet eased. + + ‹gust seen upwind› heel past uprightgap sheet easedcorrective action
    feedforward

FC 06 Entry gates at a concert as trains arrive

Feedforward, then correction

  • Reasoning3 of 5
  • Polish4 of 5

Fans reach a stadium concert by train and queue at the entry gates. The stewards aim for a wait of about ten minutes, which at the gates' pace is a queue of about 600 people. Every few minutes a steward counts the queue, and the further the count runs above 600, the more gates the stewards open. A full train brings about 1,000 fans to the gates within a few minutes of arriving. The station's arrivals board shows each train due, and when it shows a full train the stewards open more gates before its fans reach the queue. Count the queue in people, and time in minutes.

The brief

  • Read the trains due on the arrivals board into gates open, by a path that passes no gap.
  • Draw trains arriving as an external driver acting on the flow of people joining the queue.
  • Close one control loop through the flow of people passing through the gates: the gap, gates open, the people queuing and the stewards' count.
  • The feedforward path and the gap's signal both end at gates open.

Your palette

On the page before this sheet.

Draw here

In the lab, with the brief’s structure checked as you draw: thinking-in-diagrams.aryehnielsen.com/control/anticipation-limits-and-nested-control/#exercise-feedback-control-06

FC 07 Tuning a guitar with a clip-on tuner

Your palette

  • Feedback control diagram Variables: boiler output. boiler output
    variable
  • Causal-loop diagram Variables: price; sales; revenue. Effects: price to sales (−, opposite direction); sales to revenue (+, same direction). − + price sales revenue
    polarity
  • Causal-loop diagram Variables: orders; deliveries. Effects: orders to deliveries (+, same direction, with a delay). + orders deliveries
    delay
  • Causal-loop diagram: R1 practice habit Variables: practice; skill; enjoyment. Effects: practice to skill (+, same direction); skill to enjoyment (+, same direction); enjoyment to practice (+, same direction). Loop R1 practice habit, reinforcing: practice, skill, enjoyment, and back to practice. + + + practice skill enjoyment R1practice habit
    loop
  • Causal-loop diagram: B1 warming up Variables: room heat; heating. Effects: room heat to heating (−, opposite direction); heating to room heat (+, same direction). Loop B1 warming up, balancing: room heat, heating, and back to room heat. − + room heat heating B1warming up
    balancing loop
  • Causal-loop diagram Variables: weather (external driver); footfall. Effects: weather to footfall (+, same direction). Boundary the café contains: footfall. Outside every boundary: weather. the café + ‹weather› footfall
    external driver
  • Feedback control diagram Variables: temperature wanted (target); temperature gap (gap); thermometer reading (measured value). Signals: temperature wanted to temperature gap, +; thermometer reading to temperature gap, −. + − temperature wantedtarget temperature gapgap thermometer readingmeasured value
    gapa role, written above its variable's name
  • Stock & flow diagram: water in tub Stocks: water in tub (liters). Auxiliaries: tap opening. Flows: filling, from a cloud to water in tub (liters per minute). Signals: tap opening to filling, +. filling + literswater in tub tap opening
    signal
  • Feedback control diagram Variables: temperature wanted (target); temperature gap. Signals: temperature wanted to temperature gap, +. + temperature wantedtarget temperature gap
    targeta role, written above its variable's name
  • Feedback control diagram Variables: temperature gap; boiler output (corrective action). Signals: temperature gap to boiler output, +. + temperature gap boiler outputcorrective action
    corrective actiona role, written above its variable's name
  • Feedback control diagram: room temperature Variables: boiler output; room temperature (controlled variable). Signals: boiler output to room temperature, +. + boiler output room temperaturecontrolled variable
    controlled variablea role, written above its variable's name
  • Feedback control diagram Variables: room temperature; thermometer reading (measured value). Signals: room temperature to thermometer reading, +. + room temperature thermometer readingmeasured value
    measured valuea role, written above its variable's name
  • Feedback control diagram Variables: string below pitch (gap); peg turned (corrective action). Signals: string below pitch to peg turned, +, deadband ±3 cents. +deadband ±3 cents string below pitchgap peg turnedcorrective action
    deadband

FC 07 Tuning a guitar with a clip-on tuner

A noisy reading, a wait, and a band left alone

  • Reasoning4 of 5
  • Polish4 of 5

Amara tunes her guitar's high E string to about 330 Hz with a clip-on tuner, which shows how many cents the string sits sharp or flat of E. Right after she plucks, the reading wobbles by several cents as the note rings and fades, so she waits about two seconds for it to settle before she reads it. When the settled reading is more than 3 cents flat she turns the peg to tighten the string, further the flatter it reads; when it is more than 3 cents sharp she turns the peg back; within 3 cents she leaves the peg alone. The strings are new, and as they stretch the string goes flat between tunings.

The brief

  • Mark the wait while the tuner's reading settles as a delay on the return path.
  • Write her 3 cents either way as a deadband on the signal from the gap to the peg.
  • Draw the pluck's wobble as an external driver acting on the tuner's reading.
  • Leaving the peg alone inside 3 cents is the deadband, not a second variable.

Your palette

On the page before this sheet.

Draw here

In the lab, with the brief’s structure checked as you draw: thinking-in-diagrams.aryehnielsen.com/control/anticipation-limits-and-nested-control/#exercise-feedback-control-07

FC 08 A home reef aquarium

Your palette

  • Feedback control diagram Variables: boiler output. boiler output
    variable
  • Causal-loop diagram Variables: price; sales; revenue. Effects: price to sales (−, opposite direction); sales to revenue (+, same direction). − + price sales revenue
    polarity
  • Causal-loop diagram: R1 practice habit Variables: practice; skill; enjoyment. Effects: practice to skill (+, same direction); skill to enjoyment (+, same direction); enjoyment to practice (+, same direction). Loop R1 practice habit, reinforcing: practice, skill, enjoyment, and back to practice. + + + practice skill enjoyment R1practice habit
    loop
  • Causal-loop diagram: B1 warming up Variables: room heat; heating. Effects: room heat to heating (−, opposite direction); heating to room heat (+, same direction). Loop B1 warming up, balancing: room heat, heating, and back to room heat. − + room heat heating B1warming up
    balancing loop
  • Feedback control diagram Variables: temperature wanted (target); temperature gap (gap); thermometer reading (measured value). Signals: temperature wanted to temperature gap, +; thermometer reading to temperature gap, −. + − temperature wantedtarget temperature gapgap thermometer readingmeasured value
    gapa role, written above its variable's name
  • Stock & flow diagram: water in tub Stocks: water in tub (liters). Auxiliaries: tap opening. Flows: filling, from a cloud to water in tub (liters per minute). Signals: tap opening to filling, +. filling + literswater in tub tap opening
    signal
  • Feedback control diagram Variables: temperature wanted (target); temperature gap. Signals: temperature wanted to temperature gap, +. + temperature wantedtarget temperature gap
    targeta role, written above its variable's name
  • Feedback control diagram Variables: temperature gap; boiler output (corrective action). Signals: temperature gap to boiler output, +. + temperature gap boiler outputcorrective action
    corrective actiona role, written above its variable's name
  • Feedback control diagram: room temperature Variables: boiler output; room temperature (controlled variable). Signals: boiler output to room temperature, +. + boiler output room temperaturecontrolled variable
    controlled variablea role, written above its variable's name
  • Feedback control diagram Variables: room temperature; thermometer reading (measured value). Signals: room temperature to thermometer reading, +. + room temperature thermometer readingmeasured value
    measured valuea role, written above its variable's name
  • Causal-loop diagram Variables: . Behavior note: oscillation. oscillation
    behavior note

FC 08 A home reef aquarium

Three targets, one shared corrective action

  • Reasoning4 of 5
  • Polish4 of 5

Keiko keeps a reef aquarium at home and holds three quantities near targets: the water at 25 °C, its salinity at 35 parts per thousand, and its alkalinity at 8 dKH. A thermometer in the tank reads the temperature, and the heater's output rises the cooler it reads. Once a week she reads the salinity with a refractometer and tests the alkalinity with a kit, then changes part of the water for new salt water mixed at 34 parts per thousand and 11 dKH: the higher the salinity reads, or the lower the alkalinity, the more water she changes that week. The new water comes from a bucket a few degrees cooler than the tank. The harder the heater runs, the faster the water evaporates, leaving its salt behind.

The brief

  • Close three control loops, for temperature, salinity and alkalinity, each with its target, reading and gap.
  • Make the water changed per week the corrective action of both the salinity loop and the alkalinity loop.
  • Draw the heater's signal to salinity and the water changes' signal to the water temperature as cross-effects.
  • A behavior note names the tradeoff between the loops.

Your palette

On the page before this sheet.

Draw here

In the lab, with the brief’s structure checked as you draw: thinking-in-diagrams.aryehnielsen.com/control/anticipation-limits-and-nested-control/#exercise-feedback-control-08

FC 09 A mail service's spam filter

Your palette

  • Feedback control diagram Variables: boiler output. boiler output
    variable
  • Causal-loop diagram Variables: price; sales; revenue. Effects: price to sales (−, opposite direction); sales to revenue (+, same direction). − + price sales revenue
    polarity
  • Causal-loop diagram: R1 practice habit Variables: practice; skill; enjoyment. Effects: practice to skill (+, same direction); skill to enjoyment (+, same direction); enjoyment to practice (+, same direction). Loop R1 practice habit, reinforcing: practice, skill, enjoyment, and back to practice. + + + practice skill enjoyment R1practice habit
    loop
  • Causal-loop diagram: R1 compounding Variables: savings; interest. Effects: savings to interest (+, same direction); interest to savings (+, same direction). Loop R1 compounding, reinforcing: savings, interest, and back to savings. + + savings interest R1compounding
    reinforcing loop
  • Causal-loop diagram: B1 warming up Variables: room heat; heating. Effects: room heat to heating (−, opposite direction); heating to room heat (+, same direction). Loop B1 warming up, balancing: room heat, heating, and back to room heat. − + room heat heating B1warming up
    balancing loop
  • Causal-loop diagram Variables: orders; stock. Effects: orders to stock (−, opposite direction). Boundary the shop contains: orders; stock. the shop − orders stock
    boundary
  • Causal-loop diagram Variables: weather (external driver); footfall. Effects: weather to footfall (+, same direction). Boundary the café contains: footfall. Outside every boundary: weather. the café + ‹weather› footfall
    external driver
  • Feedback control diagram Variables: temperature wanted (target); temperature gap (gap); thermometer reading (measured value). Signals: temperature wanted to temperature gap, +; thermometer reading to temperature gap, −. + − temperature wantedtarget temperature gapgap thermometer readingmeasured value
    gapa role, written above its variable's name
  • Stock & flow diagram: water in tub Stocks: water in tub (liters). Auxiliaries: tap opening. Flows: filling, from a cloud to water in tub (liters per minute). Signals: tap opening to filling, +. filling + literswater in tub tap opening
    signal
  • Feedback control diagram Variables: temperature wanted (target); temperature gap. Signals: temperature wanted to temperature gap, +. + temperature wantedtarget temperature gap
    targeta role, written above its variable's name
  • Feedback control diagram Variables: temperature gap; boiler output (corrective action). Signals: temperature gap to boiler output, +. + temperature gap boiler outputcorrective action
    corrective actiona role, written above its variable's name
  • Feedback control diagram: room temperature Variables: boiler output; room temperature (controlled variable). Signals: boiler output to room temperature, +. + boiler output room temperaturecontrolled variable
    controlled variablea role, written above its variable's name
  • Feedback control diagram Variables: room temperature; thermometer reading (measured value). Signals: room temperature to thermometer reading, +. + room temperature thermometer readingmeasured value
    measured valuea role, written above its variable's name
  • Feedback control diagram Variables: boost button (override); boiler output (corrective action). Signals: boost button to boiler output, +. + boost buttonoverride boiler outputcorrective action
    overridea role, written above its variable's name
  • Causal-loop diagram Variables: training; quality. Effects: training to quality (polarity not yet set, hypothesis). training quality
    evidence coding

FC 09 A mail service's spam filter

Two loops on one corrective action, and a person's release

  • Reasoning5 of 5
  • Polish5 of 5

A mail service filters spam for hundreds of millions of users. It aims to let no more than 1 message in 1,000 reaching inboxes be spam, and to lose no more than 1 real message in 10,000 to spam folders. Users report the spam that gets through, and complain when real mail goes missing; the service's engineers read both each day and set how strict the filter is, stricter as reports rise and less strict as complaints rise. New spam campaigns start around the world every day, whatever the filter does. The engineers believe that each time the filter is made stricter, spammers change their tactics and get more spam through, but nobody has measured it. A user who finds a real message in the spam folder can mark it not spam, which releases it and makes the filter less strict for messages like it. Draw the model's boundary around spam filtering at the service, its users and the spammers' tactics.

The brief

  • Draw a named boundary, with new spam campaigns worldwide outside it as an external driver.
  • Close two control loops through filter strictness: one on spam reaching inboxes, read from users' reports, and one on real mail lost to spam folders, read from complaints.
  • Declare the reinforcing loop through spammers' new tactics, inside the boundary.
  • Draw users' releases of messages marked not spam as an override whose signal ends at filter strictness.
  • The override is named as a quantity, mail released as not spam, which someone can count and read later.

Your palette

On the page before this sheet.

Draw here

In the lab, with the brief’s structure checked as you draw: thinking-in-diagrams.aryehnielsen.com/control/anticipation-limits-and-nested-control/#exercise-feedback-control-09

FC 10 Cooling a data center through a heatwave

Your palette

  • Feedback control diagram Variables: boiler output. boiler output
    variable
  • Causal-loop diagram Variables: price; sales; revenue. Effects: price to sales (−, opposite direction); sales to revenue (+, same direction). − + price sales revenue
    polarity
  • Causal-loop diagram Variables: orders; deliveries. Effects: orders to deliveries (+, same direction, with a delay). + orders deliveries
    delay
  • Causal-loop diagram: R1 practice habit Variables: practice; skill; enjoyment. Effects: practice to skill (+, same direction); skill to enjoyment (+, same direction); enjoyment to practice (+, same direction). Loop R1 practice habit, reinforcing: practice, skill, enjoyment, and back to practice. + + + practice skill enjoyment R1practice habit
    loop
  • Causal-loop diagram: B1 warming up Variables: room heat; heating. Effects: room heat to heating (−, opposite direction); heating to room heat (+, same direction). Loop B1 warming up, balancing: room heat, heating, and back to room heat. − + room heat heating B1warming up
    balancing loop
  • Causal-loop diagram Variables: weather (external driver); footfall. Effects: weather to footfall (+, same direction). Boundary the café contains: footfall. Outside every boundary: weather. the café + ‹weather› footfall
    external driver
  • Feedback control diagram Variables: temperature wanted (target); temperature gap (gap); thermometer reading (measured value). Signals: temperature wanted to temperature gap, +; thermometer reading to temperature gap, −. + − temperature wantedtarget temperature gapgap thermometer readingmeasured value
    gapa role, written above its variable's name
  • Causal-loop diagram Variables: training; quality. Effects: training to quality (polarity not yet set, hypothesis). training quality
    evidence coding
  • Causal-loop diagram Variables: . Behavior note: oscillation. oscillation
    behavior note
  • Stock & flow diagram: water in tub Stocks: water in tub (liters). Auxiliaries: tap opening. Flows: filling, from a cloud to water in tub (liters per minute). Signals: tap opening to filling, +. filling + literswater in tub tap opening
    signal
  • Feedback control diagram Variables: temperature wanted (target); temperature gap. Signals: temperature wanted to temperature gap, +. + temperature wantedtarget temperature gap
    targeta role, written above its variable's name
  • Feedback control diagram Variables: temperature gap; boiler output (corrective action). Signals: temperature gap to boiler output, +. + temperature gap boiler outputcorrective action
    corrective actiona role, written above its variable's name
  • Feedback control diagram: room temperature Variables: boiler output; room temperature (controlled variable). Signals: boiler output to room temperature, +. + boiler output room temperaturecontrolled variable
    controlled variablea role, written above its variable's name
  • Feedback control diagram Variables: room temperature; thermometer reading (measured value). Signals: room temperature to thermometer reading, +. + room temperature thermometer readingmeasured value
    measured valuea role, written above its variable's name
  • Feedback control diagram Variables: room below target (gap); heater output (corrective action, at most 2 kW). Signals: room below target to heater output, +. + room below targetgap heater outputcorrective actionat most 2 kW
    saturation
  • Feedback control diagram Variables: boost button (override); boiler output (corrective action). Signals: boost button to boiler output, +. + boost buttonoverride boiler outputcorrective action
    overridea role, written above its variable's name

FC 10 Cooling a data center through a heatwave

Nested loops, a limit, and a person taking over

  • Reasoning5 of 5
  • Polish5 of 5

A data center's cooling units blow cold air into its server rooms. A thermometer in that supply air reads its temperature every few seconds, and the units raise their cooling output the further it reads above the supply-air target. Engineers set that target: each hour they read the temperature at the servers' air inlets, which they hold near 27 °C, and lower the supply-air target the warmer the inlets read. The cooling output can rise no higher than the chillers' full output. In a heatwave the supply air warms, and once the chillers are at full output it keeps warming however low the target is set. The engineers can then set the cooling output themselves, in place of the units' rule, or shut down some servers, which they believe lowers the inlet temperature, though nobody knows by how much.

The brief

  • Nest the fast loop on the supply air inside the slow loop on the server inlet temperature, whose corrective action is the supply-air target.
  • Write the chillers' full output as the limit on cooling output.
  • Draw the heatwave as an external driver acting on a controlled variable.
  • Draw the engineers' own cooling setting as an override whose signal ends at cooling output.
  • Code the signal for how much shutting down servers lowers the inlet temperature as a hypothesis.
  • Recovery shows only in a later hourly inlet reading: the slow loop closes on that reading, not on the supply air.

Your palette

On the page before this sheet.

Draw here

In the lab, with the brief’s structure checked as you draw: thinking-in-diagrams.aryehnielsen.com/control/anticipation-limits-and-nested-control/#exercise-feedback-control-10

CS 09 Kelsham Primary School: a floor on staffing and the council's loop

Your palette

  • Feedback control diagram Variables: boiler output. boiler output
    variable
  • Causal-loop diagram Variables: price; sales; revenue. Effects: price to sales (−, opposite direction); sales to revenue (+, same direction). − + price sales revenue
    polarity
  • Causal-loop diagram Variables: orders; deliveries. Effects: orders to deliveries (+, same direction, with a delay). + orders deliveries
    delay
  • Causal-loop diagram: R1 practice habit Variables: practice; skill; enjoyment. Effects: practice to skill (+, same direction); skill to enjoyment (+, same direction); enjoyment to practice (+, same direction). Loop R1 practice habit, reinforcing: practice, skill, enjoyment, and back to practice. + + + practice skill enjoyment R1practice habit
    loop
  • Causal-loop diagram: B1 warming up Variables: room heat; heating. Effects: room heat to heating (−, opposite direction); heating to room heat (+, same direction). Loop B1 warming up, balancing: room heat, heating, and back to room heat. − + room heat heating B1warming up
    balancing loop
  • Causal-loop diagram Variables: weather (external driver); footfall. Effects: weather to footfall (+, same direction). Boundary the café contains: footfall. Outside every boundary: weather. the café + ‹weather› footfall
    external driver
  • Feedback control diagram Variables: temperature wanted (target); temperature gap (gap); thermometer reading (measured value). Signals: temperature wanted to temperature gap, +; thermometer reading to temperature gap, −. + − temperature wantedtarget temperature gapgap thermometer readingmeasured value
    gapa role, written above its variable's name
  • Feedback control diagram: chlorine in the water Stocks: chlorine in the water (grams, controlled variable). gramschlorine in the watercontrolled variable
    stock
  • Feedback control diagram Stocks: chlorine in the water (grams). Variables: dosing pump speed (corrective action). Flows: dosing, from a cloud to chlorine in the water (grams per hour). Signals: dosing pump speed to dosing, +. dosing + dosing pump speedcorrective action gramschlorine in the water
    flow
  • Stock & flow diagram: water in tub Stocks: water in tub (liters). Flows: draining, from water in tub to a cloud (liters per minute). draining literswater in tub
    cloud
  • Stock & flow diagram: water in tub Stocks: water in tub (liters). Auxiliaries: tap opening. Flows: filling, from a cloud to water in tub (liters per minute). Signals: tap opening to filling, +. filling + literswater in tub tap opening
    signal
  • Feedback control diagram Variables: temperature wanted (target); temperature gap. Signals: temperature wanted to temperature gap, +. + temperature wantedtarget temperature gap
    targeta role, written above its variable's name
  • Feedback control diagram Variables: temperature gap; boiler output (corrective action). Signals: temperature gap to boiler output, +. + temperature gap boiler outputcorrective action
    corrective actiona role, written above its variable's name
  • Feedback control diagram: room temperature Variables: boiler output; room temperature (controlled variable). Signals: boiler output to room temperature, +. + boiler output room temperaturecontrolled variable
    controlled variablea role, written above its variable's name
  • Feedback control diagram Variables: room temperature; thermometer reading (measured value). Signals: room temperature to thermometer reading, +. + room temperature thermometer readingmeasured value
    measured valuea role, written above its variable's name
  • Feedback control diagram Variables: gust seen upwind (external driver); heel past upright (gap); sheet eased (corrective action). Signals: gust seen upwind to sheet eased, +; heel past upright to sheet eased, +. Feedforward: gust seen upwind → sheet eased. + + ‹gust seen upwind› heel past uprightgap sheet easedcorrective action
    feedforward
  • Feedback control diagram Variables: room below target (gap); heater output (corrective action, at most 2 kW). Signals: room below target to heater output, +. + room below targetgap heater outputcorrective actionat most 2 kW
    saturation
  • Feedback control diagram Variables: string below pitch (gap); peg turned (corrective action). Signals: string below pitch to peg turned, +, deadband ±3 cents. +deadband ±3 cents string below pitchgap peg turnedcorrective action
    deadband

CS 09 Kelsham Primary School: a floor on staffing and the council's loop

Saturation, a deadband, feedforward and a nested loop

  • Reasoning5 of 5
  • Polish5 of 5

The governors can cut staff hours only as far as one teacher for each of the four classes. Within a school year the reserve rises and falls by up to £10,000 as funding arrives and pay goes out, so they change staff hours only when the budget report, read each term, differs from the reserve they must hold by more than £10,000. Around their loop runs the county council's: once a year David Brennan reads the school's spending for each pupil in its accounts, and the further it runs above the county's, the higher the reserve, from £60,000 up, that the council requires the governors to hold. He also forecasts the school's starters from the births in the villages four years ahead, and on a falling forecast the council raises the reserve it requires before the October count falls. The pupils on roll bring in funding and share the school's spending, and neither the governors nor the council sets them. Count the reserve in pounds, and time in years.

The brief

  • Nest the governors' loop on the reserve inside the county council's loop on spending for each pupil, whose corrective action is the reserve the council requires.
  • Write the hours above one teacher a class as the limit on staff hours cut.
  • Write the £10,000 the reserve moves within a school year as a deadband on the gap's signal to staff hours cut.
  • Read births in the villages into the reserve the council requires through David Brennan's forecast, by a path that passes no gap.
  • Mark the budget report each term and the accounts each year as delays on the two return paths.
  • Once staff hours cut reaches its limit, a higher reserve required changes nothing: both loops act through the same corrective action.

Your palette

On the page before this sheet.

Draw here

In the lab, with the brief’s structure checked as you draw: thinking-in-diagrams.aryehnielsen.com/control/anticipation-limits-and-nested-control/#exercise-case-09

Sources

  • Karl Johan Åström and Richard M. Murray, Feedback Systems: An Introduction for Scientists and Engineers fbswiki.org/wiki/index.php/Main_Page, second edition (Princeton University Press, 2021): chapter 1, on feedforward and nested loops; chapters 10 and 14, on how a delay limits a loop; chapter 11, on gain raised until a loop oscillates, and a throttle held at its limit on a steep hill.
  • W. Edwards Deming, Out of the Crisis (MIT Center for Advanced Engineering Study, 1986), chapter 11, the funnel experiment, as reproduced by Yonatan Reshef, “The Funnel Experiment” sites.ualberta.ca/~yreshef/orga432/funnel.html (University of Alberta course notes), and by Thomas Pyzdek, The Quality Engineering Handbook qualityamerica.com/LSS-Knowledge-Center/statisticalprocesscontrol/tampering_effects_and_diagnosis.php, on the doubled variance.
  • Bizot Group, The Bizot Green Protocol nationalmuseums.org.uk/media/uk_museum_cop/bizot_green_protocol_2023.pdf (refreshed September 2023), on 40–60% relative humidity for canvas paintings and other objects that absorb moisture.
  • Helena Rodwell, “Can You Turn the Heating Up?” conservation.fitzmuseum.cam.ac.uk/?p=64 (The Fitzwilliam Museum), on warming lowering relative humidity.

Answers

Chapter 9 · Anticipation, Limits, and Nested Control

A basement floods, and someone sets a dehumidifier to bring its air down to 50% relative humidity. The dehumidifier runs flat out, removing at most 20 liters of water a day, and for a week the air stays far wetter than 50%. In a feedback control diagram of the basement, how is that limit drawn?

  1. a as at most 20 liters a day, written beneath water removed, the corrective actionYes. Saturation belongs to the corrective action. Past 20 liters a day a wider gap changes the water removed no further, so the air dries only as fast as 20 liters a day allows.
  2. b as a nonlinear effect on the signal from water removed to the basement's humidityNot quite. Each liter removed dries the air as much at full output as at half, so that signal is unchanged. The limit is on the water removed itself, whichever signal reaches it.
  3. c as a deadband on the signal from the humidity gap to water removedNot quite. A deadband is a range of gaps small enough that the corrective action stays as it is. Here the gap is wide and the water removed is as large as it can be.

A smoke alarm hangs by a kitchen's toaster. When the smoke it reads passes its trigger it sounds, and someone opens the window and fans the smoke out. Toast browned too far sets it off with no fire, so the household presses its hush button, which silences it for ten minutes; then it reads the smoke again. In a feedback control diagram of the kitchen, what is the hush button pressed?

  1. a an override, its signal ending at the alarm's soundYes. Someone sets it, and for ten minutes it replaces the rule from the gap to the alarm's sound. The burnt toast is a false alarm: the reading passes the trigger with no fire.
  2. b a new target: a higher trigger for smokeNot quite. The trigger is unchanged: ten minutes later the same smoke sets the alarm off again. A new target would last until someone changed it back.
  3. c an external driver acting on the smoke in the kitchenNot quite. The burnt toast is that: it adds smoke from outside the loop. The hush button changes no smoke; it silences the alarm.

Question 1 of 3

Which path in the redrawing is feedforward?

  1. a Rate of incoming fluid → outlet temperature, −.Not quite. That is the external driver acting on the controlled variable: more cold fluid to heat lowers the outlet temperature. A feedforward path ends at a corrective action.
  2. b Measured outlet temperature → degrees below target, −.Not quite. That signal carries the reading back to the gap, on B1’s return path: feedback. A feedforward path passes through no gap.
  3. c Rate of incoming fluid → fuel gas flow, +.Yes. It runs from an external driver to the corrective action through no gap. Woolf and others give the rule: 10% more fluid coming in takes about 10% more heat, and the fuel gas flow is raised at once, before the outlet cools.

Question 2 of 3

Fuel gas flow already rises with the rate of incoming fluid. What is left for B1 to correct?

  1. a Whatever the feedforward rule gets wrong, and any change it doesn’t read, such as in the furnace itself.Yes. The rule sets the fuel from the rate of incoming fluid alone, about 10% for 10%. Any gap that opens at the outlet, from the rule’s misjudgment or from anything else that moves the outlet temperature, is read only through B1, which Woolf and others combine with the feedforward for that reason.
  2. b Nothing while the rate of incoming fluid changes, since the feedforward has already made up for it.Not quite. The feedforward acts on a forecast of the fuel needed, not on the outlet temperature. If the forecast is off, a gap opens, and only B1 reads it.
  3. c Only a change in the target outlet temperature.Not quite. A new target opens a gap that B1 closes, but so does anything that moves the outlet temperature away from it, the feedforward’s misjudgments included.

Question 3 of 3

Heat from the burning fuel takes time to pass into the fluid and reach the outlet. Where would a delay be drawn?

  1. a On measured outlet temperature → degrees below target, since the reading comes back late.Not quite. That would be a reading arriving late, on the return path. Here the reading is prompt; the heat is slow, between the fuel and the outlet.
  2. b On rate of incoming fluid → fuel gas flow, since feedforward arrives late.Not quite. Woolf and others describe the feedforward change in fuel as immediate. Its slowness comes after, as for every change in fuel, on fuel gas flow → outlet temperature.
  3. c On fuel gas flow → outlet temperature, B1’s forward path.Yes. A change in fuel reaches the outlet late, and so does every correction B1 makes. The feedforward path starts that change as soon as more fluid comes in, instead of waiting for the outlet to cool and a gap to open.

FC 06 Entry gates at a concert as trains arrive

Feedback control diagram: people queuing Stocks: people queuing (people, controlled variable). Variables: queue for a ten-minute wait (target); extra people queuing (gap); gates open (corrective action); trains due on the arrivals board; stewards' count of the queue (measured value); trains arriving (external driver). Flows: joining, from a cloud to people queuing (people per minute); passing through, from people queuing to a cloud (people per minute). Signals: queue for a ten-minute wait to extra people queuing, −; stewards' count of the queue to extra people queuing, +; extra people queuing to gates open, +; gates open to passing through, +; people queuing to stewards' count of the queue, +; trains arriving to joining, +; trains arriving to trains due on the arrivals board, +; trains due on the arrivals board to gates open, +. Loop B1 opening gates, balancing: extra people queuing, gates open, passing through, which drains people queuing, stewards' count of the queue, and back to extra people queuing. Control loop B1: extra people queuing → gates open → people queuing → stewards' count of the queue; target: queue for a ten-minute wait. Feedforward: trains arriving → trains due on the arrivals board → gates open. joining passing through − + + + + + + + queue for a ten-minute waittarget extra people queuinggap gates opencorrective action trains due on the arrivals board peoplepeople queuingcontrolled variable stewards' count of the queuemeasured value ‹trains arriving› B1opening gates

This is one defensible answer, not the only one. Yours can differ and still hold up: the lab’s checks show whether it has the brief’s structure.

One stock, people queuing, counted in people: the controlled variable. Joining fills it from a cloud and passing through drains it to a cloud, both in people per minute. Extra people queuing is the gap, read from the queue for a ten-minute wait (−) and the stewards' count of the queue (+); it sets gates open (+), whose signal reaches the valve of passing through (+). B1 runs through passing through, counted − out of the stock, and has one − step, so it is balancing. Trains arriving act at the valve of joining, and reach gates open through the trains due on the arrivals board: a feedforward path, passing no gap, so the gates open before a train's fans join the queue.

Why it works

  • The arrivals board's signal ends at gates open, not at the gap, so it changes the gates before the queue grows
  • Gates open has two signals in, from the gap and from the arrivals board, and one out, to the valve of passing through
  • The stewards' count is a variable apart from the people queuing, and the target is a queue in people, so the gap compares one quantity
  • Trains arriving act on the controlled variable at the valve of joining, never on the gap
  • The one − step, passing through draining the stock, makes the loop balancing

Step by step

  1. People queuing, the controlled variable, a stock counted in people, with the time unit a minute: the stewards aim for about 600, a ten-minute wait at the gates' pace.
  2. Joining, from a cloud for the station, and passing through, to a cloud for the stadium: fans count from when they join the queue until they pass a gate.
  3. Stewards' count of the queue, the measured value, with a + signal from the stock: a steward counts the queue every few minutes.
  4. Queue for a ten-minute wait, the target, and extra people queuing, the gap, read from the count (+) and the target (−): how far the count runs above 600.
  5. Gates open, the corrective action, with a + signal from the gap and a + signal to the valve of passing through, which close B1, opening gates, through the stock: the longer the queue, the more gates the stewards open, and the faster fans pass through.
  6. Trains arriving, an external driver, with a + signal to the valve of joining, off the loop: a full train brings about 1,000 fans to the queue within a few minutes.
  7. Trains due on the arrivals board, with + signals from trains arriving and to gates open, a feedforward path: the stewards open gates on the board's news of a full train, before its fans add to the count.

What another defensible answer might vary

Another defensible answer might count the target and the stewards' estimate in minutes of waiting rather than people, or draw the fans walking from the platform as a stock of their own between the station and the queue. What stays the same is one stock in people with joining in and passing through out, the time unit a minute, one balancing control loop through passing through, trains arriving at the valve of joining, and one path from trains arriving to gates open that passes no gap.

FC 07 Tuning a guitar with a clip-on tuner

Feedback control diagram: string's pitch Variables: pitch of E (target); cents flat (gap); peg turned to tighten (corrective action); string's pitch (controlled variable); tuner's settled reading (measured value); new strings stretching (external driver); pluck's wobble (external driver). Signals: pitch of E to cents flat, +; tuner's settled reading to cents flat, −; cents flat to peg turned to tighten, +, deadband ±3 cents; peg turned to tighten to string's pitch, +; string's pitch to tuner's settled reading, +, with a delay; new strings stretching to string's pitch, −; pluck's wobble to tuner's settled reading, +. Loop B1 tuning the string, balancing: cents flat, peg turned to tighten, string's pitch, tuner's settled reading, and back to cents flat. Control loop B1: cents flat → peg turned to tighten → string's pitch → tuner's settled reading; target: pitch of E. + − +deadband ±3 cents + + − + pitch of Etarget cents flatgap peg turned to tightencorrective action string's pitchcontrolled variable tuner's settled readingmeasured value ‹new strings stretching› ‹pluck's wobble› B1tuning the string

This is one defensible answer, not the only one. Yours can differ and still hold up: the lab’s checks show whether it has the brief’s structure.

The string's pitch is the controlled variable, and the pitch of E the target. Cents flat is the gap, read from the pitch of E (+) and the tuner's settled reading (−); it sets how far she turns the peg to tighten (+), and the peg raises the string's pitch (+). The signal from the gap to the peg carries deadband ±3 cents: inside it the peg stays put. The settled reading follows the string's pitch two seconds late: a delay on the return path. B1 has one − step, so it is balancing. New strings stretching lower the string's pitch (−); the pluck's wobble, counted in the cents it adds to the reading, sharp or flat, acts on the reading (+).

Why it works

  • The deadband is written on the signal from the gap to the peg: within 3 cents either way, a change in the gap changes nothing at the peg
  • The two-second wait for the reading to settle is a delay between the string's pitch and the reading: the return path
  • The pluck's wobble acts on the tuner's reading, not on the string: it is noise in what she reads
  • New strings stretching act on the string's pitch, the controlled variable, never on the gap
  • The one − step, from the settled reading to the gap, makes the loop balancing

Step by step

  1. The string's pitch, the controlled variable: the high E string, tuned to about 330 Hz.
  2. Tuner's settled reading, the measured value, with a + signal from the string's pitch, delayed about two seconds while the note rings and the reading settles: a delay on the return path.
  3. Pitch of E, the target, and cents flat, the gap, read from the target (+) and the settled reading (−): a reading sharp of E puts the gap below zero.
  4. Peg turned to tighten, the corrective action, with a + signal from the gap carrying deadband ±3 cents and a + signal to the string's pitch, which close B1, tuning the string: a reading 2 cents flat leaves the peg where it is, and one 5 cents flat turns it.
  5. Two external drivers, off the loop: new strings stretching, with a − signal to the string's pitch, which goes flat between tunings, and the pluck's wobble, with a + signal to the reading, which shifts what she reads but not the string.

What another defensible answer might vary

Another defensible answer might name the gap cents off E and the corrective action peg turned, a turn back counted below zero. What stays the same is one balancing control loop, one delay between the string's pitch and the reading, deadband ±3 cents on the signal from the gap to the peg, the wobble acting on the reading, and stretching acting on the string's pitch.

FC 08 A home reef aquarium

Feedback control diagram: water temperature; salinity; alkalinity Variables: temperature wanted (target); degrees too cool (gap); heater output (corrective action); water temperature (controlled variable); thermometer reading (measured value); salinity (controlled variable); salinity reading (measured value); salinity too high (gap); salinity wanted (target); water changed per week (corrective action); alkalinity (controlled variable); alkalinity test result (measured value); alkalinity too low (gap); alkalinity wanted (target). Signals: temperature wanted to degrees too cool, +; thermometer reading to degrees too cool, −; degrees too cool to heater output, +; heater output to water temperature, +; water temperature to thermometer reading, +; salinity wanted to salinity too high, −; salinity reading to salinity too high, +; salinity too high to water changed per week, +; water changed per week to salinity, −; salinity to salinity reading, +; alkalinity wanted to alkalinity too low, +; alkalinity test result to alkalinity too low, −; alkalinity too low to water changed per week, +; water changed per week to alkalinity, +; alkalinity to alkalinity test result, +; heater output to salinity, +; water changed per week to water temperature, −. Loop B1 heating, balancing: degrees too cool, heater output, water temperature, thermometer reading, and back to degrees too cool. Loop B2 freshening, balancing: salinity too high, water changed per week, salinity, salinity reading, and back to salinity too high. Loop B3 restoring alkalinity, balancing: alkalinity too low, water changed per week, alkalinity, alkalinity test result, and back to alkalinity too low. Control loop B1: degrees too cool → heater output → water temperature → thermometer reading; target: temperature wanted. Control loop B2: salinity too high → water changed per week → salinity → salinity reading; target: salinity wanted. Control loop B3: alkalinity too low → water changed per week → alkalinity → alkalinity test result; target: alkalinity wanted. Behavior note: Tradeoff: a larger water change raises alkalinity, but lowers salinity and cools the tank; the heater then runs harder, and evaporation raises salinity again.. + − + + + − + + − + + − + + + + − temperature wantedtarget degrees too coolgap heater outputcorrective action water temperaturecontrolled variable thermometer readingmeasured value salinitycontrolled variable salinity readingmeasured value salinity too highgap salinity wantedtarget water changed per weekcorrective action alkalinitycontrolled variable alkalinity test resultmeasured value alkalinity too lowgap alkalinity wantedtarget B1heating B2freshening B3restoring alkalinity Tradeoff: a larger waterchange raises alkalinity,but lowers salinity andcools the tank; the heaterthen runs harder, andevaporation raises salinityagain.

This is one defensible answer, not the only one. Yours can differ and still hold up: the lab’s checks show whether it has the brief’s structure.

Three control loops, each with its target, gap, corrective action, controlled variable and measured value. B1: degrees too cool, read from temperature wanted (+) and the thermometer reading (−), sets the heater output (+), which warms the water (+). B2: salinity too high, read from salinity wanted (−) and the salinity reading (+), sets the water changed per week (+), and new water mixed at 34 parts per thousand lowers the salinity (−). B3: alkalinity too low, read from alkalinity wanted (+) and the alkalinity test result (−), sets the same water changed per week (+), which raises the alkalinity (+). Each loop has one − step, so each is balancing. Two cross-effects join the loops: heater output raises salinity through evaporation (+), and water changed cools the water (−). The behavior note names the tradeoff.

Why it works

  • Water changed per week is one variable, the corrective action of B2 and of B3, drawn once with a signal in from each gap
  • Each of the three loops has its own target and its own reading, so each gap compares one quantity
  • The cross-effects are signals between loops that lie on no declared loop: heater output to salinity, water changed to water temperature
  • The two cross-effects close a longer loop, left undeclared, through the temperature and salinity gaps: the tradeoff the behavior note names
  • Each loop has one − step, so each is balancing

Step by step

  1. Water temperature, a controlled variable, and the thermometer reading, its measured value, with a + signal from one to the other: the heater answers a thermometer in the tank, the one reading taken without her.
  2. Temperature wanted, the target, degrees too cool, the gap, and heater output, the corrective action, with the signals that close B1, heating: the cooler the thermometer reads below 25 °C, the harder the heater runs.
  3. Salinity and alkalinity, two more controlled variables, each with a + signal to its measured value: the refractometer's salinity reading and the kit's alkalinity test result, both taken once a week.
  4. Salinity wanted with salinity too high, and alkalinity wanted with alkalinity too low, two targets and two gaps: the salinity gap grows as the reading rises above 35 parts per thousand, the alkalinity gap as the test falls below 8 dKH.
  5. Water changed per week, one corrective action for both, with + signals from each gap, a − signal to salinity and a + signal to alkalinity, which close B2, freshening, and B3, restoring alkalinity: new water mixed at 34 parts per thousand and 11 dKH dilutes the salt and adds alkalinity.
  6. Two cross-effects, on no declared loop: heater output raises salinity (+), since warmer water evaporates faster and leaves its salt, and water changed lowers the water temperature (−), since the new water comes from a bucket a few degrees cooler.
  7. A behavior note on the tradeoff the two cross-effects make between the loops: no water change raises alkalinity without cooling the tank and, through the heater, raising its salinity.

What another defensible answer might vary

Another defensible answer might name the gaps salinity over target and alkalinity under target, or add a signal from the water temperature to salinity, a third cross-effect for evaporation. What stays the same is three targets, three readings and three gaps; one variable for the water changes, the corrective action of both the salinity loop and the alkalinity loop; and the two cross-effects, heater output to salinity and water changed to water temperature.

FC 09 A mail service's spam filter

Feedback control diagram: spam reaching inboxes; real mail lost to spam folders Variables: spam in inboxes allowed (target); excess spam in inboxes (gap); filter strictness (corrective action); spam reaching inboxes (controlled variable); spam reports (measured value); real mail lost allowed (target); excess real mail lost (gap); real mail lost to spam folders (controlled variable); complaints of lost mail (measured value); spammers' new tactics; mail released as not spam (override); new spam campaigns worldwide (external driver). Signals: spam in inboxes allowed to excess spam in inboxes, −; spam reports to excess spam in inboxes, +; excess spam in inboxes to filter strictness, +; filter strictness to spam reaching inboxes, −; spam reaching inboxes to spam reports, +; real mail lost allowed to excess real mail lost, −; complaints of lost mail to excess real mail lost, +; excess real mail lost to filter strictness, −; filter strictness to real mail lost to spam folders, +; real mail lost to spam folders to complaints of lost mail, +; filter strictness to spammers' new tactics, +, hypothesis; spammers' new tactics to spam reaching inboxes, +; new spam campaigns worldwide to spam reaching inboxes, +; mail released as not spam to filter strictness, −. Loop B1 catching spam, balancing: excess spam in inboxes, filter strictness, spam reaching inboxes, spam reports, and back to excess spam in inboxes. Loop B2 sparing real mail, balancing: excess real mail lost, filter strictness, real mail lost to spam folders, complaints of lost mail, and back to excess real mail lost. Loop R1 spammers adapting, reinforcing: filter strictness, spammers' new tactics, spam reaching inboxes, spam reports, excess spam in inboxes, and back to filter strictness. Control loop B1: excess spam in inboxes → filter strictness → spam reaching inboxes → spam reports; target: spam in inboxes allowed. Control loop B2: excess real mail lost → filter strictness → real mail lost to spam folders → complaints of lost mail; target: real mail lost allowed. Boundary spam filtering at the mail service contains: spam in inboxes allowed; excess spam in inboxes; filter strictness; spam reaching inboxes; spam reports; real mail lost allowed; excess real mail lost; real mail lost to spam folders; complaints of lost mail; spammers' new tactics; mail released as not spam. Outside every boundary: new spam campaigns worldwide. spam filtering at the mail service − + + − + − + − + + + + + − spam in inboxes allowedtarget excess spam in inboxesgap filter strictnesscorrective action spam reaching inboxescontrolled variable spam reportsmeasured value real mail lost allowedtarget excess real mail lostgap real mail lost to spam folderscontrolled variable complaints of lost mailmeasured value spammers' new tactics mail released as not spamoverride ‹new spam campaigns worldwide› B1catching spam B2sparing real mail R1spammers adapting Evidencemore supportedless supported

This is one defensible answer, not the only one. Yours can differ and still hold up: the lab’s checks show whether it has the brief’s structure.

Filter strictness is the corrective action of two control loops. B1: excess spam in inboxes, read from spam in inboxes allowed (−) and spam reports (+), raises filter strictness (+), which lowers spam reaching inboxes (−). B2: excess real mail lost, read from real mail lost allowed (−) and complaints of lost mail (+), lowers filter strictness (−), which raises real mail lost to spam folders (+). Each has one − step, so each is balancing. R1 runs from filter strictness through spammers' new tactics to spam reaching inboxes and back through B1's gap, with no − step, so it is reinforcing; its first signal, from strictness to tactics, is coded as a hypothesis and drawn dashed, and the legend shows the coding. New spam campaigns worldwide sit outside the boundary, spam filtering at the mail service, acting on spam reaching inboxes. Messages released as not spam, the override, lower filter strictness (−).

Why it works

  • Spammers' new tactics change with filter strictness, so they sit inside the boundary, on a loop, not outside it as an external driver
  • New spam campaigns start whatever the filter does, so they are an external driver outside the boundary, with no signal into them
  • One variable, filter strictness, is the corrective action of both balancing loops, and their gaps reach it with opposite polarities
  • The override's signal ends at filter strictness, the corrective action, and is a step of no declared loop
  • Only the engineers' belief, that stricter filtering brings new tactics, is dashed

Step by step

  1. Spam reaching inboxes and real mail lost to spam folders, two controlled variables, each with a + signal to its measured value: spam reports, from users who see the spam that gets through, and complaints of lost mail.
  2. Two targets and two gaps, each gap read from its target (−) and its measured value (+): excess spam in inboxes, against 1 message in 1,000, and excess real mail lost, against 1 in 10,000.
  3. Filter strictness, the corrective action of both, raised by excess spam (+) and lowered by excess real mail lost (−), with a − signal to spam reaching inboxes and a + signal to real mail lost, which close B1, catching spam, and B2, sparing real mail: the engineers set one filter from reports and complaints each day.
  4. The boundary, spam filtering at the mail service, with new spam campaigns worldwide outside it as an external driver, its + signal to spam reaching inboxes: campaigns start every day, and nothing at the service changes how many.
  5. Spammers' new tactics, with a + signal from filter strictness, the engineers' belief, coded as a hypothesis and dashed, and a + signal to spam reaching inboxes, which close R1, spammers adapting, through B1's measured value and gap, with the legend for the coding.
  6. Mail released as not spam, the override, with a − signal to filter strictness: each message a user marks not spam leaves the spam folder and loosens the filter for messages like it.

What another defensible answer might vary

Another defensible answer might count both targets in messages per day, or code the signal from spammers' new tactics to spam reaching inboxes as a hypothesis too, since the same belief runs through it. What stays the same is two balancing control loops sharing filter strictness, one reinforcing loop through spammers' new tactics inside a named boundary, new spam campaigns outside it, one override ending at filter strictness, and one signal coded as a hypothesis with the legend on.

FC 10 Cooling a data center through a heatwave

Feedback control diagram: supply-air temperature; server inlet temperature Variables: inlet temperature wanted (target); inlet degrees too warm (gap); supply-air target (corrective action); supply air too warm (gap); cooling output (corrective action, at most the chillers' full output); supply-air temperature (controlled variable); supply-air reading (measured value); server inlet temperature (controlled variable); engineers' hourly inlet reading (measured value); heatwave (external driver); engineers' own cooling setting (override); servers shut down. Signals: inlet temperature wanted to inlet degrees too warm, −; engineers' hourly inlet reading to inlet degrees too warm, +; inlet degrees too warm to supply-air target, −; supply-air target to supply air too warm, −; supply-air reading to supply air too warm, +; supply air too warm to cooling output, +; cooling output to supply-air temperature, −; supply-air temperature to supply-air reading, +; supply-air temperature to server inlet temperature, +; server inlet temperature to engineers' hourly inlet reading, +, with a delay; heatwave to supply-air temperature, +; engineers' own cooling setting to cooling output, +; servers shut down to server inlet temperature, −, hypothesis. Loop B1 holding the supply air, balancing: supply air too warm, cooling output, supply-air temperature, supply-air reading, and back to supply air too warm. Loop B2 resetting the supply air, balancing: inlet degrees too warm, supply-air target, supply air too warm, cooling output, supply-air temperature, server inlet temperature, engineers' hourly inlet reading, and back to inlet degrees too warm. Control loop B1: supply air too warm → cooling output → supply-air temperature → supply-air reading; target: supply-air target. Control loop B2: inlet degrees too warm → supply-air target → server inlet temperature → engineers' hourly inlet reading; target: inlet temperature wanted. Nested: B1 inside B2: supply-air target sets supply air too warm. − + − − + + − + + + + + − inlet temperature wantedtarget inlet degrees too warmgap supply-air targetcorrective action supply air too warmgap cooling outputcorrective actionat most the chillers' full output supply-air temperaturecontrolled variable supply-air readingmeasured value server inlet temperaturecontrolled variable engineers' hourly inlet readingmeasured value ‹heatwave› engineers' own cooling settingoverride servers shut down B1holding the supply air B2resetting the supply air Evidencemore supportedless supported

This is one defensible answer, not the only one. Yours can differ and still hold up: the lab’s checks show whether it has the brief’s structure.

Two control loops, one inside the other. B1, the fast loop: supply air too warm, read from the supply-air target (−) and the supply-air reading (+), raises cooling output (+), which cools the supply air (−); one − step, so balancing. B2, the slow loop: inlet degrees too warm, read from inlet temperature wanted (−) and the engineers' hourly inlet reading (+), lowers the supply-air target (−), whose signal reaches B1's gap (−), and B2 runs on through cooling output and the supply air to the server inlet temperature (+), read an hour late: three − steps, so balancing. The supply-air target is B2's corrective action and B1's target, so B1 is nested inside B2. Cooling output is at most the chillers' full output. The heatwave warms the supply air (+); the engineers' own cooling setting, the override, ends at cooling output (+); servers shut down lower the inlet temperature (−), a signal coded as a hypothesis, drawn dashed, with the legend.

Why it works

  • The supply-air target keeps one role, B2's corrective action, and its signal into B1's gap is B1's target: no second role is drawn
  • The hour between the inlet temperature and the engineers' reading is a delay on B2's return path, so B2 is slow and B1 fast
  • The saturation sits beneath cooling output, the corrective action whose limit the heatwave reaches
  • The heatwave acts on the supply-air temperature, a controlled variable, never on a gap or a target
  • Only the less supported signal, from servers shut down to the inlet temperature, is dashed, and the legend shows the coding

Step by step

  1. Supply-air temperature, the fast loop's controlled variable, and the supply-air reading, its measured value, with a + signal from one to the other: the thermometer in the supply air reads it every few seconds.
  2. Supply air too warm, the gap, read from the supply-air reading (+) and the supply-air target (−), the target drawn with its role in the slower loop, corrective action, since the engineers reset it each hour from the inlet reading.
  3. Cooling output, the corrective action, with saturation at the chillers' full output, a + signal from the gap and a − signal to the supply air, which close B1, holding the supply air: the units cool harder the warmer the supply air reads, up to that limit.
  4. Server inlet temperature, the slow loop's controlled variable, with a + signal from the supply air, and the engineers' hourly inlet reading, its measured value, with a + signal from the inlets delayed an hour: a delay on the return path.
  5. Inlet temperature wanted, the target, and inlet degrees too warm, the gap, with a − signal from the gap to the supply-air target, which close B2, resetting the supply air, around B1: the warmer the inlets read each hour, the lower the engineers set the supply-air target.
  6. The heatwave, an external driver, with a + signal to the supply-air temperature: once the chillers run at full output, the supply air warms however low the target is set.
  7. The engineers' own cooling setting, the override, with a + signal to cooling output, and servers shut down, with a − signal to the inlet temperature, dashed as a hypothesis since nobody knows by how much, and the legend for the coding.

What another defensible answer might vary

Another defensible answer might draw the heatwave acting on the server inlet temperature instead, or add a behavior note on the inlet temperature climbing while cooling output sits at its limit. What stays the same is two balancing control loops, the fast one on the supply air nested inside the slow one on the inlet temperature, the supply-air target as the slow loop's corrective action, cooling output at most the chillers' full output, an override ending at cooling output, and one signal coded as a hypothesis with the legend on.

CS 09 Kelsham Primary School: a floor on staffing and the council's loop

Feedback control diagram: school's reserve; spending for each pupil Stocks: school's reserve (pounds, controlled variable). Variables: reserve the council requires (corrective action); reserve short of its target (gap); staff hours cut (corrective action, at most the hours above one teacher a class); reserve in the budget report (measured value); county's spending for each pupil (target); spending above the county's (gap); spending for each pupil (controlled variable); spending for each pupil in the accounts (measured value); births in the villages (external driver); forecast of starters; pupils on roll (external driver). Flows: funding, from a cloud to school's reserve (pounds per year); spending, from school's reserve to a cloud (pounds per year). Signals: reserve the council requires to reserve short of its target, +; reserve in the budget report to reserve short of its target, −; reserve short of its target to staff hours cut, +, deadband ±£10,000; staff hours cut to spending, −; school's reserve to reserve in the budget report, +, with a delay; staff hours cut to spending for each pupil, −; spending for each pupil to spending for each pupil in the accounts, +, with a delay; spending for each pupil in the accounts to spending above the county's, +; county's spending for each pupil to spending above the county's, −; spending above the county's to reserve the council requires, +; births in the villages to forecast of starters, +; forecast of starters to reserve the council requires, −; pupils on roll to funding, +; pupils on roll to spending for each pupil, −. Loop B1 holding the reserve, balancing: reserve short of its target, staff hours cut, spending, which drains school's reserve, reserve in the budget report, and back to reserve short of its target. Loop B2 holding spending for each pupil, balancing: spending above the county's, reserve the council requires, reserve short of its target, staff hours cut, spending for each pupil, spending for each pupil in the accounts, and back to spending above the county's. Control loop B1: reserve short of its target → staff hours cut → school's reserve → reserve in the budget report; target: reserve the council requires. Control loop B2: spending above the county's → reserve the council requires → spending for each pupil → spending for each pupil in the accounts; target: county's spending for each pupil. Nested: B1 inside B2: reserve the council requires sets reserve short of its target. Feedforward: births in the villages → forecast of starters → reserve the council requires. funding spending + − +deadband ±£10,000 − + − + + − + + − + − reserve the council requirescorrective action reserve short of its targetgap staff hours cutcorrective actionat most the hours above one teacher a class poundsschool's reservecontrolled variable reserve in the budget reportmeasured value county's spending for each pupiltarget spending above the county'sgap spending for each pupilcontrolled variable spending for each pupil in the accountsmeasured value ‹births in the villages› forecast of starters ‹pupils on roll› B1holding the reserve B2holding spending for each pupil

This is one defensible answer, not the only one. Yours can differ and still hold up: the lab’s checks show whether it has the brief’s structure.

Two control loops, one inside the other. B1, holding the reserve: reserve short of its target, read from the reserve the council requires (+) and the reserve in the budget report (−), raises staff hours cut (+), which lowers the valve of spending (−), and spending drains the school's reserve (−), read by the report a term late: three − steps, so balancing. B2, holding spending for each pupil: spending above the county's, read from spending for each pupil in the accounts (+), a year late, and the county's spending for each pupil (−), raises the reserve the council requires (+), whose signal is B1's target, and runs on through B1's gap and staff hours cut to spending for each pupil (−): one − step, so balancing, with B1 nested inside it. Staff hours cut is at most the hours above one teacher a class, and the governors leave it as it is while the gap stays within ±£10,000. Births in the villages reach the reserve the council requires through the forecast of starters (+, then −), a feedforward path that passes no gap. The pupils on roll, an external driver, raise funding (+) and lower spending for each pupil (−).

Why it works

  • The reserve the council requires keeps one role, B2's corrective action, and its signal into reserve short of its target makes it B1's target
  • The saturation sits beneath staff hours cut: once the hours above one teacher a class are gone, a wider gap cuts no further, and neither loop can lower spending again
  • The deadband sits on the signal from the gap to staff hours cut, as wide as the reserve's swing within a school year, so a term's swing changes no hours
  • The forecast's path ends at a corrective action and passes no gap, so the council acts on births before the October count falls
  • The two readings, each term and each year, are delays on the return paths: B1 corrects within a year, B2 over several

Step by step

  1. The school's reserve, B1's controlled variable, a stock counted in pounds, with the time unit a year, filled by funding from a cloud and drained by spending to another.
  2. Reserve in the budget report, the measured value, with a + signal from the stock delayed a term: the governors read the report each term, a delay on the return path.
  3. Reserve short of its target, the gap, read from the report (−) and the reserve the council requires (+), the target drawn with its role in the council's loop, corrective action, since the council sets it from £60,000 up.
  4. Staff hours cut, the corrective action, with saturation at the hours above one teacher a class, a + signal from the gap with a deadband of ±£10,000 and a − signal to the valve of spending, which close B1, holding the reserve: a term's swing changes no hours, and no gap cuts below one teacher a class.
  5. Spending for each pupil, B2's controlled variable, with a − signal from staff hours cut, and spending for each pupil in the accounts, its measured value, with a + signal from it delayed a year: David Brennan reads the accounts once a year.
  6. County's spending for each pupil, the target, and spending above the county's, the gap, read from the accounts (+) and the target (−), with a + signal to the reserve the council requires, which close B2, holding spending for each pupil, around B1.
  7. Pupils on roll, an external driver, with a + signal to the valve of funding and a − signal to spending for each pupil, and births in the villages, a second, read through the forecast of starters into the reserve the council requires: a feedforward path that passes no gap.

What another defensible answer might vary

Another defensible answer might draw births in the villages → pupils on roll, delayed four years, so that the roll is no longer an external driver; send the forecast to staff hours cut, the governors acting on it; or read spending for each pupil from the flow of spending. What stays the same is two balancing control loops, the governors' nested inside the council's through the reserve the council requires, staff hours cut with its limit, a deadband on the signal from the reserve's gap, one feedforward path from births, and a delay on each return path.