四旋翼飞行器项目报告

[复制链接]

150

主题

446

帖子

1978

积分

审核员

Rank: 9Rank: 9Rank: 9

积分
1978
楼主
查看: 5001回复: 2 发表于 2019-12-6 08:57:20   只看该作者
本帖最后由 secret 于 2019-12-6 08:57 编辑

项目报告
题 目: 四旋翼飞行器
平 台: Tiva™ ™ C Series TM4C123G LaunchPad
题 目: 四旋翼飞行器
关键词: Tiva™ ™ C Series M4C123G LaunchPad 四旋翼飞行器 MPU6050

光流 超声波
摘要(中文)
本四旋翼飞行器采用由 TI 公司生产的 Tiva™ C Series M4C123G LaunchPad作为主控系统,通过 MPU6050、超声波、光流传感器采集飞行器飞行数据,主控芯片处理采集到的数据并给PWM 控制无刷电机旋转速度,从而影响飞行数据,再通过传感器采回数据给主控,对电机实现闭环控制,从而使得飞行器处于不同飞行状况,实现简易四旋翼飞行器控制。该系统硬件部分主要包括 Tiva™ CSeries M4C123G LaunchPad,光流传感器模块,超声波模块,MPU6050 传感器模块,遥控器等。本设计主要运用 Tiva™ C Series M4C123G LaunchPad 单片机控制无刷电机,根据飞行姿态,通过程序控制算法,使无刷电机带动桨叶来控制飞行器保持某种飞行姿态。

1  实现方案比较
1.1  主控芯片的论证与选择
方案一:采用 AT89S52 单片机
优点:AT89S52 是 CMOS 8 位微控制器,具有 8K 在系统可编程 Flash 存储器。具有低功耗,价格便宜,控制简单等一系列优点。
缺点:片内资源少,没有集成的PWM 发生器和 FPU,需要外扩才能实现,而且难以实现快速和精准的反应控制。

方案二:采用 TI 公司 Tiva™ C Series TM4C123G LaunchPad。
优点:是一款高性能的 32 位微控制器,片内资源丰富,内置 PWM 发生器、FPU 运算单元,可编程设置中断优先级、时钟频率 80MHZ,具有高速的计运算能力。
缺点:频率的提高功耗也随之增大。
总结:由以上方案分析,为了可以高精度、高速度的进行系统控制,同时无刷电机控制需要 PWM 功能,AT89S52 不满足以上要求,故本系统选择方案二,使用 Tiva™ C Series TM4C123G LaunchPad。

1.2  加速度计和角度传感器 的论证与选择
方案一:采用 ADXL335 模块加 MMA7361 模块。
优点:ADXL335 加速度计模块,采用模拟电压输出,操作简便,容易排除硬件故障。MMA7361 角度传感器模块,板载 RT9161,比 1117 更低的压降,更快的负载相应速度,非常适合高噪声电源环境。量程通过单片机 IO 选择,也可以电阻选择,休眠使能可以通过单片机IO 控制。
缺点:焊接时,两模块不容易对准同一个坐标系,占用较多的 I/O 口。

方案二: 采用 MPU6050。
优点:MPU6050 内部集成加速度计和陀螺仪,体积小,精度高,价格便宜易购买,占用的 I/O 口较少。
缺点:编写程序相对复杂,不容易排除硬件故障。
总结:由以上方案分析,为提高测量精度,同时考虑到传感器安装的难易程度,所以我们选择方案二。

1.3  电机的论证与选择
方案一:采用空心杯直流减速电机。
优点:空心杯电动机属于直流、永磁、伺服微特电机。空心杯电动机具有杰出的节能特性、灵敏方便的控制特性和稳定的运行特性。
缺点:辐射产生电磁波干扰,减速箱存在机械虚位,动力不足。

方案二:采用步进电机。
优点:步进电机是纯粹的数字控制电动机,它将电脉冲信号转变为角位移,步进电机属于开环控制,累计误差小,成本相对低廉。
缺点:步进电机角度分辨率低,且转动时伴随着强烈的振动,这对桨叶及四旋翼飞行器的稳定性是不利的。

