纪录无人机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()
相关推荐
qetfw1 小时前
Debian OpenSSL CA 证书配置参考:根证书、服务证书与验证
linux·debian·ssl·openssl
测试运维日常笔记1 小时前
RHEL/CentOS 离线部署指南:配置本地 ISO 镜像作为 YUM 仓库
linux·运维·centos
梓沂2 小时前
CentOS 7.9 静默安装 Oracle 11gR2 企业版全记录
linux·oracle·centos
蜀道山老天师2 小时前
Zabbix监控Docker容器应用实践完整指南
linux·运维·docker·容器·zabbix
hweiyu002 小时前
Linux命令:info
linux·运维
wsad05323 小时前
CentOS Stream 10 Docker 容器无法访问外网:xt_addrtype 内核模块缺失解决方法
linux·网络·docker·云原生·eureka·centos
x17388062733 小时前
Linux
linux
加油码3 小时前
探秘 volatile关键字:编译器的过度优化
linux·bug·信号处理
不会就选b4 小时前
Linux之线程(二)
linux·运维·服务器
代码AC不AC4 小时前
【Linux】NAT与代理
linux·nat·代理