一种基于改进混合蛙跳算法的四旋翼无人机参数辨识方法与流程

文档序号:13542821阅读:479来源:国知局

本发明属于四旋翼无人机参数辨识方法,涉及一种基于改进混合蛙跳算法的四旋翼无人机参数辨识方法,主要对典型四旋翼无人机工作状态下的非线性参数进行辨识。



背景技术:

随着四旋翼无人机的广泛应用和快速发展,对四旋翼无人机控制精度的需求也在不断提高,实现四旋翼无人机的高精度控制,需要获取四旋翼无人机的精确模型,因此对四旋翼无人机的准确建模,是实现对四旋翼无人机精确控制的关键技术问题。

对四旋翼无人机参数的精确辨识是实现四旋翼无人机精确建模的前提。由于典型四旋翼无人机参数具有较强的非线性和耦合性,因此采用典型的线性辨识方法,如最小二乘法和极大似然法均难以实现对模型中参数的精确辨识。为解决此类问题,需要采用非线性参数辨识方法对其进行处理。文献“基于遗传算法的四旋翼无人机系统参数辨识,计算机测量与控制,2015,vol23(12),p4195-4197+4206”公开了一种基于遗传算法的四旋翼无人机系统参数辨识方法。该方法在基于四旋翼飞行器悬停或者低速状态下建立飞行器动力学模型的基础上,利用实数编码的遗传算法,将待辨识系统参数编码为一个实数向量,并分别采用轮盘选择法和均匀变异为选择算子和变异算子,将遗传算法应用于线性模型位置参数的辨识中,求得升力系数。最后,将通过仿真得到的滚转、俯仰和偏航方向的加速度值与实际测量值的对比,表明在悬停状态或小角度飞行状态下,该辨识方法能够建立比较精确的系统模型。文献所述方法根据四旋翼受力分析建立了小角度下的线性系统模型并应用遗传算法其进行辨识,只针对线性系统,适应性不强;在辨识非线性系统时,由于遗传算法存在着进化方向过于随机,收敛速度慢,对运动学参数的相关性不敏感,使得辨识结果不准确而且收敛速度较慢、计算效率较差。



技术实现要素:

要解决的技术问题

为了避免现有技术的不足之处,本发明提出一种基于改进混合蛙跳算法的四旋翼无人机参数辨识方法,克服现有参数辨识方法对四旋翼无人机参数辨识精度不高、辨识速度收敛速度较慢的不足。

技术方案

一种基于改进混合蛙跳算法的四旋翼无人机参数辨识方法,其特征在于步骤如下:

步骤1、建立典型四旋翼无人机运动学模型:

其中,x、y、z分别为惯性系下的三轴位置,φ、θ、ψ分别为滚转角、俯仰角和偏航角,ix、iy、iz分别为三轴转动惯量,jr为旋翼的转动惯量,m为飞行器质量,u1为旋翼产生的升力,u2、u3及u4分别为滚转、俯仰及偏航力矩,ωi为各旋翼的转速;

选取系统的输入为:u=[u1u2u3u4u5]t

系统状态为:

待辨识参数为:iparam=[ixiyizjr]t

目标函数取为:j=fitness(iparam)

步骤2、对蛙跳规则改进,并根据四旋翼无人机参数特性,对适应度函数进行设计,提高对四旋翼无人机多参数辨识的效率:

(a)对混合蛙跳算法中的局域搜索蛙跳规则进行改进得到改进的蛙跳规则d′为:

上式中,r为0到1之间的随机数,分别为当前迭代中,第j个族群内最好适应值和最差适应值的蛙所在的位置,λ为记忆因子,取值范围为[0,1],d为上一次局部搜索中蛙跳规则,c(0,1)为柯西分布,n(0,1)为高斯分布,rth为设定扰动概率门限,取误差最大值的10%;

(b)根据四旋翼无人机所要辨识参数类型,引入适应度函数修正向量k,对同一四旋翼无人机模型中的不同参数辨识时的参数进行修正,得到改进后的适应度函数fitness(iparam)为:

式中,k为适应度修正向量,x(t)=[x1(t)x2(t)…xl(t)]t为四旋翼无人机系统状态的真实值,为采用一组待辨识参数估计值得到的系统状态计算值,k=[k1k2…kl]为适应度修正向量;

所述每一项ki计算为,

