一种基于Kmeans和SVM的无人机飞控参数组合测试方法技术

技术编号:37533726 阅读:6 留言:0更新日期:2023-05-12 16:01
一种基于Kmeans和SVM的无人机飞控参数组合测试方法,涉及软件测试技术领域,针对现有技术中针对测试数据的测试效率低的问题,本申请首先利用少量的测试数据先进行测试,获取到的测试结果作为测试数据的标签;其次利用Kmeans++和支持向量机(Support VectorMachine,SVM)建立待测系统的模型;再次由这两个模型对组合测试数据进行预测,将预测结果进行融合;最后根据预测结果进行优先级排序。本申请在只对20%的组合测试数据进行优先测试的情况下,最终排序的组合测试数据的可以更快地检测出更多的故障,极大地提升了检测效率。率。率。

【技术实现步骤摘要】
一种基于Kmeans和SVM的无人机飞控参数组合测试方法


[0001]本专利技术涉及软件测试
,具体为一种基于Kmeans和SVM的无人机飞控参数组合测试方法。

技术介绍

[0002]近些年武器装备系统迎来了快速发展期,系统的软硬件都变得越来越复杂。就软件而言,其结构和功能的复杂性显著增加,处理能力显著增强,软件中一个函数可同时处理的输入参数数量也随之增加,已多达十几甚至几十到上百个。这些输入参数相互耦合,相互依赖,关系非常复杂,一些微小的输入错误或偶然因素的影响就可能带来巨大的财产损失和严重的人员伤害,造成难以估计的后果。测试是减少损失、降低伤害且保证质量和可靠性的一种重要手段。
[0003]理论上对测试空间中的全部数据进行全因子测试才能保证全面性,然而测试空间中可能的测试数据举不胜举,无法在实际测试中应用。组合测试是一种科学有效的黑盒测试方法,可以使用较少的测试数据有效地检测待测系统中参数之间的相互作用产生的影响。组合测试可以使用较少的测试数据达到全因子测试的效果,因此,实际中常常使用组合测试代替全因子测试。
[0004]在实际的待测系统的参数数量和参数的取值个数往往较多,从十几个到几十个不等,而且参数之间的交互关系复杂。只覆盖两个或三个参数的取值组合,也就是覆盖力度为2或3,难以保证测试覆盖率。如果生成力度更大的测试数据,那么测试数据的规模将是非常大的,可以达到成千上万,甚至更多。有时执行一条测试数据的时间很长,量级在秒级,这样完全测试这些测试数据也是很难完成的。

技术实现思路
r/>[0005]本专利技术的目的是:针对现有技术中无人机飞控参数的测试效率低的问题,提出一种基于Kmeans和SVM的无人机飞控参数组合测试方法。
[0006]本专利技术为了解决上述技术问题采取的技术方案是:
[0007]一种基于Kmeans和SVM的无人机飞控参数组合测试方法,包括以下步骤:
[0008]步骤一:无人机飞控计算机接收前端传感器选择的典型测试值,即测试数据集;
[0009]步骤二:在测试数据集中选择20%的数据作为前期小样本测试数据,并利用选择的前期小样本测试数据激励飞控计算机,得到飞控计算机的响应结果,并以前期小样本测试数据以及对应的响应结果作为训练数据分别训练Kmeans和SVM模型,Kmeans将前期小样本测试数据聚类成两类,即有故障类和无故障类;
[0010]步骤三:分别利用Kmeans和SVM对测试数据集中的测试数据进行预测,并根据预测结果对测试数据进行优先级融合,按照融合后的优先级大小进行排序,针对优先级相同的测试数据,通过距离熵值调整优先级;最终输出带有优先级的测试数据;
[0011]步骤四:带有优先级的测试数据作为飞控计算机的激励用于最终的测试。
[0012]进一步的,所述测试数据集中每个测试数据基于贪心算法得到,具体步骤为:
[0013]步骤一一:以力度为2的参数取值组合为基础,并根据参数之间的相关性,通过力度为3和力度为4的参数取值组合,得到参数的取值集;
[0014]步骤一二:根据参数的每个取值在取值集中出现的次数,得到该参数的取值未覆盖度;
[0015]步骤一三:选取每个参数未覆盖度最大的取值构成一条测试数据;
[0016]步骤一四:利用取值集中的取值组合替换步骤三中测试数据对应的取值组合,若替换后能提高这条测试数据的覆盖能力,则保留替换后的测试数据,否则不替换,结束;
[0017]步骤五:将替换后的测试数据中覆盖的取值从取值集中移除,然后判断取值集是否为空,若取值集为空,则结束,若取值集不为空,则执行步骤二。
[0018]进一步的,所述Kmeans为Kmeans++,所述Kmeans++对测试数据集中的测试数据进行预测的具体步骤为:
[0019]步骤1:假设n条测试数据集合为随机选取一条故障测试数据作为第一个聚类中心C1;
[0020]步骤2:计算任意一条测试数据与当前已确定的聚类中心C1的最小距离并根据得到成为下一个聚类中心的概率S
im

[0021]步骤3:重复步骤1和步骤2,得到概率集合S
i1
,S
i2
,

,S
in
,然后在[0,1]区间生成一个随机数R
i
,用R
i
依次减去概率集合S
i1
,S
i2
,

