ABSModelDiscrete ABSModelDiscrete Icon

Examples.ABSModelDiscrete

Usage

PrimitiveComponents.Examples.ABSModelDiscrete(mass=75, g_acc=9.81, R=1.25, v0=70)

Parameters:

NameDescriptionUnitsDefault value
masskg75
g_accm/s29.81
Rm1.25
v0m/s70

Connectors

  • TrueOmega - This connector represents a real signal as an output from a component (RealOutput)
  • NoSlipOmega - 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

component ABSModelDiscrete
  wheel_slip_des = BlockComponents.Constant(k = 0.2) {
    "Dyad": {
      "placement": {
        "icon": {"iconName": "default", "x1": -40, "y1": 250, "x2": 0, "y2": 290, "rot": 0},
        "diagram": {"iconName": "default", "x1": 745, "y1": 71, "x2": 785, "y2": 111, "rot": 0}
      }
    }
  }
  sub1 = BlockComponents.Add(k1 = 1, k2 = -1) {
    "Dyad": {
      "placement": {
        "diagram": {
          "iconName": "default",
          "x1": 821.6666666666666,
          "y1": 75,
          "x2": 901.6666666666666,
          "y2": 155,
          "rot": 0
        }
      }
    }
  }
  binaryC = BinaryController() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 1090, "y1": 150, "x2": 1200, "y2": 260, "rot": 0}
      },
      "tags": []
    }
  }
  mu_slip = MuVsSlipLookup() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 690, "y1": 300, "x2": 800, "y2": 400, "rot": 0}
      },
      "tags": []
    }
  }
  normal_force = BlockComponents.Gain(k = mass * g_acc / 4) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": -270, "y1": 300, "x2": -170, "y2": 400, "rot": 0}
      },
      "tags": []
    }
  }
  wheel_radius = BlockComponents.Gain(k = R) {
    "Dyad": {
      "placement": {
        "diagram": {
          "iconName": "default",
          "x1": 815,
          "y1": 581.5,
          "x2": 915,
          "y2": 681.5,
          "rot": 0
        }
      }
    }
  }
  gain2 = BlockComponents.Gain(k = -1.0 / mass) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": -20, "y1": 300, "x2": 80, "y2": 400, "rot": 0}
      },
      "tags": []
    }
  }
  limiter1 = BlockComponents.Limiter(y_max = 1000, y_min = 0) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 380, "y1": 480, "x2": 480, "y2": 580, "rot": 0}
      },
      "tags": []
    }
  }
  integrator2 = BlockComponents.Integrator(x0 = 0, k = 1) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 1020, "y1": 510, "x2": 1120, "y2": 610, "rot": 0}
      },
      "tags": []
    }
  }
  gain3 = BlockComponents.Gain(k = 1 / R) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 550, "y1": 450, "x2": 650, "y2": 550, "rot": 0}
      },
      "tags": []
    }
  }
  rim_speed = BlockComponents.Gain(k = R) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 300, "y1": 0, "x2": 400, "y2": 100, "rot": 0}
      },
      "tags": []
    }
  }
  div = BlockComponents.Division() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 440, "y1": 190, "x2": 540, "y2": 290, "rot": 0}
      },
      "tags": []
    }
  }
  c1 = BlockComponents.Constant(k = 1) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 390, "y1": 320, "x2": 490, "y2": 420, "rot": 0}
      },
      "tags": []
    }
  }
  sub2 = BlockComponents.Add(k1 = -1, k2 = 1) {
    "Dyad": {
      "placement": {
        "diagram": {
          "iconName": "default",
          "x1": 561.6666666666666,
          "y1": 305,
          "x2": 641.6666666666666,
          "y2": 385,
          "rot": 0
        }
      }
    }
  }
  hydraulicactuator = PrimitiveComponents.Examples.HydraulicActuator() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 1390, "y1": 200, "x2": 1490, "y2": 300, "rot": 0}
      },
      "tags": []
    }
  }
  integrator = BlockComponents.Integrator(x0 = 0, k = 1) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 1520, "y1": 180, "x2": 1620, "y2": 280, "rot": 0}
      },
      "tags": []
    }
  }
  limiter = BlockComponents.Limiter(y_max = 1000, y_min = 0) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 1670, "y1": 180, "x2": 1770, "y2": 280, "rot": 0}
      },
      "tags": []
    }
  }
  add = BlockComponents.Add(k1 = -1, k2 = 1) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 1810, "y1": 320, "x2": 1910, "y2": 420, "rot": 0}
      },
      "tags": []
    }
  }
  integrator3 = BlockComponents.Integrator(x0 = v0 / R, k = 1) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 1950, "y1": 320, "x2": 2050, "y2": 420, "rot": 0}
      },
      "tags": []
    }
  }
  limiter2 = BlockComponents.Limiter(y_max = 1000, y_min = 0) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 2110, "y1": 320, "x2": 2210, "y2": 420, "rot": 0}
      },
      "tags": []
    }
  }
  integrator1 = BlockComponents.Integrator(x0 = v0, k = 1) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 180, "y1": 300, "x2": 280, "y2": 400, "rot": 0}
      },
      "tags": []
    }
  }
  sampler = PrimitiveComponents.DiscretePrimitives.Sampler() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 950, "y1": 70, "x2": 1050, "y2": 170, "rot": 0}
      },
      "tags": []
    }
  }
  periodicclock = PrimitiveComponents.DiscretePrimitives.PeriodicClock(dt = 0.1, offset = 0) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 1250, "y1": 20, "x2": 1350, "y2": 120, "rot": 0}
      },
      "tags": []
    }
  }
  zeroorderhold = PrimitiveComponents.DiscretePrimitives.ZeroOrderHold(initial_condition = 0) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 1250, "y1": 180, "x2": 1350, "y2": 280, "rot": 0}
      },
      "tags": []
    }
  }
  TrueOmega = Dyad.RealOutput() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 2280, "y1": 330, "x2": 2360, "y2": 410, "rot": 0}
      },
      "tags": []
    }
  }
  NoSlipOmega = Dyad.RealOutput() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 2290, "y1": 460, "x2": 2370, "y2": 540, "rot": 0}
      },
      "tags": []
    }
  }
  parameter mass::Mass = 75
  parameter g_acc::Acceleration = 9.81
  parameter R::Length = 1.25
  parameter v0::Velocity = 70