方案三:无刷电机。
优点:无刷电机是一种由电调间接控制转速的装置,具有体积小、重量轻、出力大 特点。主控芯片可以通过输送PWM 到电调,电调使无刷电机快速响应速度变化同时保证旋转速度精度非常准确。
缺点:随着旋转速度增加,功耗增加很快,不利于长时间飞行。
总结:由以上方案分析,考虑到系统的稳定性,动力及比赛不用长时间飞行等因素,我们选择方案三,采用无刷电机。该电机可通过电调快速精准的调节旋转速度,完全可以满足题目相关要求。
1.4  空间定位 的论证与选择
方案一:采用 GPS 模块。
优点:GPS 能够较精准的进行四旋翼飞行器空间定位。定位的范围广,有很好的抗干扰能力。
缺点:GPS 需要搜索卫星信号,在屋内信号极弱,不能提供正常的空间定位。

方案二:采用超声波加光流传感器。
优点:超声波能够快速精准的测量高度数据,外部干扰对其影响很小。具有低功耗,价格便宜,控制简单等一系列优点。光流传感器能快速的检测水平移动。控制简单。
缺点:超声波测量高度有限。光流传感器对外部光照亮度有很大的依赖性,且只能在一定高度内进行检测。
总结:由以上方案分析,考虑到测试环境在屋内,飞行高度较低等因素,我们选择方案二,采用超声波加光流传感器进行空间定位。在光线充足的情况下,完全可以满足题目相关要求。

2  系统方案描述
系统中主要有,控制部分、电机、电调、电源、机架、串口超声波模块、光流传感器模块,MPU6050 传感器模块共八部分组成。串口超声波采集飞行高度数据,光流传感器采集水平位移数据。MPU6050 传感器采集内部陀螺仪和加速度的值,通过互补滤波得到的欧拉角。通过对欧拉角、高度、水平位移分别进行PID 运算后通过修改 PWM 占空比控制电机转速。进而控制飞行器的飞行姿态。姿态改变造成传感器采集到的数据改变,从而形成闭环控制网络。系统中使用的平台为 TM4C123G 系列 LaunchPad,TM4 片内资源丰富,配置较为简单,并且 TM4 自带的浮点运算模块能够提高运算速度,增加系统的稳定性,非常适合于本系统。



2.1  机械结构


图 2.1 系统机械结构

电机 1 和电机 3 逆时针旋转的同时,电机 2 和电机 4 顺时针旋转,因此当飞行器平衡飞行时,陀螺效应和空气动力扭矩效应均被抵消。

2.2  理论分析
2.2.1  四轴飞行器的基本模型
为了保持飞行器的稳定飞行,在四轴飞行器上装有3个方向的陀螺仪和3轴加速度传感器组成惯性导航模块,可以计算出飞行器目前相对地面的姿态以及加速度、角速度。飞行控制器通过算法计算保持运动状态时所需的旋转力和升力,通过电子调控器来保证电机输出合适的力。



2.2.2  姿态解算与融合
四轴飞行器,最为重要的就是对当前飞行姿态的判断,姿态判断不正确控制再怎么精确也不能使飞机稳定,所以,姿态的解算是飞行器的重点。对于陀螺仪而言,它是对角速度的测定,通对角速度的积分可以得到一个角度值,但是这个角度值会有误差,而且误差会随时间增大。而加速度计,他是惯性元件,可以对它数据进行处理从而直接得到一个角度值,这个值很准确但是一旦受外界很小的震动这个值就会发生很大的抖动,所以不适合拿来直接使用。结合上面两个传感器的优点,使用互补滤波融合两个传感器的值,以加速度计的值作为基准来调节融合参数 Kp,Ki,halfT 的值使得调整出来的波形和加速度计出来的波形趋势相同,且没有毛刺。所以我们选用四元数算法对轴陀螺仪传回来的角速度进行解算,然后用互补滤波将加速度计所测得角度进行融合得到可信赖的角度值。四元数可以理解为一个实数和一个向量的组合,也可以理解为四维的向量。这里用一个圈表示 q 是一个四元数,四元数的长度(模)与普通向量相似。下面是对四元数的单位化,单位化的四元数可以表示一个旋转。四元数相乘,旋转的组合旋转的“轴角表示”转“四元数表示”。这里创造一个运算 q(w,θ),用于把绕单位向量 w 转θ角的旋转表示为四元数。通过 q(w,θ),引伸出一个更方便的运算 q(f,t)。有时需要把向量 f 的方向转到向量 t 的方向,这个运算就是生成表示对应旋转的四元数的然后是“四元数表示”转“矩阵表示”。再次创造运算,用 R(q)表示四元数q 对应的矩阵多个旋转的组合可以用四元数的乘法来实现。“四元数表示”转“欧拉角表示”

