代码基于ardupilot3.4.2RC2,仅分析ArduCopter(多旋翼、直升机)构型中代码逻辑、使用关系,其他构型(飞机、云台、车)后续考虑分析。
void AC_PosControl::set_dt(float delta_sec)
函数作用:设置所有控制器的时间增量(以秒为单位)delta_sec=0.01,每间隔10毫秒更新,频率100hz。
函数全局调用情况如下:共19处,包括多个类
函数声明情况如下:
函数声明文件如下:
函数流程图如下:
函数逻辑顺序图如下:
函数原始代码如下:
/// set_dt - sets time delta in seconds for all controllers (i.e. 100hz = 0.01, 400hz = 0.0025) 设置所有控制器的时间增量(以秒为单位)delta_sec=0.01,10毫秒更新,频率100hz
void AC_PosControl::set_dt(float delta_sec)
{
_dt = delta_sec;
// update rate controller's dt更新速率控制器时间增量
_pid_accel_z.set_dt(_dt);
// update rate z-axis velocity error and accel error filters更新爬升速度误差和加速度误差过滤器
_vel_error_filter.set_cutoff_frequency(POSCONTROL_VEL_ERROR_CUTOFF_FREQ);
}