CoreTalonFXSetControl(MotionMagicVelocityVoltage) Method
Requests Motion Magic® to target a final velocity using a motion
profile. This allows smooth transitions between velocity set
points. Users can optionally provide a voltage feedforward.
Motion Magic® Velocity produces a motion profile in real-time
while attempting to honor the specified Acceleration and Jerk
value. If the specified acceleration is zero, the Acceleration
under Motion Magic® configuration parameter is used instead. This
allows for runtime adjustment of acceleration for advanced users.
Jerk is also specified in the Motion Magic® persistent
configuration values. If Jerk is set to zero, Motion Magic® will
produce a trapezoidal acceleration profile. Target velocity can
also be changed on-the-fly and Motion Magic® will do its best to
adjust the profile. This control mode is voltage-based, so
relevant closed-loop gains will use Volts for the numerator.
MotionMagicVelocityVoltage Parameters
- Velocity – Target velocity to drive toward in
rotations per second. This can be
changed on-the
fly.
- Acceleration – This is the absolute Acceleration
to use generating the profile. If
this parameter is zero, the
Acceleration persistent
configuration parameter is used
instead. Acceleration is in
rotations per second squared. If
nonzero, the signage does not
matter as the absolute value is
used.
- EnableFOC – Set to true to use FOC commutation
(requires Phoenix Pro), which
increases peak power by ~15%. Set to
false to use trapezoidal commutation.
FOC improves motor performance by
leveraging torque (current) control.
However, this may be inconvenient for
applications that require specifying
duty cycle or voltage.
CTR-Electronics has developed a hybrid
method that combines the performances
gains of FOC while still allowing
applications to provide duty cycle or
voltage demand. This not to be
confused with simple sinusoidal
control or phase voltage control which
lacks the performance
gains.
- FeedForward – Feedforward to apply in
volts
- Slot – Select which gains are applied by selecting
the slot. Use the configuration api to set
the gain values for the selected slot
before enabling this feature. Slot must be
within [0,2].
- OverrideBrakeDurNeutral – Set to true to
static-brake the rotor
when output is zero (or
within deadband). Set
to false to use the
NeutralMode
configuration setting
(default). This flag
exists to provide the
fundamental behavior of
this control when output
is zero, which is to
provide 0V to the
motor.
Namespace: CTRE.Phoenix6.Hardware.CoreAssembly: Phoenix6 (in Phoenix6.dll) Version: 1.0.0
public StatusCode SetControl(
MotionMagicVelocityVoltage request
)
member SetControl :
request : MotionMagicVelocityVoltage -> StatusCode
- request MotionMagicVelocityVoltage
- Control object to request of the device
StatusCodeCode response of the request