2.2.3  基于角度反馈的四轴飞行器的平衡控制
每个控制周期分三步:计算当前姿态与目标姿态的误差,用误差得出需要的力矩,和用力矩控制四个电机的油门。
1、 计算姿态误差
首先定义几个量,都是四元数。其中旋转增量就是要得到的姿态误差

2.用误差计算力矩
3、 用力矩控制油门
机架为“X”型,在 xOy 平面上,第一二三四象限对应的电机为 0、1、2、3号,0、2 电机正转,1、3 电机反转。输出的油门是两个值的和:基础值和增量值。基础值用来控制整体升力,各个电机相等。增量值用来实现稳定、加速等动作,相当于对基础值的微调,各个电机各不相同,且它们的和为0。力矩仅取决于增量值。如果需要 x 轴的力矩,则油门增量值应为:0、1 电正,2、3 电机负,记作[1 1 -1 -1]。y、z 轴同理。力矩修正系数用于平衡各轴的响应灵敏度。x、y 的力矩由螺旋桨的升力直接提供,响应够灵敏,MO_x 和 MO_y 相等,取比较小的值;而 z 则靠螺旋桨的反转矩,相同油门增量,能提供的力矩较小,所以 MO_z 应该比较大。想偷懒就可以都设为 1。把各轴的分量加起来就是任意轴的情况:最后把油门增量值和基础值加起来,输出到电调,就完成一个控制周期了。

3. 硬件模块设计
3.1  光流传感器 模块:
3.1.1  模块原理:
光流传感器模块,使用 Agilent Technologies 生产的 ADNS-3080 芯片,通过外置镜头获取图片。ADNS-3080 内部自带图像处理单元,ADNS-3080 通过分析连续两张图中像素点的移动。从判断ADNS-3080 在水平面移动情况。芯片将相应的相对位移存到寄存器中。主控芯片通过 SPI 读取芯片寄存器的值进行积分就可以获得水平面位移数据。该模块的SPI 传输速率不宜过快。
注:该模块为整体购买模块,故不能提供原理图和 PCB 图。

3.2  串口超声波 模块:
3.2.1  模块原理:
US-100 超声波测距模块可实现 2cm~4.5m 的非接触测距功能,拥有 2.4~5.5V的宽电压输入范围,静态功耗低于 2mA,自带温度传感器对测距结果进行校正,同时具有 GPIO,串口等多种通信方式,内带看门狗,工作稳定可靠。

(1)采用 IO 触发测距:一个控制口发一个 10US 以上的高电平,模块自动发送 8个 40khz 的方波,自动检测是否有信号返回。有信号返回,通过 IO 输出一高电平,高电平持续的时间就是超声波从发射到返回的时间.测试距离=(高电平时间*声速(340M/S))/2;

(2)采用串口读取数据:通过串口向模块发送 0x55 指令。过大约几毫秒后模块会通过串口发送经过温度补偿后的高度数据给主控芯片。每次读取时间至少为超声波发送到接收的时间。随着高度的增加,时间需要对应的延长。
注:该模块为整体购买模块,故不能提供原理图和 PCB 图。

