在此次设计中,最终目的是想要飞行器平稳飞行,其中的设计就免不了运用PID电机调速控制。如图4-3所示是一个小功率直流电机的调速框图。给定速度
n0?t?与转速n?t?进行比较,其差值为e?t??n0?t??n?t?,经过PID控制器调整后输出
电压控制信号u?t?,u?t?经过功率放大后,驱动直流电动机改变其转速。
图4-3 小功率电机调速系统
PID数学计算公式如式 4-1 所示:
1d(e(t))u(t)?KP[e(t)??e(?)d??Td] (4-1)
Ti0dt式中
KP――控制器的比例系数
Ti--控制器的积分时间,也称积分系数 Td――控制器的微分时间,也称微分系数
t常规的模拟PID控制系统原理框图如图4-4所示。该系统由模拟PID控制器和被控对象组成。其中r?t?是系统输入误差值,y?t?是系统的最终输出值,输入值与输出值构成控制偏差e?t??r?t??y?t?。而e?t?作为PID控制器的输入,u?t?作为PID控制器的输出和被控对象的输入。
33
比例r(t)+e(t)积分u(t)被控制对象y(t)-微分
图4-4 PID电机控制系统框图
根据PID计算公式和原理,编写出PID控制程序,其源代码如下所示: FP32 PID_ROL(FP32 e,FP32 e1,FP32 kp,FP32 ki ,FP32 kd) {
static FP32 e_s = 0,sum = 0; /*e_s用于保存上一次的误差值,用于计算微
分项,Sum用于计算累加和,计算积分项*/
FP32 r; /* r存放PID计算值 */
sum = sum + e; /* 累加和计算 */ r = kp*e+ki*sum+kd*(e1-e_s); /*从左至右分别是比例、积分、微分*/ e_s = e1; /*保存这一次的误差值用于下一次微分计算*/
return r; /* 返回计算值 */ }
然而,PID算法的重点不在于他的原理,而是着重PID三个参数的调节。PID调试过程步骤如下:
1.控制回路中的比例项P
比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系,当仅有比例控制时系统输出存在稳态误差。P是解决幅值震荡,P大了会出现幅值震荡的幅度大,但震荡频率小,系统达到稳定时间长。
2.控制回路中的积分项I
在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自
34
动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。
3.控制回路中的微分项D
在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件(环节)或有滞后组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入“比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。
4.PID调节常用口诀
参数整定找最佳,从小到大顺序查,先是比例后积分,最后再把微分加,曲线振荡很频繁,比例度盘要放大,曲线漂浮绕大湾,比例度盘往小扳,曲线偏离回复慢,积分时间往下降,曲线波动周期长,积分时间再加长,曲线振荡频率快,先把微分降下来,动差大来波动慢,微分时间应加长,理想曲线两个波,前高后低4比1,一看二调多分析,调节质量不会低 。
35
结 论
通过这次为期两个月的毕业设计,使我对32位的ARM处理器、无线通信、电机驱动、陀螺仪等模块有了更充分的了解,尤其是32位处理器,之前都没接触过,这次毕业设计得到了很大巩固和提高。
在接到毕业设计这个题目之后,我非常有信心,之前在做比赛的时候做过四轴飞行器,那时候做的四轴飞行器是大尺寸的那种,用的都是现成的模块做的,但是有了前车之鉴,这次毕业设计虽然做的是小型四轴飞行器,但是比赛的经验肯定能在我的毕业设计带来很大的帮助。
毕业设计期间,最辛苦也是最有意义的地方就是找出问题的所在,并通过查阅相关资料,寻找解决方案最终解决问题,过程虽然比较繁琐,但是很有意义。四年的大学课程学习,两年的实验室学习经验,学到了很多关于单片机以及嵌入式方面的知识,这也是我们电子信息工程专业所学的比较重要的一部分,通过这次毕业设计,使我对硬件电路设计、32位ARM处理器、电机控制方面的知识得到了进一步的提高。
想要很好的完成此次毕业设计,总体设计思路要清晰明了。从主控芯片的选着到模块选择方案设计,都需要经过深思熟虑。我的思路还是比较清晰,首先得有遥控器作为控制端,采集控制信息通过无线传感器传输给飞行器端;飞行器端通过无线接收遥控信息并做出相应的反应,这时就会涉及到电机的控制,电机控制通过什么方式驱动都需要方案设计,还涉及飞行器姿态的检测,选用什么传感器都需要考虑进来,硬件部分大致就这个思路。在程序设计里面,除了传感器相应的程序设计以外,最主要的部分就是飞行器端的姿态控制,通过什么算法计算飞行器的欧拉角,通过哪种方式控制电机自动控制,都是在考虑的范畴里面。有了清晰的思路,就开始选型和方案的制定。
经过查阅相关资料,本次设计选用基于ARM Cortex-M3为内核的NXP LPC1549作为控制芯片,选用NRF24L01作为通信模块,MPU6050作为姿态测量单元,电源部分采用3.7V充电锂电池为系统提供电源,飞行器电机使用空心
杯820直流有刷电机,并使用N沟道MOS管来驱动电机,在外形设计中,由于此次飞
行器外形尺寸小,所以直接采用PCB板作为遥控器和飞行器的支架。程序设计部分采用四元数滤波算法来计算姿态欧拉角,再选用经典电机自动控制方法的PID来调节电机,使其达到本次设计的要求。
在设计好硬件电路之后,通过工厂制作好PCB板,到焊接调试的时候也遇到过很多困难,其中最难焊接的就要属于MPU6050,这个芯片是QFN-24 封装,引脚在侧边并且还很小,其次就是主控芯片的焊接,但是不管怎么样,通过学习了一下午的芯片焊接技术,总算是焊好了。所谓天下没有做不成的事,只有做不成事的人。在调试的时候,也出现过很多问题,其中遇到的第一个问题就是当飞行器电机转速很高的时候芯片就会自动复位,困扰了很久,最后通过与同学讨论,最后找到问题的所在了,原来是因为电机转动起来会产生电磁干扰,需要在电路中连接一个电感去掉电磁干扰,最后在电池电源出来的地方接了个330uH的电感之后就解决了这个问题。总而言之,不管遇到什么困难,只要下定决心解决并且努力去完成,最终都会有很好的结果的。
本次毕业设计对于我来说最主要任务是实物的制作,这段时间里,在老师和同学的帮助下以及自己的不断学习和探索下,一步一步的完成了设计的要求,这个过程非常有意义也值得回味。通过与同学老师交流,不仅可以丰富自己的知识面,开拓自己的思路,还可以拉近与老师同学之间关系。这段时间的毕业设计,掌握了许多书本上学不到的知识,但同时遇到问题也需要查阅书本得以解决,把书本上的知识运用到实践中来,学以致用,这样才会更快的进步。
总之,通过这次设计,我了解了关于我所设计课题的相关内容,加深的对本专业的了解,巩固了大学四年所学到的知识,毕业设计是理论与实践操作共同结合的一个过程,这是我们毕业前了解自己所学专业应用前景的一个重要的过程,也是对我们大学四年所学知识的一次总体的考核。