WPILibC++  2021.3.1
frc::SimpleMotorFeedforward< Distance > Class Template Reference

A helper class that computes feedforward voltages for a simple permanent-magnet DC motor. More...

#include <frc/controller/SimpleMotorFeedforward.h>

Public Types

using Velocity = units::compound_unit< Distance, units::inverse< units::seconds > >
 
using Acceleration = units::compound_unit< Velocity, units::inverse< units::seconds > >
 
using kv_unit = units::compound_unit< units::volts, units::inverse< Velocity > >
 
using ka_unit = units::compound_unit< units::volts, units::inverse< Acceleration > >
 

Public Member Functions

constexpr SimpleMotorFeedforward (units::volt_t kS, units::unit_t< kv_unit > kV, units::unit_t< ka_unit > kA=units::unit_t< ka_unit >(0))
 Creates a new SimpleMotorFeedforward with the specified gains. More...
 
constexpr units::volt_t Calculate (units::unit_t< Velocity > velocity, units::unit_t< Acceleration > acceleration=units::unit_t< Acceleration >(0)) const
 Calculates the feedforward from the gains and setpoints. More...
 
constexpr units::unit_t< Velocity > MaxAchievableVelocity (units::volt_t maxVoltage, units::unit_t< Acceleration > acceleration) const
 Calculates the maximum achievable velocity given a maximum voltage supply and an acceleration. More...
 
constexpr units::unit_t< Velocity > MinAchievableVelocity (units::volt_t maxVoltage, units::unit_t< Acceleration > acceleration) const
 Calculates the minimum achievable velocity given a maximum voltage supply and an acceleration. More...
 
constexpr units::unit_t< Acceleration > MaxAchievableAcceleration (units::volt_t maxVoltage, units::unit_t< Velocity > velocity) const
 Calculates the maximum achievable acceleration given a maximum voltage supply and a velocity. More...
 
constexpr units::unit_t< Acceleration > MinAchievableAcceleration (units::volt_t maxVoltage, units::unit_t< Velocity > velocity) const
 Calculates the minimum achievable acceleration given a maximum voltage supply and a velocity. More...
 

Public Attributes

units::volt_t kS {0}
 
units::unit_t< kv_unit > kV {0}
 
units::unit_t< ka_unit > kA {0}
 

Detailed Description

template<class Distance>
class frc::SimpleMotorFeedforward< Distance >

A helper class that computes feedforward voltages for a simple permanent-magnet DC motor.

Constructor & Destructor Documentation

◆ SimpleMotorFeedforward()

template<class Distance >
constexpr frc::SimpleMotorFeedforward< Distance >::SimpleMotorFeedforward ( units::volt_t  kS,
units::unit_t< kv_unit >  kV,
units::unit_t< ka_unit >  kA = units::unit_t<ka_unit>(0) 
)
inlineconstexpr

Creates a new SimpleMotorFeedforward with the specified gains.

Parameters
kSThe static gain, in volts.
kVThe velocity gain, in volt seconds per distance.
kAThe acceleration gain, in volt seconds^2 per distance.

Member Function Documentation

◆ Calculate()

template<class Distance >
constexpr units::volt_t frc::SimpleMotorFeedforward< Distance >::Calculate ( units::unit_t< Velocity >  velocity,
units::unit_t< Acceleration >  acceleration = units::unit_t<Acceleration>(0) 
) const
inlineconstexpr

Calculates the feedforward from the gains and setpoints.

Parameters
velocityThe velocity setpoint, in distance per second.
accelerationThe acceleration setpoint, in distance per second^2.
Returns
The computed feedforward, in volts.

◆ MaxAchievableAcceleration()

template<class Distance >
constexpr units::unit_t<Acceleration> frc::SimpleMotorFeedforward< Distance >::MaxAchievableAcceleration ( units::volt_t  maxVoltage,
units::unit_t< Velocity >  velocity 
) const
inlineconstexpr

Calculates the maximum achievable acceleration given a maximum voltage supply and a velocity.

Useful for ensuring that velocity and acceleration constraints for a trapezoidal profile are simultaneously achievable - enter the velocity constraint, and this will give you a simultaneously-achievable acceleration constraint.

Parameters
maxVoltageThe maximum voltage that can be supplied to the motor.
velocityThe velocity of the motor.
Returns
The maximum possible acceleration at the given velocity.

◆ MaxAchievableVelocity()

template<class Distance >
constexpr units::unit_t<Velocity> frc::SimpleMotorFeedforward< Distance >::MaxAchievableVelocity ( units::volt_t  maxVoltage,
units::unit_t< Acceleration >  acceleration 
) const
inlineconstexpr

Calculates the maximum achievable velocity given a maximum voltage supply and an acceleration.

Useful for ensuring that velocity and acceleration constraints for a trapezoidal profile are simultaneously achievable - enter the acceleration constraint, and this will give you a simultaneously-achievable velocity constraint.

Parameters
maxVoltageThe maximum voltage that can be supplied to the motor.
accelerationThe acceleration of the motor.
Returns
The maximum possible velocity at the given acceleration.

◆ MinAchievableAcceleration()

template<class Distance >
constexpr units::unit_t<Acceleration> frc::SimpleMotorFeedforward< Distance >::MinAchievableAcceleration ( units::volt_t  maxVoltage,
units::unit_t< Velocity >  velocity 
) const
inlineconstexpr

Calculates the minimum achievable acceleration given a maximum voltage supply and a velocity.

Useful for ensuring that velocity and acceleration constraints for a trapezoidal profile are simultaneously achievable - enter the velocity constraint, and this will give you a simultaneously-achievable acceleration constraint.

Parameters
maxVoltageThe maximum voltage that can be supplied to the motor.
velocityThe velocity of the motor.
Returns
The minimum possible acceleration at the given velocity.

◆ MinAchievableVelocity()

template<class Distance >
constexpr units::unit_t<Velocity> frc::SimpleMotorFeedforward< Distance >::MinAchievableVelocity ( units::volt_t  maxVoltage,
units::unit_t< Acceleration >  acceleration 
) const
inlineconstexpr

Calculates the minimum achievable velocity given a maximum voltage supply and an acceleration.

Useful for ensuring that velocity and acceleration constraints for a trapezoidal profile are simultaneously achievable - enter the acceleration constraint, and this will give you a simultaneously-achievable velocity constraint.

Parameters
maxVoltageThe maximum voltage that can be supplied to the motor.
accelerationThe acceleration of the motor.
Returns
The minimum possible velocity at the given acceleration.

The documentation for this class was generated from the following file: