#pragma once12/// @file AC_HELI_PID.h3/// @brief Helicopter Specific Rate PID algorithm, with EEPROM-backed storage of constants.45#include <AP_Common/AP_Common.h>6#include <AP_Param/AP_Param.h>7#include <stdlib.h>8#include <cmath>9#include "AC_PID.h"1011/// @class AC_HELI_PID12/// @brief Heli PID control class13class AC_HELI_PID : public AC_PID {14public:1516/// Constructor for PID controller with EEPROM-backed gain.17/// Parameters are initialized from defaults or EEPROM at runtime.18AC_HELI_PID(const AC_PID::Defaults &defaults, float initial_ilmi);1920CLASS_NO_COPY(AC_HELI_PID);2122/// update_leaky_i - replacement for get_i but output is leaked at leak_rate23void update_leaky_i(float leak_rate);2425static const struct AP_Param::GroupInfo var_info[];2627private:28AP_Float _leak_min;29float _last_requested_rate; // Requested rate from last iteration, used to calculate rate change of requested rate30const float default_ilmi;31};323334