relations
  initial hydraulicactuator.y = 0.0
  connect(mu_slip.y, normal_force.u) {
    "Dyad": {
      "edges": [
        {
          "S": 1,
          "M": [{"x": 758.2, "y": 140}, {"x": -290, "y": 140}, {"x": -290, "y": 350}],
          "E": 2
        }
      ],
      "renderStyle": "standard"
    }
  }
  connect(wheel_slip_des.y, sub1.u1) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "renderStyle": "standard"}}
  connect(normal_force.y, gain2.u) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "renderStyle": "standard"}}
  connect(sub2.y, mu_slip.u, sub1.u2) {
    "Dyad": {
      "edges": [
        {"S": 1, "M": [], "E": -1},
        {"S": -1, "M": [{"x": 694.1, "y": 345}, {"x": 694.1, "y": 327}], "E": 2},
        {
          "S": -1,
          "M": [{"x": 670, "y": 431.5}, {"x": 800, "y": 431.5}, {"x": 800, "y": 139}],
          "E": 3
        }
      ],
      "junctions": [{"x": 670, "y": 345}],
      "renderStyle": "standard"
    }
  }
  connect(rim_speed.y, div.u1) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 410, "y": 50}, {"x": 410, "y": 210}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(c1.y, sub2.u2) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 540, "y": 370}, {"x": 540, "y": 369}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(div.y, sub2.u1) {
    "Dyad": {
      "edges": [
        {
          "S": 1,
          "M": [{"x": 545.8333333333333, "y": 240}, {"x": 545.8333333333333, "y": 321}],
          "E": 2
        }
      ],
      "renderStyle": "standard"
    }
  }
  connect(limiter1.y, gain3.u) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 540, "y": 530}, {"x": 540, "y": 500}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(gain3.y, integrator2.u) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 670, "y": 500}, {"x": 670, "y": 560}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(normal_force.y, wheel_radius.u) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": -70, "y": 350}, {"x": -70, "y": 631.5}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(hydraulicactuator.y, integrator.u) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 1452, "y": 230}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(integrator.y, limiter.u) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "renderStyle": "standard"}}
  connect(limiter.y, add.u1) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 1790, "y": 230}, {"x": 1790, "y": 340}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(integrator3.u, add.y) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "renderStyle": "standard"}}
  connect(integrator3.y, limiter2.u) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "renderStyle": "standard"}}
  connect(rim_speed.u, integrator3.y) {
    "Dyad": {
      "edges": [
        {
          "S": 1,
          "M": [
            {"x": 220, "y": 50},
            {"x": 220, "y": -10},
            {"x": 2090, "y": -10},
            {"x": 2090, "y": 370}
          ],
          "E": 2
        }
      ],
      "renderStyle": "standard"
    }
  }
  connect(wheel_radius.y, add.u2) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 1277.5, "y": 631.5}, {"x": 1277.5, "y": 400}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(gain2.y, integrator1.u) {"Dyad": {"renderStyle": "standard", "edges": [{"S": 1, "E": 2, "M": []}]}}
  connect(integrator1.y, div.u2) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 355, "y": 350}, {"x": 355, "y": 270}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(limiter1.u, integrator1.y) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 350, "y": 530}, {"x": 350, "y": 350}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(sub1.y, sampler.u) {
    "Dyad": {
      "renderStyle": "standard",
      "edges": [
        {
          "S": 1,
          "M": [{"x": 928.3333333333333, "y": 115}, {"x": 928.3333333333333, "y": 120}],
          "E": 2
        }
      ]
    }
  }
  connect(sampler.y, binaryC.u) {
    "Dyad": {
      "renderStyle": "standard",
      "edges": [{"S": 1, "M": [{"x": 1072.7, "y": 120}, {"x": 1072.7, "y": 205}], "E": 2}]
    }
  }
  connect(binaryC.y, zeroorderhold.u) {
    "Dyad": {
      "renderStyle": "standard",
      "edges": [{"S": 1, "M": [{"x": 1225.3, "y": 205}, {"x": 1225.3, "y": 230}], "E": 2}]
    }
  }
  connect(zeroorderhold.y, hydraulicactuator.u) {
    "Dyad": {
      "renderStyle": "standard",
      "edges": [{"S": 1, "M": [{"x": 1366.5, "y": 230}, {"x": 1366.5, "y": 227}], "E": 2}]
    }
  }
  connect(periodicclock.y, binaryC.y) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 1230, "y": 25}, {"x": 1230, "y": 205}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(limiter2.y, TrueOmega) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "renderStyle": "standard"}}
  connect(gain3.y, NoSlipOmega) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "renderStyle": "standard"}}
