mirror of
https://github.com/ArduPilot/ardupilot
synced 2025-02-18 22:03:56 -04:00
Copter: remove attitude PIDs
These are now part of AC_AttitudeControl
This commit is contained in:
parent
7f2c1f830f
commit
bde498375c
@ -74,8 +74,7 @@ Copter::Copter(void) :
|
||||
condition_start(0),
|
||||
G_Dt(0.0025f),
|
||||
inertial_nav(ahrs),
|
||||
attitude_control(ahrs, aparm, motors, g.p_stabilize_roll, g.p_stabilize_pitch, g.p_stabilize_yaw,
|
||||
g.pid_rate_roll, g.pid_rate_pitch, g.pid_rate_yaw),
|
||||
attitude_control(ahrs, aparm, motors, MAIN_LOOP_SECONDS),
|
||||
pos_control(ahrs, inertial_nav, motors, attitude_control,
|
||||
g.p_alt_hold, g.p_vel_z, g.pid_accel_z,
|
||||
g.p_pos_xy, g.pi_vel_xy),
|
||||
|
@ -636,111 +636,6 @@ const AP_Param::Info Copter::var_info[] = {
|
||||
// @User: Advanced
|
||||
GSCALAR(acro_expo, "ACRO_EXPO", ACRO_EXPO_DEFAULT),
|
||||
|
||||
// PID controller
|
||||
//---------------
|
||||
|
||||
// @Param: RATE_RLL_P
|
||||
// @DisplayName: Roll axis rate controller P gain
|
||||
// @Description: Roll axis rate controller P gain. Converts the difference between desired roll rate and actual roll rate into a motor speed output
|
||||
// @Range: 0.08 0.30
|
||||
// @Increment: 0.005
|
||||
// @User: Standard
|
||||
|
||||
// @Param: RATE_RLL_I
|
||||
// @DisplayName: Roll axis rate controller I gain
|
||||
// @Description: Roll axis rate controller I gain. Corrects long-term difference in desired roll rate vs actual roll rate
|
||||
// @Range: 0.01 0.5
|
||||
// @Increment: 0.01
|
||||
// @User: Standard
|
||||
|
||||
// @Param: RATE_RLL_IMAX
|
||||
// @DisplayName: Roll axis rate controller I gain maximum
|
||||
// @Description: Roll axis rate controller I gain maximum. Constrains the maximum motor output that the I gain will output
|
||||
// @Range: 0 4500
|
||||
// @Increment: 10
|
||||
// @Units: Percent*10
|
||||
// @User: Standard
|
||||
|
||||
// @Param: RATE_RLL_D
|
||||
// @DisplayName: Roll axis rate controller D gain
|
||||
// @Description: Roll axis rate controller D gain. Compensates for short-term change in desired roll rate vs actual roll rate
|
||||
// @Range: 0.001 0.02
|
||||
// @Increment: 0.001
|
||||
// @User: Standard
|
||||
#if FRAME_CONFIG == HELI_FRAME
|
||||
GGROUP(pid_rate_roll, "RATE_RLL_", AC_HELI_PID),
|
||||
#else
|
||||
GGROUP(pid_rate_roll, "RATE_RLL_", AC_PID),
|
||||
#endif
|
||||
|
||||
// @Param: RATE_PIT_P
|
||||
// @DisplayName: Pitch axis rate controller P gain
|
||||
// @Description: Pitch axis rate controller P gain. Converts the difference between desired pitch rate and actual pitch rate into a motor speed output
|
||||
// @Range: 0.08 0.30
|
||||
// @Increment: 0.005
|
||||
// @User: Standard
|
||||
|
||||
// @Param: RATE_PIT_I
|
||||
// @DisplayName: Pitch axis rate controller I gain
|
||||
// @Description: Pitch axis rate controller I gain. Corrects long-term difference in desired pitch rate vs actual pitch rate
|
||||
// @Range: 0.01 0.5
|
||||
// @Increment: 0.01
|
||||
// @User: Standard
|
||||
|
||||
// @Param: RATE_PIT_IMAX
|
||||
// @DisplayName: Pitch axis rate controller I gain maximum
|
||||
// @Description: Pitch axis rate controller I gain maximum. Constrains the maximum motor output that the I gain will output
|
||||
// @Range: 0 4500
|
||||
// @Increment: 10
|
||||
// @Units: Percent*10
|
||||
// @User: Standard
|
||||
|
||||
// @Param: RATE_PIT_D
|
||||
// @DisplayName: Pitch axis rate controller D gain
|
||||
// @Description: Pitch axis rate controller D gain. Compensates for short-term change in desired pitch rate vs actual pitch rate
|
||||
// @Range: 0.001 0.02
|
||||
// @Increment: 0.001
|
||||
// @User: Standard
|
||||
#if FRAME_CONFIG == HELI_FRAME
|
||||
GGROUP(pid_rate_pitch, "RATE_PIT_", AC_HELI_PID),
|
||||
#else
|
||||
GGROUP(pid_rate_pitch, "RATE_PIT_", AC_PID),
|
||||
#endif
|
||||
|
||||
// @Param: RATE_YAW_P
|
||||
// @DisplayName: Yaw axis rate controller P gain
|
||||
// @Description: Yaw axis rate controller P gain. Converts the difference between desired yaw rate and actual yaw rate into a motor speed output
|
||||
// @Range: 0.150 0.50
|
||||
// @Increment: 0.005
|
||||
// @User: Standard
|
||||
|
||||
// @Param: RATE_YAW_I
|
||||
// @DisplayName: Yaw axis rate controller I gain
|
||||
// @Description: Yaw axis rate controller I gain. Corrects long-term difference in desired yaw rate vs actual yaw rate
|
||||
// @Range: 0.010 0.05
|
||||
// @Increment: 0.01
|
||||
// @User: Standard
|
||||
|
||||
// @Param: RATE_YAW_IMAX
|
||||
// @DisplayName: Yaw axis rate controller I gain maximum
|
||||
// @Description: Yaw axis rate controller I gain maximum. Constrains the maximum motor output that the I gain will output
|
||||
// @Range: 0 4500
|
||||
// @Increment: 10
|
||||
// @Units: Percent*10
|
||||
// @User: Standard
|
||||
|
||||
// @Param: RATE_YAW_D
|
||||
// @DisplayName: Yaw axis rate controller D gain
|
||||
// @Description: Yaw axis rate controller D gain. Compensates for short-term change in desired yaw rate vs actual yaw rate
|
||||
// @Range: 0.000 0.02
|
||||
// @Increment: 0.001
|
||||
// @User: Standard
|
||||
#if FRAME_CONFIG == HELI_FRAME
|
||||
GGROUP(pid_rate_yaw, "RATE_YAW_", AC_HELI_PID),
|
||||
#else
|
||||
GGROUP(pid_rate_yaw, "RATE_YAW_", AC_PID),
|
||||
#endif
|
||||
|
||||
// @Param: VEL_XY_P
|
||||
// @DisplayName: Velocity (horizontal) P gain
|
||||
// @Description: Velocity (horizontal) P gain. Converts the difference between desired velocity to a target acceleration
|
||||
@ -805,29 +700,6 @@ const AP_Param::Info Copter::var_info[] = {
|
||||
// @User: Standard
|
||||
GGROUP(pid_accel_z, "ACCEL_Z_", AC_PID),
|
||||
|
||||
// P controllers
|
||||
//--------------
|
||||
// @Param: STB_RLL_P
|
||||
// @DisplayName: Roll axis stabilize controller P gain
|
||||
// @Description: Roll axis stabilize (i.e. angle) controller P gain. Converts the error between the desired roll angle and actual angle to a desired roll rate
|
||||
// @Range: 3.000 12.000
|
||||
// @User: Standard
|
||||
GGROUP(p_stabilize_roll, "STB_RLL_", AC_P),
|
||||
|
||||
// @Param: STB_PIT_P
|
||||
// @DisplayName: Pitch axis stabilize controller P gain
|
||||
// @Description: Pitch axis stabilize (i.e. angle) controller P gain. Converts the error between the desired pitch angle and actual angle to a desired pitch rate
|
||||
// @Range: 3.000 12.000
|
||||
// @User: Standard
|
||||
GGROUP(p_stabilize_pitch, "STB_PIT_", AC_P),
|
||||
|
||||
// @Param: STB_YAW_P
|
||||
// @DisplayName: Yaw axis stabilize controller P gain
|
||||
// @Description: Yaw axis stabilize (i.e. angle) controller P gain. Converts the error between the desired yaw angle and actual angle to a desired yaw rate
|
||||
// @Range: 3.000 6.000
|
||||
// @User: Standard
|
||||
GGROUP(p_stabilize_yaw, "STB_YAW_", AC_P),
|
||||
|
||||
// @Param: POS_Z_P
|
||||
// @DisplayName: Position (vertical) controller P gain
|
||||
// @Description: Position (vertical) controller P gain. Converts the difference between the desired altitude and actual altitude into a climb or descent rate which is passed to the throttle rate controller
|
||||
|
@ -328,12 +328,12 @@ public:
|
||||
//
|
||||
k_param_acro_rp_p = 221,
|
||||
k_param_axis_lock_p, // remove
|
||||
k_param_pid_rate_roll,
|
||||
k_param_pid_rate_pitch,
|
||||
k_param_pid_rate_yaw,
|
||||
k_param_p_stabilize_roll,
|
||||
k_param_p_stabilize_pitch,
|
||||
k_param_p_stabilize_yaw,
|
||||
k_param_pid_rate_roll, // remove
|
||||
k_param_pid_rate_pitch, // remove
|
||||
k_param_pid_rate_yaw, // remove
|
||||
k_param_p_stabilize_roll, // remove
|
||||
k_param_p_stabilize_pitch, // remove
|
||||
k_param_p_stabilize_yaw, // remove
|
||||
k_param_p_pos_xy,
|
||||
k_param_p_loiter_lon, // remove
|
||||
k_param_pid_loiter_rate_lat, // remove
|
||||
@ -480,24 +480,12 @@ public:
|
||||
AP_Float acro_expo;
|
||||
|
||||
// PI/D controllers
|
||||
#if FRAME_CONFIG == HELI_FRAME
|
||||
AC_HELI_PID pid_rate_roll;
|
||||
AC_HELI_PID pid_rate_pitch;
|
||||
AC_HELI_PID pid_rate_yaw;
|
||||
#else
|
||||
AC_PID pid_rate_roll;
|
||||
AC_PID pid_rate_pitch;
|
||||
AC_PID pid_rate_yaw;
|
||||
#endif
|
||||
AC_PI_2D pi_vel_xy;
|
||||
|
||||
AC_P p_vel_z;
|
||||
AC_PID pid_accel_z;
|
||||
|
||||
AC_P p_pos_xy;
|
||||
AC_P p_stabilize_roll;
|
||||
AC_P p_stabilize_pitch;
|
||||
AC_P p_stabilize_yaw;
|
||||
AC_P p_alt_hold;
|
||||
|
||||
// Autotune
|
||||
@ -526,16 +514,6 @@ public:
|
||||
|
||||
// PID controller initial P initial I initial D initial imax initial filt hz pid rate
|
||||
//---------------------------------------------------------------------------------------------------------------------------------
|
||||
#if FRAME_CONFIG == HELI_FRAME
|
||||
pid_rate_roll (RATE_ROLL_P, RATE_ROLL_I, RATE_ROLL_D, RATE_ROLL_IMAX, RATE_ROLL_FILT_HZ, MAIN_LOOP_SECONDS, RATE_ROLL_FF),
|
||||
pid_rate_pitch (RATE_PITCH_P, RATE_PITCH_I, RATE_PITCH_D, RATE_PITCH_IMAX, RATE_PITCH_FILT_HZ, MAIN_LOOP_SECONDS, RATE_PITCH_FF),
|
||||
pid_rate_yaw (RATE_YAW_P, RATE_YAW_I, RATE_YAW_D, RATE_YAW_IMAX, RATE_YAW_FILT_HZ, MAIN_LOOP_SECONDS, RATE_YAW_FF),
|
||||
#else
|
||||
pid_rate_roll (RATE_ROLL_P, RATE_ROLL_I, RATE_ROLL_D, RATE_ROLL_IMAX, RATE_ROLL_FILT_HZ, MAIN_LOOP_SECONDS),
|
||||
pid_rate_pitch (RATE_PITCH_P, RATE_PITCH_I, RATE_PITCH_D, RATE_PITCH_IMAX, RATE_PITCH_FILT_HZ, MAIN_LOOP_SECONDS),
|
||||
pid_rate_yaw (RATE_YAW_P, RATE_YAW_I, RATE_YAW_D, RATE_YAW_IMAX, RATE_YAW_FILT_HZ, MAIN_LOOP_SECONDS),
|
||||
#endif
|
||||
|
||||
pi_vel_xy (VEL_XY_P, VEL_XY_I, VEL_XY_IMAX, VEL_XY_FILT_HZ, WPNAV_LOITER_UPDATE_TIME),
|
||||
|
||||
p_vel_z (VEL_Z_P),
|
||||
@ -545,10 +523,6 @@ public:
|
||||
//----------------------------------------------------------------------
|
||||
p_pos_xy (POS_XY_P),
|
||||
|
||||
p_stabilize_roll (STABILIZE_ROLL_P),
|
||||
p_stabilize_pitch (STABILIZE_PITCH_P),
|
||||
p_stabilize_yaw (STABILIZE_YAW_P),
|
||||
|
||||
p_alt_hold (ALT_HOLD_P)
|
||||
{
|
||||
}
|
||||
|
@ -93,24 +93,6 @@
|
||||
#if FRAME_CONFIG == HELI_FRAME
|
||||
# define RC_FAST_SPEED 125
|
||||
# define WP_YAW_BEHAVIOR_DEFAULT WP_YAW_BEHAVIOR_LOOK_AHEAD
|
||||
# define RATE_ROLL_P 0.02
|
||||
# define RATE_ROLL_I 0.5
|
||||
# define RATE_ROLL_D 0.001
|
||||
# define RATE_ROLL_IMAX 4500
|
||||
# define RATE_ROLL_FF 0.05
|
||||
# define RATE_ROLL_FILT_HZ 20.0f
|
||||
# define RATE_PITCH_P 0.02
|
||||
# define RATE_PITCH_I 0.5
|
||||
# define RATE_PITCH_D 0.001
|
||||
# define RATE_PITCH_IMAX 4500
|
||||
# define RATE_PITCH_FF 0.05
|
||||
# define RATE_PITCH_FILT_HZ 20.0f
|
||||
# define RATE_YAW_P 0.15
|
||||
# define RATE_YAW_I 0.100
|
||||
# define RATE_YAW_D 0.003
|
||||
# define RATE_YAW_IMAX 4500
|
||||
# define RATE_YAW_FF 0.02
|
||||
# define RATE_YAW_FILT_HZ 20.0f
|
||||
# define THR_MIN_DEFAULT 0
|
||||
# define AUTOTUNE_ENABLED DISABLED
|
||||
#endif
|
||||
@ -461,19 +443,6 @@
|
||||
#define ACRO_EXPO_DEFAULT 0.3f
|
||||
#endif
|
||||
|
||||
// Stabilize (angle controller) gains
|
||||
#ifndef STABILIZE_ROLL_P
|
||||
# define STABILIZE_ROLL_P 4.5f
|
||||
#endif
|
||||
|
||||
#ifndef STABILIZE_PITCH_P
|
||||
# define STABILIZE_PITCH_P 4.5f
|
||||
#endif
|
||||
|
||||
#ifndef STABILIZE_YAW_P
|
||||
# define STABILIZE_YAW_P 4.5f
|
||||
#endif
|
||||
|
||||
// RTL Mode
|
||||
#ifndef RTL_ALT_FINAL
|
||||
# define RTL_ALT_FINAL 0 // the altitude the vehicle will move to as the final stage of Returning to Launch. Set to zero to land.
|
||||
@ -538,59 +507,6 @@
|
||||
# define ANGLE_RATE_MAX 18000 // default maximum rotation rate in roll/pitch axis requested by angle controller used in stabilize, loiter, rtl, auto flight modes
|
||||
#endif
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// Rate controller gains
|
||||
//
|
||||
|
||||
#ifndef RATE_ROLL_P
|
||||
# define RATE_ROLL_P 0.150f
|
||||
#endif
|
||||
#ifndef RATE_ROLL_I
|
||||
# define RATE_ROLL_I 0.100f
|
||||
#endif
|
||||
#ifndef RATE_ROLL_D
|
||||
# define RATE_ROLL_D 0.004f
|
||||
#endif
|
||||
#ifndef RATE_ROLL_IMAX
|
||||
# define RATE_ROLL_IMAX 2000
|
||||
#endif
|
||||
#ifndef RATE_ROLL_FILT_HZ
|
||||
# define RATE_ROLL_FILT_HZ 20.0f
|
||||
#endif
|
||||
|
||||
#ifndef RATE_PITCH_P
|
||||
# define RATE_PITCH_P 0.150f
|
||||
#endif
|
||||
#ifndef RATE_PITCH_I
|
||||
# define RATE_PITCH_I 0.100f
|
||||
#endif
|
||||
#ifndef RATE_PITCH_D
|
||||
# define RATE_PITCH_D 0.004f
|
||||
#endif
|
||||
#ifndef RATE_PITCH_IMAX
|
||||
# define RATE_PITCH_IMAX 2000
|
||||
#endif
|
||||
#ifndef RATE_PITCH_FILT_HZ
|
||||
# define RATE_PITCH_FILT_HZ 20.0f
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef RATE_YAW_P
|
||||
# define RATE_YAW_P 0.200f
|
||||
#endif
|
||||
#ifndef RATE_YAW_I
|
||||
# define RATE_YAW_I 0.020f
|
||||
#endif
|
||||
#ifndef RATE_YAW_D
|
||||
# define RATE_YAW_D 0.000f
|
||||
#endif
|
||||
#ifndef RATE_YAW_IMAX
|
||||
# define RATE_YAW_IMAX 1000
|
||||
#endif
|
||||
#ifndef RATE_YAW_FILT_HZ
|
||||
# define RATE_YAW_FILT_HZ 5.0f
|
||||
#endif
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// Loiter position control gains
|
||||
//
|
||||
|
Loading…
Reference in New Issue
Block a user