y$(instance)Triangular Icon

Triangular

Generate triangular signal

This component extends from Signal

Usage

Triangular(start_time=0.0, offset=0.0, amplitude, frequency, period=1/frequency)

Parameters:

NameDescriptionUnitsDefault value
start_times0
offset0
amplitude
frequencyHz
periods1 / frequency

Connectors

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

Behavior

\[ \begin{align} y\left( t \right) &= ifelse\left( \mathtt{start\_time} < t, - \mathtt{amplitude} + 4 \mathtt{amplitude} \mathtt{frequency} \left| - \frac{1}{2} \mathtt{period} + \left|mod\left( - \frac{1}{4} \mathtt{period} - \mathtt{start\_time} + t, \mathtt{period} \right)\right|\right|, \mathtt{offset} \right) \end{align} \]

Source

# Generate triangular signal
component Triangular
  extends Signal
  parameter amplitude::Real
  parameter frequency::Frequency
  final parameter period::Period = 1/frequency
relations
  y = if start_time<time then 4*amplitude*frequency*abs(abs(mod(time-period/4-start_time, period))-period/2)-amplitude else offset
metadata {"JuliaSim": {"icons": {"default": "jsml://BlockComponents/Triangular.svg"}}}
end
Flattened Source
# Generate triangular signal
component Triangular
  y = RealOutput() [{
    "JuliaSim": {"placement": {"icon": {"x1": 950, "y1": 450, "x2": 1050, "y2": 550}}}
  }]
  parameter start_time::Time = 0.0
  parameter offset::Real = 0.0
  parameter amplitude::Real
  parameter frequency::Frequency
  final parameter period::Period = 1/frequency
relations
  y = if start_time

Test Cases

  • Examples
  • Experiments
  • Analyses