- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
四轴PID调试心得.doc
本人曾在大二,大三参加过第六,第七届飞思卡尔智能车比赛,之后在考研过后在飞思卡尔智能车为我打下的良好基础下开始制作四轴飞行器。在年中到现在陆续调试了两架四轴,一架十字,一架X。其中四轴的平衡是很重要的一环,其中涉及到的PID整定,因为听闻今年摄像头也要站起来了,个人认为PID整定过程都有可以互相借鉴之处,顾在此一贴,也顺便为我的ARM-ST校园比赛求支持。
PID调试心得
本人不是自动化出身,也没有受过专业训练,都是自己摸索,在这里浅述一下自己的PID参数整定心得。所言之物皆由实践及自己的理解得出,如有不当之处还请指正。
首先例举第一个例子,我调的第一台四轴飞行器,十字型四轴飞行器,讲下配置:
网上一百多的650机架,好赢20A电调,新西达2212 1000kV,1045的桨,2200mah电池。
采用位置式PID控制,位置式PID公式如下
PID的基本意义我在次就不作阐述了,我只讲我的设计,我以姿态角作为被控制对象,所以
e(k) = 期望-测量 = 给定值-测量姿态角
对于微分项D,我做了一点改变,标准PID的微分项D=kd*(e(k)-e(k-1)),我在实践过程中因为角度的微分就是角速度,而陀螺仪可以直接测出角速度,所以我没有将微分项作为偏差的差而是直接用D=kd*Gyro
实现代码如下
float pidUpdate(pidsuite* pid, const float measured,float expect,float gyro)
{
float output;
static float lastoutput=0;
pid-desired=expect; //获取期望角度
pid-error = pid-desired - measured; //偏差:期望-测量值
pid-integ += pid-error * IMU_UPDATE_DT; //偏差积分
if (pid-integ pid-iLimit) //作积分限制
{
pid-integ = pid-iLimit;
}
else if (pid-integ -pid-iLimit)
{
pid-integ = -pid-iLimit;
}
// pid-deriv = (pid-error - pid-prevError) / IMU_UPDATE_DT; //微分 应该可用陀螺仪角速度代替
pid-deriv = -gyro;
if(fabs(pid-error)Piddeadband) //pid死区
{
pid-outP = pid-kp * pid-error; //方便独立观察
pid-outI = pid-ki * pid-integ;
pid-outD = pid-kd * pid-deriv;
output = (pid-kp * pid-error) +
(pid-ki * pid-integ) +
(pid-kd * pid-deriv);
}
else
{
output=lastoutput;
}
pid-prevError = pid-error; //更新前一次偏差
lastoutput=output;
return output;
}
我这么做的原因是因为,如果使用传统的D的形式,在我快速打舵时会产生输入的设定值变化频繁且幅度较大,四轴飞行器会迅速回到新的期望点,说白了就是非常灵活,四轴回复很猛,也许造成系统的振荡,对PID参数要求较高。如果用角速度代替的话,那怕你打舵非常快,四轴会较平稳的回到新位置,运动较柔和。对于我这种操作菜鸟来说无疑后面一种会更合适,所以我选择了D=kd*Gyro的方式。
PID控制器我大概就是这么实现的,下面讲讲我在调试过程中具体遇到的问题。首先我将四轴固定在单轴平衡平台上,让飞行器完成单轴平衡,主要观察姿态角的(1)稳定性,能否平衡在期望角度;(2)响应性,当操纵命令改变时,四轴能否即时的响应期望的变化;(3)操纵性,由操纵员感受四轴的姿态是否已与操纵,会不会产生响应过冲。
我先调一个轴的平衡再调另外一个轴,最后调YAW轴。
A:开始只调P,将I,D置0。由于不知道PID的大致范围我就随便给了一组值
:P=1,I=0,D=0观察现象。一开电机四轴就开始剧烈左右摇摆,很明显P给大了。然后P从小了往上加。从P=0.1开始试。调试的时候我就发现了一个现象就是我的四轴往一边歪,离平衡的0度
文档评论(0)