PlanarMechanics.AbsoluteAcceleration
Measures absolute acceleration and angular acceleration of the origin of a frame connector.
Composes BasicAbsolutePosition (world) + double differentiation + TransformAbsoluteVector. Uses intermediate velocity variables to avoid nested der(der(...)). This is a sensor component: it reads kinematic quantities without exerting forces.
Usage
MultibodyComponents.PlanarMechanics.AbsoluteAcceleration()
Parameters:
| Name | Description | Units | Default value |
|---|---|---|---|
resolve_in_frame | – | MultibodyComponents.ResolveInFrame.FrameA() |
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_resolve- 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)
a_x- This connector represents a real signal as an output from a component (RealOutput)a_y- This connector represents a real signal as an output from a component (RealOutput)alpha- This connector represents a real signal as an output from a component (RealOutput)
Variables
| Name | Description | Units |
|---|---|---|
px | m | |
py | m | |
pphi | rad | |
vx | m/s | |
vy | m/s | |
vphi | rad/s |
Behavior
Source
"""
Measures absolute acceleration and angular acceleration of the origin of a frame connector.
Composes BasicAbsolutePosition (world) + double differentiation + TransformAbsoluteVector.
Uses intermediate velocity variables to avoid nested `der(der(...))`. This is a sensor
component: it reads kinematic quantities without exerting forces.
"""
component AbsoluteAcceleration
frame_a = Frame2D() {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": -100, "y1": 450, "x2": 0, "y2": 550, "rot": 0}
},
"tags": []
}
}
frame_resolve = Frame2D() if resolve_in_frame == MultibodyComponents.ResolveInFrame.FrameResolve() {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 450, "y1": -50, "x2": 550, "y2": 50, "rot": 0}
},
"tags": []
}
}
"x acceleration"
a_x = RealOutput() {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 960, "y1": 150, "x2": 1060, "y2": 250, "rot": 0}
},
"tags": []
}
}
"y acceleration"
a_y = RealOutput() {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 960, "y1": 450, "x2": 1060, "y2": 550, "rot": 0}
},
"tags": []
}
}
"angular acceleration"
alpha = RealOutput() {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 960, "y1": 750, "x2": 1060, "y2": 850, "rot": 0}
},
"tags": []
}
}
pos = BasicAbsolutePosition(resolve_in_frame = MultibodyComponents.ResolveInFrame.World())
transform = TransformAbsoluteVector(frame_in = MultibodyComponents.ResolveInFrame.World(), frame_out = resolve_in_frame) {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 450, "y1": 630, "x2": 550, "y2": 730, "rot": 0}
},
"tags": []
}
}
structural parameter resolve_in_frame::MultibodyComponents.ResolveInFrame = MultibodyComponents.ResolveInFrame.FrameA()
variable px::Length
variable py::Length
variable pphi::Angle
variable vx::Velocity
variable vy::Velocity
variable vphi::AngularVelocity
relations
connect(frame_a, pos.frame_a)
connect(frame_a, transform.frame_a)
if resolve_in_frame == MultibodyComponents.ResolveInFrame.FrameResolve()
connect(frame_resolve, transform.frame_resolve)
end
px = pos.x
py = pos.y
pphi = pos.phi
vx = der(px)
vy = der(py)
vphi = der(pphi)
transform.x_in = der(vx)
transform.y_in = der(vy)
transform.phi_in = der(vphi)
a_x = transform.x_out
a_y = transform.y_out
alpha = transform.phi_out
metadata {
"Dyad": {"icons": {"default": "dyad://MultibodyComponents/AbsoluteAcceleration.svg"}}
}
endFlattened Source
"""
Measures absolute acceleration and angular acceleration of the origin of a frame connector.
Composes BasicAbsolutePosition (world) + double differentiation + TransformAbsoluteVector.
Uses intermediate velocity variables to avoid nested `der(der(...))`. This is a sensor
component: it reads kinematic quantities without exerting forces.
"""
component AbsoluteAcceleration
frame_a = Frame2D() {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": -100, "y1": 450, "x2": 0, "y2": 550, "rot": 0}
},
"tags": []
}
}
frame_resolve = Frame2D() if resolve_in_frame == MultibodyComponents.ResolveInFrame.FrameResolve() {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 450, "y1": -50, "x2": 550, "y2": 50, "rot": 0}
},
"tags": []
}
}
"x acceleration"
a_x = RealOutput() {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 960, "y1": 150, "x2": 1060, "y2": 250, "rot": 0}
},
"tags": []
}
}
"y acceleration"
a_y = RealOutput() {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 960, "y1": 450, "x2": 1060, "y2": 550, "rot": 0}
},
"tags": []
}
}
"angular acceleration"
alpha = RealOutput() {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 960, "y1": 750, "x2": 1060, "y2": 850, "rot": 0}
},
"tags": []
}
}
pos = BasicAbsolutePosition(resolve_in_frame = MultibodyComponents.ResolveInFrame.World())
transform = TransformAbsoluteVector(frame_in = MultibodyComponents.ResolveInFrame.World(), frame_out = resolve_in_frame) {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 450, "y1": 630, "x2": 550, "y2": 730, "rot": 0}
},
"tags": []
}
}
structural parameter resolve_in_frame::MultibodyComponents.ResolveInFrame = MultibodyComponents.ResolveInFrame.FrameA()
variable px::Length
variable py::Length
variable pphi::Angle
variable vx::Velocity
variable vy::Velocity
variable vphi::AngularVelocity
relations
connect(frame_a, pos.frame_a)
connect(frame_a, transform.frame_a)
if resolve_in_frame == MultibodyComponents.ResolveInFrame.FrameResolve()
connect(frame_resolve, transform.frame_resolve)
end
px = pos.x
py = pos.y
pphi = pos.phi
vx = der(px)
vy = der(py)
vphi = der(pphi)
transform.x_in = der(vx)
transform.y_in = der(vy)
transform.phi_in = der(vphi)
a_x = transform.x_out
a_y = transform.y_out
alpha = transform.phi_out
metadata {
"Dyad": {"icons": {"default": "dyad://MultibodyComponents/AbsoluteAcceleration.svg"}}
}
endTest Cases
No test cases defined.
Related
Examples
Experiments
Analyses
Tests