PartialCompliantWithRelativeStates IconPartialCompliantWithRelativeStates
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
| Name | Description | Units |
|---|---|---|
s_rel | Relative displacement between flangeb and flangea (flangeb.s - flangea.s). | m |
v_rel | Relative velocity between flangeb and flangea, defined as der(s_rel). | m/s |
f | Internal 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
<span class="hljs-comment">"Port for the first mechanical translational flange."</span>
<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}}}}
<span class="hljs-comment">"Port for the second mechanical translational flange."</span>
<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}}}}
<span class="hljs-comment">"Relative displacement between flange_b and flange_a (flange_b.s - flange_a.s)."</span>
<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>
<span class="hljs-comment">"Relative velocity between flange_b and flange_a, defined as der(s_rel)."</span>
<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>
<span class="hljs-comment">"Internal force exerted by the compliant element between the flanges."</span>
<span class="hljs-keyword">variable</span> <span class="hljs-symbol">f</span>::<span>Dyad.Force</span>
<span class="hljs-keyword">relations</span>
s_rel = flange_b.s - flange_a.s
v_rel = der(s_rel)
flange_b.f = f
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
<span class="hljs-comment">"Port for the first mechanical translational flange."</span>
<span class="hljs-symbol">flange_a</span> = <span>Flange</span>() {"Dyad": {"placement": {"icon": {"x1": -50, "y1": 450, "x2": 50, "y2": 550}}}}
<span class="hljs-comment">"Port for the second mechanical translational flange."</span>
<span class="hljs-symbol">flange_b</span> = <span>Flange</span>() {"Dyad": {"placement": {"icon": {"x1": 950, "y1": 450, "x2": 1050, "y2": 550}}}}
<span class="hljs-comment">"Relative displacement between flange_b and flange_a (flange_b.s - flange_a.s)."</span>
<span class="hljs-keyword">variable</span> <span class="hljs-symbol">s_rel</span>::<span>Distance</span>
<span class="hljs-comment">"Relative velocity between flange_b and flange_a, defined as der(s_rel)."</span>
<span class="hljs-keyword">variable</span> <span class="hljs-symbol">v_rel</span>::<span>Velocity</span>
<span class="hljs-comment">"Internal force exerted by the compliant element between the flanges."</span>
<span class="hljs-keyword">variable</span> <span class="hljs-symbol">f</span>::<span>Dyad.Force</span>
<span class="hljs-keyword">relations</span>
s_rel = flange_b.s - flange_a.s
v_rel = der(s_rel)
flange_b.f = f
flange_a.f = -f
<span class="hljs-keyword">metadata</span> {}
<span class="hljs-keyword">end</span></code></pre>
Test Cases
No test cases defined.
Related
- Examples
- Experiments
- Analyses