CoreTalonFXSetControl(DifferentialMotionMagicVoltage) Method
Requests Motion Magic® to target a final position using a motion
profile, and PID to a differential position setpoint.
Motion Magic® produces a motion profile in real-time while
attempting to honor the Cruise Velocity, Acceleration, and Jerk
value specified via the Motion Magic® configuration values.
Target position can 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.
DifferentialMotionMagicVoltage Parameters
- TargetPosition – Average position to drive toward
in
rotations.
- DifferentialPosition – Differential position to
drive toward in
rotations.
- 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.
- TargetSlot – Select which gains are applied to the
primary controller 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].
- DifferentialSlot – Select which gains are applied
to the differential controller
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(
DifferentialMotionMagicVoltage request
)
member SetControl :
request : DifferentialMotionMagicVoltage -> StatusCode
- request DifferentialMotionMagicVoltage
- Control object to request of the device
StatusCodeCode response of the request