Computation, control and emergence

Feedback, control and cybernetics

A loop resists disturbance only when its sensing, action, memory and timing fit the process; mismatched feedback turns correction into amplification.

Rajesh Ranjan Mahapatra

A first-principles account of how goals, observation, error, action, disturbance and delay form a closed loop, with a runnable controller laboratory.

© 2026 Rajesh Ranjan Mahapatra. 27 min read

Feedback, control and cyberneticsAll Human–Machine Convergence
rajeshrmahapatra.com Human and machine intelligence

Computation, control and emergence

Feedback, control and cybernetics

A loop resists disturbance only when its sensing, action, memory and timing fit the process; mismatched feedback turns correction into amplification.

TLDR

  • Feedback is a causal loop, not a component.
  • Error correction works only inside timing and gain limits.
  • Integral memory removes bias but can store impossible commands.
  • Speed, disturbance rejection and noise tolerance trade against one another.
  • Trust a controller only after delay, saturation and fault injection.

The ferry that corrected itself into the pier

A small autonomous ferry carries laboratory samples across a harbour. On a calm morning, its route planner calculates a heading, fixes the propeller angle and predicts arrival at the opposite berth. The crossing is perfect. A second ferry follows the same route, but it looks sideways every half-second, estimates its distance from the intended path and adjusts the rudder. Its crossing is also perfect.

From the shore, the two vessels appear equivalent. Then a crosswind arrives. The first ferry continues executing yesterday’s answer to a world that no longer exists. The second measures the drift and turns into the wind. This is the familiar triumph of feedback: the action changes because the outcome changed.

Now alter one property. Keep the same controller, but delay the camera stream by three seconds. The ferry sees where it was, not where it is. It turns hard to correct an old error, crosses the intended path before the new image arrives, then turns hard in the other direction. Each correction is locally sensible. Together they create a widening zig-zag. The loop fails not because it stopped correcting error, but because the correction arrived with the wrong causal timing.

This is the puzzle at the centre of control. Feedback can make a fragile machine insensitive to disturbance, component variation and uncertain load. The same feedback can also create oscillation, amplify noise or drive an actuator against its limit. The word “feedback” therefore names neither safety nor intelligence. It names a closed causal arrangement whose behaviour belongs to the whole loop.

A harbour ferry under a crosswind A harbour landscape shows a straight planned route, a drifting open-loop path and a delayed feedback path that over-corrects into widening oscillations. departure berth planned centreline fixed command drifts delayed correction oscillates crosswind The environment supplies the disturbance. The sensor and delay decide whether correction tracks the present.
A living control contour under a gust.The nominal route hides mechanism. Disturbance reveals whether the vessel is replaying a command, correcting current error or correcting stale error. Illustrative.

What closes the loop

The fastest way to misunderstand control is to point at a thermostat, a PID block or a policy model and call it “the controller”. Control is not located in a box. It is the causal circulation linking a desired condition, an observation, a discrepancy, an action and the process that action changes.

Thought experiment 1

The indistinguishable crossings

Return both ferries to calm water and run one hundred crossings. A route-replay system and a feedback system may produce the same tracks. Now intervene only on the wind. The replay system repeats its propeller and rudder sequence. The feedback system changes action because the measured outcome changed. Behavioural equality under one environment therefore does not establish control equivalence.

The altered causal property is outcome dependence. Ask: if the output deviates while the command and goal remain fixed, does later action change because of that deviation? A feedback claim requires this counterfactual dependence, rather than only accurate output.

Disturbance separates feedforward from feedback Two side-by-side causal experiments show identical nominal outputs. After a disturbance, the feedforward action remains unchanged while the feedback action changes in response to measured error. Scheduled action Outcome-dependent action goal schedule plant disturbance action stays the same output moves goal Σ action plant disturbance measured deviation changes the next action same nominal output, different causal generator disturbance exposes the closed path
The disturbance intervention.Nominal success cannot tell a scheduled command from closed-loop regulation. Change the environment while holding the target fixed, then inspect whether later action depends on measured deviation. Illustrative causal intervention.

Six roles, one causal object

Suppose the ferry should remain on a centreline. The reference is that desired lateral position. The plant is the vessel plus water and propulsion dynamics. The sensor estimates present position. The controller converts discrepancy into a rudder command. The actuator turns the rudder. A disturbance, such as wind, pushes the vessel independently of the command. Delay may occur in sensing, computation, communication or actuation.

The basic notation compresses these physical roles:

