Skip to content
Thinking in Diagrams

Anticipation, Limits, and Nested Control

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.

Print this chapter, with a sheet for each exercise and the answers at the back, from its PDF.

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 are minutes behind plan, the projected finish time less the target finish time, and seconds too slow, the lap pace less the target pace.

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 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, a signal delay. 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.

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 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. 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 understandingA 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?

Yes. 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.

Not 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.

Not 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 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, 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.

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 here runs by timescale, B1 dominating her effort over a kilometer and B2 over the race.

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.

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.

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

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.

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 understandingA 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?

Yes. 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.

Not 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.

Not quite. The burnt toast is that: it adds smoke from outside the loop. The hush button changes no smoke; it silences the alarm.

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, the furnace drawn after “This system can also be represented by the following”. CC 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 3Which path in the redrawing is feedforward?

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.

Not quite. That signal carries the reading back to the gap, on B1’s return path: feedback. A feedforward path passes through no gap.

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 3Fuel gas flow already rises with the rate of incoming fluid. What is left for B1 to correct?

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.

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.

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 3Heat from the burning fuel takes time to pass into the fluid and reach the outlet. Where would a delay be drawn?

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.

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.

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.

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

FC 06Entry 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

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

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

To draw in the lab, use a tablet or a larger screen. Everything else reads normally here.

Press an empty spot to add a variable and type its name. Drag a variable to move it. Select a variable, a signal or a loop label to change it. Double-click or double-tap a stock's name or units, a flow's name, a variable or a loop's label or name to edit its words in place, or select it and use Rename or the fields under the canvas.

Feedback control diagram Nothing drawn yet.

Nothing selected. Select a stock, a flow, a signal, a cloud, a variable or a loop label on the canvas, and what you can change shows here.

Each flow is counted in its stock's units per this unit of time.

The tools

Variables V
add a variable (press an empty spot), move one (drag it), rename one (double-click it, or Rename under the canvas), or select anything.
Stocks S
add a stock (press an empty spot) and name it.
Flows M
draw a flow by dragging from a stock or an empty spot to a stock or an empty spot, and name it; clouds appear at empty ends.
Signals E
draw a signal by dragging from a variable, a stock or a flow's valve to a variable or a flow's valve.
Loop L
declare a loop by selecting its signals and flows in order, then label and name it.

Keys

  • R reverse the selected signal or flow
  • P the selected variable's role, in turn: none, then each role this exercise offers
  • +− the selected signal's polarity
  • Delete delete what's selected
  • Ctrl+Z undo
  • Ctrl+Shift+Z redo
  • Esc clear the selection
  • Enter finish the words you're writing
  • Esc cancel them

Keys act on the lab you last used, or on the open lab view, and never while you type.

0 of 15 checks passed; 15 pending.

  1. Read the trains due on the arrivals board into gates open, by a path that passes no gap. (Not started)No external driver yet. Brief: exactly 1 feedforward path.
  2. Draw trains arriving as an external driver acting on the flow of people joining the queue. (Not started)No external driver yet. Brief: exactly 1 external driver acting on a controlled variable.
  3. Close one control loop through the flow of people passing through the gates: the gap, gates open, the people queuing and the stewards' count. (Not started)No loop declared yet. Brief: exactly 1 control loop.

Always checked

  • Each loop's kind matches its − effects (Not started)No loop declared yet.
  • Loop labels are unique and match their kind (Not started)No loop declared yet.
  • No effect runs into an external driver (Not started)No variable is marked as an external driver yet.
  • Every stock has units (Not started)No stock drawn yet.
  • The time unit is given (Not started)No flow drawn yet.
  • Every stock has a flow in or out (Not started)No stock drawn yet.
  • Every flow has a name (Not started)No flow drawn yet.
  • Each gap reads a target and a measured value, with opposite polarities (Not started)No gap yet.
  • Each measured value reads a controlled variable (Not started)No measured value yet.
  • Each gap closes a balancing loop (Not started)No gap yet.
  • No external driver acts on a gap or a target (Not started)No variable is marked as an external driver yet.
  • No variable's name breaks the more test's three rules (Not started)No variable drawn yet.
