ZeroOrderHold ZeroOrderHold Icon

DiscretePrimitives.ZeroOrderHold

ZeroOrderHold(; name, initial_condition=0.0, _...)

A zero-order hold component that holds the sampled value constant between samples.

Arguments

  • name: Component name
  • initial_condition: Initial held value (default: 0.0)

Variables

  • u(t): Discrete-time input signal
  • y(t): Continuous-time output signal (held constant between samples)

Description

Converts a discrete-time signal to continuous-time by holding each sampled value constant until the next sample arrives.

Usage

PrimitiveComponents.DiscretePrimitives.ZeroOrderHold(initial_condition=0)

Parameters:

NameDescriptionUnitsDefault value
initial_condition0

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

"""
    ZeroOrderHold(; name, initial_condition=0.0, _...)

A zero-order hold component that holds the sampled value constant between samples.

# Arguments
- `name`: Component name
- `initial_condition`: Initial held value (default: 0.0)

# Variables
- `u(t)`: Discrete-time input signal
- `y(t)`: Continuous-time output signal (held constant between samples)

# Description
Converts a discrete-time signal to continuous-time by holding each sampled value
constant until the next sample arrives.
"""
external component ZeroOrderHold@[input clk]
  u = RealInput@[clk]() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 0, "y1": 450, "x2": 100, "y2": 550, "rot": 0}
      },
      "tags": []
    }
  }
  y = RealOutput() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 900, "y1": 450, "x2": 1000, "y2": 550, "rot": 0}
      },
      "tags": []
    }
  }
  parameter initial_condition::Real = 0
relations
metadata {
  "Dyad": {
    "labels": [{"label": "$(instance)", "x": 500, "y": 1100, "rot": 0}],
    "icons": {"default": "dyad://PrimitiveComponents/ZOH.svg"},
    "doc": {"behavior": false}
  }
}
end
Flattened Source
"""
    ZeroOrderHold(; name, initial_condition=0.0, _...)

A zero-order hold component that holds the sampled value constant between samples.

# Arguments
- `name`: Component name
- `initial_condition`: Initial held value (default: 0.0)

# Variables
- `u(t)`: Discrete-time input signal
- `y(t)`: Continuous-time output signal (held constant between samples)

# Description
Converts a discrete-time signal to continuous-time by holding each sampled value
constant until the next sample arrives.
"""
external component ZeroOrderHold
  u = RealInput@[clk]() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 0, "y1": 450, "x2": 100, "y2": 550, "rot": 0}
      },
      "tags": []
    }
  }
  y = RealOutput() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 900, "y1": 450, "x2": 1000, "y2": 550, "rot": 0}
      },
      "tags": []
    }
  }
  parameter initial_condition::Real = 0
relations
metadata {
  "Dyad": {
    "labels": [{"label": "$(instance)", "x": 500, "y": 1100, "rot": 0}],
    "icons": {"default": "dyad://PrimitiveComponents/ZOH.svg"},
    "doc": {"behavior": false}
  }
}
end


Test Cases

No test cases defined.

  • Examples
  • Experiments
  • Analyses