纪录无人机PID参数配置

P:

|-------------|---|---|---|-----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| PSC_D_POS_P | 1 | 1 | | 0.50 4.00 | 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. Previously _POSZ_P. |

|-------------|---|---|---|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| PSC_D_VEL_P | 5 | 5 | | 1.0 10.0 | Velocity (vertical) controller P gain. Converts the difference between desired vertical speed and actual speed into a desired acceleration that is passed to the throttle acceleration controller. Previously _VELZ_P. |

|-------------|------|------|---|-------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| PSC_D_ACC_P | 0.05 | 0.05 | | 0.010 0.250 | Acceleration (vertical) controller P gain. Converts the difference between desired vertical acceleration and actual acceleration into a motor output. If upgrading from 4.6 this is _ACCZ_P * 0.1. |

pid的算法函数在

// Runs the vertical (U-axis) position controller.

// Computes output acceleration based on position and velocity errors using PID correction.

// Feedforward velocity and acceleration are combined with corrections to produce a smooth vertical command.

// Desired position, velocity, and acceleration must be set before calling.

void AC_PosControl::D_update_controller()

{

// check for ekf z-axis position reset

D_handle_ekf_reset();

// Check for z_controller time out

if (!D_is_active()) {

D_init_controller();

if (has_good_timing()) {

// call internal error because initialisation has not been done

INTERNAL_ERROR(AP_InternalError::error_t::flow_of_control);

}

}

_last_update_d_ticks = AP::scheduler().ticks32();

参数名称 所属控制器(类成员变量) 核心作用
PSC_D_POS_P 位置环 (P Controller) 对应代码中的 _p_pos_d_m 将位置误差转换为期望速度,代码为 _p_pos_d_m.update_all()
PSC_D_VEL_P 速度环 (PID Controller) 对应代码中的 _pid_vel_d_m 将速度误差转换为期望加速度,代码为 _pid_vel_d_m.update_all()
PSC_D_ACC_P 加速度环 (PID Controller) 对应代码中的 _pid_accel_d_m 将加速度误差转换为电机推力(油门),代码为 _pid_accel_d_m.update_all()
相关推荐
lzx_0022 小时前
Linux 进程(二) 深入理解进程
linux
沫璃染墨3 小时前
从零入门计算机网络系列(十二):HTTP长连接与会话管理详解——从Connection到Cookie与Session
linux·服务器·c++·tcp/ip·ubuntu·http·交互
温暖小土3 小时前
在 CentOS 上安装 Redis Stack
linux·redis·centos
GeW5 小时前
国产化替代进入深水区之后Linux 与数据库为什么必须走向重建
linux
女神下凡8 小时前
芯参谋(85):Linux_PPI_NAND_驱动开发指南
linux·运维·arm开发·驱动开发·单片机·嵌入式硬件·设计规范
12.=0.9 小时前
【持续更新】shell脚本 + Linux命令
linux·运维·服务器
Escalating_xu9 小时前
【Linux 网络编程】五种 I/O 模型与非阻塞 I/O:从“等数据”到正确处理 EAGAIN
java·linux·网络
无言听风雨丶9 小时前
Linux 容器本质探秘:Cgroup 与 Namespace 深度解析与实战
linux·运维·服务器·kubernetes
万联WANFLOW9 小时前
CVE-2026-98432 等漏洞自查:AI 查出的 Linux、Windows 漏洞,运维怎么确认受不受影响
linux·运维·windows·网络安全
OPEN-F9 小时前
Ubuntu 自动登录后 GNOME 远程桌面连不上?一次登录钥匙环锁定的排查与永久修复
linux·运维·ubuntu