IntegratorFEwInitial IntegratorFEwInitial Icon

Examples.IntegratorFEwInitial

Usage

DiscreteComponents.Examples.IntegratorFEwInitial()

Parameters:

NameDescriptionUnitsDefault value
dt0.1

Connectors

  • u - This connector represents a real signal as an input to a component (RealInput)
  • ic - This connector represents a real signal as an input to a component (RealInput)
  • reset - 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)

Variables

NameDescriptionUnits
reset_value

Behavior

\[ \begin{equation} \left[ \begin{array}{c} \mathrm{connect}\left( ic(t), ic_{sampler_{+}u(t)} \right) \\ \mathrm{connect}\left( ic_{sampler_{+}y(t)}, clockpropagator_{+}u(t) \right) \\ \mathrm{connect}\left( reset(t), samplevalue_{+}u(t) \right) \\ \mathrm{connect}\left( samplevalue_{+}y(t), clockpropagator1_{+}u(t) \right) \\ \mathrm{connect}\left( ic_{sampler_{+}y(t)}, clockpropagator2_{+}y(t) \right) \\ \mathrm{connect}\left( clockpropagator2_{+}u(t), clockpropagator1_{+}y(t) \right) \\ \mathrm{connect}\left( y(t), unitdelay_{+}u(t) \right) \\ \mathrm{connect}\left( unitdelay_{+}y(t), add_{+}u1(t) \right) \\ \mathrm{connect}\left( sampletimeblock_{+}y(t), multiply_{+}u2(t) \right) \\ \mathrm{connect}\left( multiply_{+}y(t), add_{+}u2(t) \right) \\ \mathrm{connect}\left( ic_{sampler_{+}y(t)}, resetvaluetracker_{+}initialcondition(t) \right) \\ \mathrm{connect}\left( lastvalue_{+}y(t), periodicclockprovoker_{+}y(t) \right) \\ \mathrm{connect}\left( u(t), lastvalue_{+}u(t) \right) \\ \mathrm{connect}\left( lastvalue_{+}y(t), multiply_{+}u1(t) \right) \\ \mathrm{connect}\left( lastvalue_{+}y(t), clockpropagator_{+}y(t) \right) \\ \mathrm{connect}\left( resetvaluetracker_{+}resetvalue(t), switch1_{+}u1(t) \right) \\ \mathrm{connect}\left( samplevalue_{+}y(t), lessthan_{+}u1(t) \right) \\ \mathrm{connect}\left( constant1_{+}y(t), lessthan_{+}u2(t) \right) \\ \mathrm{connect}\left( lessthan_{+}y(t), switch1_{+}signal(t) \right) \\ \mathrm{connect}\left( switch1_{+}y(t), y(t) \right) \\ \mathrm{connect}\left( add_{+}y(t), switch1_{+}u2(t) \right) \\ \mathtt{ic\_sampler.y}\left( t \right) = Sample(ModelingToolkit.InferredClock.var"typeof(InferredClock)"(ModelingToolkit.InferredClock.var"##Storage#InferredDiscrete"(0)))\left( \mathtt{ic\_sampler.u}\left( t \right) \right) \\ \frac{\mathrm{d} \mathtt{dummy.dummy}\left( t \right)}{\mathrm{d}t} = 0 \\ \mathtt{clockpropagator.dummy}\left( t \right) = ifelse\left( \mathtt{clockpropagator.u}\left( t \right) < \mathtt{clockpropagator.y}\left( t \right), 0.1, 0.1 \right) \\ \mathtt{samplevalue.y}\left( t \right) = Sample(ModelingToolkit.InferredClock.var"typeof(InferredClock)"(ModelingToolkit.InferredClock.var"##Storage#InferredDiscrete"(0)))\left( \mathtt{samplevalue.u}\left( t \right) \right) \\ \mathtt{clockpropagator1.dummy}\left( t \right) = ifelse\left( \mathtt{clockpropagator1.u}\left( t \right) < \mathtt{clockpropagator1.y}\left( t \right), 0.1, 0.1 \right) \\ \mathtt{clockpropagator2.dummy}\left( t \right) = ifelse\left( \mathtt{clockpropagator2.u}\left( t \right) < \mathtt{clockpropagator2.y}\left( t \right), 0.1, 0.1 \right) \\ \mathtt{unitdelay.y}\left( t \right) = Shift(t, -1)\left( \mathtt{unitdelay.u}\left( t \right) \right) \\ \frac{\mathrm{d} \mathtt{unitdelay.dummy.dummy}\left( t \right)}{\mathrm{d}t} = 0 \\ \mathtt{add.y}\left( t \right) = \mathtt{add.k1} \mathtt{add.u1}\left( t \right) + \mathtt{add.k2} \mathtt{add.u2}\left( t \right) \\ \mathtt{multiply.y}\left( t \right) = \mathtt{multiply.u2}\left( t \right) \mathtt{multiply.u1}\left( t \right) \\ \mathtt{sampletimeblock.y}\left( t \right) = ModelingToolkit.SampleTime \\ \mathtt{resetvaluetracker.resetvalue}\left( t \right) = ifelse\left( isnan\_wrapper\left( Shift(t, -1)\left( \mathtt{resetvaluetracker.resetvalue}\left( t \right) \right) \right), \mathtt{resetvaluetracker.initialcondition}\left( t \right), Shift(t, -1)\left( \mathtt{resetvaluetracker.resetvalue}\left( t \right) \right) \right) \\ \mathtt{switch1.y}\left( t \right) = ifelse\left( \mathtt{switch1.signal}\left( t \right), \mathtt{switch1.u1}\left( t \right), \mathtt{switch1.u2}\left( t \right) \right) \\ \mathtt{lastvalue.y}\left( t \right) = SynchToolkit.LastValue()\left( \mathtt{lastvalue.u}\left( t \right) \right) \\ \frac{\mathrm{d} \mathtt{periodicclockprovoker.dummy.dummy}\left( t \right)}{\mathrm{d}t} = 0 \\ \mathtt{lessthan.y}\left( t \right) = \mathtt{lessthan.u1}\left( t \right) < \mathtt{lessthan.u2}\left( t \right) \\ \mathtt{constant1.y}\left( t \right) = \mathtt{constant1.k} \\ \end{array} \right] \end{equation} \]

