Ejemplo n.º 1
0
        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 };
        }
Ejemplo n.º 2
0
 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};
 }
Ejemplo n.º 3
0
 public PID(PIDSettings settings) : base(settings)
 {
 }
Ejemplo n.º 4
0
 public PID(PIDSettings settings)
 {
     Settings = settings;
 }
Ejemplo n.º 5
0
 public PIDWindup(PIDSettings settings)
     : base(settings)
 {
     Vector3D.Multiply(settings.WindupLimit, -1F, _negativeWindupLimit);
 }
Ejemplo n.º 6
0
 public PIDWindup(PIDSettings settings)
     : base(settings)
 {
 }