@@ -660,8 +660,7 @@ static void stabilizationTask(void* parameters)
660
660
rateDesiredAxis [i ] = bound_sym (raw_input [i ], settings .ManualRate [i ]);
661
661
662
662
// Compute the inner loop
663
- actuatorDesiredAxis [i ] = pid_apply_setpoint (& pids [PID_GROUP_RATE + i ], get_deadband (i ), rateDesiredAxis [i ], gyro_filtered [i ]);
664
- actuatorDesiredAxis [i ] = bound_sym (actuatorDesiredAxis [i ],1.0f );
663
+ actuatorDesiredAxis [i ] = pid_apply_setpoint_antiwindup (& pids [PID_GROUP_RATE + i ], get_deadband (i ), rateDesiredAxis [i ], gyro_filtered [i ], -1.0f , 1.0f );
665
664
666
665
break ;
667
666
@@ -705,8 +704,7 @@ static void stabilizationTask(void* parameters)
705
704
rateDesiredAxis [i ] = bound_sym (curve_cmd * max_rate_filtered [i ], max_rate_filtered [i ]);
706
705
707
706
// Compute the inner loop
708
- actuatorDesiredAxis [i ] = pid_apply_setpoint (& pids [PID_GROUP_RATE + i ], get_deadband (i ), rateDesiredAxis [i ], gyro_filtered [i ]);
709
- actuatorDesiredAxis [i ] = bound_sym (actuatorDesiredAxis [i ], 1.0f );
707
+ actuatorDesiredAxis [i ] = pid_apply_setpoint_antiwindup (& pids [PID_GROUP_RATE + i ], get_deadband (i ), rateDesiredAxis [i ], gyro_filtered [i ], -1.0f , 1.0f );
710
708
711
709
break ;
712
710
@@ -730,7 +728,7 @@ static void stabilizationTask(void* parameters)
730
728
}
731
729
732
730
// Compute the inner loop
733
- actuatorDesiredAxis [i ] = pid_apply_setpoint (& pids [PID_GROUP_RATE + i ], get_deadband (i ), rateDesiredAxis [i ], gyro_filtered [i ]);
731
+ actuatorDesiredAxis [i ] = pid_apply_setpoint_antiwindup (& pids [PID_GROUP_RATE + i ], get_deadband (i ), rateDesiredAxis [i ], gyro_filtered [i ], -1.0f , 1.0f );
734
732
actuatorDesiredAxis [i ] = factor * raw_input [i ] + (1.0f - factor ) * actuatorDesiredAxis [i ];
735
733
actuatorDesiredAxis [i ] = bound_sym (actuatorDesiredAxis [i ], 1.0f );
736
734
@@ -747,7 +745,7 @@ static void stabilizationTask(void* parameters)
747
745
rateDesiredAxis [i ] = bound_sym (rateDesiredAxis [i ], settings .MaximumRate [i ]);
748
746
749
747
// Compute the inner loop
750
- actuatorDesiredAxis [i ] = pid_apply_setpoint (& pids [PID_GROUP_RATE + i ], get_deadband (i ), rateDesiredAxis [i ], gyro_filtered [i ]);
748
+ actuatorDesiredAxis [i ] = pid_apply_setpoint_antiwindup (& pids [PID_GROUP_RATE + i ], get_deadband (i ), rateDesiredAxis [i ], gyro_filtered [i ], -1.0f , 1.0f );
751
749
actuatorDesiredAxis [i ] = bound_sym (actuatorDesiredAxis [i ],1.0f );
752
750
753
751
break ;
@@ -772,8 +770,7 @@ static void stabilizationTask(void* parameters)
772
770
773
771
// Compute desired rate as input biased towards leveling
774
772
rateDesiredAxis [i ] = raw_input [i ] + weak_leveling ;
775
- actuatorDesiredAxis [i ] = pid_apply_setpoint (& pids [PID_GROUP_RATE + i ], get_deadband (i ), rateDesiredAxis [i ], gyro_filtered [i ]);
776
- actuatorDesiredAxis [i ] = bound_sym (actuatorDesiredAxis [i ],1.0f );
773
+ actuatorDesiredAxis [i ] = pid_apply_setpoint_antiwindup (& pids [PID_GROUP_RATE + i ], get_deadband (i ), rateDesiredAxis [i ], gyro_filtered [i ], -1.0f , 1.0f );
777
774
778
775
break ;
779
776
}
@@ -798,8 +795,7 @@ static void stabilizationTask(void* parameters)
798
795
rateDesiredAxis [i ] = bound_sym (tmpRateDesired , settings .MaximumRate [i ]);
799
796
}
800
797
801
- actuatorDesiredAxis [i ] = pid_apply_setpoint (& pids [PID_GROUP_RATE + i ], get_deadband (i ), rateDesiredAxis [i ], gyro_filtered [i ]);
802
- actuatorDesiredAxis [i ] = bound_sym (actuatorDesiredAxis [i ],1.0f );
798
+ actuatorDesiredAxis [i ] = pid_apply_setpoint_antiwindup (& pids [PID_GROUP_RATE + i ], get_deadband (i ), rateDesiredAxis [i ], gyro_filtered [i ], -1.0f , 1.0f );
803
799
804
800
break ;
805
801
@@ -824,7 +820,7 @@ static void stabilizationTask(void* parameters)
824
820
rateDesiredAxis [i ] = bound_sym (rateDesiredAxis [i ], settings .ManualRate [i ]);
825
821
826
822
// Compute the inner loop
827
- actuatorDesiredAxis [i ] = pid_apply_setpoint (& pids [PID_GROUP_RATE + i ], get_deadband (i ), rateDesiredAxis [i ], gyro_filtered [i ]);
823
+ actuatorDesiredAxis [i ] = pid_apply_setpoint_antiwindup (& pids [PID_GROUP_RATE + i ], get_deadband (i ), rateDesiredAxis [i ], gyro_filtered [i ], -1.0f , 1.0f );
828
824
actuatorDesiredAxis [i ] = bound_sym (actuatorDesiredAxis [i ],1.0f );
829
825
830
826
break ;
@@ -874,13 +870,13 @@ static void stabilizationTask(void* parameters)
874
870
rateDesiredAxis [i ] = bound_sym (rateDesiredAxis [i ], settings .MaximumRate [i ]);
875
871
876
872
// Compute the inner loop
877
- actuatorDesiredAxis [i ] = pid_apply_setpoint (& pids [PID_GROUP_RATE + i ], get_deadband (i ), rateDesiredAxis [i ], gyro_filtered [i ]);
873
+ actuatorDesiredAxis [i ] = pid_apply_setpoint_antiwindup (& pids [PID_GROUP_RATE + i ], get_deadband (i ), rateDesiredAxis [i ], gyro_filtered [i ], -1.0f , 1.0f );
878
874
} else {
879
875
// Get the desired rate. yaw is always in rate mode in system ident.
880
876
rateDesiredAxis [i ] = bound_sym (raw_input [i ], settings .ManualRate [i ]);
881
877
882
878
// Compute the inner loop only for yaw
883
- actuatorDesiredAxis [i ] = pid_apply_setpoint (& pids [PID_GROUP_RATE + i ], get_deadband (i ), rateDesiredAxis [i ], gyro_filtered [i ]);
879
+ actuatorDesiredAxis [i ] = pid_apply_setpoint_antiwindup (& pids [PID_GROUP_RATE + i ], get_deadband (i ), rateDesiredAxis [i ], gyro_filtered [i ], -1.0f , 1.0f );
884
880
}
885
881
886
882
const float scale = settings .AutotuneActuationEffort [i ];
@@ -1056,8 +1052,7 @@ static void stabilizationTask(void* parameters)
1056
1052
rateDesiredAxis [i ] = bound_sym (rateDesiredAxis [i ], settings .PoiMaximumRate [i ]);
1057
1053
1058
1054
// Compute the inner loop
1059
- actuatorDesiredAxis [i ] = pid_apply_setpoint (& pids [PID_GROUP_RATE + i ], get_deadband (i ), rateDesiredAxis [i ], gyro_filtered [i ]);
1060
- actuatorDesiredAxis [i ] = bound_sym (actuatorDesiredAxis [i ],1.0f );
1055
+ actuatorDesiredAxis [i ] = pid_apply_setpoint_antiwindup (& pids [PID_GROUP_RATE + i ], get_deadband (i ), rateDesiredAxis [i ], gyro_filtered [i ], -1.0f , 1.0f );
1061
1056
1062
1057
break ;
1063
1058
case STABILIZATIONDESIRED_STABILIZATIONMODE_DISABLED :
0 commit comments