|
|
|
@ -9,13 +9,16 @@
@@ -9,13 +9,16 @@
|
|
|
|
|
|
|
|
|
|
class AP_PitchController { |
|
|
|
|
public: |
|
|
|
|
AP_PitchController(AP_AHRS &ahrs, const AP_Vehicle::FixedWing &parms, DataFlash_Class &_dataflash) : |
|
|
|
|
aparm(parms), |
|
|
|
|
autotune(gains, AP_AutoTune::AUTOTUNE_PITCH, parms, _dataflash), |
|
|
|
|
_ahrs(ahrs) |
|
|
|
|
{
|
|
|
|
|
AP_Param::setup_object_defaults(this, var_info); |
|
|
|
|
} |
|
|
|
|
static AP_PitchController create(AP_AHRS &ahrs, const AP_Vehicle::FixedWing &parms, |
|
|
|
|
DataFlash_Class &_dataflash) { |
|
|
|
|
return AP_PitchController{ahrs, parms, _dataflash}; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
constexpr AP_PitchController(AP_PitchController &&other) = default; |
|
|
|
|
|
|
|
|
|
/* Do not allow copies */ |
|
|
|
|
AP_PitchController(const AP_PitchController &other) = delete; |
|
|
|
|
AP_PitchController &operator=(const AP_PitchController&) = delete; |
|
|
|
|
|
|
|
|
|
int32_t get_rate_out(float desired_rate, float scaler); |
|
|
|
|
int32_t get_servo_out(int32_t angle_err, float scaler, bool disable_integrator); |
|
|
|
@ -33,9 +36,17 @@ public:
@@ -33,9 +36,17 @@ public:
|
|
|
|
|
AP_Float &kI(void) { return gains.I; } |
|
|
|
|
AP_Float &kD(void) { return gains.D; } |
|
|
|
|
AP_Float &kFF(void) { return gains.FF; } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private: |
|
|
|
|
const AP_Vehicle::FixedWing &aparm; |
|
|
|
|
AP_PitchController(AP_AHRS &ahrs, const AP_Vehicle::FixedWing &parms, DataFlash_Class &_dataflash) |
|
|
|
|
: aparm(parms) |
|
|
|
|
, autotune(gains, AP_AutoTune::AUTOTUNE_PITCH, parms, _dataflash) |
|
|
|
|
, _ahrs(ahrs) |
|
|
|
|
{ |
|
|
|
|
AP_Param::setup_object_defaults(this, var_info); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const AP_Vehicle::FixedWing &aparm; |
|
|
|
|
AP_AutoTune::ATGains gains; |
|
|
|
|
AP_AutoTune autotune; |
|
|
|
|
AP_Int16 _max_rate_neg; |
|
|
|
|