Added PelvicInflamatoryDisease

This commit is contained in:
Ryan Manley
2023-01-14 10:37:09 -07:00
parent da6ccb19d1
commit c454a08eb1
4 changed files with 162 additions and 38 deletions
@@ -0,0 +1,59 @@
// 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.robot.commands;
import edu.wpi.first.wpilibj2.command.CommandBase;
import frc4388.utility.Gains;
public abstract class PelvicInflamitoryDisease extends CommandBase {
protected Gains gains;
private double output = 0;
/** Creates a new PelvicInflamitoryDisease. */
public PelvicInflamitoryDisease(double kp, double ki, double kd, double kf) {
gains = new Gains(kp, ki, kd, kf, 0);
}
public PelvicInflamitoryDisease(Gains gains) {
this.gains = gains;
}
/** produces the error from the setpoint */
public abstract double getError();
/** figure it out bitch */
public abstract void runWithOutput(double output);
// Called when the command is initially scheduled.
@Override
public void initialize() {
output = 0;
}
private double prevError, cumError = 0;
// Called every time the scheduler runs while the command is scheduled.
@Override
public void execute() {
double error = getError();
cumError += error;
double delta = error - prevError;
output = error * gains.kP;
output += cumError * gains.kI;
output += delta * gains.kD;
output += gains.kF;
runWithOutput(output);
}
// Called once the command ends or is interrupted.
@Override
public void end(boolean interrupted) {}
// Returns true when the command should end.
@Override
public boolean isFinished() {
return false;
}
}