无人机系统PX4视频教程:飞行PID参数调试

2023-05-16

PID参数调试一直是比较头疼的问题,在此给大家带来如下的教程!

完整文章(建议PC下观看,手机的排版有问题)视频教程下载地址:

链接:http://pan.baidu.com/s/1bptl6BP 密码:2zbe


获取更多免费资料技术咨询请搜索微信公众号:阿木实验室   

官网:www.amovauto.com


PIXHAWk无人机PID参数调试实例


PID调参在控制领域一直是个工程的活,理论相对简单,但是参数的标定确实比较困难。


    这节的课程就是来指导大家来调试PIXHAWK的PID参数的。有软件仿真和实时视频效果,理论和实践相结合。


   PID一句话就是说,经过PID算法计算出的控制量,给执行机构,来达到维持某一个状态的目的。这个控制量的多少,直接影响到系统能不能快速稳定的维持这个状态。比如我们向一个杯子倒一杯水,要求到的刚好满。一开始杯子是空的,我们倒水倾斜力度大,水很快倒入杯中,但是随着水越来越满,我们的倒水倾斜力度会越来越小。如果这个倾斜的力度把握不好那么,水就会溢出。这个PID算法就是在计算这个倒水的倾斜力度,随着时间和水越来越满,动态调整这个倒水的倾斜力度。在杯子是空的时候要加快到水,增加倒水力度,杯子快要满了,减小倒水力度,防止水的溢出。


我们先看PID算法的代码:



PID 的流程简单到了不能再简单的程度,通过误差信号控制被控量,而控制器本身就是比例、积分、微分三个环节的加和。这里我们规定(在 t 时刻): 

1.输入量为 rin(t);

2.输出量为 rout(t);

3.偏差量为 err(t)=rin(t)-rout(t);


1.说明一下反馈控制的原理,通过上一节的框图不难看出,PID 控制其实是对偏差的控制过程;


2.如果偏差为 0,则比例环节不起作用,只有存在偏差时,比例环节才起作用。


3.积分环节主要是用来消除静差,所谓静差,就是系统稳定后输出值和设定值之间的差值,积分环节实际上就是偏差累计的过程,把累计的误差加到原有系统上以抵消系统造成的静差。


4.而微分信号则反应了偏差信号的变化规律,或者说是变化趋势,根据偏差信号的变化趋势来进行超前调节,从而增加了系统的快速性。

 


第一步:定义 PID 变量结构体,代码如下:

struct _pid{

float SetSpeed;//定义设定值

float ActualSpeed;//定义实际值

float err;//定义偏差值

float err_last;//定义上一个偏差值

float Kp,Ki,Kd;//定义比例、积分、微分系数

float voltage;//定义电压值(控制执行器的变量)

float integral;//定义积分值

}pid;

 

控制算法中所需要用到的参数在一个结构体中统一定义,方便后面的使用。

 

第二步:初始化变量,代码如下(以速度控制为例):

 

void PID_init(){

    printf("PID_init begin \n");

pid.SetSpeed=0.0;//设定的速度

pid.ActualSpeed=0.0;//传感器检测的实际速度

pid.err=0.0;        //误差初始化

pid.err_last=0.0;   //前一刻的误差量

pid.voltage=0.0;    //PID输出量

pid.integral=0.0;   //PID误差积分项

pid.Kp=0.2;          //PID比例系数

pid.Ki=0.015;        //PID微分系数

pid.Kd=0.2; printf("PID_init end \n"); //PID积分系数

}

 

统一初始化变量,尤其是 Kp,Ki,Kd 三个参数,调试过程当中,对于要求的控制效果,可以通过调节这三个量直接进行调节。

  

第三步:编写控制算法,代码如下:

 

Float PID_realize()

{

  pid.SetSpeed = speed;

  Pid.err = pid.SetSpeed - pid.ActualSpeed;//计算误差项

  Pid.integral+=pid.err;//计算误差积分项

Pid.voltage=pid.Kp*pid.err+pid.Ki*pid.integral+pid.Kd*(pid.err-pi

d.err_last);

  pid.err_last=pid.err;

  pid.ActualSpeed=pid.voltage*1.0;

return pid.ActualSpeed;

}

PID的控制规律为:       



1.说明一下反馈控制的原理,通过上一节的框图不难看出,PID 控制其实是对偏差的控制过程;


2.如果偏差为 0,则比例环节不起作用,只有存在偏差时,比例环节才起作用。


3.积分环节主要是用来消除静差,所谓静差,就是系统稳定后输出值和设定值之间的差值,积分环节实际上就是偏差累计的过程,把累计的误差加到原有系统上以抵消系统造成的静差。


4.而微分信号则反应了偏差信号的变化规律,或者说是变化趋势,根据偏差信号的变化趋势来进行超前调节,从而增加了系统的快速性。

 

