美文网首页
Pixhawk--PID调试

Pixhawk--PID调试

作者: WilsonGuo | 来源:发表于2023-06-04 18:16 被阅读0次

PID算法简介

P指的是比例(Proportion),I指的是积分(Integral),D指的是微分(Differential)。在电机调速系统中,输入信号为正,要求电机正转时,反馈信号也为正(PID算法时,误差=输入-反馈),同时电机转速越高,反馈信号越大。

要想搞懂PID算法的原理,首先必须先明白P,I,D各自的含义及控制规律:

01 

比例P:

比例项部分其实就是对预设值和反馈值差值的放大倍数。举个例子,假如原来电机两端的电压为U0,比例P为0.2,输入值是800,而反馈值是1000,那么输出到电机两端的电压应变为U0+0.2*(800-1000)。从而达到了调节速度的目的。显然比例P越大时,电机转速回归到输入值的速度将更快,及调节灵敏度就越高。从而,加大P值,可以减少从非稳态到稳态的时间。但是同时也可能造成电机转速在预设值附近振荡的情形,所以又引入积分I解决此问题。

02 

积分I:

积分项部分其实就是对预设值和反馈值之间的差值在时间上进行累加。当差值不是很大时,为了不引起振荡。可以先让电机按原转速继续运行。当时要将这个差值用积分项累加。当这个和累加到一定值时,再一次性进行处理。从而避免了振荡现象的发生。可见,积分项的调节存在明显的滞后。而且I值越大,滞后效果越明显。

03 

微分D:

微分项部分其实就是求电机转速的变化率。也就是前后两次差值的差而已。也就是说,微分项是根据差值变化的速率,提前给出一个相应的调节动作。可见微分项的调节是超前的。并且D值越大,超前作用越明显。可以在一定程度上缓冲振荡。比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。

偏差信号进行比例、积分和微分运算变换后形成一种控制规律。“利用偏差,纠正偏差”。

No.2

参数调整一般规则

由各个参数的控制规律可知,比例P使反应变快,微分D使反应提前,积分I使反应滞后。在一定范围内,P,D值越大,调节的效果越好。各个参数的调节原则如下:

PID调试一般原则

a.在输出不振荡时,增大比例增益P。

b.在输出不振荡时,减小积分时间常数Ti。

c.输出不振荡时,增大微分时间常数Td。

No.3

参数调整一般步骤

由于自动控制系统被控对象的千差万别,PID的参数也必须随之变化,以满足系统的性能要求。这就给使用者带来相当的麻烦,特别是对初学者。下面简单介绍一下调试PID参数的一般步骤:

01

确定比例增益

P确定比例增益P时,首先去掉PID的积分项和微分项,一般是令Ti=0、Td=0,PID为纯比例调节。输入设定为系统允许的最大值的60%~70%,由0逐渐加大比例增益P,直至系统出现振荡;再反过来,从此时的比例增益P逐渐减小,直至系统振荡消失,记录此时的比例增益P,设定PID的比例增益P为当前值的60%~70%。比例增益P调试完成。

02

确定积分时间常数Ti

比例增益P确定后,设定一个较大的积分时间常数Ti的初值,然后逐渐减小Ti,直至系统出现振荡,之后在反过来,逐渐加大Ti,直至系统振荡消失。记录此时的Ti,设定PID的积分时间常数Ti为当前值的150%~180%。积分时间常数Ti调试完成。

03

确定微分时间常数Td

微分时间常数Td一般不用设定,为0即可。若要设定,与确定P和Ti的方法相同,取不振荡时的30%。

04

联调

系统空载、带载联调,再对PID参数进行微调,直至满足要求。

No.4

总结

参数整定寻最佳,从大到小顺次查。先是比例后积分,最后再把微分加。曲线振荡很频繁,比例度盘要放大。曲线漂浮绕大弯,比例度盘往小扳。曲线偏离回复慢,积分时间往下降。曲线波动周期长,积分时间再加长。理想曲线两个波,调节过程高质量。

实际应用,进行PID参数调节时,一般使用试凑法,PID参数整定口诀如下:

参数整定找最佳,从小到大顺序查,

先是比例后积分,最后再把微分加

