public static PIDLoop DeepCopy(PIDLoop source) { PIDLoop newLoop = new PIDLoop { LastSampleTime = source.LastSampleTime, Kp = source.Kp, Ki = source.Ki, Kd = source.Kd, Input = source.Input, Setpoint = source.Setpoint, Error = source.Error, Output = source.Output, MinOutput = source.MinOutput, MaxOutput = source.MaxOutput, ErrorSum = source.ErrorSum, PTerm = source.PTerm, ITerm = source.ITerm, DTerm = source.DTerm, ExtraUnwind = source.ExtraUnwind, ChangeRate = source.ChangeRate, unWinding = source.unWinding }; return(newLoop); }
// Required for all IDumpers for them to work, but can't enforced by the interface because it's static: public static PIDLoop CreateFromDump(SafeSharedObjects shared, Dump d) { var newObj = new PIDLoop(); newObj.LoadDump(d); return(newObj); }
public void CanEqualsPIDLoop() { var pidLoop1 = new PIDLoop(); var pidLoop2 = new PIDLoop(); var op = new OperandPair(pidLoop1, pidLoop2); var result = calc.Equal(op); Assert.IsFalse((bool)result); op = new OperandPair(pidLoop1, pidLoop1); result = calc.Equal(op); Assert.IsTrue((bool)result); }
public static PIDLoop DeepCopy(PIDLoop source) { PIDLoop newLoop = new PIDLoop { LastSampleTime = source.LastSampleTime, Kp = source.Kp, Ki = source.Ki, Kd = source.Kd, Input = source.Input, Setpoint = source.Setpoint, Error = source.Error, Output = source.Output, MaxOutput = source.MaxOutput, ErrorSum = source.ErrorSum, PTerm = source.PTerm, ITerm = source.ITerm, DTerm = source.DTerm, ExtraUnwind = source.ExtraUnwind, ChangeRate = source.ChangeRate, unWinding = source.unWinding }; return newLoop; }
public TorquePI() { Loop = new PIDLoop(); Ts = 1; TorqueAdjust = new MovingAverage(); }