3.3MPU6050  模块:
3.3.1  模块原理:
MPU6050 模块采用的是 Invensense 公司生产的 MPU6050 芯片,通过外部给芯片供电(兼容 5V 和 3.3V)。通过 IIC 协议可以读取和配置芯片中寄存器。飞行器在运动过程中会改变芯片内陀螺仪和加速度计的值。这些值会通过 IIC 协议被读取到主控芯片中。该模块的 IIC 最高传输频率为 400KHz。

3.3.2  模块原理 图 :



注:该模块为整体购买模块,故不能提供PCB 图。

3.4  整体硬件底板:
3.4.1  底板说明:
本系统各个模块是单独设计制作的,并使用了 TM4C123G LaunchPad 卡板和液晶,故接线繁多,容易出错,此底板是用来连接各个模块使用的,使系统接线大量减少,并可将 TM4C123G LaunchPad 卡板直接插在底板上,使用方便。

3.4.2  底板原理图:



3.4.3  底板 PCB  图:



4. 系统软件设计
本作品以 Tiva C TM4C123G LaunchPad 为平台,软件设计中主要使用了定时器、定时器捕获、FPU、PWM、SPI、串口等资源。在飞行器平衡控制,光流传感器的位置闭环,超声波传感器定高等我们采用了多组独立的 PID 控制。其中超声波定高采用了增量式 PID;光流测位移也采用了位置式 PID 构成位置闭环;平衡控制中俯仰,横滚,航偏采用了独立的 3 组位置式 PID 控
制。

4.1  系统 流程图
系统启动后,首先进入系统初始化模块初始化设置各个所用到的各个模块及外设,之后等待蓝牙发送的选择模式的命令,确定后。电机初始化,准备飞行。



4.1.2  定时器中断子流程图
利用定时器 TimerA0 中断函数产生采样周期,并分周期对姿态,高度及位移进行采集和控制。



4.1.3  功能一子流程图:
飞行器能够根据起飞前预置的指令起飞,飞离地面高度应超过 30cm,飞行距离(水平)应超过 60cm,然后飞行器应能平稳降落。

启动
油门每个周期+5
判断高度(MM)
DistanceTemp>200
Y
进入高度PID调节
范围,高度控制开
始工作
输出由高度影响的
油门增量High_OUT
飞行时间
time_num>set_
time
降落
time_num > 10
&&
DistanceTemp > 400
&&
stop_flag!=1
光流传感器开始工作
ADNS_GO=1
Y
set_time-40
>time_num>40
给横滚和俯仰角赋入设定的偏移量
x_FORWARD_OUT = x_FORWARD;
y_FORWARD_OUT = y_FORWARD;
Y
ADNS_GO=0 N
x_FORWARD_OUT=0
y_FORWARD_OUT=0
N



4.1.4  功能二子流程图:
飞行器能够根据指定(键盘设定)的飞行高度及降落地点(方向及距离)连续稳
定地完成起飞、指定高度水平飞行、平稳降落等动作。
启动
油门每个周期+5
判断高度(MM)
DistanceTemp>200
Y
进入高度PID调节
范围,高度控制开
始工作
输出由高度影响的
油门增量High_OUT
飞行时间
time_num>set_
time
降落
time_num > 10
&&
DistanceTemp > 400
&&
stop_flag!=1
光流传感器开始工作
ADNS_GO=1
Y
set_time-40
>time_num>40
给横滚和俯仰角赋入设定的偏移量
x_FORWARD_OUT = x_FORWARD;
y_FORWARD_OUT = y_FORWARD;
Y
ADNS_GO=0 N
x_FORWARD_OUT=0
y_FORWARD_OUT=0
判断位移是否够
N
Y
N



