Skip to content
Product.md

Product

Multiplies two input signals and outputs their product.

The Product component multiplies two input signals, producing a single output that is the result of u1*u2. This is a fundamental mathematical operation used in many control and signal processing applications.

This component extends from SI2SO

Usage

BlockComponents.Product()

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
# Multiplies two input signals and outputs their product.
#
# The Product component multiplies two input signals, producing a single output
# that is the result of u1*u2. This is a fundamental mathematical operation used in many control and signal
# processing applications.
component Product
  extends SI2SO
relations
  # Calculates the output as the product of the two input signals
  y = u1 * u2
metadata {
  "Dyad": {
    "labels": [{"label": "$(instance)", "x": 500, "y": 1100, "rot": 0}],
    "icons": {"default": "dyad://BlockComponents/Product.svg"}
  }
}
end
Flattened Source
dyad
# Multiplies two input signals and outputs their product.
#
# The Product component multiplies two input signals, producing a single output
# that is the result of u1*u2. This is a fundamental mathematical operation used in many control and signal
# processing applications.
component Product
  # 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 the output as the product of the two input signals
  y = u1 * u2
metadata {
  "Dyad": {
    "labels": [{"label": "$(instance)", "x": 500, "y": 1100, "rot": 0}],
    "icons": {"default": "dyad://BlockComponents/Product.svg"}
  }
}
end


Test Cases

No test cases defined.