Skip to content
Spring.md

Spring ​

Linear 1D translational spring relating force to displacement via Hooke's Law.

This component represents a one-dimensional translational mechanical spring. It models the linear relationship between the force (f) exerted by the spring and its deformation (srel) relative to an unstretched length (srel0). The governing equation is Hooke's Law:

f=c⋅(srel−srel0)

Here, c is the spring constant (stiffness), srel is the current relative displacement between the spring's two connection flanges (typically inherited from PartialCompliant), and srel0 is the relative displacement at which the spring exerts no force.

This component extends from PartialCompliant

Usage ​

TranslationalComponents.Spring(c, s_rel0=0)

Parameters: ​

NameDescriptionUnitsDefault value
cSpring constant, representing the stiffness of the spring.N/m
s_rel0Unstretched relative displacement of the spring, where the spring force is zero.m0

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 distance between flange_b and flange_am
fInternal force exerted by the compliant connection on flange_b (and -f on flange_a).N

Behavior ​

s_rel(t)=flange_b.s(t)−flange_a.s(t)flange_b.f(t)=f(t)flange_a.f(t)=−f(t)f(t)=c(−s_rel0+s_rel(t))

Source ​

dyad
"""
Linear 1D translational spring relating force to displacement via Hooke's Law.

This component represents a one-dimensional translational mechanical spring.
It models the linear relationship between the force ($f$) exerted by the
spring and its deformation ($s_{rel}$) relative to an unstretched length ($s_{rel0}$).
The governing equation is Hooke's Law:

math f = c \cdot (s_{rel} - s_{rel0})

Here, `c` is the spring constant (stiffness), $s_{rel}$ is the current
relative displacement between the spring's two connection flanges (typically
inherited from `PartialCompliant`), and $s_{rel0}$ is the relative displacement
at which the spring exerts no force.
"""
component Spring
  extends PartialCompliant
  "Spring constant, representing the stiffness of the spring."
  parameter c::TranslationalSpringConstant
  "Unstretched relative displacement of the spring, where the spring force is zero."
  parameter s_rel0::Distance = 0
relations
  f = c * (s_rel - s_rel0)
metadata {"Dyad": {"icons": {"default": "dyad://TranslationalComponents/Spring.svg"}}}
end
Flattened Source
dyad
"""
Linear 1D translational spring relating force to displacement via Hooke's Law.

This component represents a one-dimensional translational mechanical spring.
It models the linear relationship between the force ($f$) exerted by the
spring and its deformation ($s_{rel}$) relative to an unstretched length ($s_{rel0}$).
The governing equation is Hooke's Law:

math f = c \cdot (s_{rel} - s_{rel0})

Here, `c` is the spring constant (stiffness), $s_{rel}$ is the current
relative displacement between the spring's two connection flanges (typically
inherited from `PartialCompliant`), and $s_{rel0}$ is the relative displacement
at which the spring exerts no force.
"""
component Spring
  "Port representing the first translational 1D shaft flange."
  flange_a = Flange() {"Dyad": {"placement": {"icon": {"x1": -50, "y1": 450, "x2": 50, "y2": 550}}}}
  "Port representing the second translational 1D shaft flange."
  flange_b = Flange() {"Dyad": {"placement": {"icon": {"x1": 950, "y1": 450, "x2": 1050, "y2": 550}}}}
  "Relative distance between `flange_b` and `flange_a`"
  variable s_rel::Distance
  "Internal force exerted by the compliant connection on flange_b (and -f on flange_a)."
  variable f::Dyad.Force
  "Spring constant, representing the stiffness of the spring."
  parameter c::TranslationalSpringConstant
  "Unstretched relative displacement of the spring, where the spring force is zero."
  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 {"Dyad": {"icons": {"default": "dyad://TranslationalComponents/Spring.svg"}}}
end


Test Cases ​

No test cases defined.