Skip to content
LIBRARY
Examples.ElasticBearing.md

Examples.ElasticBearing

Example to show possible usage of support flange.

The gearbox is not connected rigidly to the ground, but by a spring-damper system. This allows examination of the gearbox housing dynamics. A multi-sensor measures the angular velocity, torque, and power between the housing inertia and the spring-damper connected to the fixed ground.

Corresponds to Modelica.Mechanics.Rotational.Examples.ElasticBearing. StopTime=10.0, Interval=0.01.

Usage

RotationalComponents.Examples.ElasticBearing()

Behavior

Source

dyad
"""
Example to show possible usage of support flange.

The gearbox is not connected rigidly to the ground, but by a spring-damper
system. This allows examination of the gearbox housing dynamics. A multi-sensor
measures the angular velocity, torque, and power between the housing inertia
and the spring-damper connected to the fixed ground.

Corresponds to Modelica.Mechanics.Rotational.Examples.ElasticBearing.
StopTime=10.0, Interval=0.01.
"""
example component ElasticBearing
  "Motor shaft inertia, J=1 kg.m^2."
  shaft = RotationalComponents.Components.Inertia(J = 1) {
    "Dyad": {"placement": {"diagram": {"x1": 405, "x2": 505, "y1": 20, "y2": 120}}}
  }
  "Load inertia, J=50 kg.m^2."
  load = RotationalComponents.Components.Inertia(J = 50) {
    "Dyad": {"placement": {"diagram": {"x1": 1060, "x2": 1160, "y1": 20, "y2": 120}}}
  }
  "Torsional spring between gear output and load, c=1e3 N.m/rad."
  spring = RotationalComponents.Components.Spring(c = 1e3) {
    "Dyad": {"placement": {"diagram": {"x1": 925, "x2": 1025, "y1": 20, "y2": 120}}}
  }
  "Fixed mechanical ground."
  fixed = RotationalComponents.Components.Fixed() {
    "Dyad": {"placement": {"diagram": {"x1": 280, "x2": 380, "y1": 245, "y2": 345}}}
  }
  "Spring-damper connecting housing to ground, c=1e5 N.m/rad, d=5 N.m.s/rad."
  spring_damper = RotationalComponents.Components.SpringDamper(c = 1e5, d = 5) {
    "Dyad": {"placement": {"diagram": {"x1": 405, "x2": 505, "y1": 140, "y2": 240}}}
  }
  "Torque source driven by ramp signal (useSupport=true in MSL)."
  torque = RotationalComponents.Sources.TorqueSource() {
    "Dyad": {"placement": {"diagram": {"x1": 155, "x2": 255, "y1": 20, "y2": 120}}}
  }
  "Ramp signal for driving torque, height=100 N.m over 5 s."
  ramp = BlockComponents.Sources.Ramp(duration = 5, height = 100) {"Dyad": {"placement": {"diagram": {"x1": 20, "x2": 120, "y1": 20, "y2": 120}}}}
  "Ideal gear with ratio=3 (useSupport=true in MSL)."
  ideal_gear = RotationalComponents.Components.IdealGear(ratio = 3) {
    "Dyad": {"placement": {"diagram": {"x1": 795, "x2": 895, "y1": 20, "y2": 120}}}
  }
  "Housing inertia, J=5 kg.m^2."
  housing = RotationalComponents.Components.Inertia(J = 5) {
    "Dyad": {"placement": {"diagram": {"x1": 665, "x2": 765, "y1": 140, "y2": 240}}}
  }
  "Multi-sensor measuring angular velocity, torque, and power."
  multi_sensor = RotationalComponents.Sensors.MultiSensor() {
    "Dyad": {"placement": {"diagram": {"x1": 535, "x2": 635, "y1": 140, "y2": 240}}}
  }
relations
  initial shaft.phi = 0
  initial shaft.w = 0
  initial load.w = 0
  initial spring.phi_rel = 0
  initial spring_damper.phi_rel = 0
  initial spring_damper.w_rel = 0
  connect(ramp.y, torque.tau) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "path": {}}}
  connect(torque.spline, shaft.spline_a) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "path": {}}}
  connect(torque.support, fixed.spline) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 205, "y": 190}], "E": -1}, {"S": -1, "M": [], "E": 2}],
      "junctions": [{"x": 330, "y": 190}],
      "path": {}
    }
  }
  connect(shaft.spline_b, ideal_gear.spline_a) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "path": {}}}
  connect(ideal_gear.spline_b, spring.spline_a) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "path": {}}}
  connect(spring.spline_b, load.spline_a) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "path": {}}}
  connect(ideal_gear.support, housing.spline_b) {"Dyad": {"edges": [{"S": 1, "M": [{"x": 845, "y": 190}], "E": 2}], "path": {}}}
  connect(housing.spline_a, multi_sensor.spline_b) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "path": {}}}
  connect(multi_sensor.spline_a, spring_damper.spline_b) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "path": {}}}
  connect(spring_damper.spline_a, fixed.spline) {
    "Dyad": {
      "edges": [{"S": 1, "M": [], "E": -1}, {"S": -1, "M": [], "E": 2}],
      "junctions": [{"x": 330, "y": 190}],
      "path": {}
    }
  }