曲线振荡很频繁,比例度盘要放大,

曲线漂浮绕大湾,比例度盘往小扳,

曲线偏离回复慢,积分时间往下降,

曲线波动周期长,积分时间再加长,

曲线振荡频率快,先把微分降下来,

动差大来波动慢,微分时间应加长,

理想曲线两个波,前高后低4比1,

一看二调多分析,调节质量不会低。

*************************************** Pixhawk *****************************************

转向:https://ardupilot.org/rover/docs/rover-tuning-steering-rate.html

速度和油门:https://ardupilot.org/rover/docs/rover-tuning-throttle-and-speed.html

油门控制器

一般来说,最好先调整这个控制器,然后再转向转向控制器。

P增益是最重要的,应首先进行调整。如果车辆速度颠簸且不稳定,则应减小此参数。如果车辆速度较慢,则应增加此参数。

I增益可纠正长期误差。如果车辆从未达到所需速度,则应增加此参数。如果车辆的速度在太快和太慢之间缓慢振荡,则应减小此参数。I 通常应该低于 P。

D 增益旨在通过对抗速度的短期变化来稳定输出。这可以保留为零。

FF增益应保留为零,因为CRUISE_THROTTLECRUISE_SPEED用于计算基本油门输出,这消除了对前馈的需要。

转弯率控制器尝试使用 PID 控制器实现所需的转弯率(由飞行员或自动驾驶仪设置)。

除HoldManual之外的所有模式都使用此控制器。

该控制器的 FF、P、I 和 D 增益分别保存在ATC_STR_RAT_FFATC_STR_RAT_PATC_STR_RAT_IATC_STR_RAT_D参数中。


转弯速率:

首先调整FF 增益。该增益将所需的转弯速率直接转换为转向伺服或电机输出。如果车辆的转弯速率响应迟缓,则应增加此参数。如果车辆不断超过其所需的转弯率,则应减小此参数。

P增益校正短期误差。如果 FF 值设置得当,它通常可以保留为零或另一个非常低的值。如果设置得太高,旋转速率可能会振荡。此P 增益应始终低于FF 增益

I增益可纠正长期误差。如果车辆从未达到所需的转弯速率,则应增加此参数。如果车辆的转弯速率缓慢振荡,则应减小此参数。这个I 增益应该始终低于FF 增益

D增益旨在通过对抗转弯率的短期变化来稳定输出。该增益通常可以保留为零。


几处特别需要注意的参数:

相关文章

  • Flutter 调试方式

    在 Flutter 里有几种调试方式。 断点调试。 debugger 调试。 rendering 调试。 日志调试...

  • vscode使用指南(代码调试)

    代码调试 vscode 原生支持nodejs的调试,其他语言需要安装拓展支持调试 代码调试界面 调试界面 调试配置...

  • HBuilder Android真机调试

    关于调试 难者不会,会者不难。对于调试,这句话尤其合适。无论是前端调试、Java调试、PHP调试、Python调试...

  • iOS 调试

    iOS调试 - NSLog iOS调试 - 断点 iOS调试 - LLDB iOS调试 - EXC_BAD_ACC...

  • 2018-08-15 Windows调试和内核

    Windows调试 软件调试分类。按目标代码的执行模式:内核态调试,用户态调试;按调试器与调试目标的相对位置:本机...

  • WWDC2015 高级调试技巧笔记

    我将为大家介绍以下三个方面的调试技巧 视图调试高级断点调试Address Sanitizer 视图调试 视图调试的...

  • Android Studio调试

    参考 断点调试 实用调试 总结:断点调试有step into step out 等 实用调试:条件断点、日志断点、...

  • 调试手段

    本地调试 远程调试

  • linux编程入门(七)-使用gdb调试程序

    程序开发离不开调试,可以断点调试,也可以打log调试,linux下断点调试c,c++程序用gdb。 断点调试虽然很...

  • Flutter开发调试

    代码开发后出问题都会需要调试,调试方法很重要。 1. 断点调试 断点调试跟大家熟悉的 Chrome 的断点调试基本...

网友评论

      本文标题:Pixhawk--PID调试

      本文链接:https://www.haomeiwen.com/subject/kopbedtx.html