e(t) = r(t) − ym(t)
u(t) = C[e(0:t)]
ẋ(t) = f(x(t), u(t), d(t))
ym(t) = h(x(t − τ)) + n(t) r is the target, ym the measured output, e the error, u the action, x the plant state, d the disturbance, n measurement noise and τ total delay. The controller C may depend on the history of error, not only its present value.

Nothing in these equations says the loop is stable. They only state who can causally affect whom. A sign error can make the rudder turn with the drift. Excess gain can turn small noise into violent action. A sensor can report the wrong variable. The actuator can saturate. A plant model can omit a slow mode. Closing a loop creates a new dynamical system whose properties cannot be read from the controller alone. This lesson runs from Maxwell’s analysis of governors through Nyquist’s stability criterion and modern feedback design.126

Anatomy of a closed control loop A circular control diagram places the reference, comparison, controller, actuator, plant and sensor around a loop. Disturbance, noise, delay and constraints enter at distinct locations. closed-loop behaviour targetr comparee controlC actuatoru plantx,y sensoryₘ disturbance d noise n limits delay τ anywhere on the path Every arrow has units, bandwidth, latency, uncertainty and authority.
The loop is the unit of explanation.Disturbance, sensor noise, delay and actuator limits enter at different causal points. Treating them as generic “model error” hides which intervention will help. Practitioner synthesis from standard control architecture.
Worked example 1: mental scale

A shower with two delays

You turn a shower tap towards hot. Water already inside the pipe must travel before the temperature at your skin changes. Your hand then takes time to respond. If you make a large correction before the first one is felt, both commands arrive together and the water becomes too hot. You reverse equally hard, creating alternating cold and hot waves.

Change one variable at a time. Smaller hand movement reduces gain. Waiting longer before another correction respects the plant delay. Feeling the rate of warming adds a crude derivative cue. Remembering a persistent cold bias adds integral action. The example is simple, but it contains the whole architecture: reference, sensor, controller memory, actuator, plant, disturbance and transport delay.

Feedforward and feedback solve different ignorance

Suppose a wind sensor on the harbour wall reports a crosswind before the ferry begins to drift. A feedforward path can turn the rudder immediately using a model of wind, hull and speed. It does not wait for error. This is valuable when the disturbance is measurable early and the model is sufficiently accurate. Yet an unmeasured current, a biased wind sensor or a changed load leaves residual error. Feedback then corrects what the model and disturbance sensor missed.

The two paths therefore answer different questions. Feedforward asks, “Given what is about to happen, which action should prevent deviation?” Feedback asks, “Given what actually happened, which action should reduce the deviation?” A well-designed system often uses both. The feedforward path carries specific knowledge and speed; the feedback path supplies robustness to residual uncertainty. Their interaction must still be tested. An aggressive feedforward command can saturate the actuator before feedback has room to correct, while a feedback integrator may wrongly learn compensation for a temporary feedforward bias.

Cybernetics widens the question

Engineering control asks how to regulate a defined process. Cybernetics asks what remains common when the process is mechanical, biological, cognitive or social. Wiener framed the field around control and communication in animals and machines; Ashby treated regulation in terms of transformations, constraints and variety.45 The transferable relation is circular causation: outcomes alter information, information alters action and action alters later outcomes.

The analogy must stop where causal roles diverge. Organisms generate viability conditions through metabolism and evolution; thermostats receive setpoints; dashboards regulate chosen proxies; language models may propose without authority. Shared loop geometry does not imply shared goals, stakes, selfhood or experience. Cybernetic comparison earns its value by naming both the preserved relation and the break.

Evidence status

What is established, and what is synthesis

Established: feedback can reject disturbances yet destabilise under delay, gain or uncertainty. Historical: cybernetics compares loop relations across machines and organisms. Practitioner synthesis: the later loop contract makes those relations testable. Open hypothesis: correction reversals in compound AI may reveal loop mismatch rather than isolated reasoning error.

The argument in one pass
Chart · flow
flowchart LR
  A["The ferry that corrected<br/>itself into the pier"] --> B["What closes the loop"]
  B --> C["When help arrives late"]
  C --> D["Memory meets limits"]
  D -. "re-test" .-> A
  classDef first fill:#0a1424,stroke:#087A98,stroke-width:2px,color:#e6f3ff
  classDef step fill:#0a1424,stroke:#3f7da0,stroke-width:1px,color:#e6f3ff
  class A first
  class B,C,D step
A structural route through Feedback, control and cybernetics: from The ferry that corrected itself into the… to Design and govern the closed loop. Reading use: follow the relation, then return to the surrounding argument for evidence and limits.

When help arrives late