Source

component IntegratorFEwInitial@[output clk]
  u = RealInput() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": -50, "y1": 450, "x2": 50, "y2": 550, "rot": 0}
      },
      "tags": []
    }
  }
  ic = RealInput() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": -50, "y1": 200, "x2": 50, "y2": 300, "rot": 0}
      },
      "tags": []
    }
  }
  ic_sampler = DiscreteComponents.Sampler() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 120, "y1": 200, "x2": 220, "y2": 300, "rot": 0}
      },
      "tags": []
    }
  }
  reset = RealInput() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": -50, "y1": 20, "x2": 50, "y2": 120, "rot": 0}
      },
      "tags": []
    }
  }
  y = RealOutput() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 1000, "y1": 440, "x2": 1100, "y2": 540, "rot": 0}
      },
      "tags": []
    }
  }
  dummy = DiscreteComponents.DummyDynamics() {
    "Dyad": {
      "placement": {
        "diagram": {
          "iconName": "default",
          "x1": -250,
          "y1": -210,
          "x2": -150,
          "y2": -110,
          "rot": 0
        }
      },
      "tags": []
    }
  }
  clockpropagator = DiscreteComponents.ClockPropagator() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 420, "y1": 310, "x2": 520, "y2": 410, "rot": 0}
      },
      "tags": []
    }
  }
  samplevalue = DiscreteComponents.Sampler() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 120, "y1": 20, "x2": 220, "y2": 120, "rot": 0}
      },
      "tags": []
    }
  }
  clockpropagator1 = DiscreteComponents.ClockPropagator() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 420, "y1": -80, "x2": 520, "y2": 20, "rot": 0}
      },
      "tags": []
    }
  }
  clockpropagator2 = DiscreteComponents.ClockPropagator@[clk = clk]() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 420, "y1": 110, "x2": 520, "y2": 210, "rot": 0}
      },
      "tags": []
    }
  }
  unitdelay = DiscreteComponents.UnitDelay() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 850, "y1": 300, "x2": 750, "y2": 400, "rot": 0}
      },
      "tags": []
    }
  }
  add = BlockComponents.Add() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 670, "y1": 450, "x2": 770, "y2": 550, "rot": 0}
      },
      "tags": []
    }
  }
  multiply = BlockComponents.Product() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 550, "y1": 550, "x2": 650, "y2": 650, "rot": 0}
      },
      "tags": []
    }
  }
  sampletimeblock = DiscreteComponents.SampleTimeSource() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 410, "y1": 620, "x2": 510, "y2": 720, "rot": 0}
      },
      "tags": []
    }
  }
  resetvaluetracker = DiscreteComponents.Examples.ResetValueTracker() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 590, "y1": 200, "x2": 690, "y2": 300, "rot": 0}
      },
      "tags": []
    }
  }
  switch1 = DiscreteComponents.Examples.Switch() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 870, "y1": 430, "x2": 970, "y2": 530, "rot": 0}
      },
      "tags": []
    }
  }
  lastvalue = DiscreteComponents.LastValue() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 120, "y1": 450, "x2": 220, "y2": 550, "rot": 0}
      },
      "tags": []
    }
  }
  periodicclockprovoker = DiscreteComponents.PeriodicClock(dt = 0.1) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 260, "y1": 600, "x2": 360, "y2": 700, "rot": 0}
      },
      "tags": []
    }
  }
  lessthan = DiscreteComponents.Examples.LessThan() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 700, "y1": 30, "x2": 800, "y2": 130, "rot": 0}
      },
      "tags": []
    }
  }
  constant1 = BlockComponents.Constant(k = 0) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 540, "y1": 80, "x2": 640, "y2": 180, "rot": 0}
      },
      "tags": []
    }
  }
  structural dt::Real = 0.1
  variable reset_value::Real = NaN
