$(instance)IdealRollingWheel Icon

IdealRollingWheel

Ideal rolling wheel converting rotational motion to translational motion and vice-versa, without inertia.

This component models the ideal kinematic and static interaction between a rotational mechanical port (spline) and a translational mechanical port (flange) representing a wheel rolling on a surface. It assumes perfect rolling contact, meaning there is no slip. The wheel itself is considered massless and frictionless, so no inertial effects or energy losses are included. The key kinematic relationship links the relative angular displacement of the spline (spline.phi - support_r.phi) to the relative translational displacement of the flange (flange.s - support_t.s) via the wheel radius:

\[(\text{spline.phi} - \text{support\\_r.phi}) \\cdot \text{radius} = \text{flange.s} - \text{support\\_t.s}\]

math The static force-torque balance is also defined, relating the torque at the spline ($\text{spline}.\tau$) and the force at the flange ($\text{flange.f}$) through the radius:

\[\text{radius} \\cdot \text{flange.f} + \text{spline.tau} = 0\]

math

PartialElementaryRotationalToTranslational

Usage

IdealRollingWheel(radius)

Parameters:

NameDescriptionUnitsDefault value
radiuswheel radiusm

Connectors

  • spline - This connector represents a rotational spline with angle and torque as the potential and flow variables, respectively. (Spline)
  • flange - This connector represents a mechanical flange with position and force as the potential and flow variables, respectively. (Flange)
  • support_r - This connector represents a rotational spline with angle and torque as the potential and flow variables, respectively. (Spline)
  • support_t - This connector represents a mechanical flange with position and force as the potential and flow variables, respectively. (Flange)

Behavior

\[ \begin{align} \mathtt{radius} \left( - \mathtt{support\_r.phi}\left( t \right) + \mathtt{spline.phi}\left( t \right) \right) &= \mathtt{flange.s}\left( t \right) - \mathtt{support\_t.s}\left( t \right) \\ 0 &= \mathtt{spline.tau}\left( t \right) + \mathtt{radius} \mathtt{flange.f}\left( t \right) \end{align} \]

Source

# Ideal rolling wheel converting rotational motion to translational motion and vice-versa, without inertia.
#
# This component models the ideal kinematic and static interaction between a rotational mechanical port (spline) and a translational
# mechanical port (flange) representing a wheel rolling on a surface. It assumes perfect rolling contact, meaning there is no slip.
# The wheel itself is considered massless and frictionless, so no inertial effects or energy losses are included.
# The key kinematic relationship links the relative angular displacement of the spline (`spline.phi - support_r.phi`)
# to the relative translational displacement of the flange (`flange.s - support_t.s`) via the wheel radius:
# ```math
# (\text{spline.phi} - \text{support\\_r.phi}) \\cdot \text{radius} = \text{flange.s} - \text{support\\_t.s}
# ```math
# The static force-torque balance is also defined, relating the torque at the spline (\$\text{spline}.\\tau\$) and the force
# at the flange (\$\text{flange.f}\$) through the radius:
# ```math
# \text{radius} \\cdot \text{flange.f} + \text{spline.tau} = 0
# ```math
component IdealRollingWheel
  extends PartialElementaryRotationalToTranslational
  # wheel radius
  parameter radius::Length
relations
  (spline.phi-support_r.phi)*radius = flange.s-support_t.s
  0 = radius*flange.f+spline.tau
metadata {
  "Dyad": {"icons": {"default": "dyad://RotationalComponents/IdealRollingWheel.svg"}}
}
end
Flattened Source
# Ideal rolling wheel converting rotational motion to translational motion and vice-versa, without inertia.
#
# This component models the ideal kinematic and static interaction between a rotational mechanical port (spline) and a translational
# mechanical port (flange) representing a wheel rolling on a surface. It assumes perfect rolling contact, meaning there is no slip.
# The wheel itself is considered massless and frictionless, so no inertial effects or energy losses are included.
# The key kinematic relationship links the relative angular displacement of the spline (`spline.phi - support_r.phi`)
# to the relative translational displacement of the flange (`flange.s - support_t.s`) via the wheel radius:
# ```math
# (\text{spline.phi} - \text{support\\_r.phi}) \\cdot \text{radius} = \text{flange.s} - \text{support\\_t.s}
# ```math
# The static force-torque balance is also defined, relating the torque at the spline (\$\text{spline}.\\tau\$) and the force
# at the flange (\$\text{flange.f}\$) through the radius:
# ```math
# \text{radius} \\cdot \text{flange.f} + \text{spline.tau} = 0
# ```math
component IdealRollingWheel
  # Primary rotational mechanical interface
  spline = Spline() [{"Dyad": {"placement": {"icon": {"x1": -50, "y1": 450, "x2": 50, "y2": 550}}}}]
  # Primary translational mechanical interface
  flange = Flange() [{"Dyad": {"placement": {"icon": {"x1": 950, "y1": 450, "x2": 1050, "y2": 550}}}}]
  # Rotational mechanical support interface (e.g., for housing)
  support_r = Spline() [{"Dyad": {"placement": {"icon": {"x1": 100, "y1": 950, "x2": 200, "y2": 1050}}}}]
  # Translational mechanical support interface (e.g., for housing)
  support_t = Flange() [{"Dyad": {"placement": {"icon": {"x1": 800, "y1": 950, "x2": 900, "y2": 1050}}}}]
  # wheel radius
  parameter radius::Length
relations
  (spline.phi-support_r.phi)*radius = flange.s-support_t.s
  0 = radius*flange.f+spline.tau
metadata {
  "Dyad": {"icons": {"default": "dyad://RotationalComponents/IdealRollingWheel.svg"}}
}
end


Test Cases

No test cases defined.

  • Examples
  • Experiments
  • Analyses