A correction is useful only relative to the state it reaches. Delay changes that relation. Once the plant has moved far enough, an action calculated to oppose error can reinforce the motion that created it.

Thought experiment 2

Steering through a delayed mirror

Imagine cycling along a painted line while seeing the front wheel only through a video feed. With no delay, a small leftward drift produces a small rightward correction. Add one second of delay. You can still succeed by steering gently. Add three seconds while keeping the same steering gain. The image shows a leftward drift after you have already crossed to the right, so the “corrective” turn pushes you farther away.

The altered causal property is phase, the timing relation between deviation and response. What would you predict if the rider reacts more strongly? The intuitive answer is faster correction. Beyond a threshold, the stronger response increases oscillation. Gain cannot be judged without delay and plant speed.

A smallest useful model

Consider a room whose temperature difference from outdoors is y. The heater command is u. The room loses heat gradually, so a first-order model is:

τ ẏ + y = k u + d     and     u = Kp(r − y) τ is the room’s thermal time constant, k heater effectiveness, d an external heat disturbance, r the desired temperature difference and Kp proportional gain. This model assumes linear heat loss, immediate sensing and actuation, no saturation and constant parameters.

Substitution gives a new closed-loop time constant, τ/(1 + kKp). Let τ = 10 minutes, k = 1, r = 1 and Kp = 4. The response becomes five times faster, with a two-minute time constant. Yet the steady output reaches only 0.8, leaving an error of 0.2. A persistent cold disturbance d = −0.5 shifts the output to 0.7. Proportional feedback suppresses the disturbance by the factor 1/(1 + kKp), but does not remove the bias.

This arithmetic makes high gain tempting. Under the stated assumptions, more gain gives a faster response, smaller steady error and stronger disturbance rejection. Remove the no-delay assumption and the conclusion changes. A heater that acts after a long transport lag can continue adding heat while the sensor still reports cold. The equations now contain memory through delayed action, and sufficiently high gain can produce oscillation. Maxwell’s governor analysis and Nyquist’s later frequency-domain criterion made this general point precise: stability is a property of the full return path.12

Stability, performance and robustness are different claims

Stability, performance and robustness answer different questions. Stability asks whether trajectories remain bounded and return towards an operating region. Performance asks how quickly and accurately, and with what control effort. Robustness asks whether those properties survive plausible variation. A stable loop can be too slow; a fast loop can cross a safety boundary; a nominally excellent loop can fail after modest delay.

Compare three ferry tunes. A settles in forty seconds without overshoot. B settles in eight seconds but crosses the navigation boundary. C settles in ten seconds in the model, then oscillates when camera latency rises by half a second. No single settling-time score ranks them. Acceptance needs a region: cross-track error, settling time, rudder-rate limit, delay margin and disturbance class. One successful run shows performance at one point; robustness requires varying mass, current, delay, rate limits, noise and model coefficients until the nearest failure boundary appears.

Delay turns damping into oscillation A time chart compares a well-timed response that approaches the target smoothly with a delayed high-gain response that crosses the target repeatedly with increasing amplitude. target 0 time timely, moderate gain delayed, excessive gain correction arrives after crossing next reversal grows
Delay changes the meaning of correction.The coral path is not a failed attempt to correct. It is repeated correction aimed at past states. Increasing gain makes the temporal mismatch more damaging. Illustrative trajectories, not measured data.
Worked example 2: computational scale

One delayed sample is enough to change the regime

Take a discrete plant: yt+1 = 0.8yt + 0.2ut−L, with target r = 1. When L = 0 and ut = 2(r − yt), the output approaches a stable value. Keep the same gain and insert several delayed steps. The controller continues applying commands calculated before earlier commands have taken effect. With enough delay, the characteristic roots move outside the stable region and oscillations grow.

The exact threshold depends on the plant coefficient, sample interval, gain and saturation. The causal lesson does not: a benchmark that tests only the no-delay configuration cannot support a claim about the delayed system. The executable lab later lets you sweep this transition rather than accept it verbally.

The waterbed beneath “better control”

For a linear loop with plant P(s) and controller C(s), the loop transfer is L(s) = P(s)C(s). The sensitivity function S(s) = 1/(1 + L(s)) tells how some disturbances and modelling errors reach the output. Large loop gain can make |S| small over frequencies where regulation matters. The complementary sensitivity T(s) = L(s)/(1 + L(s)) shapes tracking and measurement-noise transmission.