relations
  """
    y@(clk) = ifelse(0.0 < reset, sample(reset_value, clk), y@(clk-1) + u(clk) * dt)
    reset_value@(clk) = ifelse(
      isnan_wrapper(sample(reset_value, clk)@(clk-1)),
      ic@(clk),
      reset_value@(clk-1)
    )
  """
  initial u@(clk-1) = 0.0
  initial reset_value@(clk-1) = 0.0
  initial y@(clk-1) = 0.0
  connect(ic, ic_sampler.u) {"Dyad": {"renderStyle": "standard", "edges": [{"S": 1, "E": 2, "M": []}]}}
  connect(ic_sampler.y, clockpropagator.u) {
    "Dyad": {
      "edges": [
        {
          "S": 1,
          "M": [
            {"x": 260, "y": 250},
            {"x": 260, "y": 320},
            {"x": 380, "y": 320},
            {"x": 380, "y": 325}
          ],
          "E": 2
        }
      ],
      "renderStyle": "standard"
    }
  }
  connect(reset, samplevalue.u) {"Dyad": {"renderStyle": "standard", "edges": [{"S": 1, "E": 2, "M": []}]}}
  connect(samplevalue.y, clockpropagator1.u) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 290, "y": 70}, {"x": 290, "y": -60}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(ic_sampler.y, clockpropagator2.y) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 370.5, "y": 250}, {"x": 370.5, "y": 183}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(clockpropagator2.u, clockpropagator1.y) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 390, "y": 130}, {"x": 390, "y": -7}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(unitdelay.u, y) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 1050, "y": 350}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(unitdelay.y, add.u1) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 640, "y": 350}, {"x": 640, "y": 470}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(sampletimeblock.y, multiply.u2) {
    "Dyad": {
      "edges": [
        {
          "S": 1,
          "M": [
            {"x": 543.5, "y": 670},
            {"x": 543.5, "y": 660},
            {"x": 540, "y": 660},
            {"x": 540, "y": 623}
          ],
          "E": 2
        }
      ],
      "renderStyle": "standard"
    }
  }
  connect(multiply.y, add.u2) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 660, "y": 600}, {"x": 660, "y": 530}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(ic_sampler.y, resetvaluetracker.initialcondition) {"Dyad": {"renderStyle": "standard", "edges": [{"S": 1, "E": 2, "M": []}]}}
  connect(lastvalue.y, periodicclockprovoker.y) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 240, "y": 500}, {"x": 240, "y": 650}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(u, lastvalue.u) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "renderStyle": "standard"}}
  connect(lastvalue.y, multiply.u1) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 431, "y": 500}, {"x": 431, "y": 575}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(clockpropagator.y, lastvalue.y) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 330.5, "y": 395}, {"x": 330.5, "y": 500}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(resetvaluetracker.resetvalue, switch1.u1) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 870, "y": 250}, {"x": 870, "y": 454}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(samplevalue.y, lessthan.u1) {
    "Dyad": {
      "renderStyle": "standard",
      "edges": [{"S": 1, "M": [{"x": 460.5, "y": 70}, {"x": 460.5, "y": 56}], "E": 2}]
    }
  }
  connect(constant1.y, lessthan.u2) {
    "Dyad": {
      "renderStyle": "standard",
      "edges": [{"S": 1, "M": [{"x": 673, "y": 130}, {"x": 673, "y": 107}], "E": 2}]
    }
  }
  connect(lessthan.y, switch1.signal) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 920, "y": 80}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(switch1.y, y) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 1050, "y": 480}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(add.y, switch1.u2) {
    "Dyad": {
      "renderStyle": "standard",
      "edges": [{"S": 1, "M": [{"x": 822.5, "y": 500}, {"x": 822.5, "y": 504}], "E": 2}]
    }
  }