,S
in
中的每个概率,取差值首次小于或等于0时对应的测试数据为下一个聚类中心;
[0022]步骤4:重复步骤2与步骤3,以最后得到的聚类中心为故障聚类中心,之后重新选择一条不会引起故障的测试数据,重复步骤2与步骤3,以最后得到的聚类中心为非故障中心;
[0023]步骤5:计算集合中每条测试数据分别到故障聚类中心和非故障中心的距离,将集合中每条测试作为一个点,并将每个点划分到距离其最近的聚类中心形成相应的子集合;
[0024]步骤6:采用各子集合的均值m
ik
更新故障聚类中心和非故障中心,并计算误差平方和,最后重复步骤5与步骤6,待故障聚类中心和非故障中心收敛;
[0025]误差平方和表示为:
[0026][0027]其中,N
c
表示聚类个数,C
k
表示隶属第k个聚类的测试数据集合,p
ik
表示第k个聚类的测试数据集合中的每i个测试数据,N
k
表示C
k
的个数,m
ik
表示各子集合的均值。
[0028]进一步的,所述表示为:
[0029][0030]进一步的,所述S
im
表示为:
[0031][0032]其中,m表示1

n中任意一个取值。
[0033]进一步的,所述步骤二中训练SVM模型通过多核加权训练进行,加权之后的核函数表示为:
[0034][0035]其中,x、y表示两条测试数据,γ=0.5。
[0036]进一步的,所述优先级融合表示为:
[0037]P(T)=Kmeans(T)+SVM(T)
[0038]其中,Kmeans(T)和SVM(T)表示测试数据T的Kmeans预测结果和SVM预测结果,
[0039]P(T)表示测试数据T的优先级,为两个模型预测结果之和,如果T不会引起故障则Kmeans(T)=0,SVM(T)=0,否则会引起故障,最终测试数据T的优先级有三种,即0,1,2。
[0040]进一步的,所述通过距离熵值调整优先级具体为:
[0041]测试数据之间的距离定义如下:
[0042]设待测系统具有k个参数,假设k个参数分别有v1,v2,...,v
k
个可能的取值,
[0043]T1=(t
11
,t
12...

【技术保护点】

【技术特征摘要】
1.一种基于Kmeans和SVM的无人机飞控参数组合测试方法,其特征在于包括以下步骤:步骤一:无人机飞控计算机接收前端传感器选择的典型测试值,即测试数据集;步骤二:在测试数据集中选择20%的数据作为前期小样本测试数据,并利用选择的前期小样本测试数据激励飞控计算机,得到飞控计算机的响应结果,并以前期小样本测试数据以及对应的响应结果作为训练数据分别训练Kmeans和SVM模型,Kmeans将前期小样本测试数据聚类成两类,即有故障类和无故障类;步骤三:分别利用Kmeans和SVM对测试数据集中的测试数据进行预测,并根据预测结果对测试数据进行优先级融合,按照融合后的优先级大小进行排序,针对优先级相同的测试数据,通过距离熵值调整优先级;最终输出带有优先级的测试数据;步骤四:带有优先级的测试数据作为飞控计算机的激励用于最终的测试。2.根据权利要求1所述的一种基于Kmeans和SVM的无人机飞控参数组合测试方法,其特征在于所述测试数据集中每个测试数据基于贪心算法得到,具体步骤为:步骤一一:以力度为2的参数取值组合为基础,并根据参数之间的相关性,通过力度为3和力度为4的参数取值组合,得到参数的取值集;步骤一二:根据参数的每个取值在取值集中出现的次数,得到该参数的取值未覆盖度;步骤一三:选取每个参数未覆盖度最大的取值构成一条测试数据;步骤一四:利用取值集中的取值组合替换步骤三中测试数据对应的取值组合,若替换后能提高这条测试数据的覆盖能力,则保留替换后的测试数据,否则不替换,结束;步骤一五:将替换后的测试数据中覆盖的取值从取值集中移除,然后判断取值集是否为空,若取值集为空,则结束,若取值集不为空,则执行步骤二。3.根据权利要求2所述的一种基于Kmeans和SVM的无人机飞控参数组合测试方法,其特征在于所述Kmeans为Kmeans++,所述Kmeans++对测试数据集中的测试数据进行预测的具体步骤为:步骤1:假设n条测试数据集合为随机选取一条故障测试数据作为第一个聚类中心C1;步骤2:计算任意一条测试数据与当前已确定的聚类中心C1的最小距离并根据到成为下一个聚类中心的概率S
im
;步骤3:重复步骤1和步骤2,得到概率集合S
i1
,S
i2
,

,S
in
,然后在[0,1]区间生成一个随机数R
i
,用R
i
依次减去概率集合S
i1
,S
i2
,

,S
in
中的每个概率,取差值首次小于或等于0时对应的测试数据为下一个聚类中心;步骤4:重复步骤2与步骤3,以最后得到的聚类中心为故障聚类中心,之后重新选择一条不会引起故障的测试数据,重复步骤2与步骤3,以最后得到的聚类中心为非故障中心;步骤5:计算集合中每条测试数据分别到故障聚类中心和非故障中心的距离,将集合中每条测试作为一个点,并将每个点划分到距离其最近的聚类中心形成相应的子集合;步骤6:采用各子集合的均值m
ik
...

【专利技术属性】
技术研发人员:杨京礼魏长安姜守达
申请(专利权)人:哈尔滨工业大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1