步骤3、设置改进混合蛙跳算法参数,青蛙种群中青蛙的总数量m,搜索空间维数s,族群数量m,每个族群中的青蛙数n,青蛙允许改变最大位置dmax,局部搜索次数lmax,全局混合迭代次数gmax;

步骤4、执行改进混合蛙跳算,直至迭代次数达到gmax,输出最优蛙值,获得参数辨识结果。

有益效果

本发明提出的一种基于改进混合蛙跳算法的四旋翼无人机参数辨识方法,主要对典型四旋翼无人机工作状态下的非线性参数进行辨识。由于四旋翼无人机具有较强的非线性和参数耦合性,采用典型的线性辨识方法,如最小二乘法和极大似然法等均难以实现对模型中参数的精确辨识。针对这一问题,该方法以混合蛙跳算法为基础,根据四旋翼无人机的参数特点,对适应度函数进行改进设计以提高算法精度,同时对蛙跳规则计算公式进行改进,使其具有较高的全局搜索效率,能够高效准确地对四旋翼无人机的非线性参数进行辨识。同时,该方法具有一定的普适性,能够实现对大多数具有非线性和强耦合度系统的参数辨识。

有益效果:

1、由于采用技术方案中的步骤(1)实现了对四旋翼无人机的建模,并结合模型,给出改进混合蛙跳算法的参数初值。

2、由于采用技术方案中的步骤(2)对典型混合蛙跳算法中蛙跳规则的改进,避免了典型混合蛙跳算法的中局部最优问题和局部细节探索问题,实现了典型混合蛙跳方法参数寻优策略的改进,提高了算法的效率。

3、由于采用了技术方案中的步骤(3)对混合蛙跳算法的适应度函数进行改进,引入适应度修正参量,实现对四旋翼无人机不同量纲的多参数同时辨识。

附图说明

图1是典型四旋翼无人机结构图

图2是基于改进混合蛙跳算法的流程图

图3是基于改进混合蛙跳算法的四旋翼无人机参数辨识结果

图4是本文辨识方法迭代次数与遗传算法、典型蛙跳算法对比结果

具体实施方式

现结合实施例、附图对本发明作进一步描述:

本发明解决其技术问题所采用的技术方案:一种基于改进混合蛙跳算法的四旋翼无人机飞行器参数辨识方法,其特点是包括下述步骤:

(1)建立四旋翼无人机的模型,确定待辨识参数iparam=[ixiyizjr]t,并根据模型设计参数,设定改进混合蛙跳算法参数,主要包括:青蛙种群的数量n,搜索空间维数s,族群数量m,每个族群中的青蛙数n,青蛙允许改变最大位置dmax,局部搜索次数lmax,全局混合迭代次数gmax。

(2)对混合蛙跳算法中的局域搜索蛙跳规则进行改进,采用改进混合蛙跳算法对模型参数进行辨识。

在典型蛙跳算法中,族群内蛙跳规则计算公式为:

上式中,r为0到1之间的随机数,分别为当前迭代中,第j个族群内最好适应值和最差适应值的蛙所在的位置,通过式(1)可以得到族群内每次局部迭代的位置更新变量。该规则在一定程度上限定了族群进化搜索区域,根据四旋翼无人机前后工作状态具有一定相关性的特点,将式(1)蛙跳规则进行修改,得到一种改进的蛙跳规则计算公式,即:

上式中,λ为记忆因子,取值范围为[0,1],d为上一次蛙跳局域搜索中蛙跳规则,根据四旋翼无人机状态间变化情况对记忆因子进行修改,记忆因子取值与状态变化程度成反比关系。为进一步提高蛙跳算法寻优过程对全局和局部的搜索效率,采用柯西-高斯变异因子进行修正,其中柯西变异比高斯变异因子具有更强的变异能力,能够提高种群的多样性,避免参数陷入局部最优,而高斯变异更适合于局部寻优,适应于蛙跳算法寻优后期得细节寻优,通过引入柯西-高斯因子能够避免局部最优情况并对局部进行深入探索。结合柯西和高斯变异因子的特点,给出本发明改进混合蛙跳算法规则为:

式中,c(0,1)为柯西分布,n(0,1)为高斯分布,rth为设定扰动概率门限,该参数值与步骤(1)中所建模型有关,在寻优过程中,先采用具有强变异能力的柯西因子进行寻优,若得到参数辨识值与真实值之间误差小于预设门限,再采用高斯因子进行寻优,建议取误差最大值的10%。

