1 系统方案1.1 主控的论证与选择方案二:采用STM32单片机,该单片机具有模拟、通信、定时和控制外设,功能丰富,但是其用于运动控制相关功能不如竞赛官方提供的单片机强。
综合比较以上两种方案,本系统采用方案一。
1.2 驱动的论证与选择方案二:BTN7971。它是半桥驱动芯片,需要2个芯片来驱动一个电机,电流最高可达43A,其内阻很小,散热好,实用性好。
1.3 控制系统的论证与选择方案二:采用串级PID算法,按比例P、积分I、微分D的函数关系进行运算,然后将其运算结果输出到控制端。PID的算法简单,易于理解,且控制精度高,可以满足本系统的控制要求。
综合比较以上两种方案,本系统采用方案二。 方案一:采用bmp085气压传感器测量大气压并转换为海拔高度,把当前的海拔测量值减去起飞时的海拔值即得飞机的离地高度。但此次竞赛飞行高度相对比较低,芯片价格较贵,误差较大,调试较为困难。
综合以上两种方案,选择方案二。
该系统主要以TI公司的TM4C1294XL单片机为核心,在四旋翼的控制方面采用,以MPU6050为角度传感器测量四旋翼在飞行过程中的相关姿态角,利用串级PID进行调节,使四旋翼能够完成相关姿态的稳定飞行。定位高度方面,我们采用超声波测距传感器测量四旋翼飞行的高度,并进行相应调节使飞机完成定高方面的测量。识别火焰方面,我们采用的是摄像头OV7725加以光流传感器,来通过相应的特征,来识别目标物的位置。下图为具体的系统程序框图。
图1.1]
图1.1]
2.1 系统结构的分析我们使用的是OV7725摄像头,该摄像头可以识别多种颜色,由于数据量较大,所以采集速度会较慢,在17ms左右,所以会存在一定的滞后性,在参数设计时候,应该注意系统的响应速度。并且也需要注意系统的超调量,过大的P值会加快响应速度,但同时也会增加系统的超调量,并使系统低频振荡。因为该系统动力由电机提供,所以需要较大的D值来使控制稳定,减小超调量,但是过高的D值会使系统产生高频振荡,使得系统不稳定。较合适的P和D参数可使系统具有较快的响应速度和较小的超调量,但系统仍然会有一定的静态误差。对于该静态误差,可以用较小的I值来克服,但是,过大的I值会引起系统的震荡。所以,在整定PID参数时候,应该选择适合的P配合较大D和较小的I。
2.2 控制算法的分析本系统采用PID算法来控制四个电机的输入给PWM值。四个电机开始工作后,摄像头采集模块不断采集当前小车的状态,并与之前的状态比较,从而改变4个电机的输入PWM值,实现跟随。PID算法控制器由位置比例P、位置误差积分I和位置微分D组成。
(2.1)
(2.2)
比例P:对位置进行比例调整。比例越大,调节速度越快。但不能过大,过大可能造成电机因工作状态突变而使四旋翼不稳定。积分I:使系统消除稳态误差。加入积分调节可使系统稳定性下降,动态响应变慢。本系统追求更快更稳完成对四旋翼的控制,因此,本系统对积分调节的需要就非常弱。即保证在不需要时系统不会受到影响。
单极PID:当你知道系统当前状态和期望状态后,如何将系统从当前状态调整到期望状态是个问题,在此我们可以用PID进行调整,PID分为位置式和增量式。
串级PID就是两个PID串在一起,分为内环和外环PID。在此,我们使用内环PID控制,外环PID控制。单极PID输入的是期望角度,反馈的是角度数据,串级PID中外环输入反馈的也是角度数据,内环输入反馈的便是角速度数据。下图为具体的结构示意框图。
图1.2 串级PID程序图
3.1 电路设计
MCU子系统框图如图3.2所示
图3.2 MCU子系统框图
3.2 程序设计下图为相应的程序框图。
图3.6 中断程序框图
4.1 测试方案
使用万用表、示波器等仪器检验硬件电路板,确保电路板没有问题,每个模块供电以及输出正常。应用keil编译软件,进行软件仿真检验。调试时,下载线连接到单片机上,以便程序执行时,实时观测控制算法中多个变量。
4.2 测试条件与仪器确保仿真电路与硬件电路与系统原理图完全相同,并且确保硬件电路焊接正常,没有虚焊。确保电路上电源芯片输出电压为设计电压。
确保仿真电路与硬件电路与系统原理图完全相同,并且确保硬件电路焊接正常,没有虚焊。确保电路上电源芯片输出电压为设计电压。
(2) 主控板各功能模块工作正常,满足设计要求。
综上所述,本设计达到设计要求。 4.3.3 赛题测试结果测试次数
[/td][td=274]
1[/td][td=274]2[/td][td=274]3[/td][td=274]4
[/td][td=274]
151
[/td][/tr]
[/table]
测试次数
[/td][td=274]1
[/td][td=274]
2
[/td][td=274]
3
[/td][td=274]
4
[/td][td=274][/td][/tr]
[/table]
测试次数
[/td][td=274]1
[/td][td=274]
2
[/td][td=274]
3
[/td][td=274]
4
[/td][td=274][/td][/tr]
[/table]
测试次数
[/td][td=274]1
[/td][td=274]
2
[/td][td=274]
3
[/td][td=274]
4
[/td][td=274][/td][/tr]
[/table]
5.返航途中穿过一个宽高100×70cm的矩形框
测试次数
[/td][td=274]1
[/td][td=274]
2
[/td][td=274]
3
[/td][td=274]
4
[/td][td=274][/td][/tr]
[/table]
测试次数
[/td][td=274]1
[/td][td=274]
2
[/td][td=274]
3
[/td][td=274]
4
[/td][td=274][/td][/tr]
[/table]