Spring
IconSpring
Linear 1D translational spring
This component extends from PartialCompliant
Usage
Spring(c, s_rel0=0)
Parameters:
Name | Description | Units | Default value |
---|---|---|---|
c | Spring Constant | N/m | |
s_rel0 | Unstretched spring length | m | 0 |
Connectors
Variables
Name | Description | Units |
---|---|---|
s_rel | Relative distance between flange_b and flange_a | m |
f | Forces between the flanges | N |
Behavior
\[ \begin{align} \mathtt{s\_rel}\left( t \right) &= \mathtt{flange\_b.s}\left( t \right) - \mathtt{flange\_a.s}\left( t \right) \\ \mathtt{flange\_b.f}\left( t \right) &= f\left( t \right) \\ \mathtt{flange\_a.f}\left( t \right) &= - f\left( t \right) \\ f\left( t \right) &= c \left( - \mathtt{s\_rel0} + \mathtt{s\_rel}\left( t \right) \right) \end{align} \]
Source
# Linear 1D translational spring
component Spring
extends PartialCompliant
# Spring Constant
parameter c::TranslationalSpringConstant
# Unstretched spring length
parameter s_rel0::Distance = 0
relations
f = c*(s_rel-s_rel0)
metadata {
"JuliaSim": {"icons": {"default": "jsml://TranslationalComponents/Spring.svg"}}
}
end
Flattened Source
# Linear 1D translational spring component Spring flange_a = Flange() [{ "JuliaSim": {"placement": {"icon": {"x1": -50, "y1": 450, "x2": 50, "y2": 550}}} }] flange_b = Flange() [{ "JuliaSim": {"placement": {"icon": {"x1": 950, "y1": 450, "x2": 1050, "y2": 550}}} }] # Relative distance between `flange_b` and `flange_a` variable s_rel::Distance # Forces between the flanges variable f::JSML.Force # Spring Constant parameter c::TranslationalSpringConstant # Unstretched spring length parameter s_rel0::Distance = 0 relations s_rel = flange_b.s-flange_a.s flange_b.f = f flange_a.f = -f f = c*(s_rel-s_rel0) metadata { "JuliaSim": {"icons": {"default": "jsml://TranslationalComponents/Spring.svg"}} } end
Test Cases
Related
- Examples
- Experiments
- Analyses
- Tests