Written feedback
Export

One defensible answer

It opens here once you've drawn at least one variable in the lab above. Your attempt saves as you draw.

One defensible answer

FC 07Tuning 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

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

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

To draw in the lab, use a tablet or a larger screen. Everything else reads normally here.

Press an empty spot to add a variable and type its name. Drag a variable to move it. Select a variable, a signal or a loop label to change it. Double-click or double-tap a variable or a loop's label or name to edit its words in place, or select it and use Rename or the fields under the canvas.

Feedback control diagram Nothing drawn yet.

Nothing selected. Select a signal, a variable or a loop label on the canvas, and what you can change shows here.

The tools

Variables V
add a variable (press an empty spot), move one (drag it), rename one (double-click it, or Rename under the canvas), or select anything.
Signals E
draw a signal by dragging from one variable to another.
Loop L
declare a loop by selecting its signals in order, then label and name it.

Keys

  • R reverse the selected signal
  • P the selected variable's role, in turn: none, then each role this exercise offers
  • +− the selected signal's polarity
  • Delete delete what's selected
  • Ctrl+Z undo
  • Ctrl+Shift+Z redo
  • Esc clear the selection
  • Enter finish the words you're writing
  • Esc cancel them

Keys act on the lab you last used, or on the open lab view, and never while you type.

0 of 11 checks passed; 11 pending.

  1. Mark the wait while the tuner's reading settles as a delay on the return path. (Not started)No control loop yet. Brief: exactly 1 delay on a return path.
  2. Write her 3 cents either way as a deadband on the signal from the gap to the peg. (Not started)No signal from a gap to a corrective action yet. Brief: exactly 1 signal with a deadband.
  3. Draw the pluck's wobble as an external driver acting on the tuner's reading. (Not started)No external driver yet. Brief: exactly 1 external driver acting on a measured value.

Always checked

  • Each loop's kind matches its − effects (Not started)No loop declared yet.
  • Loop labels are unique and match their kind (Not started)No loop declared yet.
  • No effect runs into an external driver (Not started)No variable is marked as an external driver yet.
  • Each gap reads a target and a measured value, with opposite polarities (Not started)No gap yet.
  • Each measured value reads a controlled variable (Not started)No measured value yet.
  • Each gap closes a balancing loop (Not started)No gap yet.
  • No external driver acts on a gap or a target (Not started)No variable is marked as an external driver yet.
  • No variable's name breaks the more test's three rules (Not started)No variable drawn yet.
Written feedback
Export

One defensible answer

It opens here once you've drawn at least one variable in the lab above. Your attempt saves as you draw.

One defensible answer

FC 08A 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

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

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

To draw in the lab, use a tablet or a larger screen. Everything else reads normally here.

Press an empty spot to add a variable and type its name. Drag a variable to move it. Select a variable, a signal or a loop label to change it. Drag a behavior note to move it. Double-click or double-tap a variable, a loop's label or name or a behavior note to edit its words in place, or select it and use Rename or the fields under the canvas.

Feedback control diagram Nothing drawn yet.

Nothing selected. Select a signal, a variable, a loop label or a behavior note on the canvas, and what you can change shows here.

The tools

Variables V
add a variable (press an empty spot), move one (drag it), rename one (double-click it, or Rename under the canvas), or select anything.
Signals E
draw a signal by dragging from one variable to another.
Loop L
declare a loop by selecting its signals in order, then label and name it.
Note N
place a behavior note (press where it goes).

Keys

  • R reverse the selected signal
  • P the selected variable's role, in turn: none, then each role this exercise offers
  • +− the selected signal's polarity
  • Delete delete what's selected
  • Ctrl+Z undo
  • Ctrl+Shift+Z redo
  • Esc clear the selection
  • Enter finish the words you're writing
  • Esc cancel them

Keys act on the lab you last used, or on the open lab view, and never while you type.

