CTRE Motion Magic Expo Control

Almost all motion magic expo control comments indicate voltage control, but what about current. So knowing that you need kv, ka for expo control you could determine that from sysId with either voltage or current, but it seems like both possibilities are supported because their is motionMagicVoltage and motionMagicTorqueCurrent. So the motion magic configs have maxcruise, max accel, max jerk, expokv, and expoka. Shouldn’t they have expokvvolts, expokavolts, expokvcurrent, and expokacurrent. Since both control schemes share the same config.

As mentioned in our Motion Magic® Expo documentation, the Expo_kV and Expo_kA are entirely separate from your slot gains and always use volts. This is because Expo_kV and Expo_kA are the characteristics of the profile based on the mechanism characteristics and the supply voltage. Defining the two in terms of any other units is meaningless, as only units of voltage can actually define the exponential curve—kV defines the max velocity, and kV/kA defines acceleration.

If you wanted to, you can characterize the profile to be slower than what the mechanism is actually capable of. It’s also safer to configure Expo_kV and Expo_kA to be larger than necessary, which is the opposite of slot gains (where smaller is safer).

From there, your slot gains are configured in whatever output units you actually want to use. These can be in entirely different units, and even in the same units they may be smaller than your Expo_kV and Expo_kA. For example, most teams don’t run a kA on swerve azimuth with our Swerve API, even though we default to MotionMagicExpo and configure an Expo_kA.

So the exponential curve’s kv and ka values requires Volts in the numerator for all motion magic expo control types, but there are voltage and current expo control types?