private static PIDSettings[] GetPIDSettings() { PIDSettings pitchSettings = new PIDSettings { DerivativeGain = 3.2F, IntegralGain = 0F, ProportionalGain = -.5F, WindupLimit = 2000F }; PIDSettings rollSettings = new PIDSettings { DerivativeGain = 3.2F, IntegralGain = 0F, ProportionalGain = -.5F, WindupLimit = 2000F }; PIDSettings yawSettings = new PIDSettings { DerivativeGain = 3.2F, IntegralGain = 0F, ProportionalGain = -.5F, WindupLimit = 2000F }; return new[] { pitchSettings, rollSettings, yawSettings }; }
public AxesController(PIDSettings pitchSettings, PIDSettings rollSettings, PIDSettings yawSettings, bool useWindup) { if (useWindup) { _pitchController = new PIDWindup(pitchSettings); _rollController = new PIDWindup(rollSettings); _yawController = new PIDWindup(yawSettings); } else { _pitchController = new ControlAlgorithms.Implementations.PID.PID(pitchSettings); _rollController = new ControlAlgorithms.Implementations.PID.PID(rollSettings); _yawController = new ControlAlgorithms.Implementations.PID.PID(yawSettings); } Axes = new AircraftPrincipalAxes(){Pitch = 0, Roll = 0, Yaw = 0}; }
public PID(PIDSettings settings) : base(settings) { }
public PID(PIDSettings settings) { Settings = settings; }
public PIDWindup(PIDSettings settings) : base(settings) { Vector3D.Multiply(settings.WindupLimit, -1F, _negativeWindupLimit); }
public PIDWindup(PIDSettings settings) : base(settings) { }