metadata {"Dyad": {"doc": {"behavior": false}}}
end
Flattened Source
component ABSModelDiscrete
  wheel_slip_des = BlockComponents.Constant(k = 0.2) {
    "Dyad": {
      "placement": {
        "icon": {"iconName": "default", "x1": -40, "y1": 250, "x2": 0, "y2": 290, "rot": 0},
        "diagram": {"iconName": "default", "x1": 745, "y1": 71, "x2": 785, "y2": 111, "rot": 0}
      }
    }
  }
  sub1 = BlockComponents.Add(k1 = 1, k2 = -1) {
    "Dyad": {
      "placement": {
        "diagram": {
          "iconName": "default",
          "x1": 821.6666666666666,
          "y1": 75,
          "x2": 901.6666666666666,
          "y2": 155,
          "rot": 0
        }
      }
    }
  }
  binaryC = BinaryController() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 1090, "y1": 150, "x2": 1200, "y2": 260, "rot": 0}
      },
      "tags": []
    }
  }
  mu_slip = MuVsSlipLookup() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 690, "y1": 300, "x2": 800, "y2": 400, "rot": 0}
      },
      "tags": []
    }
  }
  normal_force = BlockComponents.Gain(k = mass * g_acc / 4) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": -270, "y1": 300, "x2": -170, "y2": 400, "rot": 0}
      },
      "tags": []
    }
  }
  wheel_radius = BlockComponents.Gain(k = R) {
    "Dyad": {
      "placement": {
        "diagram": {
          "iconName": "default",
          "x1": 815,
          "y1": 581.5,
          "x2": 915,
          "y2": 681.5,
          "rot": 0
        }
      }
    }
  }
  gain2 = BlockComponents.Gain(k = -1.0 / mass) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": -20, "y1": 300, "x2": 80, "y2": 400, "rot": 0}
      },
      "tags": []
    }
  }
  limiter1 = BlockComponents.Limiter(y_max = 1000, y_min = 0) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 380, "y1": 480, "x2": 480, "y2": 580, "rot": 0}
      },
      "tags": []
    }
  }
  integrator2 = BlockComponents.Integrator(x0 = 0, k = 1) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 1020, "y1": 510, "x2": 1120, "y2": 610, "rot": 0}
      },
      "tags": []
    }
  }
  gain3 = BlockComponents.Gain(k = 1 / R) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 550, "y1": 450, "x2": 650, "y2": 550, "rot": 0}
      },
      "tags": []
    }
  }
  rim_speed = BlockComponents.Gain(k = R) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 300, "y1": 0, "x2": 400, "y2": 100, "rot": 0}
      },
      "tags": []
    }
  }
  div = BlockComponents.Division() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 440, "y1": 190, "x2": 540, "y2": 290, "rot": 0}
      },
      "tags": []
    }
  }
  c1 = BlockComponents.Constant(k = 1) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 390, "y1": 320, "x2": 490, "y2": 420, "rot": 0}
      },
      "tags": []
    }
  }
  sub2 = BlockComponents.Add(k1 = -1, k2 = 1) {
    "Dyad": {
      "placement": {
        "diagram": {
          "iconName": "default",
          "x1": 561.6666666666666,
          "y1": 305,
          "x2": 641.6666666666666,
          "y2": 385,
          "rot": 0
        }
      }
    }
  }
  hydraulicactuator = PrimitiveComponents.Examples.HydraulicActuator() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 1390, "y1": 200, "x2": 1490, "y2": 300, "rot": 0}
      },
      "tags": []
    }
  }
  integrator = BlockComponents.Integrator(x0 = 0, k = 1) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 1520, "y1": 180, "x2": 1620, "y2": 280, "rot": 0}
      },
      "tags": []
    }
  }
  limiter = BlockComponents.Limiter(y_max = 1000, y_min = 0) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 1670, "y1": 180, "x2": 1770, "y2": 280, "rot": 0}
      },
      "tags": []
    }
  }
  add = BlockComponents.Add(k1 = -1, k2 = 1) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 1810, "y1": 320, "x2": 1910, "y2": 420, "rot": 0}
      },
      "tags": []
    }
  }
  integrator3 = BlockComponents.Integrator(x0 = v0 / R, k = 1) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 1950, "y1": 320, "x2": 2050, "y2": 420, "rot": 0}
      },
      "tags": []
    }
  }
  limiter2 = BlockComponents.Limiter(y_max = 1000, y_min = 0) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 2110, "y1": 320, "x2": 2210, "y2": 420, "rot": 0}
      },
      "tags": []
    }
  }
  integrator1 = BlockComponents.Integrator(x0 = v0, k = 1) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 180, "y1": 300, "x2": 280, "y2": 400, "rot": 0}
      },
      "tags": []
    }
  }
  sampler = PrimitiveComponents.DiscretePrimitives.Sampler() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 950, "y1": 70, "x2": 1050, "y2": 170, "rot": 0}
      },
      "tags": []
    }
  }
  periodicclock = PrimitiveComponents.DiscretePrimitives.PeriodicClock(dt = 0.1, offset = 0) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 1250, "y1": 20, "x2": 1350, "y2": 120, "rot": 0}
      },
      "tags": []
    }
  }
  zeroorderhold = PrimitiveComponents.DiscretePrimitives.ZeroOrderHold(initial_condition = 0) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 1250, "y1": 180, "x2": 1350, "y2": 280, "rot": 0}
      },
      "tags": []
    }
  }
  TrueOmega = Dyad.RealOutput() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 2280, "y1": 330, "x2": 2360, "y2": 410, "rot": 0}
      },
      "tags": []
    }
  }
  NoSlipOmega = Dyad.RealOutput() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 2290, "y1": 460, "x2": 2370, "y2": 540, "rot": 0}
      },
      "tags": []
    }
  }
  parameter mass::Mass = 75
  parameter g_acc::Acceleration = 9.81
  parameter R::Length = 1.25
  parameter v0::Velocity = 70
