Skip to content
LIBRARY
PlanarMechanics.FixedRotation.md

PlanarMechanics.FixedRotation

Fixed angular offset between two frames with no translational offset.

Positions are rigidly connected while orientation differs by a fixed angle alpha.

This component extends from PartialTwoFrames

Usage

MultibodyComponents.PlanarMechanics.FixedRotation(alpha=0, render=true)

Parameters:

NameDescriptionUnitsDefault value
alphaFixed rotation angle between frame_a and frame_brad0
renderRender the rotation in animationstrue

Connectors

  • frame_a - Coordinate system (2-dim.) fixed to the component with one cut-force and cut-torque.

All variables are resolved in the planar world frame. (Frame2D)

  • frame_b - Coordinate system (2-dim.) fixed to the component with one cut-force and cut-torque.

All variables are resolved in the planar world frame. (Frame2D)

Behavior

frame_a.x(t)=frame_b.x(t)frame_a.y(t)=frame_b.y(t)alpha+frame_a.phi(t)=frame_b.phi(t)frame_a.fx(t)+frame_b.fx(t)=0frame_b.fy(t)+frame_a.fy(t)=0frame_b.tau(t)+frame_a.tau(t)=0

Source

dyad
"""
Fixed angular offset between two frames with no translational offset.

Positions are rigidly connected while orientation differs by a fixed angle `alpha`.
"""
component FixedRotation
  extends PartialTwoFrames
  "Fixed rotation angle between frame_a and frame_b"
  parameter alpha::Angle = 0
  "Render the rotation in animations"
  parameter render::Boolean = true
relations
  frame_a.x = frame_b.x
  frame_a.y = frame_b.y
  frame_a.phi + alpha = frame_b.phi
  frame_a.fx + frame_b.fx = 0
  frame_a.fy + frame_b.fy = 0
  frame_a.tau + frame_b.tau = 0
metadata {"Dyad": {"icons": {"default": "dyad://MultibodyComponents/FixedRotation.svg"}}}
end
Flattened Source
dyad
"""
Fixed angular offset between two frames with no translational offset.

Positions are rigidly connected while orientation differs by a fixed angle `alpha`.
"""
component FixedRotation
  frame_a = Frame2D() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 50, "y1": 450, "x2": 150, "y2": 550, "rot": 0}
      },
      "tags": []
    }
  }
  frame_b = Frame2D() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 850, "y1": 450, "x2": 950, "y2": 550, "rot": 0}
      },
      "tags": []
    }
  }
  "Fixed rotation angle between frame_a and frame_b"
  parameter alpha::Angle = 0
  "Render the rotation in animations"
  parameter render::Boolean = true
relations
  frame_a.x = frame_b.x
  frame_a.y = frame_b.y
  frame_a.phi + alpha = frame_b.phi
  frame_a.fx + frame_b.fx = 0
  frame_a.fy + frame_b.fy = 0
  frame_a.tau + frame_b.tau = 0
metadata {"Dyad": {"icons": {"default": "dyad://MultibodyComponents/FixedRotation.svg"}}}
end


Test Cases

No test cases defined.

  • Examples

  • Experiments

  • Analyses