PartialCompliantWithRelativeStatesPartialCompliantWithRelativeStates Icon

PartialCompliantWithRelativeStates

Base model for a 1D translational compliant connection using relative displacement and relative velocity as states.

This partial component provides the foundational kinematics and force propagation for a compliant connection between two translational 1D mechanical flanges, flange_a and flange_b. It defines the relative displacement (s_rel) and relative velocity (v_rel) between these flanges. The relative velocity is explicitly defined as the time derivative of the relative displacement. An internal force f is declared, which is intended to be defined by an extending model (e.g., based on spring stiffness or damping coefficient). This internal force is then transmitted to flange_b and, with an opposite sign, to flange_a, satisfying Newton's third law. Since this is a partial model, it does not define the constitutive equation for the force f (i.e., how f depends on s_rel and v_rel). The key kinematic and force equations are:

\[s_{rel} = flange_b.s - flange_a.s\]

\[v_{rel} = \frac{d(s_{rel})}{dt}\]

\[flange_b.f = f\]

\[flange_a.f = -f\]

Usage

TranslationalComponents.PartialCompliantWithRelativeStates()

Connectors

  • flange_a - This connector represents a mechanical flange with position and force as the potential and flow variables, respectively. (Flange)
  • flange_b - This connector represents a mechanical flange with position and force as the potential and flow variables, respectively. (Flange)

Variables

NameDescriptionUnits
s_relRelative displacement between flangeb and flangea (flangeb.s - flangea.s).m
v_relRelative velocity between flangeb and flangea, defined as der(s_rel).m/s
fInternal force exerted by the compliant element between the flanges.N

Source

