Skip to content
Rotational.InverseSpeedDependentTorque.md

Rotational.InverseSpeedDependentTorque ​

This component extends from PartialTorque

Usage ​

TranslatedComponents.Rotational.InverseSpeedDependentTorque(tau_nominal, w_nominal, w0=0.1)

Parameters: ​

NameDescriptionUnitsDefault value
useSupport–false
TorqueDirection–true
tau_nominalN.m
w_nominalrad/s
w0rad/s0.1

Connectors ​

  • flange - This connector represents a rotational spline with angle and torque as the potential and flow variables, respectively. (Spline)

  • support - This connector represents a rotational spline with angle and torque as the potential and flow variables, respectively. (Spline)

Variables ​

NameDescriptionUnits
phi_supportrad
phirad
wrad/s
tauN.m

Behavior ​

julia
using TranslatedComponents #hide
using ModelingToolkit #hide
@variables tau_nominal #hide
@variables w_nominal #hide
@variables w0 #hide
@named sys = TranslatedComponents.Rotational.InverseSpeedDependentTorque(tau_nominal=tau_nominal, w_nominal=w_nominal, w0=w0) #hide
full_equations(sys) #hide
<< @example-block not executed in draft mode >>

Source ​

dyad
component InverseSpeedDependentTorque
  extends PartialTorque
  parameter tau_nominal::Dyad.Torque
  structural parameter TorqueDirection::Boolean = true
  parameter w_nominal::Dyad.AngularVelocity(min = 1e-10)
  parameter w0::Dyad.AngularVelocity(final min = 1e-10) = 0.1
  variable w::Dyad.AngularVelocity
  variable tau::Dyad.Torque
relations
  w = der(phi)
  tau = -flange.tau
  if TorqueDirection
    tau = abs(w) < w0 ? tau_nominal * w_nominal / w0 : tau_nominal * w_nominal / abs(w)
  else
    tau = abs(w) < w0 ? tau_nominal * w / w0 : tau_nominal * w_nominal / w
  end
end
Flattened Source
dyad
component InverseSpeedDependentTorque
  flange = Spline()
  support = Spline() if useSupport
  structural parameter useSupport::Boolean = false
  variable phi_support::Dyad.Angle
  variable phi::Dyad.Angle
  parameter tau_nominal::Dyad.Torque
  structural parameter TorqueDirection::Boolean = true
  parameter w_nominal::Dyad.AngularVelocity(min = 1e-10)
  parameter w0::Dyad.AngularVelocity(final min = 1e-10) = 0.1
  variable w::Dyad.AngularVelocity
  variable tau::Dyad.Torque
relations
  if useSupport
    initial support.phi = phi_support
    initial support.tau = -flange.tau
  else
    phi_support = 0
  end
  phi = flange.phi - phi_support
  w = der(phi)
  tau = -flange.tau
  if TorqueDirection
    tau = abs(w) < w0 ? tau_nominal * w_nominal / w0 : tau_nominal * w_nominal / abs(w)
  else
    tau = abs(w) < w0 ? tau_nominal * w / w0 : tau_nominal * w_nominal / w
  end
metadata {}
end


Test Cases ​

No test cases defined.

  • Examples

  • Experiments

  • Analyses