微型四旋翼

来自工场百科

微型四旋翼项目的目标是实现一种最大尺寸小于15cm的遥控四旋翼,最低要求可以实现可控飞行。

微型四旋翼项目最初由严斌发起并推进,严斌的设计以下简称A型。2013年3月王若溪获得A型图纸和程序以后开始进行自己的设计,以下简称B型。 2014年初方鑫设计了自己的微型四旋翼(C型),他的微型四旋翼首先实现可控飞行。王若溪于2014年6月实现可控飞行。 2014年7月暑期培训时任勇也设计了微型四旋翼(D型),将实现方案简化,以便培训新人。

A型

 
严斌的微型四旋翼

完成度

  • 可使用安卓手机遥控
  • 有姿态保持功能

实现方案

  • 直径7mm直流空心杯电机作为动力,3.7V锂聚合物电池提供能源
  • 旋翼直径46mm,相邻旋翼中心距约60mm
  • 整块PCB板作为机身
  • STM32F103C8主控制器,MPU6050加速度计/速率陀螺,HMC5883磁强计,MS5611-01BA03气压计
  • 单环PID控制器,传感器融合算法是互补滤波或卡尔曼滤波


B型

B型微型四旋翼项目于2014年7月参加庆科首届智能硬件创新设计大赛后搁置。

目前概况

 
微型四旋翼与AndroPilot地面站

完成度

  • 俯仰、滚转保持,航向阻尼
  • 与地面站通信,接受姿态角、航向角速率和油门指令并传回姿态(不包括航向角)、IMU测量值、电池电压等信息

实现方案

  • 720直流空心杯电机作为动力,3.7V 250mAh至400mAh锂聚合物电池提供能源
  • 旋翼直径46mm,相邻旋翼中心距60mm
  • 机身由板材、尼龙柱和小电动直升机尾桨座拼接、粘合而成
  • STM32F103C8主控制器,MPU6000加速度计/速率陀螺,通信模块为济南华茂科技有限公司HM-02、HM-06蓝牙模块或者上海庆科信息技术有限公司EMW3161 WiFi模块。
  • 主控制器中运行FreeRTOS 8.0.2操作系统,与地面站通信的应用层协议是MAVlink,地面站软件是QGroundControl
  • 控制器是双环PID,传感器融合算法来自Madgwick的研究报告
  • 根据推导出的飞行动力学模型,飞行器质心被设计得尽量靠近旋翼平面,这样可以使模型变得简单,也许便于PID调参

实现细节

飞行动力学模型

 
微型四旋翼中各物理量的示意,其中解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle x_B} 指向机头,解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle T_i} 是旋翼解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle i} 产生的升力,解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle Q_i} 是旋翼解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle i} 产生的扭矩,解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle \Omega_i} 是旋翼解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle i} 的转速。

定义:

  • 解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle \theta}解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle \phi}解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle \psi} 分别是俯仰、滚转、航向角
  • 解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle p}解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle q}解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle r} 分别是滚转、俯仰、偏航角速率,即沿解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle x_B}解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle y_B}解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle z_B} 的角速率
  • 解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle u}解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle v}解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle w} 分别是质心在导航系解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle xyz} 轴中的速度分量
  • 解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle z_r} 是旋翼平面相对于飞行器质心的位置,高于质心为正
  • 解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle I_{bi}} 是机体沿解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle i_B} 轴的惯性矩(机体有对称性,故解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle x_B y_B z_B} 为惯性主轴),解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle I_{rz}} 是旋翼沿转轴的惯性矩
  • 解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle \left\{ \begin{array}{l} \Delta\Omega_T = \Delta\Omega_1 + \Delta\Omega_2 + \Delta\Omega_3 + \Delta\Omega_4 \\ \Delta\Omega_P = \Delta\Omega_1 - \Delta\Omega_3 \\ \Delta\Omega_R = \Delta\Omega_4 - \Delta\Omega_2 \\ \Delta\Omega_Y = \Delta\Omega_2 + \Delta\Omega_4 - \Delta\Omega_1 - \Delta\Omega_3 \end{array} \right. } 是各个旋翼转速变化量的线性组合
  • 解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle A}解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle B \cdots F} 是与旋翼形状和转速有关的参数


定义悬停状态为 解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle \left\{ \begin{array}{l} \theta = \phi = \psi = 0 \\ \theta = \phi = p = q = r = u = v = w = 0 \\ \Omega_i = \Omega_h \qquad(i = 1,2,3,4) \\ T_i = \displaystyle\frac{mg}{4} \qquad(i = 1,2,3,4) \end{array} \right. }


那么在悬停状态附近线性化的状态空间方程为

解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle \begin{bmatrix} \Delta\dot{\theta} \\ \Delta\dot{q} \\ \Delta\dot{u} \end{bmatrix} = \begin{bmatrix} 0 & 1 & 0 \\ 0 & -\frac{z_r^2 A+B}{I_{by}} & -\frac{z_r A}{I_{by}} \\ -g & -\frac{z_r A}{m} & -\frac{A}{m} \end{bmatrix} \begin{bmatrix} \Delta\theta \\ \Delta q \\ \Delta u \end{bmatrix} + \begin{bmatrix} 0 & 0 \\ 0 & \frac{Cl}{I_{by}} \\ 0 & 0 \end{bmatrix} \begin{bmatrix} \Delta\dot{\Omega}_P \\ \Delta\Omega_P \end{bmatrix} }

解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle \begin{bmatrix} \Delta\dot{\phi} \\ \Delta\dot{p} \\ \Delta\dot{v} \end{bmatrix} = \begin{bmatrix} 0 & 1 & 0 \\ 0 & -\frac{z_r^2 A+B}{I_{bx}} & \frac{z_r A}{I_{bx}} \\ g & \frac{z_r A}{m} & -\frac{A}{m} \end{bmatrix} \begin{bmatrix} \Delta\phi \\ \Delta p \\ \Delta v \end{bmatrix} + \begin{bmatrix} 0 & 0 \\ 0 & \frac{Cl}{I_{bx}} \\ 0 & 0 \end{bmatrix} \begin{bmatrix} \Delta\dot{\Omega}_R \\ \Delta\Omega_R \end{bmatrix} }

解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle m \Delta\dot{w} = -D \Delta w - C \Delta\Omega_T }

解析失败 (SVG(MathML可通过浏览器插件启用):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle I_{bz} \Delta\dot{r} = -E \Delta r + F \Delta\Omega_Y + I_{rz} \Delta\dot{\Omega}_Y }

姿态测量

控制器

硬件

软件

地面站通信

惯性传感器误差标定

PID参数

历史版本

C型

D型

外部链接