end
Flattened Source
component IntegratorFEwInitial
  u = RealInput() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": -50, "y1": 450, "x2": 50, "y2": 550, "rot": 0}
      },
      "tags": []
    }
  }
  ic = RealInput() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": -50, "y1": 200, "x2": 50, "y2": 300, "rot": 0}
      },
      "tags": []
    }
  }
  ic_sampler = DiscreteComponents.Sampler() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 120, "y1": 200, "x2": 220, "y2": 300, "rot": 0}
      },
      "tags": []
    }
  }
  reset = RealInput() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": -50, "y1": 20, "x2": 50, "y2": 120, "rot": 0}
      },
      "tags": []
    }
  }
  y = RealOutput() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 1000, "y1": 440, "x2": 1100, "y2": 540, "rot": 0}
      },
      "tags": []
    }
  }
  dummy = DiscreteComponents.DummyDynamics() {
    "Dyad": {
      "placement": {
        "diagram": {
          "iconName": "default",
          "x1": -250,
          "y1": -210,
          "x2": -150,
          "y2": -110,
          "rot": 0
        }
      },
      "tags": []
    }
  }
  clockpropagator = DiscreteComponents.ClockPropagator() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 420, "y1": 310, "x2": 520, "y2": 410, "rot": 0}
      },
      "tags": []
    }
  }
  samplevalue = DiscreteComponents.Sampler() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 120, "y1": 20, "x2": 220, "y2": 120, "rot": 0}
      },
      "tags": []
    }
  }
  clockpropagator1 = DiscreteComponents.ClockPropagator() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 420, "y1": -80, "x2": 520, "y2": 20, "rot": 0}
      },
      "tags": []
    }
  }
  clockpropagator2 = DiscreteComponents.ClockPropagator@[clk = clk]() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 420, "y1": 110, "x2": 520, "y2": 210, "rot": 0}
      },
      "tags": []
    }
  }
  unitdelay = DiscreteComponents.UnitDelay() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 850, "y1": 300, "x2": 750, "y2": 400, "rot": 0}
      },
      "tags": []
    }
  }
  add = BlockComponents.Add() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 670, "y1": 450, "x2": 770, "y2": 550, "rot": 0}
      },
      "tags": []
    }
  }
  multiply = BlockComponents.Product() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 550, "y1": 550, "x2": 650, "y2": 650, "rot": 0}
      },
      "tags": []
    }
  }
  sampletimeblock = DiscreteComponents.SampleTimeSource() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 410, "y1": 620, "x2": 510, "y2": 720, "rot": 0}
      },
      "tags": []
    }
  }
  resetvaluetracker = DiscreteComponents.Examples.ResetValueTracker() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 590, "y1": 200, "x2": 690, "y2": 300, "rot": 0}
      },
      "tags": []
    }
  }
  switch1 = DiscreteComponents.Examples.Switch() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 870, "y1": 430, "x2": 970, "y2": 530, "rot": 0}
      },
      "tags": []
    }
  }
  lastvalue = DiscreteComponents.LastValue() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 120, "y1": 450, "x2": 220, "y2": 550, "rot": 0}
      },
      "tags": []
    }
  }
  periodicclockprovoker = DiscreteComponents.PeriodicClock(dt = 0.1) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 260, "y1": 600, "x2": 360, "y2": 700, "rot": 0}
      },
      "tags": []
    }
  }
  lessthan = DiscreteComponents.Examples.LessThan() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 700, "y1": 30, "x2": 800, "y2": 130, "rot": 0}
      },
      "tags": []
    }
  }
  constant1 = BlockComponents.Constant(k = 0) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 540, "y1": 80, "x2": 640, "y2": 180, "rot": 0}
      },
      "tags": []
    }
  }
  structural dt::Real = 0.1
  variable reset_value::Real = NaN
