43 #define AUTOTUNE_SAVE_PERIOD 10000U 46 #define AUTOTUNE_OVERSHOOT_TIME 100 49 #define AUTOTUNE_UNDERSHOOT_TIME 200 52 #define AUTOTUNE_INCREASE_STEP 5 55 #define AUTOTUNE_DECREASE_STEP 8 58 #define AUTOTUNE_MAX_P 5.0f 59 #define AUTOTUNE_MIN_P 0.3f 62 #define AUTOTUNE_MAX_TAU 0.7f 63 #define AUTOTUNE_MIN_TAU 0.2f 65 #define AUTOTUNE_MIN_IMAX 2000 66 #define AUTOTUNE_MAX_IMAX 4000 76 dataflash(_dataflash),
77 saturated_surfaces(false)
80 #if CONFIG_HAL_BOARD == HAL_BOARD_SITL 82 # define Debug(fmt, args ...) do {::printf("%s:%d: " fmt "\n", __FUNCTION__, __LINE__, ## args); } while(0) 84 # define Debug(fmt, args ...) 98 { 0.70f, 0.050f, 20 },
99 { 0.65f, 0.055f, 30 },
100 { 0.60f, 0.060f, 40 },
101 { 0.55f, 0.065f, 50 },
102 { 0.50f, 0.070f, 60 },
103 { 0.45f, 0.075f, 75 },
104 { 0.40f, 0.080f, 90 },
105 { 0.30f, 0.085f, 120 },
106 { 0.20f, 0.090f, 160 },
107 { 0.10f, 0.095f, 210 },
108 { 0.05f, 0.100f, 300 },
173 float abs_desired_rate = fabsf(desired_rate);
176 if (fabsf(servo_out) >= 45) {
186 }
else if (fabsf(achieved_rate) > abs_desired_rate) {
191 if (new_state !=
state) {
198 write_log(servo_out, desired_rate, achieved_rate);
276 strncpy(key,
"RLL2SRV_", 9);
279 strncpy(key,
"PTCH2SRV_", 10);
292 float old_value = v.get();
294 if (value <= 0 || fabsf((value-old_value)/value) > 0.001
f) {
305 int16_t old_value = v.get();
307 if (old_value != v.get()) {
340 servo : (int16_t)(servo*100),
const AP_Vehicle::FixedWing & aparm
AP_AutoTune(ATGains &_gains, ATType type, const AP_Vehicle::FixedWing &parms, DataFlash_Class &_dataflash)
void update(float desired_rate, float achieved_rate, float servo_out)
bool logging_started(void)
#define AUTOTUNE_UNDERSHOOT_TIME
void Log_Write_Parameter(const char *name, float value)
void WriteBlock(const void *pBuffer, uint16_t size)
void save_float_if_changed(AP_Float &v, float value, const char *suffix)
#define AUTOTUNE_SAVE_PERIOD
#define AUTOTUNE_OVERSHOOT_TIME
void save_int16_if_changed(AP_Int16 &v, int16_t value, const char *suffix)
static const struct @193 tuning_table[]
#define AUTOTUNE_MIN_IMAX
enum AP_AutoTune::ATState state
void check_state_exit(uint32_t state_time_ms)
#define Debug(fmt, args ...)
#define AUTOTUNE_INCREASE_STEP
Common definitions and utility routines for the ArduPilot libraries.
void write_log(float servo, float demanded, float achieved)
float constrain_float(const float amt, const float low, const float high)
#define AUTOTUNE_DECREASE_STEP
#define AUTOTUNE_MAX_IMAX
void log_param_change(float v, const char *suffix)
DataFlash_Class & dataflash
void save_gains(const ATGains &v)
const AP_HAL::HAL & hal
-*- tab-width: 4; Mode: C++; c-basic-offset: 4; indent-tabs-mode: nil -*-
#define LOG_PACKET_HEADER_INIT(id)