public PIDController(YoPIDGains yoPIDGains, String suffix, YoVariableRegistry registry) { super(suffix, registry); pdController = new PDController(yoPIDGains, suffix, registry); this.integralGain = yoPIDGains.getYoKi(); this.maxIntegralError = yoPIDGains.getYoMaxIntegralError(); this.maxFeedback = yoPIDGains.getYoMaximumFeedback(); integralLeakRatio = yoPIDGains.getYoIntegralLeakRatio(); }
public YoLimitedPIDGains(String suffix, double controlDT, YoVariableRegistry registry) { super(suffix, registry); maxKpRate = new YoDouble("maxKpRate" + suffix, registry); maxKdRate = new YoDouble("maxKdRate" + suffix, registry); maxKiRate = new YoDouble("maxKiRate" + suffix, registry); limitedKi = new RateLimitedYoVariable("limitedKi" + suffix, registry, maxKiRate, super.getYoKi(), controlDT); limitedKp = new RateLimitedYoVariable("limitedKp" + suffix, registry, maxKpRate, super.getYoKp(), controlDT); limitedKd = new RateLimitedYoVariable("limitedKd" + suffix, registry, maxKdRate, super.getYoKd(), controlDT); maxKpRate.set(Double.POSITIVE_INFINITY); maxKdRate.set(Double.POSITIVE_INFINITY); maxKiRate.set(Double.POSITIVE_INFINITY); }
assertEquals(kp, pidGains.getYoKp().getDoubleValue(), 1e-6); assertEquals(kd, pidGains.getYoKd().getDoubleValue(), 1e-6); assertEquals(ki, pidGains.getYoKi().getDoubleValue(), 1e-6); assertEquals(maxAcc, pidGains.getMaximumFeedback(), 1e-6); assertEquals(maxJerk, pidGains.getMaximumFeedbackRate(), 1e-6);
assertEquals(kp, pidGains.getYoKp().getDoubleValue(), 1e-6); assertEquals(kd, pidGains.getYoKd().getDoubleValue(), 1e-6); assertEquals(ki, pidGains.getYoKi().getDoubleValue(), 1e-6); assertEquals(maxAcc, pidGains.getMaximumFeedback(), 1e-6); assertEquals(maxJerk, pidGains.getMaximumFeedbackRate(), 1e-6);
assertEquals(kp, pidGains.getYoKp().getDoubleValue(), 1e-6); assertEquals(kd, pidGains.getYoKd().getDoubleValue(), 1e-6); assertEquals(ki, pidGains.getYoKi().getDoubleValue(), 1e-6); assertEquals(maxAcc, pidGains.getMaximumFeedback(), 1e-6); assertEquals(maxJerk, pidGains.getMaximumFeedbackRate(), 1e-6);