Skip to content
Feedback.md

Feedback

Computes the difference between a reference input and a feedback input.

This block calculates the error signal in a feedback control system by subtracting the feedback input (u2) from the reference input (u1). The component is typically used at the beginning of a control system to determine the difference between a desired setpoint and the measured output being fed back.

This component extends from SI2SO

Usage

BlockComponents.Feedback()

Connectors

  • u1 - This connector represents a real signal as an input to a component (RealInput)

  • u2 - This connector represents a real signal as an input to a component (RealInput)

  • y - This connector represents a real signal as an output from a component (RealOutput)

Behavior

y(t)=u1(t)u2(t)

Source

dyad
# Computes the difference between a reference input and a feedback input.
#
# This block calculates the error signal in a feedback control system by subtracting the feedback
# input (`u2`) from the reference input (`u1`). The component is typically used at the beginning of a
# control system to determine the difference between a desired setpoint and the measured output
# being fed back.
component Feedback
  extends SI2SO
relations
  # Calculates output as the difference between the reference input and feedback input
  y = u1 - u2
metadata {
  "Dyad": {
    "labels": [{"label": "$(instance)", "x": 500, "y": 1100, "rot": 0}],
    "icons": {"default": "dyad://BlockComponents/Feedback.svg"}
  }
}
end
Flattened Source
dyad
# Computes the difference between a reference input and a feedback input.
#
# This block calculates the error signal in a feedback control system by subtracting the feedback
# input (`u2`) from the reference input (`u1`). The component is typically used at the beginning of a
# control system to determine the difference between a desired setpoint and the measured output
# being fed back.
component Feedback
  # First real-valued input signal
  u1 = RealInput() {
    "Dyad": {
      "placement": {
        "icon": {"iconName": "default", "x1": -50, "y1": 150, "x2": 50, "y2": 250, "rot": 0},
        "diagram": {"iconName": "default", "x1": -100, "y1": 150, "x2": 0, "y2": 250, "rot": 0}
      }
    }
  }
  # Second real-valued input signal
  u2 = RealInput() {
    "Dyad": {
      "placement": {
        "icon": {"iconName": "default", "x1": -100, "y1": 750, "x2": 0, "y2": 850, "rot": 0},
        "diagram": {"iconName": "default", "x1": -100, "y1": 750, "x2": 0, "y2": 850, "rot": 0}
      }
    }
  }
  # Real-valued output signal
  y = RealOutput() {
    "Dyad": {
      "placement": {
        "icon": {"iconName": "default", "x1": 1000, "y1": 450, "x2": 1100, "y2": 550, "rot": 0},
        "diagram": {"iconName": "default", "x1": 1000, "y1": 450, "x2": 1100, "y2": 550, "rot": 0}
      }
    }
  }
relations
  # Calculates output as the difference between the reference input and feedback input
  y = u1 - u2
metadata {
  "Dyad": {
    "labels": [{"label": "$(instance)", "x": 500, "y": 1100, "rot": 0}],
    "icons": {"default": "dyad://BlockComponents/Feedback.svg"}
  }
}
end


Test Cases

No test cases defined.