0 of 9 checks passed; 9 pending.

  1. Close three control loops, for temperature, salinity and alkalinity, each with its target, reading and gap. (Not started)No loop declared yet. Brief: exactly 3 control loops.
  2. Make the water changed per week the corrective action of both the salinity loop and the alkalinity loop. (Not started)No control loop yet. Brief: at least 1 shared corrective action.
  3. Draw the heater's signal to salinity and the water changes' signal to the water temperature as cross-effects. (Not started)No control loop yet. Brief: at least 2 cross-effects.

Always checked

  • Each loop's kind matches its − effects (Not started)No loop declared yet.
  • Loop labels are unique and match their kind (Not started)No loop declared yet.
  • Each gap reads a target and a measured value, with opposite polarities (Not started)No gap yet.
  • Each measured value reads a controlled variable (Not started)No measured value yet.
  • Each gap closes a balancing loop (Not started)No gap yet.
  • No variable's name breaks the more test's three rules (Not started)No variable drawn yet.
Written feedback
Export

One defensible answer

It opens here once you've drawn at least one variable in the lab above. Your attempt saves as you draw.

One defensible answer

FC 09A 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

  1. Draw a named boundary, with new spam campaigns worldwide outside it as an external driver. checked by the lab
  2. 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. checked by the lab
  3. Declare the reinforcing loop through spammers' new tactics, inside the boundary. checked by the lab
  4. Draw users' releases of messages marked not spam as an override whose signal ends at filter strictness. checked by the lab
  5. The override is named as a quantity, mail released as not spam, which someone can count and read later. you check this

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

To draw in the lab, use a tablet or a larger screen. Everything else reads normally here.

Press an empty spot to add a variable and type its name. Drag a variable to move it. Select a variable, a signal or a loop label to change it. Drag a boundary by its outline or its name to move it, and by the square at its corner to resize it. Double-click or double-tap a variable, a loop's label or name or a boundary's name to edit its words in place, or select it and use Rename or the fields under the canvas.

Feedback control diagram Nothing drawn yet.

Nothing selected. Select a signal, a variable, a loop label or a boundary on the canvas, and what you can change shows here.

The tools

Variables V
add a variable (press an empty spot), move one (drag it), rename one (double-click it, or Rename under the canvas), or select anything.
Signals E
draw a signal by dragging from one variable to another.
Loop L
declare a loop by selecting its signals in order, then label and name it.
Boundary B
drag out a boundary around the system, and name it.

Keys

  • G legend on or off
  • R reverse the selected signal
  • P the selected variable's role, in turn: none, then each role this exercise offers
  • +− the selected signal's polarity
  • Delete delete what's selected
  • Ctrl+Z undo
  • Ctrl+Shift+Z redo
  • Esc clear the selection
  • Enter finish the words you're writing
  • Esc cancel them

Keys act on the lab you last used, or on the open lab view, and never while you type.

0 of 15 checks passed; 15 pending.

  1. Draw a named boundary, with new spam campaigns worldwide outside it as an external driver. (Not started)No boundary drawn yet. Draw one and name the system it holds. Brief: at least 1 external driver outside it.
  2. 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. (Not started)No loop declared yet. Brief: exactly 2 control loops.
  3. Declare the reinforcing loop through spammers' new tactics, inside the boundary. (Not started)No loop declared yet. Brief: exactly 1 reinforcing loop.
  4. Draw users' releases of messages marked not spam as an override whose signal ends at filter strictness. (Not started)No variables yet. Brief: exactly 1 override.

Always checked

  • Each loop's kind matches its − effects (Not started)No loop declared yet.
  • Loop labels are unique and match their kind (Not started)No loop declared yet.
  • No effect runs into an external driver (Not started)No variable is marked as an external driver yet.
  • External drivers sit outside every boundary (Not started)No variable is marked as an external driver yet.
  • The legend is on when effects are coded or tagged (Not started)No signal is coded as a hypothesis yet, so the legend has nothing to declare.
  • Each gap reads a target and a measured value, with opposite polarities (Not started)No gap yet.
  • Each measured value reads a controlled variable (Not started)No measured value yet.
  • Each gap closes a balancing loop (Not started)No gap yet.
  • No external driver acts on a gap or a target (Not started)No variable is marked as an external driver yet.
  • Each override ends at a corrective action (Not started)No override yet.
  • No variable's name breaks the more test's three rules (Not started)No variable drawn yet.