4.1.5  功能三子流程图:
飞行器能够根据起飞前预置的指令垂直起飞,起飞后能够在 50cm 以上高度
平稳悬停 5s 以上,然后再平稳缓慢降落到起飞地点;起飞与降落地点水平距离
不超过 30cm。
启动
油门每个周期+5
判断高度(MM)
DistanceTemp>200
Y
进入高度PID调节
范围,高度控制开
始工作
输出由高度影响的
油门增量High_OUT
飞行时间
time_num>set_
time
降落
time_num > 10
&&
DistanceTemp > 400
&&
stop_flag!=1
光流传感器开始工作
ADNS_GO=1
Y
ADNS_GO=0
位移闭环,位置PID工作
输出由位移影响的横滚和俯仰角曾量
POSSTION_X_OUT
POSSTION_Y_OUT
N



4.2  单片系统配置说明
(1)系统时钟频率为 80MHz。

(2)设计中使用了定时器 0 中定时器 A,选用主系统时钟,未分频,频率为80MHz。定时器 A溢出值为2000,定时器溢出中断时间为1/80M*2000=0.5MS,本作品在 Timer0A 中断中读取读取 MPU6050 中的值、光流传感器的值。同时进行姿态融合和控制 PWM 输出。

(3)设计中使用了定时器 2 中定时器 A,选用主系统时钟 80 分频,频率为1MHz。设置成双边沿捕获模式,开启捕获中断。

(4)设计中使用了 UART0 用于和串口蓝牙通信。选用主系统时钟,波特率设置为 9600,8 位数据位,没有校验位,1 位停止位,开启接收中断。

(5)设计中使用了 UART3 用于和串口超声波通信。选用主系统时钟,波特率设置为 9600,8 位数据位,没有校验位,1位停止位。

(6)设计中使用了 PWM0 和 PWM1。选用主系统时钟 64 分频,频率为1.25MHz。计数模式采用减计数模式,PWM 周期为 1/1.25M*25000=0.02S,使能PWM0 的 OUT0(PB6)、OUT1(PB7)和 PWM1 的 OUT0(PD0)、OUT1(PD1)四个输出端口产生四路独立的 PWM 共同控制无刷电机的转动。

(7)设计中使用了 SPI1 接口。选用主系统时钟,模式 1,设置为主机,通讯速度为 1KHz。数据宽度为 8 位。

(8)设计中使用了 I2C2 接口用于和 MPU6050 模块通信。选用主系统时钟,不分频。速度为 400KHz。

4.3  算法介绍
(1) 四元素解算与互补滤波(姿态解算)
与目前常用的卡尔曼滤波算法相比,采用互补滤波器算法的求解器能显著降低对处理器速度和精度的要求,有效融合了捷联惯性测量单元的传感器数据,实现了小型四旋翼飞行器的高精度姿态解算。角度传感器的值准能测出微笑角度变化而且没有毛刺,但是受外界特别是温度影响大,偏移很大;加速度计的值很准确但是毛刺很多,受震动影响大,但是没有漂移,所以用互补滤波,角度传感器的值和加速度计的取长补短融合出一个较可靠的偏角数据。姿态解算的核心在于旋转,一般旋转有 4 种表示方式:矩阵表示、欧拉角表示、轴角表示和四元数表示。矩阵表示适合变换向量,欧拉角最直观,轴角表示则适合几何推导,而在组合旋转方面,四元数表示最佳。因为姿态解算需要频繁组合旋转和用旋转变换向量,所以采用四元数保存组合姿态、辅以矩阵来变换向量的方案。四元数可以理解为一个实数和一个向量的组合,也可以理解为四维的向量。这里用一个圈表示 q 是一个四元数四元数的长度(模)与普通向量相似。下面是对四元数的单位化,单位化的四元数可以表示一个旋转。四元数相乘,旋转的组合旋转的“轴角表示”转“四元数表示”。这里创造一个运算 q(w,θ),用于把绕单位向量 w 转θ角的旋转表示为四元数。通过 q(w,θ),引伸出一个更方便的运算 q(f,t)。有时需要把向量 f 的方向转到向量 t 的方向,这个运算就是生成表示对应旋转的四元数的然后是“四元数表示”转“矩阵表示”。再次创造运算,用 R(q)表示四元数q 对应的矩阵多个旋转的组合可以用四元数的乘法来实现。“四元数表示”转“欧拉角表示”