对于PID讲我们用以下原则:

a.在输出不振荡时,增大比例增益P。(增大P可以快速到稳定)  
b.在输出不振荡时,减小积分时间常数Ti。(积分过大容易超调)  
c.在输出不振荡时,增大微分时间常数Td。(微分项是预测误差变化率,越接近设定目标,越要减少PID输出,来增加系统的快速性)

 

PIXHAWK的PID参数调试: 

 

PIXHAWK采用串级PID的方式,外环是控制角度,内环是控制角速度。因为内环更直接作用于电机,所以我们调试PIXHAWK的PID,一般只用调试内环的PID即可(角速度)。

 


图上我们可以看出内环PID更接近于电机输出,我们在调试PIXHAWK飞控的时候也是先调节内环角速度PID


                     

1:微分调节的现象

我在采用默认PID参数的时候,发现四轴无人机恢复稳定比较慢,有震荡现象。以下是微分作用的PID系统图表:


微分过小系统响应速度快,但是产生有衰减振荡。微分过大系统响应速度变慢。

微分D过小在接近设定目标值的时候会产生较大的过充和少量的振荡,但是会衰减。我们采用默认参数出现了衰减的振荡,就是微分D太小,我们增大微分D就可以解决。

  

2:比例调节的现象



我们发现比例系数过大会导致系统系统响应很快,更有可能导致系统振荡失调,如果发现飞机振荡很厉害,没有衰减,一定是比例系数过大的原因。


3:积分调节的现象

 

积分过大也会产生振荡失调,因为积分是误差的累积。


总结:系统有衰减振荡,有可能是D(微分过小)或者的I(积分过大)。

      系统有振荡越来越大,直到系统不受控制,有可能是P值过大。

      在系统默认的PID参数上做调节,逐步修改参数,看试飞效果。

      可以适当让微分过冲,增加响应的快速性。