(3)根据四旋翼无人机所要辨识参数类型,对适应度函数进行改进。引入适应度函数修正向量k,对同一四旋翼无人机模型中的不同参数辨识时的参数进行修正,为避免由于量纲不同,导致不同参数受辨识参数变化的量级存在较大差异的问题,实现对四旋翼无人机模型中不同量级参数的同时辨识,增加适应度修正量对原基于误差最小的适应度函数fitnesso(iparam)进行改进,

得到改进后的适应度函数fitness(iparam)为:

上式中,x(t)=[x1(t)x2(t)…xl(t)]t为四旋翼无人机系统状态的真实值,为采用一组待辨识参数估计值得到的系统状态计算值,k=[k1k2…kl]为适应度修正向量,其中每一项ki计算方法为,

根据改进的蛙跳规则和适应度函数,对模型参数进行辨识,得到辨识结果。

具体实施例:结合典型四旋翼无人机运动模型对本发明做详细说明:

参考图1,典型四旋翼飞行器的运动模型包括角度运动与位置运动两个部分,运动方程组为:

其中,x、y、z分别为惯性系下的三轴位置,φ、θ、ψ分别为滚转角、俯仰角和偏航角,ix、iy、iz分别为三轴转动惯量,jr为旋翼的转动惯量,m为飞行器质量,u1为旋翼产生的升力,u2、u3及u4分别为滚转、俯仰及偏航力矩,ωi为各旋翼的转速。

选取系统的输入为:

u=[u1u2u3u4u5]t(8)

系统状态为:

待辨识参数为:

iparam=[ixiyizjr]t(10)

目标函数取为:

j=fitness(iparam)(11)

设定模型仿真步长为0.01s,模型输入为u1、u2、u3、u4及u5。

步骤二、采用改进混合蛙跳算法对模型参数进行辨识

参考图2,采用改进混合蛙跳算法对步骤一所建立的四旋翼无人机模型进行参数辨识,具体过程如下:

(1)分别设定改进混合蛙跳参数值:青蛙种群中青蛙的总数量m,搜索空间维数s,族群数量m,每个族群中的青蛙数n,青蛙允许改变最大位置dmax,局部搜索次数lmax,全局混合迭代次数gmax。

(2)初始化并生成一个随机的蛙群,随机生成m只蛙组成初始种群p={iparam1,…,iparamk},k=1,2,…,m,计算每个青蛙的适应度函数fitness(iparamk),根据其适应度值对青蛙进行排序(按降序排列),记录蛙群中最优蛙为iparamg。

(3)将青蛙分为m个族群组g1,g2,…gm,每个族群中包含n个体,生成过程为:根据适合度值将青蛙分配到组中。具有最高适应度的第一只青蛙移动到第一组,第二只青蛙移动到第二组…,第m个的青蛙移动到最后一组。然后,第m+1个青蛙再次移动到第一组,直到最后一只青蛙分配给一个组。最后,每组包含n只青蛙。记录每个族群内最优蛙和最差蛙分别为

(4)局域族群进化,对族群内部最差青蛙位置进行局部搜索,并更新位置:

计算其适应度值则利用代替若无改进,则利用iparamg代替重新按照公式(6)和(7)进行搜索,然后判断与fitness(iparamw)关系;若仍然无改进,则随机产生一个新蛙取代

重复上述局部搜索过程lmax次,得到优化后的族群g1′,g2′,…gm′

(5)对各优化后族群的蛙进行重新混合,并计算所有蛙的适应度,更新蛙群中最优蛙。

(6)将上述过程迭代gmax次,输出最优蛙值。

步骤三、参考图3,得到步骤1所建立模型相关参数辨识结果。

步骤四、参考图4,通过与对比文献中遗传算法以及典型蛙跳算法进行对比实验,实验结果表明,本发明所提出的基于改进混合蛙跳算法收敛速度快,迭代次数少,对步骤一给出的四旋翼无人机模型的进行参数辨识时,计算效率较高,能够实现对非线性和强耦合度系统的参数辨识。

本发明以混合蛙跳算法为基础,通过对算法中蛙跳规则改进,提高了混合蛙跳算法的全局收敛速度,并根据四旋翼无人机参数特性,对适应度函数进行设计,减少算法的计算复杂度,提高对四旋翼无人机多参数辨识的效率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1