MPITrajectory

Definition

typedef struct MPITrajectory {
    double    velocity;
    double    acceleration;
    double    deceleration;
    double    jerkPercent;
    double    accelerationJerk;
    double    decelerationJerk;
} MPITrajectory;

Description

MPITrajectory contains the motion profile parameters for simple point to point type motion.

NOTE: Not all firmware binaries support S_CURVE_JERK and VELOCITY_JERK motion types due to code space limitations. mpiMotionStart(...) returns MPIMotionMessagePROFILE_NOT_SUPPORTED if the controller does not support the requested move type.

velocity Rate of change of position. Specifies the constant slew rate for S_CURVE, TRAPEZOIDAL, S_CURVE_JERK, VELOCITY, and VELOCITY_JERK motion types.
Units are counts per second.
acceleration Rate of change of velocity. Specifies the initial ramp to reach constant velocity for TRAPEZOIDAL and VELOCITY motion types. Also, specifies the ramp from the initial jerk to the next jerk before constant velocity for S_CURVE, S_CURVE_JERK and VELOCITY_JERK motion types.
Units are counts per second * second.
deceleration Rate of change of velocity. Specifies the final ramp to reach zero velocity for TRAPEZOIDAL motion types. Also, specifies the ramp from the jerk after constant velocity to the final jerk for S_CURVE and S_CURVE_JERK motion types. Not applicable for VELOCITY and VELOCITY_JERK motion types.
Units are counts per second * second.
jerkPercent Portion of acceleration and deceleration ramp to perform jerk profile for S_CURVE, VELOCITY, S_CURVE_JERK, and VELOCITY_JERK motion types.
Units are in percent. Range is 0.0 to 100.0.
accelerationJerk Rate of change of acceleration. Specifies the initial jerk rates to reach constant velocity for S_CURVE_JERK and VELOCITY_JERK motion types.
Units are counts per second * second * second.
decelerationJerk Rate of change of deceleration. Specifies the final jerk rate to reach zero velocity for S_CURVE_JERK motion types. Not applicable for VELOCITY and VELOCITY_JERK motion types.
Units are counts per second * second * second.

Sample Code

MPITrajectory trajectory;
	
    mpiAxisTrajectory(axis, &trajectory);

    printf("Velocity %.3f\n"
           "Acceleration %.3f\n",
           trajectory.velocity,
           trajectory.acceleration);

See Also

MPIMotionType