注意!!! 一切PID参数的调试都是基于电调行程校准通过,桨和电机,电调匹配的基础之上。如果飞机飞起来就侧翻(没校准好传感器和电调,或者已解锁就起飞(桨和电机不匹配)。这类飞机都飞不起来的问题,调试PID参数是没有意义的,切记! 调试PID参数是基于飞机飞行的有点不稳,但是基本可以飞行的基础之上!


这部分的参考网站

http://www.stmcu.org/module/forum/thread-601133-1-1.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无人机系统PX4视频教程:飞行PID参数调试 的相关文章

  • 技术分享 | 遥控器控制(Joystick)

    一 遥控器控制 在真实飞行过程中 xff0c 我们使用真实的遥控器作为控制无人机的主要操作来源 xff0c 遥控器始终拥有最高的权限 xff0c 精湛的遥控器操作手法可以保证无人机安稳着陆 xff0c 但对于很多非专业人士来说 xff0c
  • 技术分享 | Airsim初探-用游戏引擎做仿真

    谈到无人机 无人车仿真 xff0c 首先想到的大概就是gazebo xff0c 但现在都快进入元宇宙时代了 xff08 手动狗头 xff09 xff0c 还再继续使用gazebo这种上个时代的产品就显得不够hack xff0c 是时候了解和
  • 技术分享 | Airsim和PX4远程配置连接教程

    前言 xff1a 远程配置是指一台计算机上安装windows版airsim xff0c 作为服务器 xff0c 另一台计算机上安装ubuntu的px4 xff0c 作为客户端 没有采用ubuntu的airsim是因为windows版的air
  • 调试达人 | 史上最全PX4固件无人机无法解锁问题合集

    很多同学在到手一台或者根据网上教程组装了一台PX4固件的无人机后 xff0c 最迫切的一件事是否是让无人机解锁飞上蓝天 xff1f 但就是在这一步却遇到各种各样的问题导致无法解锁而四处查找资料 xff1f 本文由阿木实验室有多年无人机调试经
  • 常见激光雷达分类

    一 激光雷达的原理 激光雷达的原理类似于声呐 xff0c 只不过这里我们用光代替声音 xff0c 来衡量激光雷达与障碍物之间的距离 主要工作原理是向目标发射激光束 xff08 单线 多线 xff09 xff0c 然后将反射信号与发射信号比较
  • Mini Homer——几百块钱也能搞到一台远距离图数传链路?

    在一些远程操控的场景中 xff0c 图数传链路的选择一直是比较重要的问题 传统的WIFI方式 xff0c 传输距离近50到100米 xff0c 不能满足测试要求 xff0c 更不能在工业现场使用 即便是一些专用的图数传方案 xff0c 传输
  • F200——搭载基于模型设计的国产开源飞控系统无人机

    一 F200简介 F200是目前基于FMT开源自驾仪项目开发的第一款无人机产品 xff0c 旨在为广大无人机爱好者和科研工作者提供一个理想的无人机研发与测试平台 支持室外定高 定点 xff0c 一键起飞 xff0c 一键降落 xff0c 一
  • Prometheus-v2新增地面站,助力高效研发!

    Prometheus地面站是基于Prometheus系统的人机交互界面 xff0c 地面站采用TCP UDP通信进行发送和接收数据 xff0c 而在机载端中则采用ROS MSG消息进行通信 xff0c 该地面站可以更快地让用户复现Prome
  • 赛前指导:第二届未来飞行器挑战赛实践赛道之技术详解

    2022 xff08 第二届 xff09 四川省大学生未来飞行器挑战赛正在火热进行中 xff0c 本次挑战赛中的实践类赛道将面向全省高校大学生个人或团队征集未来先进侦察打一体化无人机的实地竞赛 xff0c 主要考察路劲规划 视觉目标搜索 舵
  • 四元数乘法计算

    关于两个四元数的乘法 xff0c 网上查了一大堆 xff0c 没一个说明白的 我就想知道给我两个四元数 xff0c 我该怎么算出来它们的乘积 这么简单的需求都没法找到答案 xff0c 实在对不起四元数的江湖地位 要想计算四元数的乘法 xff
  • Prometheus-v2控制子模块教学例程demo演示

    在Prometheus v2中 xff0c 我们将代码模块化 xff0c 将功能拆分为子模块 xff0c 具体包含控制子模块 目标检测子模块 路径规划子模块 集群子模块以及matlab子模块等 其中 xff0c 控制子模块作为最基础的子模块
  • 机器人开发新思路——强化学习

    众所周知 xff0c 机器人 xff08 Robot xff09 是一种能够半自主或全自主工作的智能机器 机器人能够通过编程和自动控制来执行诸如作业或移动等任务 xff0c 而在执行过程中 xff0c 最常用的就是判断命令或逻辑 换句话来说
  • Swarm-Formation无人机分布式集群算法浅析与仿真测试

    无人机集群一直是当今研究的热点与难点 然而 xff0c 目前相关的集群规划策略通常缺乏在杂乱环境中避开障碍的能力 为了解决无人机在密集复杂环境下的编队避障飞行这一难题 xff0c 浙江大学 Fast Lab 实验室提出了一种分布式无人机集群
  • 无人机集群编队解决方案,适应多种飞行场景

    针对集群研究人员的痛点 xff0c 阿木实验室设计了无人机集群编队的开发平台 xff0c 让开发者们无需再为了验证自己的集群算法或代码而发愁 xff0c 只需关心集群相关的研究 无人机集群编队开发平台基于开源无人机项目Prometheus
  • 做机器人开发,你一定绕不开的模块!

    Allspark 机载电脑 Allspark 是阿木实验室为广大AI智能硬件开发者打造的一款微型边缘计算机 在设计之初就定义了尺寸小巧 重量轻 算力强 可靠 扩展性高的特点 Allspark机身采用铝合金新材料外壳设计 xff0c 内置静音
  • 常用的路径规划算法浅析

    路径规划 所谓路径规划 xff0c 也就是在起点和终点之间找到一条连续的运动轨迹 xff0c 在尽可能优化路径的同时避开环境中的障碍物 常用的路径规划算法有传统的基于图搜索算法 基于采样的路径规划算法 xff0c 以及考虑动力学的路径规划算
  • TGK-Planner无人机运动规划算法解读

    高速移动无人机的在线路径规划一直是学界当前研究的难点 xff0c 引起了大量机器人行业的研究人员与工程师的关注 然而无人机的计算资源有限 xff0c 要在短时间内规划出一条安全可执行的路径 xff0c 这就要求无人机的运动规划算法必须轻型而
  • 超实用的日志分析工具——Flightplot,你不会还没用过吧

    在上一篇文章中已经为大家介绍过Flight Review分析日志工具的具体使用 xff0c 但是该工具在使用过程中难免存在一些问题 xff0c 例如 xff1a Flight Review工具需要在线浏览 xff0c 很多时候受制于电脑网络
  • 行业级开源无人机目标追踪,高空助力抓贼!

    活久见 xff01 成都一高楼惊险无人机抓小偷 视频中危险动作 xff0c 请勿模仿 xff01 本次实验中我们使用的是Prometheus 600 xff08 P600 xff09 行业级无人机研发平台 xff08 此平台适用于无人机行业
  • 万众瞩目!ICF5国产开源飞控推出,为国内无人系统发力

    ICF5是AMOVLAB和FMT团队匠心打造的一款专业级 高性能开源自驾仪硬件 搭载了最新的FMT稳定版固件 xff0c 可用于无人机 无人车 无人船和机器人等应用领域 作为FMT的首个自研飞控硬件 xff0c 其飞控系统和芯片均实现了纯国

随机推荐