metadata {
  "Dyad": {
    "icons": {"default": "dyad://RotationalComponents/Example.svg"},
    "tests": {
      "case1": {"stop": 10, "expect": {"initial": {"shaft.phi": 0, "shaft.w": 0, "load.w": 0}}}
    }
  }
}
end
Flattened Source
dyad
"""
Example to show possible usage of support flange.

The gearbox is not connected rigidly to the ground, but by a spring-damper
system. This allows examination of the gearbox housing dynamics. A multi-sensor
measures the angular velocity, torque, and power between the housing inertia
and the spring-damper connected to the fixed ground.

Corresponds to Modelica.Mechanics.Rotational.Examples.ElasticBearing.
StopTime=10.0, Interval=0.01.
"""
example component ElasticBearing
  "Motor shaft inertia, J=1 kg.m^2."
  shaft = RotationalComponents.Components.Inertia(J = 1) {
    "Dyad": {"placement": {"diagram": {"x1": 405, "x2": 505, "y1": 20, "y2": 120}}}
  }
  "Load inertia, J=50 kg.m^2."
  load = RotationalComponents.Components.Inertia(J = 50) {
    "Dyad": {"placement": {"diagram": {"x1": 1060, "x2": 1160, "y1": 20, "y2": 120}}}
  }
  "Torsional spring between gear output and load, c=1e3 N.m/rad."
  spring = RotationalComponents.Components.Spring(c = 1e3) {
    "Dyad": {"placement": {"diagram": {"x1": 925, "x2": 1025, "y1": 20, "y2": 120}}}
  }
  "Fixed mechanical ground."
  fixed = RotationalComponents.Components.Fixed() {
    "Dyad": {"placement": {"diagram": {"x1": 280, "x2": 380, "y1": 245, "y2": 345}}}
  }
  "Spring-damper connecting housing to ground, c=1e5 N.m/rad, d=5 N.m.s/rad."
  spring_damper = RotationalComponents.Components.SpringDamper(c = 1e5, d = 5) {
    "Dyad": {"placement": {"diagram": {"x1": 405, "x2": 505, "y1": 140, "y2": 240}}}
  }
  "Torque source driven by ramp signal (useSupport=true in MSL)."
  torque = RotationalComponents.Sources.TorqueSource() {
    "Dyad": {"placement": {"diagram": {"x1": 155, "x2": 255, "y1": 20, "y2": 120}}}
  }
  "Ramp signal for driving torque, height=100 N.m over 5 s."
  ramp = BlockComponents.Sources.Ramp(duration = 5, height = 100) {"Dyad": {"placement": {"diagram": {"x1": 20, "x2": 120, "y1": 20, "y2": 120}}}}
  "Ideal gear with ratio=3 (useSupport=true in MSL)."
  ideal_gear = RotationalComponents.Components.IdealGear(ratio = 3) {
    "Dyad": {"placement": {"diagram": {"x1": 795, "x2": 895, "y1": 20, "y2": 120}}}
  }
  "Housing inertia, J=5 kg.m^2."
  housing = RotationalComponents.Components.Inertia(J = 5) {
    "Dyad": {"placement": {"diagram": {"x1": 665, "x2": 765, "y1": 140, "y2": 240}}}
  }
  "Multi-sensor measuring angular velocity, torque, and power."
  multi_sensor = RotationalComponents.Sensors.MultiSensor() {
    "Dyad": {"placement": {"diagram": {"x1": 535, "x2": 635, "y1": 140, "y2": 240}}}
  }
relations
  initial shaft.phi = 0
  initial shaft.w = 0
  initial load.w = 0
  initial spring.phi_rel = 0
  initial spring_damper.phi_rel = 0
  initial spring_damper.w_rel = 0
  connect(ramp.y, torque.tau) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "path": {}}}
  connect(torque.spline, shaft.spline_a) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "path": {}}}
  connect(torque.support, fixed.spline) {
    "Dyad": {
      "edges": [{"S": 1, "M": [{"x": 205, "y": 190}], "E": -1}, {"S": -1, "M": [], "E": 2}],
      "junctions": [{"x": 330, "y": 190}],
      "path": {}
    }
  }
  connect(shaft.spline_b, ideal_gear.spline_a) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "path": {}}}
  connect(ideal_gear.spline_b, spring.spline_a) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "path": {}}}
  connect(spring.spline_b, load.spline_a) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "path": {}}}
  connect(ideal_gear.support, housing.spline_b) {"Dyad": {"edges": [{"S": 1, "M": [{"x": 845, "y": 190}], "E": 2}], "path": {}}}
  connect(housing.spline_a, multi_sensor.spline_b) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "path": {}}}
  connect(multi_sensor.spline_a, spring_damper.spline_b) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "path": {}}}
  connect(spring_damper.spline_a, fixed.spline) {
    "Dyad": {
      "edges": [{"S": 1, "M": [], "E": -1}, {"S": -1, "M": [], "E": 2}],
      "junctions": [{"x": 330, "y": 190}],
      "path": {}
    }
  }
metadata {
  "Dyad": {
    "icons": {"default": "dyad://RotationalComponents/Example.svg"},
    "tests": {
      "case1": {"stop": 10, "expect": {"initial": {"shaft.phi": 0, "shaft.w": 0, "load.w": 0}}}
    }
  }
}
end


Test Cases

Test Case case1

  • Examples

  • Experiments

  • Analyses