Skip to content
PartialCompliant.md

PartialCompliant

Defines a generic compliant rotational connection between two shaft splines.

This partial component models the interaction between two rotational splines, spline_a and spline_b. The relative angle, phi_rel, between them is defined by the equation:

ϕrel=spline_b.ϕspline_a.ϕ

The component also establishes the torque interactions. The torque on spline_b (accessed via spline_b.tau in its connector) is set to the internal model torque tau. Conversely, the torque on spline_a (accessed via spline_a.tau) is set to -tau, ensuring action-reaction principles are met. These are described by the equations:

spline_b.τ=τspline_a.τ=τ

As a partial model, it is intended to be extended by other components. These extending components would typically define the specific constitutive relationship for the compliance, for example, by expressing tau as a function of phi_rel (e.g., for a torsional spring or damper).

Usage

PartialCompliant()

Connectors

Variables

NameDescriptionUnits
phi_relRelative rotation angle between spline_b and spline_arad
tauTorque transmitted between the splinesN.m

Source

dyad
# Defines a generic compliant rotational connection between two shaft splines.
#
# This partial component models the interaction between two rotational splines, `spline_a` and `spline_b`.
# The relative angle, `phi_rel`, between them is defined by the equation:
# ```math
# \phi_{rel} = \text{spline\_b}.\phi - \text{spline\_a}.\phi
# ```
# The component also establishes the torque interactions. The torque on `spline_b` (accessed via `spline_b.tau` in its connector)
# is set to the internal model torque `tau`. Conversely, the torque on `spline_a` (accessed via `spline_a.tau`) is set to `-tau`,
# ensuring action-reaction principles are met. These are described by the equations:
# ```math
# \text{spline\_b}.\tau = \tau
# ```
# ```math
# \text{spline\_a}.\tau = -\tau
# ```
# As a `partial` model, it is intended to be extended by other components. These extending components
# would typically define the specific constitutive relationship for the compliance, for example, by expressing
# `tau` as a function of `phi_rel` (e.g., for a torsional spring or damper).
partial component PartialCompliant
  # First rotational spline interface
  spline_a = Spline() [{"Dyad": {"placement": {"icon": {"x1": -50, "y1": 450, "x2": 50, "y2": 550}}}}]
  # Second rotational spline interface
  spline_b = Spline() [{"Dyad": {"placement": {"icon": {"x1": 950, "y1": 450, "x2": 1050, "y2": 550}}}}]
  # Relative rotation angle between spline_b and spline_a
  variable phi_rel::Angle
  # Torque transmitted between the splines
  variable tau::Torque
relations
  phi_rel = spline_b.phi-spline_a.phi
  spline_b.tau = tau
  spline_a.tau = -tau
end
Flattened Source
dyad
# Defines a generic compliant rotational connection between two shaft splines.
#
# This partial component models the interaction between two rotational splines, `spline_a` and `spline_b`.
# The relative angle, `phi_rel`, between them is defined by the equation:
# ```math
# \phi_{rel} = \text{spline\_b}.\phi - \text{spline\_a}.\phi
# ```
# The component also establishes the torque interactions. The torque on `spline_b` (accessed via `spline_b.tau` in its connector)
# is set to the internal model torque `tau`. Conversely, the torque on `spline_a` (accessed via `spline_a.tau`) is set to `-tau`,
# ensuring action-reaction principles are met. These are described by the equations:
# ```math
# \text{spline\_b}.\tau = \tau
# ```
# ```math
# \text{spline\_a}.\tau = -\tau
# ```
# As a `partial` model, it is intended to be extended by other components. These extending components
# would typically define the specific constitutive relationship for the compliance, for example, by expressing
# `tau` as a function of `phi_rel` (e.g., for a torsional spring or damper).
partial component PartialCompliant
  # First rotational spline interface
  spline_a = Spline() [{"Dyad": {"placement": {"icon": {"x1": -50, "y1": 450, "x2": 50, "y2": 550}}}}]
  # Second rotational spline interface
  spline_b = Spline() [{"Dyad": {"placement": {"icon": {"x1": 950, "y1": 450, "x2": 1050, "y2": 550}}}}]
  # Relative rotation angle between spline_b and spline_a
  variable phi_rel::Angle
  # Torque transmitted between the splines
  variable tau::Torque
relations
  phi_rel = spline_b.phi-spline_a.phi
  spline_b.tau = tau
  spline_a.tau = -tau
metadata {}
end


Test Cases

This is setup code, that must be run before each test case.

julia
using RotationalComponents
using ModelingToolkit, OrdinaryDiffEqDefault
using Plots
using CSV, DataFrames

snapshotsdir = joinpath(dirname(dirname(pathof(RotationalComponents))), "test", "snapshots")
"/home/actions-runner-10/.julia/packages/RotationalComponents/0VPxm/test/snapshots"
  • Examples

  • Experiments

  • Analyses