"""
Base model for a 1D translational compliant connection using relative displacement and relative velocity as states.

This partial component provides the foundational kinematics and force propagation for a compliant
connection between two translational 1D mechanical flanges, `flange_a` and `flange_b`. It defines
the relative displacement (`s_rel`) and relative velocity (`v_rel`) between these flanges. The
relative velocity is explicitly defined as the time derivative of the relative displacement. An
internal force `f` is declared, which is intended to be defined by an extending model (e.g., based
on spring stiffness or damping coefficient). This internal force is then transmitted to `flange_b`
and, with an opposite sign, to `flange_a`, satisfying Newton's third law. Since this is a `partial`
model, it does not define the constitutive equation for the force `f` (i.e., how `f` depends on
`s_rel` and `v_rel`). The key kinematic and force equations are:

math s{rel} = flangeb.s - flange_a.s

math v{rel} = \frac{d(s{rel})}{dt}

math flange_b.f = f

math flange_a.f = -f

"""</span>
<span class="hljs-keyword">partial</span> <span class="hljs-keyword">component</span> PartialCompliantWithRelativeStates
&nbsp;&nbsp;<span class="hljs-comment">"Port for the first mechanical translational flange."</span>
&nbsp;&nbsp;<span class="hljs-symbol">flange_a</span> = <span class="hljs-link"><a href="https://help.juliahub.com/dyad/dev/stdlib/Dyad/connectors/Flange.html">Flange</a></span>() {"Dyad": {"placement": {"icon": {"x1": -50, "y1": 450, "x2": 50, "y2": 550}}}}
&nbsp;&nbsp;<span class="hljs-comment">"Port for the second mechanical translational flange."</span>
&nbsp;&nbsp;<span class="hljs-symbol">flange_b</span> = <span class="hljs-link"><a href="https://help.juliahub.com/dyad/dev/stdlib/Dyad/connectors/Flange.html">Flange</a></span>() {"Dyad": {"placement": {"icon": {"x1": 950, "y1": 450, "x2": 1050, "y2": 550}}}}
&nbsp;&nbsp;<span class="hljs-comment">"Relative displacement between flange_b and flange_a (flange_b.s - flange_a.s)."</span>
&nbsp;&nbsp;<span class="hljs-keyword">variable</span> <span class="hljs-symbol">s_rel</span>::<span class="hljs-link"><a href="https://help.juliahub.com/dyad/dev/stdlib/Dyad/types/Distance.html">Distance</a></span>
&nbsp;&nbsp;<span class="hljs-comment">"Relative velocity between flange_b and flange_a, defined as der(s_rel)."</span>
&nbsp;&nbsp;<span class="hljs-keyword">variable</span> <span class="hljs-symbol">v_rel</span>::<span class="hljs-link"><a href="https://help.juliahub.com/dyad/dev/stdlib/Dyad/types/Velocity.html">Velocity</a></span>
&nbsp;&nbsp;<span class="hljs-comment">"Internal force exerted by the compliant element between the flanges."</span>
&nbsp;&nbsp;<span class="hljs-keyword">variable</span> <span class="hljs-symbol">f</span>::<span>Dyad.Force</span>
<span class="hljs-keyword">relations</span>
&nbsp;&nbsp;s_rel = flange_b.s - flange_a.s
&nbsp;&nbsp;v_rel = der(s_rel)
&nbsp;&nbsp;flange_b.f = f
&nbsp;&nbsp;flange_a.f = -f
<span class="hljs-keyword">end</span></code></pre>
Flattened Source
"""
Base model for a 1D translational compliant connection using relative displacement and relative velocity as states.

This partial component provides the foundational kinematics and force propagation for a compliant
connection between two translational 1D mechanical flanges, `flange_a` and `flange_b`. It defines
the relative displacement (`s_rel`) and relative velocity (`v_rel`) between these flanges. The
relative velocity is explicitly defined as the time derivative of the relative displacement. An
internal force `f` is declared, which is intended to be defined by an extending model (e.g., based
on spring stiffness or damping coefficient). This internal force is then transmitted to `flange_b`
and, with an opposite sign, to `flange_a`, satisfying Newton's third law. Since this is a `partial`
model, it does not define the constitutive equation for the force `f` (i.e., how `f` depends on
`s_rel` and `v_rel`). The key kinematic and force equations are:

math s{rel} = flangeb.s - flange_a.s

math v{rel} = \frac{d(s{rel})}{dt}

math flange_b.f = f

math flange_a.f = -f

"""</span>
<span class="hljs-keyword">partial</span> <span class="hljs-keyword">component</span> PartialCompliantWithRelativeStates
&nbsp;&nbsp;<span class="hljs-comment">"Port for the first mechanical translational flange."</span>
&nbsp;&nbsp;<span class="hljs-symbol">flange_a</span> = <span>Flange</span>() {"Dyad": {"placement": {"icon": {"x1": -50, "y1": 450, "x2": 50, "y2": 550}}}}
&nbsp;&nbsp;<span class="hljs-comment">"Port for the second mechanical translational flange."</span>
&nbsp;&nbsp;<span class="hljs-symbol">flange_b</span> = <span>Flange</span>() {"Dyad": {"placement": {"icon": {"x1": 950, "y1": 450, "x2": 1050, "y2": 550}}}}
&nbsp;&nbsp;<span class="hljs-comment">"Relative displacement between flange_b and flange_a (flange_b.s - flange_a.s)."</span>
&nbsp;&nbsp;<span class="hljs-keyword">variable</span> <span class="hljs-symbol">s_rel</span>::<span>Distance</span>
&nbsp;&nbsp;<span class="hljs-comment">"Relative velocity between flange_b and flange_a, defined as der(s_rel)."</span>
&nbsp;&nbsp;<span class="hljs-keyword">variable</span> <span class="hljs-symbol">v_rel</span>::<span>Velocity</span>
&nbsp;&nbsp;<span class="hljs-comment">"Internal force exerted by the compliant element between the flanges."</span>
&nbsp;&nbsp;<span class="hljs-keyword">variable</span> <span class="hljs-symbol">f</span>::<span>Dyad.Force</span>
<span class="hljs-keyword">relations</span>
&nbsp;&nbsp;s_rel = flange_b.s - flange_a.s
&nbsp;&nbsp;v_rel = der(s_rel)
&nbsp;&nbsp;flange_b.f = f
&nbsp;&nbsp;flange_a.f = -f
<span class="hljs-keyword">metadata</span> {}
<span class="hljs-keyword">end</span></code></pre>


Test Cases

No test cases defined.

  • Examples
  • Experiments
  • Analyses