This exposes a design conflict. Low-frequency gain helps reject slow load changes and persistent bias. High-frequency gain reacts to sensor noise and unmodelled fast dynamics. Bode-type integral constraints show that for important classes of systems, pushing sensitivity down in one frequency region forces it up elsewhere. This is often called the waterbed effect.613 Feedback redistributes sensitivity; it does not abolish it.

The sensitivity waterbed A frequency landscape shows sensitivity pressed below a baseline at low frequency and rising above it at a higher frequency, illustrating that disturbance rejection in one band can increase sensitivity elsewhere. |S| = 1 frequency → sensitivity slow disturbances suppressed sensitivity peak exact area relation depends on system assumptions
The control waterbed.Strong regulation in one band can create a peak elsewhere. The practical question is not “is sensitivity low?” but “where was it moved, and what lives there?” Conceptual rendering of Bode sensitivity constraints.

This is also why an optimised controller can be brittle. Doyle’s compact counterexample showed that a nominally optimal LQG design need not possess guaranteed gain and phase margins.12 The general warning is broader than one method: an objective function rewards what it contains, under the model it assumes. Robustness requires explicit uncertainty, margins and adversarial changes. It does not arrive automatically with optimality.

Memory meets limits

A controller can look at error in three temporal ways: its present size, its accumulated history and its current trend. Those views produce proportional, integral and derivative action. Their value depends on what the plant can actually do.

Three temporal views of error Three circular instruments represent proportional control as present error, integral control as accumulated history and derivative control as the current slope. A combined action emerges only after limits and filtering. P I D error now area through time rate of change combine, filter, then constrain actuator and safety limits
A controller sees three times at once.Proportional action responds to present error, integral action remembers persistent bias and derivative action reacts to trend. Real implementations filter and constrain these terms. Practitioner synthesis of PID structure.

Why integral action removes bias

A proportional controller stops increasing its command once the remaining error is small. In the room example, some error is required to sustain enough heater output. Integral action adds the history of error:

u(t) = Kpe(t) + Ki∫e(t)dt + Kdde(t)/dt The proportional term reacts to current error. The integral term grows while a bias persists. The derivative term reacts to the error’s trend. Practical derivative action is normally filtered because differentiation amplifies high-frequency measurement noise.

In an ideal loop with enough actuator authority, a constant non-zero error makes the integral term keep changing. Equilibrium is possible only when the error reaches zero. This is an instance of a deeper internal-model idea: exact rejection of a class of persistent signals requires the controller to contain dynamics capable of generating that class.9 For a constant disturbance, the relevant internal dynamic is an integrator.

The claim has boundaries. Zero steady error does not follow if the sensor is biased, the reference is infeasible, the actuator lacks capacity, the loop switches modes badly or the plant changes faster than the controller adapts. Integral memory can only accumulate a command. It cannot create missing physical authority.

Thought experiment 3

The heater that cannot heat enough

A room must reach 24°C during an extreme cold spell, but the heater at full power can sustain only 21°C. Compare two PI controllers. In the first, the integrator continues accumulating the 3°C error while the heater is saturated. In the second, integration stops when further accumulation would push deeper into saturation.

Now the weather suddenly warms. The physical constraint disappears. The first controller still carries a large stored command and overheats the room before the integral state unwinds. The second recovers quickly. The altered causal property is not the gain or plant. It is whether controller memory is allowed to grow while its command cannot be realised. Memory must be conditioned on executable action.

Integral windup under actuator saturation A spiral diagram shows persistent error driving an integrator, the requested command hitting an actuator ceiling, integral state continuing to grow and stored command causing overshoot after the constraint is released. An anti-windup path prevents further accumulation. integral state keeps growing requested u = 1.8 actuator limit = 1.0 constraint ends stored u persists overshoot slow unwinding anti-windup: stop or back-calculate integral growth when saturation blocks the command The failure is hidden until the constraint changes.
The hidden debt of an impossible command.Windup stores error while the actuator is saturated, then releases that stored command after the constraint changes. Anti-windup makes controller state reflect executable action. Illustrative failure path based on established anti-windup analysis.10
Worked example 3: failure case

Why a “faster” PI tune recovers more slowly

Suppose the heater command is limited to 1.0. A cold disturbance makes the unconstrained PI controller request 1.6 for ten minutes. Without anti-windup, the integrator may accumulate the missing 0.6 each minute. When the disturbance ends, the required command falls below 1.0, but the controller’s stored state can keep the actuator saturated. The room overshoots even though the present error has reversed.

A conditional integrator updates only when the command is inside limits or when the error would move the command back towards feasibility. Back-calculation instead feeds the difference between requested and realised action into the integrator. Both methods reconnect controller memory to the actuator’s actual behaviour. Åström and Rundqwist formalised and compared such anti-windup approaches.10