Written feedback
Export

One defensible answer

It opens here once you've drawn at least one variable in the lab above. Your attempt saves as you draw.

One defensible answer

FC 10Cooling 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

  1. 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. checked by the lab
  2. Write the chillers' full output as the limit on cooling output. checked by the lab
  3. Draw the heatwave as an external driver acting on a controlled variable. checked by the lab
  4. Draw the engineers' own cooling setting as an override whose signal ends at cooling output. checked by the lab
  5. Code the signal for how much shutting down servers lowers the inlet temperature as a hypothesis. checked by the lab
  6. Recovery shows only in a later hourly inlet reading: the slow loop closes on that reading, not on the supply air. you check this

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

To draw in the lab, use a tablet or a larger screen. Everything else reads normally here.

Press an empty spot to add a variable and type its name. Drag a variable to move it. Select a variable, a signal or a loop label to change it. Drag a behavior note to move it. Double-click or double-tap a variable, a loop's label or name or a behavior note to edit its words in place, or select it and use Rename or the fields under the canvas.

Feedback control diagram Nothing drawn yet.

Nothing selected. Select a signal, a variable, a loop label or a behavior note on the canvas, and what you can change shows here.

The tools

Variables V
add a variable (press an empty spot), move one (drag it), rename one (double-click it, or Rename under the canvas), or select anything.
Signals E
draw a signal by dragging from one variable to another.
Loop L
declare a loop by selecting its signals in order, then label and name it.
Note N
place a behavior note (press where it goes).

Keys

  • G legend on or off
  • R reverse the selected signal
  • P the selected variable's role, in turn: none, then each role this exercise offers
  • +− the selected signal's polarity
  • Delete delete what's selected
  • Ctrl+Z undo
  • Ctrl+Shift+Z redo
  • Esc clear the selection
  • Enter finish the words you're writing
  • Esc cancel them

Keys act on the lab you last used, or on the open lab view, and never while you type.

0 of 15 checks passed; 15 pending.

  1. 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. (Not started)No control loop yet. Brief: at least 1 nested loop.
  2. Write the chillers' full output as the limit on cooling output. (Not started)No corrective action yet. Brief: at least 1 corrective action with a saturation.
  3. Draw the heatwave as an external driver acting on a controlled variable. (Not started)No external driver yet. Brief: at least 1 external driver acting on a controlled variable.
  4. Draw the engineers' own cooling setting as an override whose signal ends at cooling output. (Not started)No variables yet. Brief: exactly 1 override.
  5. Code the signal for how much shutting down servers lowers the inlet temperature as a hypothesis. (Not started)No signals yet.

Always checked

  • Each loop's kind matches its − effects (Not started)No loop declared yet.
  • Loop labels are unique and match their kind (Not started)No loop declared yet.
  • No effect runs into an external driver (Not started)No variable is marked as an external driver yet.
  • The legend is on when effects are coded or tagged (Not started)No signal is coded as a hypothesis yet, so the legend has nothing to declare.
  • Each gap reads a target and a measured value, with opposite polarities (Not started)No gap yet.
  • Each measured value reads a controlled variable (Not started)No measured value yet.
  • Each gap closes a balancing loop (Not started)No gap yet.
  • No external driver acts on a gap or a target (Not started)No variable is marked as an external driver yet.
  • Each override ends at a corrective action (Not started)No override yet.
  • No variable's name breaks the more test's three rules (Not started)No variable drawn yet.
Written feedback
Export

One defensible answer

It opens here once you've drawn at least one variable in the lab above. Your attempt saves as you draw.

One defensible answer