relations
  """
    y@(clk) = ifelse(0.0 < reset, sample(reset_value, clk), y@(clk-1) + u(clk) * dt)
    reset_value@(clk) = ifelse(
      isnan_wrapper(sample(reset_value, clk)@(clk-1)),
      ic@(clk),
      reset_value@(clk-1)
    )
  """
  initial u@(clk-1) = 0.0
  initial reset_value@(clk-1) = 0.0
  initial y@(clk-1) = 0.0
  connect(ic, ic_sampler.u) {"Dyad": {"renderStyle": "standard", "edges": [{"S": 1, "E": 2, "M": []}]}}
  connect(ic_sampler.y, clockpropagator.u) {
    "Dyad": {
      "edges": [
        {
          "S": 1,
          "M": [
            {"x": 260, "y": 250},
            {"x": 260, "y": 320},
            {"x": 380, "y": 320},
            {"x": 380, "y": 325}
          ],
          "E": 2
        }
      ],
      "renderStyle": "standard"
    }
  }
  connect(reset, samplevalue.u) {"Dyad": {"renderStyle": "standard", "edges": [{"S": 1, "E": 2, "M": []}]}}
  connect(samplevalue.y, clockpropagator1.u) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 290, "y": 70}, {"x": 290, "y": -60}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(ic_sampler.y, clockpropagator2.y) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 370.5, "y": 250}, {"x": 370.5, "y": 183}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(clockpropagator2.u, clockpropagator1.y) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 390, "y": 130}, {"x": 390, "y": -7}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(unitdelay.u, y) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 1050, "y": 350}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(unitdelay.y, add.u1) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 640, "y": 350}, {"x": 640, "y": 470}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(sampletimeblock.y, multiply.u2) {
    "Dyad": {
      "edges": [
        {
          "S": 1,
          "M": [
            {"x": 543.5, "y": 670},
            {"x": 543.5, "y": 660},
            {"x": 540, "y": 660},
            {"x": 540, "y": 623}
          ],
          "E": 2
        }
      ],
      "renderStyle": "standard"
    }
  }
  connect(multiply.y, add.u2) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 660, "y": 600}, {"x": 660, "y": 530}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(ic_sampler.y, resetvaluetracker.initialcondition) {"Dyad": {"renderStyle": "standard", "edges": [{"S": 1, "E": 2, "M": []}]}}
  connect(lastvalue.y, periodicclockprovoker.y) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 240, "y": 500}, {"x": 240, "y": 650}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(u, lastvalue.u) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "renderStyle": "standard"}}
  connect(lastvalue.y, multiply.u1) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 431, "y": 500}, {"x": 431, "y": 575}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(clockpropagator.y, lastvalue.y) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 330.5, "y": 395}, {"x": 330.5, "y": 500}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(resetvaluetracker.resetvalue, switch1.u1) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 870, "y": 250}, {"x": 870, "y": 454}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(samplevalue.y, lessthan.u1) {
    "Dyad": {
      "renderStyle": "standard",
      "edges": [{"S": 1, "M": [{"x": 460.5, "y": 70}, {"x": 460.5, "y": 56}], "E": 2}]
    }
  }
  connect(constant1.y, lessthan.u2) {
    "Dyad": {
      "renderStyle": "standard",
      "edges": [{"S": 1, "M": [{"x": 673, "y": 130}, {"x": 673, "y": 107}], "E": 2}]
    }
  }
  connect(lessthan.y, switch1.signal) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 920, "y": 80}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(switch1.y, y) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 1050, "y": 480}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(add.y, switch1.u2) {
    "Dyad": {
      "renderStyle": "standard",
      "edges": [{"S": 1, "M": [{"x": 822.5, "y": 500}, {"x": 822.5, "y": 504}], "E": 2}]
    }
  }
metadata {}
end


Test Cases

No test cases defined.

  • Examples
  • Experiments
  • Analyses