BevelGear1D
Ideal gear with a 1D rotation axis whose two shaft axes differ in 3D.
The gear relation itself is one-dimensional and unconditional. What makes this component more than RotationalComponents.Components.IdealGear is the bearing reaction: because n_a and n_b (both resolved in frame_a) generally point in different directions, the vector sum -e_a*flange_a.tau - e_b*flange_b.tau does not vanish even though the scalar torque balance 0 = ratio*flange_a.tau + flange_b.tau holds. That residual is the torque the bearing must carry, and it is applied to frame_a.
There is no inertia and no gyroscopic term: the reaction is purely static. See Mounting1D for the meaning of drive_train_mechanics_3d.
Usage
MultibodyComponents.BevelGear1D(ratio=1, n_a=[1, 0, 0], n_b=[1, 0, 0], e_a=normalize_(n_a), e_b=normalize_(n_b))
Parameters:
| Name | Description | Units | Default value |
|---|---|---|---|
drive_train_mechanics_3d | Expose the bearing frame frame_a and apply the bearing reaction to it. Structural: when false, neither the connector nor the reaction equations are emitted. | – | true |
ratio | Gear speed ratio (flange_a.phi = ratio * flange_b.phi) | – | 1 |
n_a | Axis of rotation of flange_a, resolved in frame_a | – | [1, 0, 0] |
n_b | Axis of rotation of flange_b, resolved in frame_a | – | [1, 0, 0] |
Connectors
flange_a- This connector represents a rotational spline with angle and torque as the potential and flow variables, respectively. (Spline)flange_b- This connector represents a rotational spline with angle and torque as the potential and flow variables, respectively. (Spline)frame_a- Frame3D is the fundamental 3D connector used for 6DOF motion. Most components have one or severalFrame
connectors that can be connected together (Frame3D)
Behavior
Dict{MIME{Symbol("text/plain")}, String} with 1 entry: MIME type text/plain => "Error displaying result"
Source
"""
Ideal gear with a 1D rotation axis whose two shaft axes differ in 3D.
The gear relation itself is one-dimensional and unconditional. What makes this
component more than `RotationalComponents.Components.IdealGear` is the bearing
reaction: because `n_a` and `n_b` (both resolved in `frame_a`) generally point in
different directions, the vector sum `-e_a*flange_a.tau - e_b*flange_b.tau` does
not vanish even though the scalar torque balance
`0 = ratio*flange_a.tau + flange_b.tau` holds. That residual *is* the torque the
bearing must carry, and it is applied to `frame_a`.
There is no inertia and no gyroscopic term: the reaction is purely static. See
`Mounting1D` for the meaning of `drive_train_mechanics_3d`.
"""
component BevelGear1D
flange_a = Spline() {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": -50, "y1": 450, "x2": 50, "y2": 550, "rot": 180}
},
"tags": []
}
}
flange_b = Spline() {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 950, "y1": 450, "x2": 1050, "y2": 550, "rot": 0}
},
"tags": []
}
}
frame_a = Frame3D() if drive_train_mechanics_3d {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 450, "y1": 950, "x2": 550, "y2": 1050, "rot": 90}
},
"tags": []
}
}
"Expose the bearing frame `frame_a` and apply the bearing reaction to it. Structural: when false, neither the connector nor the reaction equations are emitted."
structural parameter drive_train_mechanics_3d::Boolean = true
"Gear speed ratio (flange_a.phi = ratio * flange_b.phi)"
parameter ratio::Real = 1
"Axis of rotation of flange_a, resolved in frame_a"
parameter n_a::Real[3] = [1, 0, 0]
"Axis of rotation of flange_b, resolved in frame_a"
parameter n_b::Real[3] = [1, 0, 0]
final parameter e_a::Real[3] = normalize_(n_a)
final parameter e_b::Real[3] = normalize_(n_b)
relations
flange_a.phi = ratio * flange_b.phi
0 = ratio * flange_a.tau + flange_b.tau
if drive_train_mechanics_3d
frame_a.f = [0, 0, 0]
frame_a.tau = -e_a * flange_a.tau - e_b * flange_b.tau
end
metadata {
"Dyad": {
"icons": {"default": "dyad://MultibodyComponents/BevelGear1D.svg"},
"labels": [
{
"label": "$(instance)",
"x": 500,
"y": 120,
"rot": 0,
"attrs": {"font-size": "140"}
}
]
}
}
endFlattened Source
"""
Ideal gear with a 1D rotation axis whose two shaft axes differ in 3D.
The gear relation itself is one-dimensional and unconditional. What makes this
component more than `RotationalComponents.Components.IdealGear` is the bearing
reaction: because `n_a` and `n_b` (both resolved in `frame_a`) generally point in
different directions, the vector sum `-e_a*flange_a.tau - e_b*flange_b.tau` does
not vanish even though the scalar torque balance
`0 = ratio*flange_a.tau + flange_b.tau` holds. That residual *is* the torque the
bearing must carry, and it is applied to `frame_a`.
There is no inertia and no gyroscopic term: the reaction is purely static. See
`Mounting1D` for the meaning of `drive_train_mechanics_3d`.
"""
component BevelGear1D
flange_a = Spline() {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": -50, "y1": 450, "x2": 50, "y2": 550, "rot": 180}
},
"tags": []
}
}
flange_b = Spline() {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 950, "y1": 450, "x2": 1050, "y2": 550, "rot": 0}
},
"tags": []
}
}
frame_a = Frame3D() if drive_train_mechanics_3d {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 450, "y1": 950, "x2": 550, "y2": 1050, "rot": 90}
},
"tags": []
}
}
"Expose the bearing frame `frame_a` and apply the bearing reaction to it. Structural: when false, neither the connector nor the reaction equations are emitted."
structural parameter drive_train_mechanics_3d::Boolean = true
"Gear speed ratio (flange_a.phi = ratio * flange_b.phi)"
parameter ratio::Real = 1
"Axis of rotation of flange_a, resolved in frame_a"
parameter n_a::Real[3] = [1, 0, 0]
"Axis of rotation of flange_b, resolved in frame_a"
parameter n_b::Real[3] = [1, 0, 0]
final parameter e_a::Real[3] = normalize_(n_a)
final parameter e_b::Real[3] = normalize_(n_b)
relations
flange_a.phi = ratio * flange_b.phi
0 = ratio * flange_a.tau + flange_b.tau
if drive_train_mechanics_3d
frame_a.f = [0, 0, 0]
frame_a.tau = -e_a * flange_a.tau - e_b * flange_b.tau
end
metadata {
"Dyad": {
"icons": {"default": "dyad://MultibodyComponents/BevelGear1D.svg"},
"labels": [
{
"label": "$(instance)",
"x": 500,
"y": 120,
"rot": 0,
"attrs": {"font-size": "140"}
}
]
}
}
endTest Cases
No test cases defined.
Related
Examples
Experiments
Analyses