KinematicPTP
A component emitting a trajectory created by the point_to_point trajectory generator.
The trajectory exhibits piecewise constant acceleration, piecewise linear velocity and piecewise quadratic position curves, subject to maximum velocity and acceleration constraints.
The outputs are:
q: Positionqd: Velocityqdd: Acceleration
Usage
MultibodyComponents.KinematicPTP(q0=fill(0.0, nout), q1=fill(1.0, nout), qd_max=fill(1.0, nout), qdd_max=fill(1.0, nout))
Parameters:
| Name | Description | Units | Default value |
|---|---|---|---|
nout | Number of output axes | – | 1 |
q0 | Initial position for each axis | – | fill(0, nout) |
q1 | Final position for each axis | – | fill(1, nout) |
qd_max | Maximum velocity for each axis | – | fill(1, nout) |
qdd_max | Maximum acceleration for each axis | – | fill(1, nout) |
Connectors
q- This connector represents a real signal as an output from a component (RealOutput)qd- This connector represents a real signal as an output from a component (RealOutput)qdd- This connector represents a real signal as an output from a component (RealOutput)
Behavior
Source
"""
A component emitting a trajectory created by the `point_to_point` trajectory generator.
The trajectory exhibits piecewise constant acceleration, piecewise linear velocity
and piecewise quadratic position curves, subject to maximum velocity and acceleration
constraints.
The outputs are:
- `q`: Position
- `qd`: Velocity
- `qdd`: Acceleration
"""
component KinematicPTP
"Position output for each axis"
q = [RealOutput() for i in 1:nout] {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 960, "y1": 150, "x2": 1060, "y2": 250, "rot": 0}
},
"tags": []
}
}
"Velocity output for each axis"
qd = [RealOutput() for i in 1:nout] {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 960, "y1": 450, "x2": 1060, "y2": 550, "rot": 0}
},
"tags": []
}
}
"Acceleration output for each axis"
qdd = [RealOutput() for i in 1:nout] {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 960, "y1": 750, "x2": 1060, "y2": 850, "rot": 0}
},
"tags": []
}
}
"Number of output axes"
structural parameter nout::Integer = 1
"Initial position for each axis"
parameter q0::Real[nout] = fill(0.0, nout)
"Final position for each axis"
parameter q1::Real[nout] = fill(1.0, nout)
"Maximum velocity for each axis"
parameter qd_max::Real[nout] = fill(1.0, nout)
"Maximum acceleration for each axis"
parameter qdd_max::Real[nout] = fill(1.0, nout)
relations
for i in 1:nout
q[i] = MultibodyComponents.ptp_q(time, q0[i], q1[i], qd_max[i], qdd_max[i])
qd[i] = MultibodyComponents.ptp_qd(time, q0[i], q1[i], qd_max[i], qdd_max[i])
qdd[i] = MultibodyComponents.ptp_qdd(time, q0[i], q1[i], qd_max[i], qdd_max[i])
end
metadata {"Dyad": {"icons": {"default": "dyad://MultibodyComponents/KinematicPTP.svg"}}}
endFlattened Source
"""
A component emitting a trajectory created by the `point_to_point` trajectory generator.
The trajectory exhibits piecewise constant acceleration, piecewise linear velocity
and piecewise quadratic position curves, subject to maximum velocity and acceleration
constraints.
The outputs are:
- `q`: Position
- `qd`: Velocity
- `qdd`: Acceleration
"""
component KinematicPTP
"Position output for each axis"
q = [RealOutput() for i in 1:nout] {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 960, "y1": 150, "x2": 1060, "y2": 250, "rot": 0}
},
"tags": []
}
}
"Velocity output for each axis"
qd = [RealOutput() for i in 1:nout] {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 960, "y1": 450, "x2": 1060, "y2": 550, "rot": 0}
},
"tags": []
}
}
"Acceleration output for each axis"
qdd = [RealOutput() for i in 1:nout] {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 960, "y1": 750, "x2": 1060, "y2": 850, "rot": 0}
},
"tags": []
}
}
"Number of output axes"
structural parameter nout::Integer = 1
"Initial position for each axis"
parameter q0::Real[nout] = fill(0.0, nout)
"Final position for each axis"
parameter q1::Real[nout] = fill(1.0, nout)
"Maximum velocity for each axis"
parameter qd_max::Real[nout] = fill(1.0, nout)
"Maximum acceleration for each axis"
parameter qdd_max::Real[nout] = fill(1.0, nout)
relations
for i in 1:nout
q[i] = MultibodyComponents.ptp_q(time, q0[i], q1[i], qd_max[i], qdd_max[i])
qd[i] = MultibodyComponents.ptp_qd(time, q0[i], q1[i], qd_max[i], qdd_max[i])
qdd[i] = MultibodyComponents.ptp_qdd(time, q0[i], q1[i], qd_max[i], qdd_max[i])
end
metadata {"Dyad": {"icons": {"default": "dyad://MultibodyComponents/KinematicPTP.svg"}}}
endTest Cases
No test cases defined.
Related
Examples
Experiments
Analyses