relations
  initial hydraulicactuator.y = 0.0
  connect(mu_slip.y, normal_force.u) {
    "Dyad": {
      "edges": [
        {
          "S": 1,
          "M": [{"x": 758.2, "y": 140}, {"x": -290, "y": 140}, {"x": -290, "y": 350}],
          "E": 2
        }
      ],
      "renderStyle": "standard"
    }
  }
  connect(wheel_slip_des.y, sub1.u1) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "renderStyle": "standard"}}
  connect(normal_force.y, gain2.u) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "renderStyle": "standard"}}
  connect(sub2.y, mu_slip.u, sub1.u2) {
    "Dyad": {
      "edges": [
        {"S": 1, "M": [], "E": -1},
        {"S": -1, "M": [{"x": 694.1, "y": 345}, {"x": 694.1, "y": 327}], "E": 2},
        {
          "S": -1,
          "M": [{"x": 670, "y": 431.5}, {"x": 800, "y": 431.5}, {"x": 800, "y": 139}],
          "E": 3
        }
      ],
      "junctions": [{"x": 670, "y": 345}],
      "renderStyle": "standard"
    }
  }
  connect(rim_speed.y, div.u1) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 410, "y": 50}, {"x": 410, "y": 210}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(c1.y, sub2.u2) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 540, "y": 370}, {"x": 540, "y": 369}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(div.y, sub2.u1) {
    "Dyad": {
      "edges": [
        {
          "S": 1,
          "M": [{"x": 545.8333333333333, "y": 240}, {"x": 545.8333333333333, "y": 321}],
          "E": 2
        }
      ],
      "renderStyle": "standard"
    }
  }
  connect(limiter1.y, gain3.u) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 540, "y": 530}, {"x": 540, "y": 500}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(gain3.y, integrator2.u) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 670, "y": 500}, {"x": 670, "y": 560}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(normal_force.y, wheel_radius.u) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": -70, "y": 350}, {"x": -70, "y": 631.5}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(hydraulicactuator.y, integrator.u) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 1452, "y": 230}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(integrator.y, limiter.u) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "renderStyle": "standard"}}
  connect(limiter.y, add.u1) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 1790, "y": 230}, {"x": 1790, "y": 340}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(integrator3.u, add.y) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "renderStyle": "standard"}}
  connect(integrator3.y, limiter2.u) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "renderStyle": "standard"}}
  connect(rim_speed.u, integrator3.y) {
    "Dyad": {
      "edges": [
        {
          "S": 1,
          "M": [
            {"x": 220, "y": 50},
            {"x": 220, "y": -10},
            {"x": 2090, "y": -10},
            {"x": 2090, "y": 370}
          ],
          "E": 2
        }
      ],
      "renderStyle": "standard"
    }
  }
  connect(wheel_radius.y, add.u2) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 1277.5, "y": 631.5}, {"x": 1277.5, "y": 400}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(gain2.y, integrator1.u) {"Dyad": {"renderStyle": "standard", "edges": [{"S": 1, "E": 2, "M": []}]}}
  connect(integrator1.y, div.u2) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 355, "y": 350}, {"x": 355, "y": 270}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(limiter1.u, integrator1.y) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 350, "y": 530}, {"x": 350, "y": 350}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(sub1.y, sampler.u) {
    "Dyad": {
      "renderStyle": "standard",
      "edges": [
        {
          "S": 1,
          "M": [{"x": 928.3333333333333, "y": 115}, {"x": 928.3333333333333, "y": 120}],
          "E": 2
        }
      ]
    }
  }
  connect(sampler.y, binaryC.u) {
    "Dyad": {
      "renderStyle": "standard",
      "edges": [{"S": 1, "M": [{"x": 1072.7, "y": 120}, {"x": 1072.7, "y": 205}], "E": 2}]
    }
  }
  connect(binaryC.y, zeroorderhold.u) {
    "Dyad": {
      "renderStyle": "standard",
      "edges": [{"S": 1, "M": [{"x": 1225.3, "y": 205}, {"x": 1225.3, "y": 230}], "E": 2}]
    }
  }
  connect(zeroorderhold.y, hydraulicactuator.u) {
    "Dyad": {
      "renderStyle": "standard",
      "edges": [{"S": 1, "M": [{"x": 1366.5, "y": 230}, {"x": 1366.5, "y": 227}], "E": 2}]
    }
  }
  connect(periodicclock.y, binaryC.y) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 1230, "y": 25}, {"x": 1230, "y": 205}], "E": 2}],
      "renderStyle": "standard"
    }
  }
  connect(limiter2.y, TrueOmega) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "renderStyle": "standard"}}
  connect(gain3.y, NoSlipOmega) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "renderStyle": "standard"}}
metadata {"Dyad": {"doc": {"behavior": false}}}
end


Test Cases

No test cases defined.

  • Examples
  • Experiments
  • Analyses