PID参数调整详解

本文详细介绍了四旋翼飞行器在试飞调试阶段如何通过调整PID参数,包括P、I、D项,以提高横滚、俯仰和偏航的控制效果。作者提供了逐步操作步骤,并强调了参数优化的重要性以及如何在不同飞行阶段进行调整以达到最佳飞行性能。
摘要由CSDN通过智能技术生成

导读:给出一些简单实用的调整方法,下面简单描述一下在试飞调试阶段进行PID参数调整的步骤,先使用默认参数,横滚和俯仰上的调整方法类似,即便参数经过了精心调整和双环控制算法相比在控制效果上的差距依旧很大,控制参数也比较接近,参数(积分限幅值会很小,限幅值也移过来之后就可以进行PID参数调整了,一般先进行横滚或俯仰方向的调整,只留一个待调整方向的旋转自由度(简直就是旋转“烤四轴”有木有),先来了解一下P

先来了解一下P先来了解一下P项、I项和D项的基本内容。这里只用通俗语言简单解释,给出一些简单实用的调整方法。有需要深入研究的用户,请自行查阅相关资料。
P项相当于一个变化率,数值越大,变化越快。假设“俯仰到升降通道”的P值为60时,机头从上抬20o到变回水平位置,需要5秒钟时间,那么P值为30时,这个时间就大于5秒(比如10秒),P值为120时,这个时间就小于5秒(比如2.5秒)。
D项相当于一个“阻尼器”,数值越大,阻尼越大,控制越“硬”。如果飞机在水平直飞时,在横滚方向上老是振荡,那么可以调小“副翼通道”的D值,如果飞机在横滚方向上的增稳效果不好(即偏离水平位置后很难再回复到原来状态),那么可以调大该D值。
I项相当于一个“加分器”,使控制量更贴近目标量,但也有可能“加过头”了。例如:如果要使飞机从100米爬升到200米,而飞机只爬到199米就不再爬升,那么,此时需要增大I值;但如果飞机爬到201米才停下来,那么,此时应该减小I值。
下面简单描述一下在试飞调试阶段进行PID参数调整的步骤。
第一步:规划并上传一个矩形航线。高度不要太高,比如50米,这样便于肉眼观察高度变化。第一个航点和最后一个航点距离稍微近点,相邻航点间距离为300米~400米为宜。让飞机在视野范围内压线飞行。
第二步:切入自动模式,让飞机沿着这个航线飞行。
第三步:看增稳控制效果。
先使用默认参数。副翼通道上:P=95,I=5,D=8。俯仰到升降通道:P=95,I=3,D=8。注意到各项目上类似于“P/128”的字样,其中“P”指P项,“128”是可以输入的最大值。此外,每个项目上能填入的最小数值为零。
横滚和俯仰上的调整方法类似,此处只讲横滚。
如果飞机在横滚方向上左右振荡,那么同时调小P值和D值,I值一般固定不动。 如果飞机在横滚方向上的增稳效果不好,那么同时调大P值和D值,I值一般固定不动。 第四步:试着改变目标高度,看定高效果。
如果飞机爬升或俯冲速度太慢,就增大“高度到俯仰角”的P值,反之减小P值。如果在爬升或俯冲过程中,机头振荡得厉害,就减小“高度到俯仰角”的D值。最后,如果飞机无法爬升到预设高度,就增大“高度到俯仰角”的I值,相反减小I值。
★在这里,调大P值,一般是把初始俯仰角调大,调小P值,一般是把初始俯仰角调小。参考前文关于位置控制的解释,就能理解这里的意思。如果不能理解,就不要深究。 第五步:看飞机在到达航点时的转弯效果。
如果转弯速度太慢,就增到“方向舵通道”的P值,反之减小P值。如果转弯时机头来回振荡,就减小D值,如果转弯时机头上没有阻尼的感觉,就增大D值。
★在这里,调大P值,一般是把初始倾斜角调大,调小P值,一般是把初始倾斜角调小。参考前文关于位置控制的解释,就能理解这里的意思。如果不能理解,就不要深究。 第六步:看飞机的压线效果。
如果飞机切入航线时的速度太慢,就增大“偏侧距”的P值,反之减小P值。如果飞机在航线上左右扭动,就减小“偏侧距”的D值,而如果没有阻尼的感觉,就增大D值。
★在这里,调大P值,一般是把初始夹角调大,调小P值,一般是把初始夹角调小。参考前文关于位置控制的解释,就能理解这里的意思。如果不能理解,就不要深究。
super_mice的专栏
[原]四旋翼飞行器Quadrotor飞控之 PID调节(参考APM程序)
2014-8-8阅读10860 评论43 做四轴也有一段时间了,最近一直在做PID方面的工作。现在四轴基本可以实现室内比较稳定的飞行,操控手感也可以接受。稍后上试飞视频。在此把一些PID方面的经验总结总结和大家分享一下。 首先介绍一下大概的硬件组成:
MCU:Freescale MK60D
传感器(IMU):GY-86模块(MPU6050 + HMC5883L + MS5611)
433MHz数据传输模块
DC-DC可调式开关稳压模块
遥控设备:JR XG7发射机 + JR 611B接收机
机架:普通红白f450机架
电机:朗宇2212kv880高效能电机(黑色)
电调:天行者40A
桨:仿APC1047
电池:DUPU 2200mah 25c 电路很简单用洞洞板搭的简易测试电路。
软件方面最主要的是姿态解算,最终用的是MPU6050的DMP(Digital Motion Process)输出,遥控器控制的目标姿态也是四元数表示的。为了有较好的线性度,将两者的姿态差转换为欧拉角后再进行PID的控制。 下面进入正题。PID算法很大程度上参考了APM(国外成熟开源飞控项目,官网点击打开链接)的控制算法。它是采用的角度P和角速度PID的双闭环PID算法。角度的误差被作为期望输入到角速度控制器中。双闭环PID相比传统的单环PID来说性能有了极大的提升,笔者也曾经调试过传统的PID控制算法,即便参数经过了精心调整和双环控制算法相比在控制效果上的差距依旧很大。无论是悬停的稳定性,打舵时的快速跟随性和回正时的快速性上都是后者的效果明显优于前者。
大概介绍一下APM算法的大概流程。这个PID控制流程图可以在APM官网找到。笔者参考的是APM3.1.0的代码和图上2.9版本的有一点点出入,不影响大局(控制频率100hz)。
横滚(Roll)和俯仰(Pitch)的控制算法是一样的,控制参数也比较接近。首先得到轴姿态的角度差(angle error),将这个值乘以角度系数p后限幅(限幅必须有,否则剧烈打舵时容易引发震荡)作为角速度控制器期望值(target_rate)。target_rate与陀螺仪得到的当前角速度作差,得到角速度误差(rate_error)乘以kp得到P。在I值小于限幅值(这个值大概在5%油门)或者rate_error与i值异号时将rate_error累加到I中。前后两次rate_error的差作为D项,值得注意的是加需要入20hz(也可以采用其它合适频率)滤波,以避免震荡。将P,I,D三者相加并限幅(50%油门)得到最终PID输出。 偏航(Yaw)的控制算法和前两者略有不同,是将打舵量和角度误差的和作为角速度内环的期望值,这样可以获得更好的动态响应。角速度内环和横滚与俯仰的控制方法一致,参数(积分限幅值会很小,默认只有万分之8)上有不同。
把APM的算法移植过来,限幅值也移过来之后就可以进行PID参数调整了。一般先进行横滚或俯仰方向的调整。把四轴固定起来,只留一个待调整方向的旋转自由度

导读:3、角度外环只有一个参数P,P的参数比较简单,5、加上偏航的修正参数后(直接给双环参数,一般经过调整的参数在平衡位置不会大幅度震荡,6、横滚和俯仰调好后就可以调整偏航的参数了,合适参数的判断标准和之前一样,舵量回中飞机立刻停止转动(参数D的作用),双环PID参数调节完毕!祝爽飞!,即便参数经过了精心调整和双环控制算法相比在控制效果上的差距依旧很大,控制参数也比较接近,参数(积分限幅值会很小,限
3、角度外环只有一个参数P。将外环加上(在APM中叫Stabilize模式,在大疆中叫姿态模式)。打舵会对应到期望的角度。P的参数比较简单。太小,打舵不灵敏,太大,打舵回中易震荡。以合适的打舵反应速度为准。
4、至此,“烤四轴”效果应该会很好了,但是两个轴混控的效果如何还不一定,有可能会抽(两个轴的控制量叠加起来,特别是较大的D,会引起抽搐)。如果抽了,降低PD的值,I基本不用变。 5、加上偏航的修正参数后(直接给双环参数,角度外环P和横滚差不多,内环P比横滚大些,I和横滚差不多,D可以先不加),拿在手上试过修正和打舵方向正确后可以试飞了(试飞很危险!!!!选择在宽敞、无风的室内,1米的高度(高度太低会有地面效应干扰,太高不容易看清姿态且容易摔坏),避开人群的地方比较适合,如有意外情况,立刻关闭油门!!! 5.1试飞时主要观察这么几个方面的情况,一般经过调整的参数在平衡位置不会大幅度震荡,需要观察:
5.1.1在平衡位置有没有小幅度震荡(可能是由于机架震动太大导致姿态解算错误造成。也可能是角速度内环D的波动过大,前者可以加强减震措施,传感器下贴上3M胶,必要时在两层3M泡沫胶中夹上“减震板”,注意:铁磁性的减震板会干扰磁力计读数;后者可以尝试降低D项滤波的截止频率)。
5.1.2观察打舵响应的速度和舵量回中后飞机的回复速度。
5.1.3各个方向(记得测试右前,左后等方向)大舵量突加输入并回中时是否会引起震荡。如有,尝试减小内环PD也可能是由于“右前”等混控方向上的舵量太大造成。
6、横滚和俯仰调好后就可以调整偏航的参数了。合适参数的判断标准和之前一样,打舵快速响应,舵量回中飞机立刻停止转动(参数D的作用)。
至此,双环PID参数调节完毕!祝爽飞!

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目前工业自动化水平已成为衡量各行各业现代化水平的一个重要标志。同时,控制理论的发展也经历了古典控制理论、现代控制理论和智能控制理论三个阶段。智能控制的典型实例是模糊全自动洗衣机等。自动控制系统可分为开环控制系统和闭环控制系统。一个控控制系统包括控制器﹑传感器﹑变送器﹑执行机构﹑输入输出接口。控制器的输出经过输出接口﹑执行机构﹐加到被控系统上﹔控制系统的被控量﹐经过传感器﹐变送器﹐通过输入接口送到控制器。不同的控制系统﹐其传感器﹑ 变送器﹑执行机构是不一样的。比如压力控制系统要采用压力传感器。电加热控制系统的传感器是温度传感器。目前,PID控制及其控制器或智能PID控制器(仪表)已经很多,产品已在工程实际得到了广泛的应用,有各种各样的PID控制器产品,各大公司均开发了具有PID参数自整定功能的智能节器 (intelligent regulator),其PID控制器参数的自动调整是通过智能化调整或自校正、自适应算法来实现。有利用PID控制实现的压力、温度、流量、液位控制器,能实现PID控制功能的可编程控制器(PLC),还有可实现PID控制的PC系统等等。可编程控制器(PLC)是利用其闭环控制模块来实现PID控制,而可编程控制器(PLC)可以直接与ControlNet相连。还有可以实现PID 控制功能的控制器,如Rockwell 的Logix产品系列,可以直接与ControlNet相连,利用网络实现其远程控制功能。
在STM32机器人控制板,可以利用PID控制算法对舵机进行控制。PID控制算法是一种常用的控制方法,它通过不断地调整输出信号,使得被控制对象的实际值逐渐接近设定值。 具体实现舵机PID控制的代码可以参考引用\[3\]提到的文章。在代码,可以使用位置式PD控制算法对舵机进行控制。位置式PD控制算法,P参数用于根据当前误差进行比例节,D参数用于根据误差变化率进行微分节。 在舵机PID控制,可以根据需要设置合适的PID参数,例如P、D的值,以及设定值和反馈值的差值作为误差。通过不断地调整PID参数,可以实现舵机的精确控制,使其达到期望的位置或角度。 需要注意的是,舵机PID控制的具体实现可能会因具体的硬件平台和控制板而有所不同。因此,在使用STM32机器人控制板进行舵机PID控制时,建议参考配套的例程文件和相关文档,以了解具体的实现方法和参数设置。 #### 引用[.reference_title] - *1* *2* [STM32机器人控制开发教程No.2 霍尔编码器电机测速以及增量式PID控制(基于HAL库)](https://blog.csdn.net/COONEO/article/details/125909782)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [stm32PID舵机小车循迹](https://blog.csdn.net/m0_54841340/article/details/117548201)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值