Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Ardupilot
GitHub Repository: Ardupilot/ardupilot
Path: blob/master/libraries/AC_PID/AC_HELI_PID.h
9838 views
1
#pragma once
2
3
/// @file AC_HELI_PID.h
4
/// @brief Helicopter Specific Rate PID algorithm, with EEPROM-backed storage of constants.
5
6
#include <AP_Common/AP_Common.h>
7
#include <AP_Param/AP_Param.h>
8
#include <stdlib.h>
9
#include <cmath>
10
#include "AC_PID.h"
11
12
/// @class AC_HELI_PID
13
/// @brief Heli PID control class
14
class AC_HELI_PID : public AC_PID {
15
public:
16
17
/// Constructor for PID controller with EEPROM-backed gain.
18
/// Parameters are initialized from defaults or EEPROM at runtime.
19
AC_HELI_PID(const AC_PID::Defaults &defaults, float initial_ilmi);
20
21
CLASS_NO_COPY(AC_HELI_PID);
22
23
/// update_leaky_i - replacement for get_i but output is leaked at leak_rate
24
void update_leaky_i(float leak_rate);
25
26
static const struct AP_Param::GroupInfo var_info[];
27
28
private:
29
AP_Float _leak_min;
30
float _last_requested_rate; // Requested rate from last iteration, used to calculate rate change of requested rate
31
const float default_ilmi;
32
};
33
34