Skip to content
LIBRARY
UnitDifference.md

UnitDifference ​

A unit difference block that computes y[n] = u[n] - u[n-1].

Clock-agnostic.

Usage ​

DiscreteComponents.UnitDifference()

Parameters: ​

NameDescriptionUnitsDefault value
initialization–DiscreteCom...t(; y0=0.0)

Connectors ​

  • u - 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 ​

Behavior of this component cannot be rendered because it includes path variables.

Source ​

dyad
"""
A unit difference block that computes y[n] = u[n] - u[n-1].

Clock-agnostic.
"""
component UnitDifference@[input clk extends Discrete]
  "The input signal"
  u = RealInput@[clk]() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": -50, "y1": 450, "x2": 50, "y2": 550, "rot": 0}
      },
      "tags": []
    }
  }
  "The difference output signal"
  y = RealOutput@[clk]() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 960, "y1": 450, "x2": 1060, "y2": 550, "rot": 0}
      },
      "tags": []
    }
  }
  structural parameter initialization::InitialCondition = DiscreteComponents.InitialCondition.InitialOutput(y0 = 0.0)
relations
  y = u@clk - u@(clk-1)
  switch initialization
    case InitialOutput
      initial u@(clk-1) = u@clk - initialization.y0
    case SteadyState
      initial u@(clk-1) = u@clk
    case InitialState
      initial u@(clk-1) = initialization.x0
  end
metadata {
  "Dyad": {
    "icons": {"default": "dyad://DiscreteComponents/UnitDifference.svg"},
    "doc": {"behavior": false}
  }
}
end
Flattened Source
dyad
"""
A unit difference block that computes y[n] = u[n] - u[n-1].

Clock-agnostic.
"""
component UnitDifference
  "The input signal"
  u = RealInput@[clk]() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": -50, "y1": 450, "x2": 50, "y2": 550, "rot": 0}
      },
      "tags": []
    }
  }
  "The difference output signal"
  y = RealOutput@[clk]() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 960, "y1": 450, "x2": 1060, "y2": 550, "rot": 0}
      },
      "tags": []
    }
  }
  structural parameter initialization::InitialCondition = DiscreteComponents.InitialCondition.InitialOutput(y0 = 0.0)
relations
  y = u@clk - u@(clk-1)
  switch initialization
    case InitialOutput
      initial u@(clk-1) = u@clk - initialization.y0
    case SteadyState
      initial u@(clk-1) = u@clk
    case InitialState
      initial u@(clk-1) = initialization.x0
  end
metadata {
  "Dyad": {
    "icons": {"default": "dyad://DiscreteComponents/UnitDifference.svg"},
    "doc": {"behavior": false}
  }
}
end


Test Cases ​

No test cases defined.