Observation is part of control, not a neutral window

A controller never acts on the plant directly. It acts on a measured or estimated state. If the ferry measures GPS position but not lateral velocity, two situations with the same position error may require opposite rudder action: one vessel may be drifting away; another may already be returning. Observability asks whether the hidden state relevant to future behaviour can be inferred from available measurements over time.6

Adding sensors is not automatically better. Sensors have latency, noise, bias, failure modes and correlated errors. Derivative action is especially sensitive because rapid measurement fluctuations resemble rapid state changes. Filtering reduces noise but adds delay. Estimation can recover hidden state but introduces a model whose mismatch must be tested. The controller, observer and plant form one loop.

Most real systems contain loops inside loops

The ferry may have a fast motor-current loop, a slower rudder-angle loop, a still slower heading loop and an outer route loop. The autoscaler may contain a fast admission controller around a slower replica controller. A human supervisor may alter the reference or disable automation. Each loop sees the others partly as plant dynamics and partly as constraints.

Nesting helps when inner loops are much faster and make their behaviour predictable to the outer loop. It hurts when time scales overlap or two controllers fight over the same actuator. A route controller may request a heading change faster than the rudder loop can realise it. An autoscaler may add capacity while a cost controller removes it. The resulting oscillation is not attributable to either rule in isolation. It is an interaction mode created by their coupled timing.

A practical design therefore records control hierarchy and ownership. Which loop sets the reference for which other loop? Which actuator has final authority? At what rate does each loop update? What happens during mode transfer? Bumpless transfer matters because changing from manual to automatic control with inconsistent internal state can itself create a large command. Resets, fallbacks and human intervention are state transitions inside the causal system, not operational footnotes.

Thought experiment 4

The perfect dashboard

An inference service is governed by a controller that keeps average latency below 200 milliseconds by adding replicas. It succeeds on every dashboard. Now reveal that requests have two classes: short interactive calls and rare long analytical calls. The average remains acceptable while interactive p95 latency breaches its service objective. The controller is stable and accurate relative to its measured variable, yet regulates the wrong outcome.

Change only the observation from average latency to a class-aware tail metric. The action policy changes. The causal lesson is severe: a controller can be excellent at enforcing a bad measurement bridge. Control theory cannot choose what should matter. It can make the consequences of that choice persistent and fast.

Variety, models and what cybernetic slogans omit

Ashby’s requisite variety says, in engineering terms, that disturbances demanding different responses require observations and actions capable of making those distinctions.5 A one-bit actuator cannot correct ten independent modes unless the plant or environment supplies structure. Variety concerns effective discrimination and authority, not raw component count.

Conant and Ashby’s theorem, under its assumptions, says a maximally successful simple regulator reflects relevant system structure.8 It does not make every thermostat a world simulator or regulation evidence of consciousness. Francis and Wonham give a narrower result: robust rejection of specified signal classes requires matching controller dynamics.9 A model is required only relative to a task, disturbance class and theorem’s assumptions.

Worked example 4: configured-system scale

An inference-service autoscaler

A synthetic service targets interactive p95 latency near 250 ms. Replica count ranges from 2 to 20 and can rise by one every 30 seconds. Requests, batching, queues and cold starts form the plant; a 15-second rolling metric is the observation; a traffic burst is the disturbance.

A proportional controller sees high latency and requests eight replicas, but the platform grants one. The rolling metric still carries old congestion, so it asks again. Replicas warm after traffic subsides and capacity overshoots. A better loop uses realised replica count for anti-windup, a queue estimate, a cold-start-matched cooldown and faster admission control. The improvement is not abstract intelligence. It is temporal and authority fit.

Boundary and timing of an inference-service autoscaler A nested systems view shows traffic entering a queue and replica pool. A measurement window reports class-aware tail latency to a controller, which is constrained by replica limits, cooldown and admission control. Cold-start delay sits on the action path. configured control boundary traffic burst d(t) queue replica pool responses p95 by request class 15 s observation window PI controller with anti-windup admission path replica request authority and constraints 2–20 replicas · +1 per 30 s cold-start delay · cooldown Realised replica count feeds back to controller state; requested count is not treated as executed action.
A realistic loop is a timed contract.The metric window, cold-start delay, rate limit and realised actuator state are part of the controller. Omitting any of them changes the system being evaluated. Synthetic configured-system example.
How the claim changes under pressure
Chart · state
stateDiagram-v2
  [*] --> Claim
  state "The indistinguishable crossings" as Claim
  state "Six roles, one causal object" as Test
  state "A shower with two delays" as Revision
  Claim --> Test: expose mechanism
  Test --> Decision: evidence survives
  Test --> Revision: rival survives
  Revision --> Claim: narrow or rebuild
  Decision --> [*]