(2 ) 平衡算法 (姿态闭环)
四轴系统是三维度的系统,运动有三个方向的角度变化,分别是横滚角(roll),俯仰角(pitch)和航偏角(yaw)。 入要使飞机平衡在空中,必须使 roll,picth,yaw 处在零度的位置上。但是现实是不可能的,外界干扰,以及结构和驱动的不对称使得这不可实现。我们采用了 3 个独立的 PID 控制器对 roll、pitch、yaw 实行控制使得这三个量处在趋近于零度的相对稳定中,这样飞机就得以在空中平衡。对于航偏角(yaw) 我们采用位置式 PID,将角度传感器传回来的值积分得到航偏角,将航偏角比例放大,积分,和微分。选择合适的一组比例常数 P,积分常数 I 和微常数 D ,得到一个合适的一个电机油门控制量 PID_YAW.OUT 以不同的相位叠加到四个电机上。对于横滚角(roll), 我们也采用位置式 PID,将角度传感器传回来的值进行积分得到的角度和陀螺仪直接传回来的角度值进行融合,得到一个可信,几乎没有漂移的横滚角(roll),然后将横滚角比例放大,积分,和微分。选择合适的一组比例常数 P,积分常数 I 和微常数 D ,得到一个合适的一个电机油门控制量 PID_ROLL.OUT 以不同的相位叠加到四个电机上。对于俯仰角(pitch),因为四轴的结构对称,所以对于俯仰角(pitch)与横滚角(roll)的处理方法是一样的。

(3 ) 超声波定高(高度闭环)
对于高度,我们使用的是用集成超声波模块将所测到的距离信息以串口发送到 mcu。采到的当前高度 DistanceTemp 单位 mm,当自动启飞后油门自加,当高度 DistanceTemp 大于 200 后,油门停止自加。进入高度 PID 控制器 HIGH_PD通过调节油门增量的大小将飞机稳定在设定高度 set_High。对高度 PID 控制器 HIGH_PD,对比常规的位置式已不满足要求,如果用位置式 PID,当在没有误差时,也就是说在DistanceTemp = = set_high 时 那么油门增量为 0,也就没了一项油门的输出,飞机就会往下掉,当飞机又检测到高度不够时,它又会猛的抬升油门,这个模型就像一个弹簧,刚好在平衡位置时恢复力为零,速度最大。隐藏根本不可能稳定的停在设定高度。所以我们选用增量式 PID 控制器调节。我们在增量式 PID 的输入加了一个前置的限幅操作,使得进入控制算法的给定值不突变。从而避免离所设定高度较大时的油门猛冲。

公式为:
△ u(k)= u(k)- u(k-1)
△ u(k)=Kp[e(k)-e(k-1)]+Kie(k)+Kd[e(k)-2e(k-1)+e(k-2)]

(4 ) 光流测位移(位置闭环)
光流传感器用来检测位置的变化,光流传感器会每一个周期采集一张图片,对比和前一张照片的像素点移动来确定这个周期较上个周期的位移 raw_dx 与raw_dy。通过对这两个量的积分得到飞行器较初始位置向 x 轴的位移 in_x 与较 y轴的位移 in_y。要使飞行器稳定在原点不动不可能,但是我们可以通过光流传回来的值算出飞行器的位移,把位移量引入 PID 控制器,通过对 x 轴上和 y 轴上位移的分别作比例放大,积分,微分。分别选择合适的一组比例常数 P,积分常数 I 和微常数D ,得到一个合适的X轴角度偏量x_FORWARD和Y轴的偏移量y_FORWARD,叠加到俯仰角(pitch),和横滚角(roll)上,通过控制飞机的倾角从而控制飞机的位移,让飞行器相对静止在一点上。

5.  系统测试
5.1  测试仪器及测试环境
(1)测试仪器:秒表、卷尺
(2)测试环境:光线充足的实验室、地面平整且不反光,房间内没有较强的风。

