Skip to content

Integral feedback and perfect adaptation

13 fully proved

Integral Feedback

StructureSingle-input single-output linear time-invariant system#✓fully proved

A single-input single-output linear time-invariant system ẋ = A x + u b, y = c ⬝ x + d u with state space n → ℝ.

structure LinearSystem (n : Type*) where
  /-- The state matrix. -/
  A : Matrix n n ℝ
  /-- The input vector. -/
  b : n → ℝ
  /-- The output functional. -/
  c : n → ℝ
  /-- The direct feedthrough from input to output. -/
  d : ℝ
Used by 11

Linear System

DefinitionVector field of a linear time-invariant system#✓fully proved

The vector field A x + u b at state x and input u.

def field (x : n → ℝ) (u : ℝ) : n → ℝ :=
  S.A *ᵥ x + u • S.b
Uses 1 · Used by 7

DefinitionOutput of a linear time-invariant system#✓fully proved

The output c ⬝ x + d u, measured from its adapted value.

def output (x : n → ℝ) (u : ℝ) : ℝ :=
  S.c ⬝ᵥ x + S.d * u
Uses 1 · Used by 7

DefinitionPerfect adaptation#✓fully proved

For every constant input u, the output vanishes at every equilibrium.

def HasPerfectAdaptation : Prop :=
  ∀ (u : ℝ) (x : n → ℝ), S.field x u = 0 → S.output x u = 0
Uses 3 · Used by 3

DefinitionIntegral feedback#✓fully proved

A linear functional z = k ⬝ x of the state integrates the output, ż = k ⬝ (A x + u b) = y, for every state and input.

def HasIntegralFeedback : Prop :=
  ∃ k : n → ℝ, ∀ (x : n → ℝ) (u : ℝ), k ⬝ᵥ S.field x u = S.output x u
Uses 3 · Used by 2

DefinitionSteady-state (DC) gain of a linear system#✓fully proved

The steady-state (DC) gain d - c ⬝ A⁻¹ b; for nonsingular A the output at the equilibrium for input u is dcGain * u.

noncomputable def dcGain [DecidableEq n] : ℝ :=
  S.d - S.c ⬝ᵥ (S.A⁻¹ *ᵥ S.b)
Uses 1 · Used by 3

TheoremIntegral feedback implies perfect adaptation#✓fully proved

Integral feedback implies perfect adaptation.

theorem hasPerfectAdaptation_of_hasIntegralFeedback (h : S.HasIntegralFeedback) :
    S.HasPerfectAdaptation
Uses 5 · Used by 1

TheoremUnique equilibrium of a nonsingular linear system#✓fully proved

For nonsingular A, the unique equilibrium for input u is x = -u • A⁻¹ b.

theorem field_eq_zero_iff [DecidableEq n] (hA : IsUnit S.A.det) (x : n → ℝ) (u : ℝ) :
    S.field x u = 0 ↔ x = -(u • (S.A⁻¹ *ᵥ S.b))
Uses 2 · Used by 1

TheoremOutput at equilibrium equals DC gain times input#✓fully proved

For nonsingular A, the output at the equilibrium for input u is dcGain * u.

theorem output_equilibrium [DecidableEq n] (u : ℝ) :
    S.output (-(u • (S.A⁻¹ *ᵥ S.b))) u = S.dcGain * u
Uses 3 · Used by 1

TheoremPerfect adaptation iff the DC gain vanishes#✓fully proved

For nonsingular A, perfect adaptation holds iff the steady-state gain vanishes.

theorem hasPerfectAdaptation_iff_dcGain_eq_zero [DecidableEq n] (hA : IsUnit S.A.det) :
    S.HasPerfectAdaptation ↔ S.dcGain = 0
Uses 7 · Used by 1

TheoremIntegral feedback is necessary#✓fully proved

Integral feedback is necessary (linear systems with nonsingular A): perfect adaptation holds iff some linear functional of the state integrates the output; one such functional is k = c A⁻¹.

theorem hasIntegralFeedback_iff_hasPerfectAdaptation [DecidableEq n] (hA : IsUnit S.A.det) :
    S.HasIntegralFeedback ↔ S.HasPerfectAdaptation
Uses 8

TheoremIntegral-feedback functional is the time integral of the output#✓fully proved

Along a trajectory ẋ(t) = A x(t) + u(t) b, the functional k ⬝ x(t) of an integral-feedback system has derivative y(t) = c ⬝ x(t) + d u(t): it is the time integral of the output.

theorem hasDerivAt_integral {k : n → ℝ} (hk : ∀ x u, k ⬝ᵥ S.field x u = S.output x u)
    {x : ℝ → n → ℝ} {u : ℝ → ℝ} {t : ℝ} (hx : HasDerivAt x (S.field (x t) (u t)) t) :
    HasDerivAt (fun s ↦ k ⬝ᵥ x s) (S.output (x t) (u t)) t
Uses 3

Integral Feedback

TheoremIntegral feedback gives robust perfect adaptation#✓fully proved

Integral feedback gives robust perfect adaptation (nonlinear form). Let F p be the vector field and y p the output of a system with parameters p, and let z be a differentiable state function with derivative z' x satisfying z' x (F p x) = y p x for all p, x (so ż = y along every trajectory, for every parameter). Then the output vanishes at every equilibrium of every F p.

theorem output_eq_zero_of_integral_feedback {P E : Type*} [NormedAddCommGroup E]
    [NormedSpace ℝ E] (F : P → E → E) (y : P → E → ℝ) (z : E → ℝ) (z' : E → E →L[ℝ] ℝ)
    (h : ∀ p x, z' x (F p x) = y p x) (_hz : ∀ x, HasFDerivAt z (z' x) x)
    {p : P} {x : E} (hx : F p x = 0) : y p x = 0

The dependency explorer needs JavaScript and its graph data.

Download the complete graph data.