The revision loop begins with The indistinguishable crossings and keeps counterexamples inside the reasoning path. Reading use: follow the relation, then return to the surrounding argument for evidence and limits.

From sketch to operating evidence

The practical unit of assurance is not a controller diagram. It is a configured loop tested under disturbances, delay, noise, saturation, sensor faults and model error. The controller lab below makes that claim executable.

The minimum loop contract

Before choosing gains or methods, write a loop contract: regulated variable and unit; reference owner and admissible range; observation window, freshness, noise and bias; actuator limits, rate and realised-action semantics; dominant plant timescales and nonlinearities; end-to-end delay; controller state, reset rules and safe modes; and required disturbance and failure coverage.

This is causal, not aspirational. “Maintain service quality”, “use telemetry” and “scale capacity” leave the loop unspecified. Every noun must become a typed variable, every arrow a timed dependency and every limit an executable invariant.

Human and machine roles belong inside the contract

Compound systems split the loop among people and software: a model proposes, policy checks permission, an operator may approve, an actuator executes and independent readback verifies effect. “Human in the loop” does not reveal whether the person owns the goal, interprets ambiguity, grants authority, recovers failure or merely confirms a settled decision.

Control analysis locates delay and state in that division. Approval can improve judgement yet make a fast loop impossible. Target changes can invalidate integral state. Predictive models can supply feedforward while deterministic controls enforce limits. Proposal, authority, typed action, effect receipt and verified outcome must remain distinct because only one signal actually closes the loop.

Generated text is not realised action. “Add three replicas” may yield one, rejection or an unknown timeout. Controller memory must update from effect receipt or independent readback, not the proposal. Otherwise software regulates an imagined plant and accumulates state against effects that never occurred.

Mechanism

The loop-fit test

A proposed controller passes the smallest useful test only if four relations hold together: the observation resolves the state needed for action; the actuator has enough authority and variety; the combined delay is short relative to the plant modes being corrected; and controller memory tracks realised rather than merely requested action. Failure in any one relation can make the other three look misleadingly successful under nominal conditions.

Interactive controller lab

First-order plant, transport delay, measurement noise, disturbance, actuator saturation and optional anti-windup.

2.00
0.30
0.20
6.0 s
0.5 s
2.0
−0.50
0.01

The chart shows target and process output in the upper panel and requested versus realised actuator command in the lower panel. Metrics update after each run.

Overshoot0%
Final error0.00
Saturation0.0 s
Outcomestable

Disturbance is applied from 20 to 35 seconds. The model is synthetic and intentionally simple. It is suitable for causal intuition and regression tests, not plant certification.

Executable controller laboratory.Change one causal property at a time. A positive result shows that this configured loop recovers under the tested disturbance and constraints. A negative result localises a mismatch; it does not show that feedback in general fails. Runnable JavaScript simulation with synthetic data.

How to use the lab

Start with the balanced preset. Increase Kp while delay remains low. Tracking becomes faster until overshoot and oscillation appear. Restore the preset, then increase delay without changing gains. The same controller crosses a stability boundary because the plant moves during the information lag. Next load the windup trap, run it with anti-windup on, then turn anti-windup off. Compare saturation duration and recovery after the disturbance ends. Finally, load the noisy-derivative preset and raise Kd. Requested action becomes jagged because the derivative term treats noise as rapid change.

The lab encodes a first-order linear plant, fixed setpoint, bounded actuator, deterministic pseudo-random measurement noise and a conditional integrator. A stable, low-error run permits a narrow claim: the chosen parameters work for this plant family and tested perturbation. An unstable or sluggish run means the loop needs retuning, slower ambition, better observation, more actuator authority or a different architecture. It cannot establish safety under unmodelled modes, correctness of the target, ethical acceptability or any property of consciousness.

Core simulator and typed loop contract

The page runs this logic directly. The snippet exposes the assumptions hidden by the chart.