题目要求(1 ):飞行器能够根据起飞前预置的指令起飞,飞离地面高度应超过30cm,飞行距离(水平)应超过60cm,然后飞行器应能平稳降落。
测试方法:飞行器起飞前记录飞行器起飞位置,按键选择功能一。然后通过遥控器让飞行器起飞,飞行过程中通过卷尺测量测量飞行高度,飞机落地后记录落地位置,用卷尺测量水平飞行距离。
测试结果:
表5.1.1 题目要求一测试结果表
测试次数  1  2  3  4  5
飞行高度(cm) 40  58  37  50  67
水平飞行距离(cm)  107  78  69  135  89

题目要求(2 2 ):飞行器能够根据指定(键盘设定)的飞行高度及降落地点(方向及距离)连续稳定地完成起飞、指定高度水平飞行、平稳降落等动作。

测试方法:飞行器起飞前记录飞行器起飞位置,按键选择功能二。然后通过遥控器让飞行器起飞,飞行过程中通过卷尺测量测量飞行高度,飞机落地后记录落地位置,用卷尺测量水平飞行距离。

注:程序中飞行器飞行方向始终设置向前飞行,在起飞前通过改变飞行器方位从而改变飞行方向。故不再测试。

测试结果:
表5.1.2 题目要求二测试结果表
题目要求(3 3 ):飞行器能够根据起飞前预置的指令垂直起飞,起飞后能够在50cm以上高度平稳悬停5s以上,然后再平稳缓慢降落到起飞地点;起飞与降落地点水平距离不超过30cm。

测试方法:飞行器起飞前记录飞行器起飞位置,按键选择功能三。然后通过遥控器让飞行器起飞。飞行器开始悬停时开始计时,悬停过程中通过卷尺测量测量飞行高度。飞行器开始降落时停止计时,飞机落地后记录落地位置,用卷尺测量水平飞行距离。

测试结果:
表5.1.3 题目要求三测试结果表
题目要求(4 4 ):其他自主发挥设计的飞行动作。
测试方法:无
测试结果:无
以上各项测试结果表明本作品实现了题目的所有基本功能。

6. 作品小结
(1)四旋翼飞行器的设计首先需要保证机械结构的正确及其稳定性,排除由于机械机构的不稳定给设计带来的复杂度。

(2)四旋翼飞行器本身是一个复杂的、非线性、不稳定的系统,在选取 PID参数时仅能通过实验的方法进行调试,调试过程需要耐心,按照 PID 参数调试口诀,仔细分析四旋翼飞行器的姿态进行调试。

(3)在设计之初,采用了单环控制,仅对姿态融合后的 3 个欧拉角进行反馈控制,而高度和水平位移采取开环控制。经过 PID 控制后,虽然能够能通过遥控器暂时使飞机平稳飞行在一定高度,但是会在水平方向任意移动。为了解决这一问题,对水平方向和高度上同样进行闭环,利用光流传感器和超声波模块给

测试次数  1  2  3  4  5
飞行高度(cm) 50  48  40  50  65
水平飞行距离(cm)  205  247  156  190  284
测试次数  1  2  3  4  5
飞行高度(cm) 50  52  65  49  57
悬停时间(s)  7  9  7.6  8.2  7.6
水平飞行距离(cm)  10  5  23  11  8

水平方向和高度上的飞行姿态进行反馈,通过各自的 PID 控制后提供给电机一个修正值,经过试验取得合适数据后,使的作品完美达到了题目的各项要求。

(4)本作品的不足之处:由于 PID 参数的不可移植性,面对不同的控制对象参数都需要重新调节。同时对硬件和飞行环境要求比较严格,特别是飞机的重心,飞行环境的亮度要求严格。



45

主题

179

帖子

455

积分

二氧化硅

Rank: 2

积分
455
沙发
发表于 2019-12-6 10:27:31   只看该作者
谢谢分享

41

主题

160

帖子

332

积分

二氧化硅

Rank: 2

积分
332
板凳
发表于 2019-12-6 10:31:42   只看该作者
谢谢分享
快速回复 返回顶部 返回列表