Skip to content
LIBRARY
Sources.QuadraticSpeedDependentForce.md

Sources.QuadraticSpeedDependentForce

Quadratic dependency of force versus speed.

Model of force, quadratically dependent on velocity of flange. Parameter ForceDirection chooses whether the direction of force is the same in both directions of movement or not.

When ForceDirection = true:

f=fnominalcdotleft(fracvvnominalright)2

When ForceDirection = false:

f=fnominalcdotfracvcdot|v|vnominal2

This component extends from TranslationalComponents.Interfaces.PartialForce

Usage

TranslationalComponents.Sources.QuadraticSpeedDependentForce(f_nominal, v_nominal)

Parameters:

NameDescriptionUnitsDefault value
ForceDirectionSame direction of force in both directions of motiontrue
f_nominalNominal force (if negative, force is acting as load in positive direction of motion)N
v_nominalNominal speedm/s

Connectors

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

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

Variables

NameDescriptionUnits
sDistance between flange and support (= flange.s - support.s)m
fAccelerating force acting at flange (= flange.f)N
vVelocity of flange with respect to support (= der(s))m/s

Behavior

julia
using TranslationalComponents #hide
using ModelingToolkit #hide
@variables f_nominal #hide
@variables v_nominal #hide
@named sys = TranslationalComponents.Sources.QuadraticSpeedDependentForce(f_nominal=f_nominal, v_nominal=v_nominal) #hide
full_equations(sys) #hide
<< @example-block not executed in draft mode >>

Source

dyad
"""
Quadratic dependency of force versus speed.

Model of force, quadratically dependent on velocity of flange. Parameter `ForceDirection`
chooses whether the direction of force is the same in both directions of movement or not.

When `ForceDirection = true`:
```math
f = -f_{nominal} \\cdot \\left(\\frac{v}{v_{nominal}}\\right)^2
```
When `ForceDirection = false`:
```math
f = -f_{nominal} \\cdot \\frac{v \\cdot |v|}{v_{nominal}^2}
```
"""
component QuadraticSpeedDependentForce
  extends TranslationalComponents.Interfaces.PartialForce
  "Nominal force (if negative, force is acting as load in positive direction of motion)"
  parameter f_nominal::Dyad.Force
  "Same direction of force in both directions of motion"
  structural parameter ForceDirection::Boolean = true
  "Nominal speed"
  parameter v_nominal::Velocity(min = eps(Float64))
  "Velocity of flange with respect to support (= der(s))"
  variable v::Velocity
relations
  v = der(s)
  if ForceDirection
    f = -f_nominal * (v / v_nominal) ^ 2
  else
    f = -f_nominal * v * abs(v) / v_nominal ^ 2
  end
metadata {
  "Dyad": {
    "icons": {"default": "dyad://TranslationalComponents/QuadraticSpeedDependentForce.svg"}
  }
}
end
Flattened Source
dyad
"""
Quadratic dependency of force versus speed.

Model of force, quadratically dependent on velocity of flange. Parameter `ForceDirection`
chooses whether the direction of force is the same in both directions of movement or not.

When `ForceDirection = true`:
```math
f = -f_{nominal} \\cdot \\left(\\frac{v}{v_{nominal}}\\right)^2
```
When `ForceDirection = false`:
```math
f = -f_{nominal} \\cdot \\frac{v \\cdot |v|}{v_{nominal}^2}
```
"""
component QuadraticSpeedDependentForce
  "Flange of component"
  flange = Flange() {"Dyad": {"placement": {"icon": {"x1": 950, "y1": 450, "x2": 1050, "y2": 550}}}}
  "Support/housing of component"
  support = Flange() {"Dyad": {"placement": {"icon": {"x1": 450, "y1": 950, "x2": 550, "y2": 1050}}}}
  "Distance between flange and support (= flange.s - support.s)"
  variable s::Length
  "Accelerating force acting at flange (= flange.f)"
  variable f::Dyad.Force
  "Nominal force (if negative, force is acting as load in positive direction of motion)"
  parameter f_nominal::Dyad.Force
  "Same direction of force in both directions of motion"
  structural parameter ForceDirection::Boolean = true
  "Nominal speed"
  parameter v_nominal::Velocity(min = eps(Float64))
  "Velocity of flange with respect to support (= der(s))"
  variable v::Velocity
relations
  s = flange.s - support.s
  support.f = -flange.f
  f = flange.f
  v = der(s)
  if ForceDirection
    f = -f_nominal * (v / v_nominal) ^ 2
  else
    f = -f_nominal * v * abs(v) / v_nominal ^ 2
  end
metadata {
  "Dyad": {
    "icons": {"default": "dyad://TranslationalComponents/QuadraticSpeedDependentForce.svg"}
  }
}
end


Test Cases

No test cases defined.