JavaScript
function stepLoop(state, cfg, measuredY, delayedU, disturbance, dt) {
  const error = cfg.setpoint - measuredY;
  const derivative = (error - state.previousError) / dt;
  const requested = cfg.kp * error + cfg.ki * state.integral + cfg.kd * derivative;
  const realised = Math.max(-cfg.limit, Math.min(cfg.limit, requested));

  const canIntegrate = !cfg.antiWindup ||
    requested === realised ||
    (requested > cfg.limit && error < 0) ||
    (requested < -cfg.limit && error > 0);

  if (canIntegrate) state.integral += error * dt;
  state.y += dt * ((-state.y + delayedU + disturbance) / cfg.tau);
  state.previousError = error;
  return { requested, realised, error };
}
TypeScript
type LoopContract = {
  reference: { variable: string; unit: string; owner: string; admissibleRange: [number, number] };
  observation: { sensor: string; samplePeriodMs: number; delayBudgetMs: number; freshnessMs: number; noiseModel: string };
  plant: { modelVersion: string; dominantTimeScalesMs: number[]; uncertainty: string[] };
  actuator: { command: string; limits: [number, number]; rateLimitPerSecond: number; realisedStateReadback: string };
  controller: { law: "P" | "PI" | "PID" | "state-feedback" | "other"; persistentState: string[]; antiWindup: boolean };
  disturbances: { name: string; injection: string; acceptance: string }[];
  failures: { sensorFreeze: boolean; delaySweepMs: number[]; saturationTest: boolean; recoveryTest: boolean };
};

Test the loop, not the happy path

Change one causal property at a time: inject a step disturbance; sweep delay; freeze or bias the sensor; saturate the actuator; alter the plant time constant; add high-frequency noise; reset controller state. Each intervention targets rejection, stale observation, calibration, windup, uncertainty, noise sensitivity or hidden recovery state.

Each result needs a manifest: plant and controller versions, parameters, sensor and actuator models, disturbance trace, requested and realised actions, resets and outcome metrics. Without it, the test belongs to an unknown system.

Decision rule

Do not increase gain before locating the bottleneck

If error persists, ask in order: Is the reference feasible? Is the regulated variable measured faithfully? Does the actuator have sufficient authority? Is the delay compatible with the desired response speed? Is controller memory tied to realised action? Only then ask whether gain should rise. More aggressive correction is the wrong repair for missing authority, stale observation or a bad target.

Dominant condition
Primary move
Tempting mistake
Revealing test
Stop condition
Slow persistent disturbance
Add integral action or feedforward with anti-windup.
Raise proportional gain until margins disappear.
Step-load injection and recovery.
Actuator remains saturated or bias persists.
Long sensing or actuation delay
Slow the loop, predict carefully or redesign the path.
React more strongly to stale error.
Delay sweep at fixed gain.
Oscillation grows or phase margin is inadequate.
Noisy measurement
Improve sensing, filtering or state estimation.
Use raw derivative action.
Noise-band injection.
Actuator chatter or noise amplification.
Infeasible reference or weak actuator
Change target, add authority or degrade explicitly.
Let integral state accumulate.
Saturation and constraint-release test.
Requested action diverges from realised action.
Hidden state or proxy metric
Change observation model or add a justified estimator.
Tune against the dashboard harder.
Matched cases with same metric, different latent state.
Same observation requires opposite actions.
A decision instrument for loop mismatch.Begin with the dominant constraint, choose the causal repair and run the test that could disconfirm it. Colour is redundant with text labels and row structure. Practitioner decision matrix.

The strongest boundary: control can enforce the wrong world

Control theory assumes that some outcomes are preferable and that a measurable variable stands for them. It can analyse how reliably a loop keeps that variable near a reference. It cannot, by itself, justify the reference, measurement bridge or distribution of authority. A platform that maximises engagement, a workplace that minimises queue time or a body that maintains a physiological variable may all be stable while producing harms outside the regulated boundary.

This is not an objection from outside control. It follows from the same causal discipline. Unmeasured states are disturbances only if the model notices their consequences. People can adapt strategically to a metric, changing the plant. Controllers can create new incentives, which alter future observations. In social systems, the loop may contain reflective agents who infer the policy and respond to it. The plant is then partly made by the controller.

A rival explanation must also be considered when feedback appears successful. Improvement after deployment may come from feedforward knowledge, a favourable environment, operator intervention or spare actuator capacity rather than the feedback law. Disturbance interventions, ablations and controller substitution are needed to isolate the mechanism. Conversely, oscillation may arise from competing loops or changing goals, rather than only excessive gain.

Recovery supplies a final discriminating test. Interrupt the loop after an action is requested but before its outcome is known. On restart, can the system establish a consistent cut across reference, controller state, pending command, realised effect and observation? Replaying the command may duplicate an irreversible action; discarding it may leave the plant changed but controller state unchanged. A recoverable loop needs idempotency where possible, explicit unknown-outcome handling and readback through a path independent of the request. Stable operation before interruption does not prove safe resumption.

Open research hypothesis

Correction-reversal signatures for compound AI

In tool-using AI systems, repeated plan reversal after delayed tool results may form a measurable signature of loop mismatch. The smallest implementation would log reference, observation time, proposal, authorised action, realised effect and readback. The hypothesis strengthens if reversal rate rises predictably with injected delay at fixed task difficulty and falls after delay-aware control. It weakens if reversals track semantic uncertainty but not timing. A rival explanation is unstable prompting or changing goals. Do not apply the signature where actions are independent or where timestamps cannot establish causal order.

The evidence conversation
Chart · sequence
sequenceDiagram
  participant Q as Question
  participant M as Mechanism
  participant E as Evidence
  participant D as Decision
  Q->>M: The ferry that corrected itself into the pier
  M->>E: The indistinguishable crossings
  E-->>M: compare rival explanations
  E->>D: Design and govern the closed loop
  D-->>Q: revise scope or act
Question, mechanism, evidence and decision exchange the burdens developed in Feedback, control and cybernetics. Reading use: follow the relation, then return to the surrounding argument for evidence and limits.

Design and govern the closed loop

When a system misses a target, the default response is often to improve the component that produced the last command: tune the model, raise the gain, add a larger planner or collect more data. Control reasoning changes that decision. The failure may reside in the observation window, total delay, actuator limit, plant dynamics, controller memory, reference feasibility or interaction between several loops.

Design, evaluate and govern the closed loop as the system. Require a loop contract before tuning. Demand requested-versus-realised action readback. Test disturbances, delay, saturation, sensor faults and recovery. Report margins and boundary conditions, not only nominal tracking. Use feedforward when the disturbance can be measured early, feedback when outcome deviation carries necessary information and explicit safe modes when neither can act in time.

The practical consequence is simple. Do not ask whether a controller, model or human is “good”. Ask whether this configured loop keeps the right variable within an acceptable region under the disturbances, delays and constraints that actually occur. That is the point at which feedback becomes evidence rather than metaphor.

Glossary

Actuator
The mechanism that converts a command into a physical or computational effect.
Controller
The rule and state that convert observations and references into requested action.
Disturbance
An influence on the plant that is not the controller’s intended action.
Feedback
Outcome-dependent action in which measured consequences affect later commands.
Gain
How strongly an action changes in response to a signal, often error.
Observability
Whether relevant internal state can be inferred from available measurements over time.
Plant
The process being acted on, including dynamics that connect command to outcome.
Robustness
Retention of acceptable behaviour despite bounded uncertainty, variation or disturbance.
Saturation
A limit beyond which requested action cannot be realised.
Stability
The tendency of deviations to remain bounded or decay under stated conditions.

References

  1. Maxwell, J. C. “On Governors”. Proceedings of the Royal Society of London, 1868. Royal Society DOI.
  2. Nyquist, H. “Regeneration Theory”. Bell System Technical Journal, 1932. DOI.
  3. Black, H. S. “Stabilized Feedback Amplifiers”. Bell System Technical Journal, 1934. DOI.
  4. Wiener, N. Cybernetics: Or Control and Communication in the Animal and the Machine. MIT Press, 1948. Open MIT Press edition.
  5. Ashby, W. R. An Introduction to Cybernetics. Chapman & Hall, 1956. Digitised edition.
  6. Åström, K. J., and Murray, R. M. Feedback Systems: An Introduction for Scientists and Engineers. Princeton University Press, 2008. Caltech open text.
  7. Ziegler, J. G., and Nichols, N. B. “Optimum Settings for Automatic Controllers”. Transactions of the ASME, 1942. DOI.
  8. Conant, R. C., and Ashby, W. R. “Every Good Regulator of a System Must Be a Model of That System”. International Journal of Systems Science, 1970. DOI.
  9. Francis, B. A., and Wonham, W. M. “The Internal Model Principle of Control Theory”. Automatica, 1976. DOI.
  10. Åström, K. J., and Rundqwist, L. “Integrator Windup and How to Avoid It”. American Control Conference, 1989. DOI.
  11. Skogestad, S. “Simple Analytic Rules for Model Reduction and PID Controller Tuning”. Journal of Process Control, 2003. DOI.
  12. Doyle, J. C. “Guaranteed Margins for LQG Regulators”. IEEE Transactions on Automatic Control, 1978. DOI.
  13. Emami-Naeini, A., and de Roover, D. “Bode’s Sensitivity Integral Constraints: The Waterbed Effect Revisited”. 2019. arXiv.