发明内容
本发明的主要目的在于保证飞行器在复杂条件下的稳定飞行。
为实现上述目的,本发明提供一种飞行器的控制方法,所述飞行器的控制方法包括以下步骤:
根据检测到的当前垂直方向的位置和加速度,通过坐标系的转换及负反馈双闭环控制得到飞行器在机体坐标系中垂直方向上的推力;
根据检测到的当前经纬度值和水平方向的速度,通过坐标系的转换及负反馈双闭环控制得到飞行器在机体坐标系中水平方向的控制量;
根据检测到的当前垂直方向和水平方向的磁感应数据,通过坐标系的转换及反馈控制得到航向方向的控制量;
根据所述垂直方向上的推力、水平方向的控制量和航向方向的控制量,控制飞行器飞行至目标位置。
优选地,所述根据检测到的当前垂直方向的位置和加速度,通过坐标系的转换及负反馈双闭环控制得到飞行器在机体坐标系中垂直方向上的推力的步骤包括:
根据加速度计检测到的当前垂直方向的加速度,通过方向余弦矩阵进行坐标系的转换以得到导航坐标系中垂直方向的加速度;
根据气压计检测到的当前垂直方向的位置,以及所述导航坐标系中垂直方向的加速度,通过融合滤波处理得到实际高度和垂直方向的实际速度;
将目标高度与实际高度的差值输入至高度外环PID控制器,通过高度外环PID控制后得到垂直方向的目标速度;
将垂直方向的目标速度与垂直方向的实际速度的差值输入至高度内环PID控制器,通过高度内环PID控制后得到飞行器在导航坐标系中垂直方向上的推力,并对该飞行器在导航坐标系中垂直方向上的推力进行补偿,得到飞行器在机体坐标系中垂直方向上的推力。
优选地,所述根据检测到的当前经纬度值和水平方向的速度,通过坐标系的转换及负反馈双闭环控制得到飞行器在机体坐标系中水平方向的控制量的步骤包括:
根据定位装置检测到的当前经纬度值,通过在导航坐标系中进行投影得到飞行器在导航坐标系中X轴和Y轴的目标位置;
将X轴的目标位置和X轴的实际位置的差值输入至水平外环PID控制器,通过水平外环PID控制得到飞行器在导航坐标系中X轴的目标速度;将Y轴的目标位置和Y轴的实际位置的差值输入至水平外环PID控制器,通过水平外环PID控制得到飞行器在导航坐标系中Y轴的目标速度;
将定位装置检测到的飞行器X轴的实际速度与在导航坐标系中X轴的目标速度的差值输入至水平内环PID控制器,通过水平内环PID控制得到飞行器在导航坐标系中X轴的控制量,并对该行器在导航坐标系中X轴的控制量进行补偿,得到行器在机体坐标系中X轴的控制量;将定位装置检测到的飞行器Y轴的实际速度与在导航坐标系中Y轴的目标速度的差值输入至水平内环PID控制器,通过水平内环PID控制得到飞行器在导航坐标系中Y轴的控制量,并对该行器在导航坐标系中Y轴的控制量进行补偿,得到行器在机体坐标系中Y轴的控制量。
优选地,所述根据检测到的当前垂直方向和水平方向的磁感应数据,通过坐标系的转换及反馈控制得到航向方向的控制量的步骤包括:
根据指南针检测到的机体坐标系中当前垂直方向和水平方向上的磁感应数据,通过方向余弦矩阵进行坐标系的转换以得到导航坐标系中水平方向上的磁感应数据;
根据所述导航坐标系中水平方向上的磁感应数据,计算得到飞行器的实际航向角度;
将所述实际航向角度与目标航向角度的差值输入至航向PID控制器,通过航向PID控制得到航向方向的控制量。
优选地,所述飞行器的控制方法还包括步骤:
根据指南针检测到的机体坐标系中当前垂直方向和水平方向上的磁感应数据,通过方向余弦矩阵进行坐标系的转换以得到导航坐标系中水平方向上的磁感应数据;
根据所述导航坐标系中水平方向上的磁感应数据,计算得到飞行器的实际航向角度;
根据所述实际航向角度与目标航向角度的差值计算出飞行器所需的旋转角度,并根据所述旋转角度控制飞行器的尾部朝向目标点。
此外,为实现上述目的,本发明还提供一种飞行器的控制装置,所述飞行器的控制装置包括:
垂直方向控制单元,用于根据检测到的当前垂直方向的位置和加速度,通过坐标系的转换及负反馈双闭环控制得到飞行器在机体坐标系中垂直方向上的推力;
水平方向控制单元,用于根据检测到的当前经纬度值和水平方向的速度,通过坐标系的转换及负反馈双闭环控制得到飞行器在机体坐标系中水平方向的控制量;
导航控制单元,根据检测到的当前垂直方向和水平方向的磁感应数据,通过坐标系的转换及反馈控制得到航向方向的控制量;
飞行控制单元,用于根据所述垂直方向上的推力、水平方向的控制量和航向方向的控制量,控制飞行器飞行至目标位置。
优选地,所述垂直方向控制单元包括气压计、加速度计和第一控制器,其中:
所述气压计,用于检测当前垂直方向的位置;
所述加速度计,用于检测当前垂直方向的加速度;
所述第一控制器,用于根据加速度计检测到的当前垂直方向的加速度,通过方向余弦矩阵进行坐标系的转换以得到导航坐标系中垂直方向的加速度;根据气压计检测到的当前垂直方向的位置,以及所述导航坐标系中垂直方向的加速度,通过融合滤波处理得到实际高度和垂直方向的实际速度;将目标高度与实际高度的差值输入至高度外环PID控制器,通过高度外环PID控制后得到垂直方向的目标速度;将垂直方向的目标速度与垂直方向的实际速度的差值输入至高度内环PID控制器,通过高度内环PID控制后得到飞行器在导航坐标系中垂直方向上的推力,并对该飞行器在导航坐标系中垂直方向上的推力进行补偿,得到飞行器在机体坐标系中垂直方向上的推力。
优选地,所述水平方向控制单元包括定位装置和第二控制器,其中:
所述定位装置,用于检测当前经纬度值和水平方向上X轴和Y轴的速度;
所述第二控制器,用于根据定位装置检测到的当前经纬度值,通过在导航坐标系中进行投影得到飞行器在导航坐标系中X轴和Y轴的目标位置;将X轴的目标位置和X轴的实际位置的差值输入至水平外环PID控制器,通过水平外环PID控制得到飞行器在导航坐标系中X轴的目标速度;将Y轴的目标位置和Y轴的实际位置的差值输入至水平外环PID控制器,通过水平外环PID控制得到飞行器在导航坐标系中Y轴的目标速度;将定位装置检测到的飞行器X轴的实际速度与在导航坐标系中X轴的目标速度的差值输入至水平内环PID控制器,通过水平内环PID控制得到飞行器在导航坐标系中X轴的控制量,并对该行器在导航坐标系中X轴的控制量进行补偿,得到行器在机体坐标系中X轴的控制量;将定位装置检测到的飞行器Y轴的实际速度与在导航坐标系中Y轴的目标速度的差值输入至水平内环PID控制器,通过水平内环PID控制得到飞行器在导航坐标系中Y轴的控制量,并对该行器在导航坐标系中Y轴的控制量进行补偿,得到行器在机体坐标系中Y轴的控制量。
优选地,所述导航控制单元包括指南针和第三控制器,其中:
所述指南针,用于检测机体坐标系中当前垂直方向和水平方向上的磁感应数据;
所述第三控制器,用于根据指南针检测到的机体坐标系中当前垂直方向和水平方向上的磁感应数据,通过方向余弦矩阵进行坐标系的转换以得到导航坐标系中水平方向上的磁感应数据;根据所述导航坐标系中水平方向上的磁感应数据,计算得到飞行器的实际航向角度;将所述实际航向角度与目标航向角度的差值输入至航向PID控制器,通过航向PID控制得到航向方向的控制量。
本发明在检测到当前垂直方向的位置和加速度后,通过高度外环PID控制和高度内环PID控制得到目标速度和飞行器在机体坐标系中垂直方向上的推力,在检测到当前经纬度值和当前水平方向的速度后,通过水平外环PID控制和水平内环PID控制得到飞行器在导航坐标系中水平方向的目标速度以及水平方向的控制量,以及在检测到当前垂直方向和当前水平方向的磁感应数据后,计算得到当前航向角度,并通过航向PID控制得到航向方向的控制量,然后控制飞行器以垂直方向上的推力、水平方向的控制量和航向方向的控制量飞行至目标高度位置。由于可实现在垂直方向、水平方向以及航向方向对飞行器的控制,因此可精确控制飞行器在设定的高度飞行,从而保证了飞行器在复杂条件下的稳定飞行。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种飞行器的控制方法。
参照图1,图1为本发明飞行器的控制方法第一实施例的流程示意图。
在一实施例中,飞行器的控制方法包括:
步骤S10,根据检测到的当前垂直方向的位置和加速度,通过坐标系的转换及负反馈双闭环控制得到飞行器在机体坐标系中垂直方向上的推力;
步骤S20,根据检测到的当前经纬度值和水平方向的速度,通过坐标系的转换及负反馈双闭环控制得到飞行器在机体坐标系中水平方向的控制量;
步骤S30,根据检测到的当前垂直方向和水平方向的磁感应数据,通过坐标系的转换及反馈控制得到航向方向的控制量;
步骤S40,根据所述垂直方向上的推力、水平方向的控制量和航向方向的控制量,控制飞行器飞行至目标位置。
在飞行器飞行的过程中,设于飞行器上的检测装置实时检测当前垂直方向的位置,以及飞行器当前飞行的加速度;在接收到设于飞行器上的检测装置检测到当前垂直方向的位置,以及飞行器当前飞行的加速度后,因加速度计测量的飞行器当前的加速度值是在机体坐标系中的值,所以在进行负反馈双闭环控制之前,需要将机体坐标系中的加速度转换到导航坐标系中。具体是通过姿态角度(俯仰角、横滚角、航向角)获取方向余弦矩阵,再用机体坐标系下的加速度数据乘以方向余弦矩阵得到导航坐标系下的加速度数据。同时,对检测到的当前垂直方向的位置和导航坐标系下的加速度进行处理以输出实际高度和导航坐标系下的Z轴的实际速度;然后进行负反馈双闭环控制,即进行高度外环PID控制和高度内环PID控制,以分别得到导航坐标系下的Z轴的目标速度和飞行器在导航坐标系中垂直方向上的推力,对该导航坐标系中垂直方向上的推力进行补偿以得到飞行器机体坐标系中的推力,并将该机体坐标系中的推力输出至飞行器的驱动装置(以四旋翼为例,该机体坐标系中的推力输出并经处理后至飞行器的四个驱动电机),以控制飞行器飞行至目标高度位置。
设于飞行器上的检测装置还实时检测当前经、纬度值和当前水平方向的速度,检测装置所检测的当前经、纬度值和当前水平方向的速度均是在导航坐标系中的数据。在接收到检测到的当前经、纬度值和当前水平方向的速度后,分别计算当前经度值和当前纬度值所对应的在导航坐标系中的弧长,并将所得到的弧长投影至导航坐标系的X轴和Y轴,以对应得到飞行器在导航坐标系中X轴和Y轴的位置坐标;然后,对飞行器在导航坐标系中X轴的目标位置和实际位置的差值,以及Y轴的目标位置和实际位置的差值分别进行水平外环PID控制,得到飞行器在导航坐标系中X轴的目标速度以及飞行器在导航坐标系中Y轴的目标速度;再对X轴的目标速度和X轴的实际速度的差值,以及Y轴的目标速度和Y轴的实际速度的差值进行水平内环PID控制,得到X轴方向的控制量和Y轴方向的控制量。再将X轴方向的控制量投影并耦合到飞行器的机体坐标系中得到横滚方向控制量,以及Y轴方向的控制量投影并耦合到飞行器的机体坐标系中得到俯仰方向控制量,最后将该横滚方向控制量和俯仰方向控制量输出至飞行器的驱动装置,以控制飞行器飞行至水平目标位置。
在检测到当前垂直方向和当前水平方向的磁感应数据后,将该机体坐标系中的磁感应数据耦合至导航坐标系中,以得到导航坐标系中的磁感应数据,然后根据导航坐标系中的磁感应数据计算得到当前航向角度,再对当前航向角度和目标航向角度的差值进行航向PID控制,得到航向方向的控制量,以根据该航向方向的控制量控制飞行器的驱动装置(以四旋翼为例,该机体坐标系中的推力输出并经处理后至飞行器的四个驱动电机),使飞行器的航向角度逼近目标航向角度。
得到了飞行器在机体坐标系中垂直方向上的推力、飞行器在X轴方向的控制量和Y轴方向的控制量,以及航向方向的控制量后,控制飞行器以相应的控制量飞行至目标高度位置,具体为控制飞行器的驱动装置的驱动电机以各个方向上的控制量动作,从而飞行至目标位置。
本实施例在检测到当前垂直方向的位置和加速度后,通过高度外环PID控制和高度内环PID控制分别得到目标速度和飞行器在机体坐标系中垂直方向上的推力,在检测到当前经纬度值和当前水平方向的速度后,通过水平外环PID控制和水平内环PID控制分别得到飞行器在导航坐标系中水平方向的目标速度以及水平方向的控制量,以及在检测到当前垂直方向和当前水平方向的磁感应数据后,计算得到当前航向角度,并通过航向PID控制得到航向方向的控制量。然后控制飞行器以垂直方向上的推力、水平方向的控制量和航向方向的控制量飞行至目标位置,由于可实现在垂直方向、水平方向以及航向方向对飞行器的控制,因此可精确控制飞行器在设定的位置飞行,从而保证了飞行器在复杂条件下的稳定飞行。
参照图2,图2为图1中垂直方向控制的步骤的细化流程示意图。
基于上述本发明飞行器的控制方法第一实施例,步骤S10具体包括:
步骤S11,根据加速度计检测到的当前垂直方向的加速度,通过方向余弦矩阵进行坐标系的转换以得到导航坐标系中垂直方向的加速度;
本实施例中,通过姿态角度(俯仰角、横滚角、航向角)获取方向余弦矩阵,再用机体坐标系下的加速度数据乘以方向余弦矩阵得到导航坐标系下的加速度数据。
步骤S12,根据气压计检测到的当前垂直方向的位置,以及所述导航坐标系中垂直方向的加速度,通过融合滤波处理得到实际高度和垂直方向的实际速度;
本实施例中,可采用卡尔曼滤波算法对当前垂直方向的位置和加速度进行融合滤波处理。
步骤S13,将目标高度与实际高度的差值输入至高度外环PID控制器,通过高度外环PID控制后得到垂直方向的目标速度;
其中Z轴的目标高度为操作者设定的,本实施例中,具体可通过以下方式得到目标速度:
u1(t)=Kp1e1(t)+Ki1∫e1(t)dt+Kd1*de1(t)/dt,e1(t)=Htarget-Hcurrent;
其中,通过Kp1e1(t)计算比例控制量,通过Ki1∫e1(t)dt计算积分控制量,通过Kd1*de1(t)/dt计算微分控制量;Kp1为高度外环比例系数,Ki1为高度外环积分系数,Kd1为高度外环微分系数,e1(t)为高度外环输入量(目标高度和实际高度的差值),Htarget为目标高度,Hcurrent为实际高度;上述公式具体为:目标速度=比例控制量+积分控制量+微分控制量;其中,比例控制量=比例系数*目标高度与实际高度的差值,积分控制量=积分系数*目标高度与实际高度的差值*积分时间,微分控制量=微分系数*(当前目标高度与当前实际高度的差值-前一次目标高度与前一次实际高度的差值)/微分时间。
步骤S14,将垂直方向的目标速度与垂直方向的实际速度的差值输入至高度内环PID控制器,通过高度内环PID控制后得到飞行器在导航坐标系中垂直方向上的推力,并对该飞行器在导航坐标系中垂直方向上的推力进行补偿,得到飞行器在机体坐标系中垂直方向上的推力。
本实施例中,具体可通过以下方式得到飞行器在导航坐标系中垂直方向上的推力:
u2(t)=Kp2e2(t)+Ki2∫e2(t)dt+Kd2*de2(t)/dt,e2(t)=Vz-target-Vz-current;
其中,通过Kp2e2(t)计算比例控制量,通过Ki2∫e2(t)dt计算积分控制量,通过Kd2*de2(t)/dt计算微分控制量,Kp2为高度内环比例系数;Ki2为高度内环积分系数;Kd2为高度内环微分系数;e2(t)为高度内环输入量(Z轴的目标速度和Z轴的实际速度的差值),Vz-target为Z轴的目标速度,Vz-current为Z轴的实际速度。上述公式具体为:导航坐标系Z轴方向的推力=比例控制量+积分控制量+微分控制量,比例控制量=比例系数*Z轴的目标速度与Z轴的实际速度的差值,积分控制量=积分系数*Z轴的目标速度与Z轴的实际速度的差值*积分时间,微分控制量=微分系数*(当前Z轴的目标速度与当前Z轴的实际速度的差值-前一次Z轴的目标速度与前一次Z轴的实际速度的差值)/微分时间。
由于当飞行器倾斜时导航坐标系垂直方向的轴不一定和飞行器垂直方向的轴导完全重合,所以对导航坐标系垂直方向的推力要进行补偿,因此,在得到飞行器在导航坐标系中垂直方向上的推力后,通过查表将导航坐标系垂直方向的推力进行补偿,得到飞行器机体坐标系中的推力。本实施例中,具体补偿方法可以为:
通过计算导航坐标系垂直方向的推力与cosα的比值,得到飞行器机体坐标系中的推力,其中,α等于θ的平方+φ的平方开根号,θ和φ为当前飞行器的姿态角度,θ为飞行器的俯仰角(pitch),φ为当前飞行器的横滚角(roll)。所得到的飞行器机体坐标系中的推力直接作用到飞行器的驱动装置,以控制飞行器飞行至目标高度位置。
参照图3,图3为图1中水平方向控制的步骤的细化流程示意图。
基于上述本发明飞行器的控制方法第一实施例,步骤S20具体包括:
步骤S21,根据定位装置检测到的当前经纬度值,通过在导航坐标系中进行投影得到飞行器在导航坐标系中X轴和Y轴的目标位置;
本实施例中,通过如GPS等定位装置检测当前经、纬度值和当前水平方向上X轴和Y轴的速度,通过计算经度值对应的第一弧长和纬度值对应的第二弧长。导航坐标系以赤道和经度0为基准,参照图4,β为当前的纬度值,γ为当前的经度值;β所对应的弧长为L1(L1=β*R,R为地球半径),γ所对应的弧长为L2(L2=γ*r,r=R*cosβ,R为地球半径,r为当前飞行器所在纬度的圆弧半径)。计算出第一弧长L1和第二弧长L2后,将第一弧长L1和第二弧长L2分别投影到飞行器在导航坐标系中的X轴和Y轴,得到导航坐标系中X轴和Y轴的位置值,即得到飞行器在导航坐标系中X轴和Y轴的实际位置。
步骤S22,将X轴的目标位置和X轴的实际位置的差值输入至水平外环PID控制器,通过水平外环PID控制得到飞行器在导航坐标系中X轴的目标速度;将Y轴的目标位置和Y轴的实际位置的差值输入至水平外环PID控制器,通过水平外环PID控制得到飞行器在导航坐标系中Y轴的目标速度;
本实施例中,可通过如下方式得到飞行器在导航坐标系中X轴的目标速度Vx-target:
u3(t)=Kp3e3(t)+Ki3∫e3(t)dt+Kd3*de3(t)/dt,e3(t)=Xtarget-Xcurrent;
其中,通过Kp3e3(t)计算比例控制量,通过Ki3∫e3(t)dt计算积分控制量,通过Kd3*de3(t)/dt计算微分控制量;Kp3为水平位置X轴比例系数,Ki3为水平位置X轴积分系数,Kd3为水平位置X轴微分系数,e3(t)为水平位置X轴输入量(目标位置和实际位置的差值),Xtarget为飞行器目标位置在导航坐标系中的X位置值,Xcurrent为飞行器当前位置在导航坐标系中的X位置值。上述公式具体为:飞行器在导航坐标系中X轴的目标速度=比例控制量+积分控制量+微分控制量。比例控制量=比例系数*目标X位置值与实际X位置值的差值,积分控制量=积分系数*目标X位置值与实际X位置值的差值*积分时间,微分控制量=微分系数*(当前目标X位置值与当前实际X位置值的差值-前一次目标X位置值与前一次实际X值的差值)/微分时间。
通过如下方式得到飞行器在导航坐标系中Y轴的目标速度Vy-target:
U4(t)=Kp4e4(t)+Ki4∫e4(t)dt+Kd4*de4(t)/dt,e4(t)=Ytarget-Ycurrent;
其中,通过Kp4e4(t)计算比例控制量,通过Ki4∫e4(t)dt计算积分控制量,通过Kd4*de4(t)/dt计算微分控制量;Kp4水平位置Y轴比例系数,Ki4为水平位置Y轴积分系数,Kd4为水平位置Y轴微分系数,e4(t)为水平位置Y轴输入量(目标位置和实际位置的差值);Ytarget为飞行器目标位置在导航坐标系中的Y位置值,Ycurrent为飞行器当前位置在导航坐标系中Y位置值。上述公式具体为:飞行器在导航坐标系中Y轴的目标速度=比例控制量+积分控制量+微分控制量。比例控制量=比例系数*目标Y位置值与实际Y位置值的差值,积分控制量=积分系数*目标Y位置值与实际Y位置值的差值*积分时间,微分控制量=微分系数*(当前目标Y位置值与当前实际Y位置值的差值-前一次目标Y位置值与前一次实际Y位置值的差值)/微分时间。
步骤S23,将定位装置检测到的飞行器X轴的实际速度与在导航坐标系中X轴的目标速度的差值输入至水平内环PID控制器,通过水平内环PID控制得到飞行器在导航坐标系中X轴的控制量,并对该行器在导航坐标系中X轴的控制量进行补偿,得到行器在机体坐标系中X轴的控制量;将定位装置检测到的飞行器Y轴的实际速度与在导航坐标系中Y轴的目标速度的差值输入至水平内环PID控制器,通过水平内环PID控制得到飞行器在导航坐标系中Y轴的控制量,并对该行器在导航坐标系中Y轴的控制量进行补偿,得到行器在机体坐标系中Y轴的控制量。得到飞行器在导航坐标系中X轴和Y轴的目标速度后,将飞行器在导航坐标系中X轴的实际速度Vx-current与目标速度Vx-target的差值输入至水平内环PID控制器,通过水平内环PID控制得到飞行器在导航坐标系中X轴的控制量XC;并将飞行器在导航坐标系中Y轴的实际速度Vy-current与目标速度Vy-target的差值输入至水平内环PID控制器通过水平内环PID控制得到飞行器在导航坐标系中Y轴的控制量YC。本实施例中,通过如下方式得到飞行器在导航坐标系中X轴的控制量XC:
u5(t)=Kp5e5(t)+Ki5∫e5(t)dt+Kd5*de5(t)/dt,e5(t)=Vx-target-Vx-current;
其中,通过Kp5e5(t)计算比例控制量,通过Ki5∫e5(t)dt计算积分控制量,通过Kd5*de5(t)/dt计算微分控制量;Kp5为水平速度X轴比例系数,Ki5为水平速度X轴积分系数,Kd5为水平速度X轴微分系数,e5(t)为水平速度X轴输入量(目标速度和实际速度的差值),Vx-target为飞行器在导航坐标系中X轴方向上的目标速度,Vx-current为飞行器在导航坐标系中X轴方向上的实际速度。上述公式具体为:飞行器在导航坐标系中X轴方向上的控制量=比例控制量+积分控制量+微分控制量。比例控制量=比例系数*飞行器在导航坐标系中X轴方向上的目标速度与飞行器在导航坐标系中X轴方向上的实际速度的差值,积分控制量=积分系数*飞行器在导航坐标系中X轴方向上的目标速度与飞行器在导航坐标系中X轴方向上的实际速度的差值*积分时间,微分控制量=微分系数*(当前无飞行器在导航坐标系中X轴方向上的目标速度与当前飞行器在导航坐标系中X轴方向上的实际速度的差值-前一次飞行器在导航坐标系中X轴方向上的目标速度与前一次飞行器在导航坐标系中X轴方向上的实际速度的差值)/微分时间。
通过如下方式得到飞行器在导航坐标系中Y轴的控制量YC:
U6(t)=Kp6e6(t)+Ki6∫e6(t)dt+Kd6*de6(t)/dt,e6(t)=Vy-target-Vy-current;
其中,通过Kp6e6(t)计算比例控制量,通过Ki6∫e6(t)dt计算积分控制量,通过Kd6*de6(t)/dt计算微分控制量;Kp6为水平速度Y轴第二比例系数,Ki6为水平速度Y轴积分系数,Kd6为水平速度Y轴微分系数,e6(t)为水平速度Y轴输入量(目标速度和实际速度的差值),Vy-target为飞行器在导航坐标系中Y轴方向上的目标速度,Vy-current为飞行器在导航坐标系中Y轴方向上的实际速度。上述公式具体为:飞行器在导航坐标系中Y轴方向上的控制量=比例控制量+积分控制量+微分控制量。比例控制量=比例系数*飞行器在导航坐标系中Y轴方向上的目标速度与飞行器在导航坐标系中Y轴方向上的实际速度的差值,积分控制量=积分系数*飞行器在导航坐标系中Y轴方向上的目标速度与飞行器在导航坐标系中Y轴方向上的实际速度的差值*积分时间,微分控制量=微分系数*(当前飞行器在导航坐标系中Y轴方向上的目标速度与当前飞行器在导航坐标系中Y轴方向上的实际速度的差值-前一次飞行器在导航坐标系中Y轴方向上的目标速度与前一次飞行器在导航坐标系中Y轴方向上的实际速度的差值)/微分时间。
得到飞行器在导航坐标系中X轴方向上的控制量XC和Y轴方向上的控制量YC后,将XC和YC投影并耦合到飞行器的机体坐标系中,参照图5,Ψ为导航角,将X轴方向上的控制量XC投影到飞行器的坐标系中的X′轴和Y′轴上分别得到XC*cosΨ和XC*sinΨ,Y轴方向上的控制量YC投影到飞行器的坐标系中的X′轴和Y′轴上分别得到-YC*sinΨ和YC*cosΨ;最后通过耦合得到,XC′=XC*cosΨ-YC*sinΨ,YC′=XC*sinΨ+YC*cosΨ,其中,XC′为横滚方向控制量;YC′为俯仰方向控制量,并将该横滚方向控制量和俯仰方向控制量输出至飞行器的驱动装置,以控制飞行器飞行至水平目标位置。
参照图6,图6为图1中航向控制的步骤的细化流程示意图。
基于上述本发明飞行器的控制方法第一实施例,步骤S30进一步包括:
步骤S31,根据指南针检测到的机体坐标系中当前垂直方向和水平方向上的磁感应数据,通过方向余弦矩阵进行坐标系的转换以得到导航坐标系中水平方向上的磁感应数据;
本实施例中,通过设置在飞行器中的指南针检测机体坐标系中当前垂直方向和当前水平方向上的磁感应数据(Xb-mag、Yb-mag、Zb-mag),然后,通过MCU将该机体坐标系中的Xb-mag、Yb-mag和Zb-mag耦合到导航坐标系中,得到导航坐标系中的磁感应数据(Xn-mag、Yn-mag)。耦合的方式是方向余弦矩阵,其方法为:
其中θ为飞行器的俯仰姿态角度和φ是飞行器的横滚姿态角度。
步骤S32,根据所述导航坐标系中水平方向上的磁感应数据,计算得到飞行器的实际航向角度;
得到导航坐标系中的磁感应数据后,根据该磁感应数据可计算得到飞行器的实际航向角度Ψcurrent=arctan2(Xn-mag/Yn-mag)。
步骤S33,将所述实际航向角度与目标航向角度的差值输入至航向PID控制器,通过航向PID控制得到航向方向的控制量。
然后,将实际航向角度与目标航向角度的差值输入至航向PID控制器,通过航向PID控制得到飞行器飞行时在航向方向的控制量u7(t),本实施例中,通过如下方式得到飞行器飞行时在航向方向的控制量u7(t):
u7(t)=Kp7e7(t)+Ki7∫e7(t)dt+Kd7*de7(t)/dt,e7(t)=Ψtarget-Ψcurrent;
其中,通过Kp7e7(t)计算比例控制量,通过Ki7∫e7(t)dt计算积分控制量,通过Kd7*de7(t)/dt计算微分控制量;Kp7为航向比例系数,Ki7为航向积分系数,Kd7为航向微分系数,e7(t)为航向输入量(目标航向角度和实际航向角度的差值),Ψtarget为目标航向角度,Ψcurrent为实际航向角度。上述公式具体为:航向控制量=比例控制量+积分控制量+微分控制量。比例控制量=比例系数*目标航向角与实际航向角的差值,积分控制量=积分系数*目标航向角与实际航向角*积分时间,微分控制量=微分系数*(当前目标航向角与当前实际航向角的差值-前一次目标航向角与前一次实际航向角的差值)/微分时间。
在上述本发明飞行器的控制方法在上述任一实施例的基础上还包括定航步骤。本发明第二实施例在第一实施例的基础上中,如图7所示,该方法还包括:
步骤S51,根据指南针检测到的机体坐标系中当前垂直方向和水平方向上的磁感应数据,通过方向余弦矩阵进行坐标系的转换以得到导航坐标系中水平方向上的磁感应数据;
本实施例中,在飞行器飞行的过程中,可通过设置在飞行器的控制器中的特定按键对飞行器的飞行进行一键对尾,使飞行器的尾部在该飞行器飞行的过程中始终朝向某一目标点。通过设置在飞行器中的指南针检测机体坐标系中当前垂直方向和当前水平方向上的磁感应数据(Xb-mag、Yb-mag、Zb-mag),然后,通过MCU将该机体坐标系中的Xb-mag、Yb-mag和Zb-mag耦合到导航坐标系中,得到导航坐标系中的磁感应数据(Xn-mag、Yn-mag)。耦合的方式是方向余弦矩阵,其方法为:
其中θ为飞行器的俯仰姿态角度和φ是飞行器的横滚姿态角度。
步骤S52,根据所述导航坐标系中水平方向上的磁感应数据,计算得到飞行器的实际航向角度;
得到导航坐标系中的磁感应数据后,根据该磁感应数据可计算得到飞行器的实际航向角度Ψcurrent=arctan2(Xn-mag/Yn-mag)。
步骤S53,根据所述实际航向角度与目标航向角度的差值计算出飞行器所需的旋转角度,并根据所述旋转角度控制飞行器的尾部朝向目标点。
通过目标航向角度与实际航向角度的差值得到飞行器所需的旋转角度后,根据该旋转角度控制飞行器旋转对应的角度,以使飞行器的尾部朝向目标点(如起飞点或观察点等)。
在飞行器飞行的过程中,通过一键对尾,根据指南针检测到的机体坐标系中当前水平方向上的磁感应数据得到导航坐标系中水平方向上的标准磁感应数据,并根据标准磁感应数据计算飞行器所需的旋转角度,以控制飞行器旋转对应的角度,使飞行器的尾部朝向目标点。控制飞行器的尾部在其飞行的过程中始终朝向某一目标点,进一步保证了飞行器能够在复杂条件下稳定飞行。
本发明进一步提供一种飞行器的控制装置。
在一实施例中,本发明飞行器的控制装置包括垂直方向控制单元、水平方向控制单元、导航控制单元和飞行控制单元,其中,
垂直方向控制单元,用于根据检测到的当前垂直方向的位置和加速度,通过坐标系的转换及负反馈双闭环控制得到飞行器在机体坐标系中垂直方向上的推力;
水平方向控制单元,用于根据检测到的当前经纬度值和水平方向的速度,通过坐标系的转换及负反馈双闭环控制得到飞行器在机体坐标系中水平方向的控制量;
导航控制单元,根据检测到的当前垂直方向和水平方向的磁感应数据,通过坐标系的转换及反馈控制得到航向方向的控制量;
飞行控制单元,用于根据所述垂直方向上的推力、水平方向的控制量和航向方向的控制量,控制飞行器飞行至目标位置。
在飞行器飞行的过程中,设于飞行器上的检测装置实时检测当前垂直方向的位置,以及飞行器当前飞行的加速度;在接收到设于飞行器上的检测装置检测到当前垂直方向的位置,以及飞行器当前飞行的加速度后,因加速度计测量的飞行器当前的加速度值是在机体坐标系中的值,所以在进行负反馈双闭环控制之前,需要将机体坐标系中的加速度转换到导航坐标系中;具体是通过姿态角度(俯仰角、横滚角、航向角)获取方向余弦矩阵,再用机体坐标系下的加速度数据乘以方向余弦矩阵得到导航坐标系下的加速度数据;同时,垂直方向控制单元对检测到的当前垂直方向的位置和导航坐标系下的加速度进行处理以输出实际高度和导航坐标系下的Z轴的实际速度;然后进行负反馈双闭环控制,即进行高度外环PID控制和高度内环PID控制,以分别得到导航坐标系下的Z轴的目标速度和飞行器在导航坐标系中垂直方向上的推力,对该导航坐标系中垂直方向上的推力进行补偿以得到飞行器机体坐标系中的推力,并将该机体坐标系中的推力输出至飞行器的驱动装置(以四旋翼为例,该机体坐标系中的推力输出并经处理后至飞行器的四个驱动电机),以控制飞行器飞行至目标高度位置。
设于飞行器上的检测装置还实时检测当前经、纬度值和当前水平方向的速度,检测装置所检测的当前经、纬度值和当前水平方向的速度均是在导航坐标系中的数据。在接收到检测到的当前经、纬度值和当前水平方向的速度后,水平方向控制单元分别计算当前经度值和当前纬度值所对应的在导航坐标系中的弧长,并将所得到的弧长投影至导航坐标系的X轴和Y轴,以对应得到飞行器在导航坐标系中X轴和Y轴的位置坐标;然后,对飞行器在导航坐标系中X轴的目标位置和实际位置的差值,以及Y轴的目标位置和实际位置的差值分别进行水平外环PID控制,得到飞行器在导航坐标系中X轴的目标速度以及飞行器在导航坐标系中Y轴的目标速度;再对X轴的目标速度和X轴的实际速度的差值,以及Y轴的目标速度和Y轴的实际速度的差值进行水平内环PID控制,得到X轴方向的控制量和Y轴方向的控制量。再将X轴方向的控制量投影并耦合到飞行器的机体坐标系中得到横滚方向控制量,以及Y轴方向的控制量投影并耦合到飞行器的机体坐标系中得到俯仰方向控制量,最后将该横滚方向控制量和俯仰方向控制量输出至飞行器的驱动装置,以控制飞行器飞行至水平目标位置。
在检测到当前垂直方向和当前水平方向的磁感应数据后,导航控制单元将该机体坐标系中的磁感应数据耦合至导航坐标系中,以得到导航坐标系中的磁感应数据,然后根据导航坐标系中的磁感应数据计算得到当前航向角度,再对当前航向角度和目标航向角度的差值进行航向PID控制,得到航向方向的控制量,以根据该航向方向的控制量控制飞行器的驱动装置(以四旋翼为例,该机体坐标系中的推力输出并经处理后至飞行器的四个驱动电机),使飞行器的航向角度逼近目标航向角度。
得到了飞行器在机体坐标系中垂直方向上的推力、飞行器在X轴方向的控制量和Y轴方向的控制量,以及航向方向的控制量后,飞行控制单元控制飞行器以相应的控制量飞行至目标高度位置,具体为控制飞行器的驱动装置的驱动电机以各个方向上的控制量动作,从而飞行至目标位置。
本实施例在检测到当前垂直方向的位置和加速度后,通过高度外环PID控制和高度内环PID控制分别得到目标速度和飞行器在机体坐标系中垂直方向上的推力,在检测到当前经纬度值和当前水平方向的速度后,通过水平外环PID控制和水平内环PID控制分别得到飞行器在导航坐标系中水平方向的目标速度以及水平方向的控制量,以及在检测到当前垂直方向和当前水平方向的磁感应数据后,计算得到当前航向角度,并通过航向PID控制得到航向方向的控制量。然后控制飞行器以垂直方向上的推力、水平方向的控制量和航向方向的控制量飞行至目标位置,由于可实现在垂直方向、水平方向以及航向方向对飞行器的控制,因此可精确控制飞行器在设定的位置飞行,从而保证了飞行器在复杂条件下的稳定飞行。
基于上述本发明飞行器的控制装置第一实施例,垂直方向控制单元具体包括气压计、加速度计和第一控制器,其中:
气压计,用于检测当前垂直方向的位置;
加速度计,用于检测当前垂直方向的加速度;
第一控制器,用于根据加速度计检测到的当前垂直方向的加速度,通过方向余弦矩阵进行坐标系的转换以得到导航坐标系中垂直方向的加速度;根据气压计检测到的当前垂直方向的位置,以及所述导航坐标系中垂直方向的加速度,通过融合滤波处理得到实际高度和垂直方向的实际速度;将目标高度与实际高度的差值输入至高度外环PID控制器,通过高度外环PID控制后得到垂直方向的目标速度;将垂直方向的目标速度与垂直方向的实际速度的差值输入至高度内环PID控制器,通过高度内环PID控制后得到飞行器在导航坐标系中垂直方向上的推力,并对该飞行器在导航坐标系中垂直方向上的推力进行补偿,得到飞行器在机体坐标系中垂直方向上的推力。
本实施例中,通过设于飞行器中的气压计检测当前垂直方向的位置,并通过加速度计检测当前垂直方向的加速度,在检测到当前垂直方向的位置和加速度后,通过第一控制器对当前垂直方向的位置和加速度进行融合滤波处理,以得到实际高度和实际速度;可采用卡尔曼滤波算法对当前垂直方向的位置和加速度进行融合滤波处理。
其中Z轴的目标高度为操作者设定的,本实施例中,将目标高度与实际高度的差值输入至高度外环PID控制器,通过高度外环PID控制后得到目标速度,具体可通过以下方式得到目标速度:
u1(t)=Kp1e1(t)+Ki1∫e1(t)dt+Kd1*de1(t)/dt,e1(t)=Htarget-Hcurrent;
其中,通过Kp1e1(t)计算比例控制量,通过Ki1∫e1(t)dt计算积分控制量,通过Kd1*de1(t)/dt计算微分控制量;Kp1为高度外环比例系数,Ki1为高度外环积分系数,Kd1为高度外环微分系数,e1(t)为高度外环输入量(目标高度和实际高度的差值),Htarget为目标高度,Hcurrent为实际高度;上述公式具体为:目标速度=比例控制量+积分控制量+微分控制量;其中,比例控制量=比例系数*目标高度与实际高度的差值,积分控制量=积分系数*目标高度与实际高度的差值*积分时间,微分控制量=微分系数*(当前目标高度与当前实际高度的差值-前一次目标高度与前一次实际高度的差值)/微分时间。
得到目标速度后,将目标速度与实际速度的差值输入至高度内环PID控制器,通过高度内环PID控制,得到飞行器在导航坐标系中垂直方向上的推力。本实施例中,具体可通过以下方式得到飞行器在导航坐标系中垂直方向上的推力:
u2(t)=Kp2e2(t)+Ki2∫e2(t)dt+Kd2*de2(t)/dt,e2(t)=Vz-target-Vz-current;
其中,通过Kp2e2(t)计算比例控制量,通过Ki2∫e2(t)dt计算积分控制量,通过Kd2*de2(t)/dt计算微分控制量,Kp2为高度内环比例系数;Ki2为高度内环积分系数;Kd2为高度内环微分系数;e2(t)为高度内环输入量(Z轴的目标速度和Z轴的实际速度的差值),Vz-target为Z轴的目标速度,Vz-current为Z轴的实际速度。上述公式具体为:导航坐标系Z轴方向的推力=比例控制量+积分控制量+微分控制量,比例控制量=比例系数*Z轴的目标速度与Z轴的实际速度的差值,积分控制量=积分系数*Z轴的目标速度与Z轴的实际速度的差值*积分时间,微分控制量=微分系数*(当前Z轴的目标速度与当前Z轴的实际速度的差值-前一次Z轴的目标速度与前一次Z轴的实际速度的差值)/微分时间。
由于当飞行器倾斜时导航坐标系垂直方向的轴不一定和飞行器垂直方向的轴导完全重合,所以对导航坐标系垂直方向的推力要进行补偿,因此,在得到飞行器在导航坐标系中垂直方向上的推力后,通过查表将导航坐标系垂直方向的推力进行补偿,得到飞行器机体坐标系中的推力。本实施例中,具体补偿方法可以为:
通过计算导航坐标系垂直方向的推力与cosα的比值,得到飞行器机体坐标系中的推力,其中,α等于θ的平方+φ的平方开根号,θ和φ为当前飞行器的姿态角度,θ为飞行器的俯仰角(pitch),φ为当前飞行器的横滚角(roll)。所得到的飞行器机体坐标系中的推力直接作用到飞行器的驱动装置,以控制飞行器飞行至目标位置。
基于上述本发明飞行器的控制装置第一实施例,水平方向控制单元具体包括定位装置和第二控制器,其中:
定位装置,用于检测当前经纬度值和当前水平方向上X轴和Y轴的速度;
第二控制器,用于根据定位装置检测到的当前经纬度值,通过在导航坐标系中进行投影得到飞行器在导航坐标系中X轴和Y轴的目标位置;将X轴的目标位置和X轴的实际位置的差值输入至水平外环PID控制器,通过水平外环PID控制得到飞行器在导航坐标系中X轴的目标速度;将Y轴的目标位置和Y轴的实际位置的差值输入至水平外环PID控制器,通过水平外环PID控制得到飞行器在导航坐标系中Y轴的目标速度;将定位装置检测到的飞行器X轴的实际速度与在导航坐标系中X轴的目标速度的差值输入至水平内环PID控制器,通过水平内环PID控制得到飞行器在导航坐标系中X轴的控制量,并对该行器在导航坐标系中X轴的控制量进行补偿,得到行器在机体坐标系中X轴的控制量;将定位装置检测到的飞行器Y轴的实际速度与在导航坐标系中Y轴的目标速度的差值输入至水平内环PID控制器,通过水平内环PID控制得到飞行器在导航坐标系中Y轴的控制量,并对该行器在导航坐标系中Y轴的控制量进行补偿,得到行器在机体坐标系中Y轴的控制量。
本实施例中,通过如GPS等定位装置检测当前经、纬度值和当前水平方向上X轴和Y轴的速度,通过第二控制器计算经度值对应的第一弧长和纬度值对应的第二弧长。导航坐标系以赤道和经度0为基准,参照图4,β为当前的纬度值,γ为当前的经度值;β所对应的弧长为L1(L1=β*R,R为地球半径),γ所对应的弧长为L2(L2=γ*r,r=R*cosβ,R为地球半径,r为当前飞行器所在纬度的圆弧半径)。计算出第一弧长L1和第二弧长L2后,将第一弧长L1和第二弧长L2分别投影到飞行器在导航坐标系中的X轴和Y轴,得到导航坐标系中X轴和Y轴的位置值,即得到飞行器在导航坐标系中X轴和Y轴的实际位置。
将X轴的目标位置和X轴的实际位置的差值输入至水平外环PID控制器,通过水平外环PID控制,得到飞行器在导航坐标系中X轴的目标速度Vx-target;并将Y轴的目标位置和Y轴的实际位置的差值输入至水平外环PID控制器,通过水平外环PID控制,得到飞行器在导航坐标系中Y轴的目标速度Vy-target。本实施例中,可通过如下方式得到飞行器在导航坐标系中X轴的目标速度Vx-target:
u3(t)=Kp3e3(t)+Ki3∫e3(t)dt+Kd3*de3(t)/dt,e3(t)=Xtarget-Xcurrent;
其中,通过Kp3e3(t)计算比例控制量,通过Ki3∫e3(t)dt计算积分控制量,通过Kd3*de3(t)/dt计算微分控制量;Kp3为水平位置X轴比例系数,Ki3为水平位置X轴积分系数,Kd3为水平位置X轴微分系数,e3(t)为水平位置X轴输入量(目标位置和实际位置的差值),Xtarget为飞行器目标位置在导航坐标系中的X位置值,Xcurrent为飞行器当前位置在导航坐标系中的X位置值。上述公式具体为:飞行器在导航坐标系中X轴的目标速度=比例控制量+积分控制量+微分控制量。比例控制量=比例系数*目标X位置值与实际X位置值的差值,积分控制量=积分系数*目标X位置值与实际X位置值的差值*积分时间,微分控制量=微分系数*(当前目标X位置值与当前实际X位置值的差值-前一次目标X位置值与前一次实际X值的差值)/微分时间。
通过如下方式得到飞行器在导航坐标系中Y轴的目标速度Vy-target:
U4(t)=Kp4e4(t)+Ki4∫e4(t)dt+Kd4*de4(t)/dt,e4(t)=Ytarget-Ycurrent;
其中,通过Kp4e4(t)计算比例控制量,通过Ki4∫e4(t)dt计算积分控制量,通过Kd4*de4(t)/dt计算微分控制量;Kp4水平位置Y轴比例系数,Ki4为水平位置Y轴积分系数,Kd4为水平位置Y轴微分系数,e4(t)为水平位置Y轴输入量(目标位置和实际位置的差值);Ytarget为飞行器目标位置在导航坐标系中的Y位置值,Ycurrent为飞行器当前位置在导航坐标系中Y位置值。上述公式具体为:飞行器在导航坐标系中Y轴的目标速度=比例控制量+积分控制量+微分控制量。比例控制量=比例系数*目标Y位置值与实际Y位置值的差值,积分控制量=积分系数*目标Y位置值与实际Y位置值的差值*积分时间,微分控制量=微分系数*(当前目标Y位置值与当前实际Y位置值的差值-前一次目标Y位置值与前一次实际Y位置值的差值)/微分时间。
得到飞行器在导航坐标系中X轴和Y轴的目标速度后,将飞行器在导航坐标系中X轴的实际速度Vx-current与目标速度Vx-target的差值输入至水平内环PID控制器,通过水平内环PID控制得到飞行器在导航坐标系中X轴的控制量XC;并将飞行器在导航坐标系中Y轴的实际速度Vy-current与目标速度Vy-target的差值输入至水平内环PID控制器通过水平内环PID控制得到飞行器在导航坐标系中Y轴的控制量YC。本实施例中,通过如下方式得到飞行器在导航坐标系中X轴的控制量XC:
u5(t)=Kp5e5(t)+Ki5∫e5(t)dt+Kd5*de5(t)/dt,e5(t)=Vx-target-Vx-current;
其中,通过Kp5e5(t)计算比例控制量,通过Ki5∫e5(t)dt计算积分控制量,通过Kd5*de5(t)/dt计算微分控制量;Kp5为水平速度X轴比例系数,Ki5为水平速度X轴积分系数,Kd5为水平速度X轴微分系数,e5(t)为水平速度X轴输入量(目标速度和实际速度的差值),Vx-target为飞行器在导航坐标系中X轴方向上的目标速度,Vx-current为飞行器在导航坐标系中X轴方向上的实际速度。上述公式具体为:飞行器在导航坐标系中X轴方向上的控制量=比例控制量+积分控制量+微分控制量。比例控制量=比例系数*飞行器在导航坐标系中X轴方向上的目标速度与飞行器在导航坐标系中X轴方向上的实际速度的差值,积分控制量=积分系数*飞行器在导航坐标系中X轴方向上的目标速度与飞行器在导航坐标系中X轴方向上的实际速度的差值*积分时间,微分控制量=微分系数*(当前无飞行器在导航坐标系中X轴方向上的目标速度与当前飞行器在导航坐标系中X轴方向上的实际速度的差值-前一次飞行器在导航坐标系中X轴方向上的目标速度与前一次飞行器在导航坐标系中X轴方向上的实际速度的差值)/微分时间。
通过如下方式得到飞行器在导航坐标系中Y轴的控制量YC:
U6(t)=Kp6e6(t)+Ki6∫e6(t)dt+Kd6*de6(t)/dt,e6(t)=Vy-target-Vy-current;
其中,通过Kp6e6(t)计算比例控制量,通过Ki6∫e6(t)dt计算积分控制量,通过Kd6*de6(t)/dt计算微分控制量;Kp6为水平速度Y轴第二比例系数,Ki6为水平速度Y轴积分系数,Kd6为水平速度Y轴微分系数,e6(t)为水平速度Y轴输入量(目标速度和实际速度的差值),Vy-target为飞行器在导航坐标系中Y轴方向上的目标速度,Vy-current为飞行器在导航坐标系中Y轴方向上的实际速度。上述公式具体为:飞行器在导航坐标系中Y轴方向上的控制量=比例控制量+积分控制量+微分控制量。比例控制量=比例系数*飞行器在导航坐标系中Y轴方向上的目标速度与飞行器在导航坐标系中Y轴方向上的实际速度的差值,积分控制量=积分系数*飞行器在导航坐标系中Y轴方向上的目标速度与飞行器在导航坐标系中Y轴方向上的实际速度的差值*积分时间,微分控制量=微分系数*(当前飞行器在导航坐标系中Y轴方向上的目标速度与当前飞行器在导航坐标系中Y轴方向上的实际速度的差值-前一次飞行器在导航坐标系中Y轴方向上的目标速度与前一次飞行器在导航坐标系中Y轴方向上的实际速度的差值)/微分时间。
得到飞行器在导航坐标系中X轴方向上的控制量XC和Y轴方向上的控制量YC后,将XC和YC投影并耦合到飞行器的机体坐标系中,参照图5,Ψ为导航角,将X轴方向上的控制量XC投影到飞行器的坐标系中的X′轴和Y′轴上分别得到XC*cosΨ和XC*sinΨ,Y轴方向上的控制量YC投影到飞行器的坐标系中的X′轴和Y′轴上分别得到-YC*sinΨ和YC*cosΨ;最后通过耦合得到,XC′=XC*cosΨ-YC*sinΨ,YC′=XC*sinΨ+YC*cosΨ,其中,XC′为横滚方向控制量;YC′为俯仰方向控制量,并将该横滚方向控制量和俯仰方向控制量输出至飞行器的驱动装置,以控制飞行器飞行至水平目标位置。
基于上述本发明飞行器的控制装置第一实施例,导航控制单元具体包括指南针和第三控制器,其中:
指南针,用于检测机体坐标系中当前垂直方向和当前水平方向上的磁感应数据;
第三控制器,用于根据指南针检测到的机体坐标系中当前垂直方向和水平方向上的磁感应数据,通过方向余弦矩阵进行坐标系的转换以得到导航坐标系中水平方向上的磁感应数据;根据所述导航坐标系中水平方向上的磁感应数据,计算得到飞行器的实际航向角度;将所述实际航向角度与目标航向角度的差值输入至航向PID控制器,通过航向PID控制得到航向方向的控制量。
本实施例中,通过设置在飞行器中的指南针检测机体坐标系中当前垂直方向和当前水平方向上的磁感应数据(Xb-mag、Yb-mag、Zb-mag),然后,通过第三控制器将该机体坐标系中的Xb-mag、Yb-mag和Zb-mag耦合到导航坐标系中,得到导航坐标系中的磁感应数据(Xn-mag、Yn-mag)。耦合的方式是方向余弦矩阵,其方法为:
其中θ为飞行器的俯仰姿态角度和φ是飞行器的横滚姿态角度。
得到导航坐标系中的磁感应数据后,根据该磁感应数据可计算得到飞行器的实际航向角度Ψcurrent=arctan2(Xn-mag/Yn-mag)。然后,将实际航向角度与目标航向角度的差值输入至航向PID控制器,通过航向PID控制得到飞行器飞行时在航向方向的控制量u7(t),本实施例中,通过如下方式得到飞行器飞行时在航向方向的控制量u7(t):
u7(t)=Kp7e7(t)+Ki7∫e7(t)dt+Kd7*de7(t)/dt,e7(t)=Ψtarget-Ψcurrent;
其中,通过Kp7e7(t)计算比例控制量,通过Ki7∫e7(t)dt计算积分控制量,通过de7(t)/dt计算微分控制量;Kp7为航向比例系数,Ki7为航向积分系数,Kd7为航向微分系数,e7(t)为航向输入量(目标航向角度和实际航向角度的差值),Ψtarget为目标航向角度,Ψcurrent为实际航向角度。上述公式具体为:航向控制量=比例控制量+积分控制量+微分控制量。比例控制量=比例系数*目标航向角与实际航向角的差值,积分控制量=积分系数*目标航向角与实际航向角*积分时间,微分控制量=微分系数*(当前目标航向角与当前实际航向角的差值-前一次目标航向角与前一次实际航向角的差值)/微分时间。
在上述本发明飞行器的控制系统第二实施例的基础上,本发明第二实施例中,飞行器的控制装置还包括定航向单元,该定航向单元包括指南针和第四控制器,其中,
指南针,用于检测机体坐标系中当前垂直方向和水平方向上的磁感应数据;
第四控制器,用于根据指南针检测到的机体坐标系中当前垂直方向和水平方向上的磁感应数据,通过方向余弦矩阵进行坐标系的转换以得到导航坐标系中水平方向上的磁感应数据;根据所述导航坐标系中水平方向上的磁感应数据,计算得到飞行器的实际航向角度;根据所述实际航向角度与目标航向角度的差值计算出飞行器所需的旋转角度,并根据所述旋转角度控制飞行器的尾部朝向目标点。
本实施例中,在飞行器飞行的过程中,可通过设置在飞行器的控制器中的特定按键对飞行器的飞行进行一键对尾,使飞行器的尾部在该飞行器飞行的过程中始终朝向某一目标点。通过设置在飞行器中的指南针检测机体坐标系中当前垂直方向和当前水平方向上的磁感应数据(Xb-mag、Yb-mag、Zb-mag),然后,通过MCU将该机体坐标系中的Xb-mag、Yb-mag和Zb-mag耦合到导航坐标系中,得到导航坐标系中的磁感应数据(Xn-mag、Yn-mag)。耦合的方式是方向余弦矩阵,其方法为:
其中θ为飞行器的俯仰姿态角度和φ是飞行器的横滚姿态角度。
得到导航坐标系中的磁感应数据后,根据该磁感应数据可计算得到飞行器的实际航向角度Ψcurrent=arctan2(Xn-mag/Yn-mag)。
通过目标航向角度与实际航向角度的差值得到飞行器所需的旋转角度后,根据该旋转角度控制飞行器旋转对应的角度,以使飞行器的尾部朝向目标点(如起飞点或观察点等)。
在飞行器飞行的过程中,通过一键对尾,根据指南针检测到的机体坐标系中当前水平方向上的磁感应数据得到导航坐标系中水平方向上的标准磁感应数据,并根据标准磁感应数据计算飞行器所需的旋转角度,以控制飞行器旋转对应的角度,使飞行器的尾部朝向目标点。控制飞行器的尾部在其飞行的过程中始终朝向某一目标点,进一步保证了飞行器能够在复杂条件下稳定飞行。
其中,上述第一控制器、第二控制器、第三控制器和第四控制器可以是同一个控制器。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。