CS 09Kelsham 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

  1. 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. checked by the lab
  2. Write the hours above one teacher a class as the limit on staff hours cut. checked by the lab
  3. Write the £10,000 the reserve moves within a school year as a deadband on the gap's signal to staff hours cut. checked by the lab
  4. Read births in the villages into the reserve the council requires through David Brennan's forecast, by a path that passes no gap. checked by the lab
  5. Mark the budget report each term and the accounts each year as delays on the two return paths. checked by the lab
  6. Once staff hours cut reaches its limit, a higher reserve required changes nothing: both loops act through the same corrective action. you check this

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

To draw in the lab, use a tablet or a larger screen. Everything else reads normally here.

Press an empty spot to add a variable and type its name. Drag a variable to move it. Select a variable, a signal or a loop label to change it. Double-click or double-tap a stock's name or units, a flow's name, a variable or a loop's label or name to edit its words in place, or select it and use Rename or the fields under the canvas.

Feedback control diagram Nothing drawn yet.

Nothing selected. Select a stock, a flow, a signal, a cloud, a variable or a loop label on the canvas, and what you can change shows here.

Each flow is counted in its stock's units per this unit of time.

The tools

Variables V
add a variable (press an empty spot), move one (drag it), rename one (double-click it, or Rename under the canvas), or select anything.
Stocks S
add a stock (press an empty spot) and name it.
Flows M
draw a flow by dragging from a stock or an empty spot to a stock or an empty spot, and name it; clouds appear at empty ends.
Signals E
draw a signal by dragging from a variable, a stock or a flow's valve to a variable or a flow's valve.
Loop L
declare a loop by selecting its signals and flows in order, then label and name it.

Keys

  • R reverse the selected signal or flow
  • P the selected variable's role, in turn: none, then each role this exercise offers
  • +− the selected signal's polarity
  • Delete delete what's selected
  • Ctrl+Z undo
  • Ctrl+Shift+Z redo
  • Esc clear the selection
  • Enter finish the words you're writing
  • Esc cancel them

Keys act on the lab you last used, or on the open lab view, and never while you type.

0 of 17 checks passed; 17 pending.

  1. 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. (Not started)No control loop yet. Brief: at least 1 nested loop.
  2. Write the hours above one teacher a class as the limit on staff hours cut. (Not started)No corrective action yet. Brief: at least 1 corrective action with a saturation.
  3. Write the £10,000 the reserve moves within a school year as a deadband on the gap's signal to staff hours cut. (Not started)No signal from a gap to a corrective action yet. Brief: exactly 1 signal with a deadband.
  4. Read births in the villages into the reserve the council requires through David Brennan's forecast, by a path that passes no gap. (Not started)No external driver yet. Brief: exactly 1 feedforward path.
  5. Mark the budget report each term and the accounts each year as delays on the two return paths. (Not started)No control loop yet. Brief: exactly 2 delays on a return path.

Always checked

  • Each loop's kind matches its − effects (Not started)No loop declared yet.
  • Loop labels are unique and match their kind (Not started)No loop declared yet.
  • No effect runs into an external driver (Not started)No variable is marked as an external driver yet.
  • Every stock has units (Not started)No stock drawn yet.
  • The time unit is given (Not started)No flow drawn yet.
  • Every stock has a flow in or out (Not started)No stock drawn yet.
  • Every flow has a name (Not started)No flow drawn yet.
  • Each gap reads a target and a measured value, with opposite polarities (Not started)No gap yet.
  • Each measured value reads a controlled variable (Not started)No measured value yet.
  • Each gap closes a balancing loop (Not started)No gap yet.
  • No external driver acts on a gap or a target (Not started)No variable is marked as an external driver yet.
  • No variable's name breaks the more test's three rules (Not started)No variable drawn yet.
Written feedback
Export

One defensible answer

It opens here once you've drawn at least one variable in the lab above. Your attempt saves as you draw.

One defensible answer
  • Karl Johan Åström and Richard M. Murray, Feedback Systems: An Introduction for Scientists and Engineers, 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” (University of Alberta course notes), and by Thomas Pyzdek, The Quality Engineering Handbook, on the doubled variance.
  • Bizot Group, The Bizot Green Protocol (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?” (The Fitzwilliam Museum), on warming lowering relative humidity.