2021-12-06 16:38:29 -07:00
|
|
|
// Copyright (c) FIRST and other WPILib contributors.
|
|
|
|
|
// Open Source Software; you can modify and/or share it under the terms of
|
|
|
|
|
// the WPILib BSD license file in the root directory of this project.
|
|
|
|
|
|
|
|
|
|
package frc4388.utility;
|
|
|
|
|
|
|
|
|
|
/** Add your docs here. */
|
|
|
|
|
public class Gains {
|
2022-01-11 11:05:52 -07:00
|
|
|
public double m_kP;
|
|
|
|
|
public double m_kI;
|
|
|
|
|
public double m_kD;
|
|
|
|
|
public double m_kF;
|
|
|
|
|
public int m_kIzone;
|
|
|
|
|
public double m_kPeakOutput;
|
|
|
|
|
public double m_kmaxOutput;
|
|
|
|
|
public double m_kminOutput;
|
2021-12-06 16:38:29 -07:00
|
|
|
|
2022-01-11 11:05:52 -07:00
|
|
|
/**
|
|
|
|
|
* Creates Gains object for PIDs
|
|
|
|
|
* @param kP The P value.
|
|
|
|
|
* @param kI The I value.
|
|
|
|
|
* @param kD The D value.
|
|
|
|
|
* @param kF The F value.
|
|
|
|
|
* @param kIzone The zone of the I value.
|
|
|
|
|
* @param kPeakOutput The peak output setting the motors to run the gains at, in both forward and reverse directions. By default 1.0.
|
|
|
|
|
*/
|
|
|
|
|
public Gains(double kP, double kI, double kD, double kF, int kIzone, double kPeakOutput)
|
|
|
|
|
{
|
|
|
|
|
m_kP = kP;
|
|
|
|
|
m_kI = kI;
|
|
|
|
|
m_kD = kD;
|
|
|
|
|
m_kF = kF;
|
|
|
|
|
m_kIzone = kIzone;
|
|
|
|
|
m_kPeakOutput = kPeakOutput;
|
|
|
|
|
m_kmaxOutput = m_kPeakOutput;
|
|
|
|
|
m_kminOutput = -m_kPeakOutput;
|
|
|
|
|
}
|
2021-12-06 16:38:29 -07:00
|
|
|
|
2022-01-11 11:05:52 -07:00
|
|
|
/**
|
|
|
|
|
* Creates Gains object for PIDs
|
|
|
|
|
* @param kP The P value.
|
|
|
|
|
* @param kI The I value.
|
|
|
|
|
* @param kD The D value.
|
|
|
|
|
* @param kF The F value.
|
|
|
|
|
* @param kIzone The zone of the I value.
|
|
|
|
|
* @param kMinOutput The lowest output setting to run the gains at, usually in the reverse direction. By default -1.0.
|
|
|
|
|
* @param kMaxOutput The highest output setting to run the gains at, usually in the forward direction. By default 1.0.
|
|
|
|
|
*/
|
|
|
|
|
public Gains(double kP, double kI, double kD, double kF, int kIzone, double kMinOutput, double kMaxOutput)
|
|
|
|
|
{
|
|
|
|
|
m_kP = kP;
|
|
|
|
|
m_kI = kI;
|
|
|
|
|
m_kD = kD;
|
|
|
|
|
m_kF = kF;
|
|
|
|
|
m_kIzone = kIzone;
|
|
|
|
|
m_kminOutput = kMinOutput;
|
|
|
|
|
m_kmaxOutput = kMaxOutput;
|
2022-06-13 20:10:18 -06:00
|
|
|
m_kPeakOutput = Math.max(Math.abs(m_kminOutput), Math.abs(m_kmaxOutput));
|
2022-01-11 11:05:52 -07:00
|
|
|
}
|
2021-12-06 16:38:29 -07:00
|
|
|
}
|