- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
对串级PID和单级PID的理解(基于匿名微型六轴)
来源:本站 | 作者:小古 | 发表时间:2015-04-01 | 点击量:14145
/******************** (C) COPYRIGHT 2014 ANO Tech **************************** 文件名 :ANO_FlyControl.cpp* 描述 :飞行控制**********************************************************************************/include ANO_FlyControl.hANO_FlyControl fc;/*先整定内环,后整定外环。参数整定找最佳,从小到大顺序查先是比例后积分,最后再把微分加曲线振荡很频繁,比例度盘要放大曲线漂浮绕大湾,比例度盘往小扳曲线偏离回复慢,积分时间往下降曲线波动周期长,积分时间再加长曲线振荡频率快,先把微分降下来动差大来波动慢。微分时间应加长理想曲线两个波,前高后低4比1*//*ROLL和PIT轴向按照以上公式计算PID输出,但YAW轴比较特殊,因为偏航角法线方向刚好和地球重力平行,这个方向的角度无法由加速度计直接测得,需要增加一个电子罗盘来替代加速度计。如果不使用罗盘的话,我们可以单纯的通过角速度积分来测得偏航角,缺点是由于积分环节中存在积分漂移,偏航角随着时间的推移会偏差越来越大。我们不使用罗盘就没有比例项,只仅使用微分环节来控制。*/ANO_FlyControl::ANO_FlyControl(){yawRate = 120;//重置PID参数PID_Reset();}//重置PID参数void ANO_FlyControl:ID_Reset(void){//因为YAW角度会漂移,所以参数和ROLL、PITCH不一样pid[PIDROLL].set_pid(70, 15, 120, 2000000); //ROLL角度的内环控制系数,20000:积分上限 pid[PIDPITCH].set_pid(70, 30, 120, 2000000);//PITCH角度的内环控制系数pid[PIDYAW].set_pid(100, 50, 0, 2000000); //YAW角度的内环控制系数pid[PIDLEVEL].set_pid(280, 0, 0, 0); //外环控制系数pid[PIDMAG].set_pid(15, 0, 0, 0); //电子罗盘控制系数}/* 【扫盲知识】 串级PID:采用的角度P和角速度PID的双闭环PID算法------角度的误差被作为期望输入到角速度控制器中 (角度的微分就是角速度) 对于本系统则采用了将角度控制与角速度控制级联的方式组成整个串级 PID 控制器。串级 PID 算法中,角速度内环占着极为重要的地位。在对四旋翼飞行的物理模型进行分析后,可以知道造成系统不稳定的物理表现之一就是不稳定的角速度。因此,若能够直接对系统的角速度进行较好的闭环控制,必然会改善系统的动态特性及其稳定性,通常也把角速度内环称为增稳环节。而角度外环的作用则体现在对四旋翼飞行器的姿态角的精确控制。 外环:输入为角度,输出为角速度内环:输入为角速度,输出为PWM增量使用串级pid,分为:角度环控制pid环,和角速度控制环稳定环。主调为角度环(外环),副调为角速度环(内环)。参数整定原则为先内后外,故在整定内环时将外环的PID均设为0所谓外环就是只是一个P在起作用,也就是比例在起作用;P也就是修正力度,越大越容易使飞机震荡。 震荡的特点是:频率小、幅度大*//*【横滚(Roll)和俯仰(Pitch)的控制算法】 横滚(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输出。*///串环PID调节详情参见:/super_mic ... 36723 //飞行器姿态外环
文档评论(0)