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:
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:
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
Name | Description | Units |
---|---|---|
phi_rel | Relative rotation angle between spline_b and spline_a | rad |
tau | Torque transmitted between the splines | N.m |
Source
# 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
# 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.
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"
Related
Examples
Experiments
Analyses