LIBRARY
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:
| Name | Description | Units | Default value |
|---|---|---|---|
alpha | Fixed rotation angle between frame_a and frame_b | rad | 0 |
render | Render the rotation in animations | – | true |
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
julia
using MultibodyComponents #hide
using ModelingToolkit #hide
@variables alpha #hide
@variables render #hide
@named sys = MultibodyComponents.PlanarMechanics.FixedRotation(alpha=alpha, render=render) #hide
full_equations(sys) #hide<< @example-block not executed in draft mode >>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"}}}
endFlattened 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"}}}
endTest Cases
No test cases defined.
Related
Examples
Experiments
Analyses