[发明专利]一种自适应RBF神经网络进行航空发动机推力估计算法有效
申请号: | 201711134813.X | 申请日: | 2017-11-15 |
公开(公告)号: | CN107992648B | 公开(公告)日: | 2021-04-20 |
发明(设计)人: | 赵永平;李智强;李兵;潘颖庭;习鹏鹏;黄功;胡乾坤;宋房全 | 申请(专利权)人: | 南京航空航天大学 |
主分类号: | G06F30/27 | 分类号: | G06F30/27;G06K9/62;G06N3/08;G06F119/14 |
代理公司: | 南京瑞弘专利商标事务所(普通合伙) 32249 | 代理人: | 贾郡 |
地址: | 210016 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 自适应 rbf 神经网络 进行 航空发动机 推力 估计 算法 | ||
1.一种自适应RBF神经网络进行航空发动机推力估计的算法,其特征在于,包括如下步骤:
步骤1:获取发动机机载设备的各项影响发动机推力的参数,以周期ΔT采集全飞行包线内所述参数的值以及发动机实际推力,构成数据集;
步骤2:对步骤1所得数据集进行归一化处理,得到归一化处理后的数据集;
步骤3:对步骤2所得归一化处理后的数据集应用K-means聚类算法,将其分成若干个子集;
步骤4:将步骤3所得子集分成训练数据集和测试数据集;以训练数据集中除发动机实际推力外的数据作为输入,发动机实际推力作为输出,利用改进的粒子群算法训练RBF神经网络参数和网络规模,得到子集的RBF神经网络回归机;利用所述RBF神经网络回归机估计发动机推力;所述改进的粒子群算法以RBF神经网络回归机估计的发动机推力与实际发动机推力的相对误差的绝对值最小化作为优化目标;
步骤5:训练RBF神经网络回归机,即根据子集的测试数据集,测试在给定粒子群算法参数下与子集对应的RBF神经网络回归机估计的发动机推力是否满足预定精度;如果满足预定精度,则当前粒子群算法的参数设定为子集的优化参数;如果不满足预定精度,则修改粒子群算法的参数,重复步骤4直至RBF神经网络回归机估计的发动机推力能够满足预定精度;
步骤6:如果多次调整粒子群算法参数依然不能得到满足预定精度的RBF神经网络参数和网络规模,则针对所有不满足预定精度的数据构成的数据集重复步骤3至步骤5;
步骤4中所述RBF神经网络回归机的建设包括如下步骤:
步骤4.1:设置改进的粒子群算法参数,所述参数包括:
4.1.1:隐含层节点数的最大值U和最小值L;
4.1.2:迭代次数iter,局部迭代次数T,粒子个数G;加速常数c1、c2;惯性权重最大值Wmax和最小值Wmin;
4.1.3:搜索空间[Xmin,Xmax];
4.1.4:粒子飞行速度范围[Vmin,Vmax];
4.1.5:输入数据的维数D和输入数据的个数N;
步骤4.2:数据初始化,包括:
4.2.1:粒子位置初始化;粒子位置的初始化包括两个部分,一部分是粒子的节点数K的值,根据以下公式产生:
K=round((U-L)*rand(G,1)+L)
此处,K为一个G维的列向量,存储G个粒子位置的节点数;rand(G,1)表示在(0,1)之间产生G行1列均匀分布的随机数向量,G为粒子的个数,round表示取整函数;粒子位置初始化的另外一部分为中心向量的初始化,根据以下公式生成:
Center=(Xmax-Xmin)*rand(G,U*D)+Xmin
此处rand(G,U*D)表示在(0,1)之间产生G行U*D列均匀分布的随机数矩阵,U*D表示节点数最大值U与输入数据维数D的乘积;
采用以下方式増广矩阵Center,组成最终的初始粒子群位置矩阵swarm:
swarm=[K,Center]
初始粒子群位置矩阵swarm有G行,代表G个粒子的位置,每个粒子位置的第一维为该粒子的节点数;
4.2.2:粒子速度velocity初始化;速度的初始化采用以下公式:
velocity=(Vmax-Vmin)*rand(G,U*D+1)+Vmin
4.2.3:RBF神经网络隐含层RBF宽度的初始化;
生成公式为:
S=(Smax-Smin)*rand(1,U)+Smin
或
S=(Smax-Smin)*rand(G,U)+Smin
此处Smax为宽度的最大值,Smin为宽度的最小值,rand(1,U)表示在(0,1)之间产生1行U列均匀分布的随机数向量,rand(G,U)表示在(0,1)之间产生G行U列均匀分布的随机数矩阵;
步骤4.3:求解粒子群初始当前最优解Pbest、局部最优解Tbest和全局最优解Gbest,求解过程如下:
4.3.1:以初始粒子群位置swarm为当前最优解Pbest,计算Pbest每个粒子的适应度的值,所得的所有粒子的适应度值构成的向量记为fitness;
4.3.2:初始局部最优解Tbest;根据粒子群的节点数K将所有粒子分类,分类数量为(U-L+1),此处U为节点数的最大值,L为节点数的最小值;然后计算每一类中所有粒子的适应度的值,适应度值最小的粒子为该类的局部最优解;
4.3.3:初始全局最优解Gbest;当前最优解Pbest中适应度值最小的粒子即为全局最优解;
步骤4.4:以上步骤后,进行以下循环:
4.4.1:迭代计数器t设置为t=1;
4.4.2:计算惯性权重W,计算公式如下:
W=(Wmax-Wmin)*(iter-t)/iter+Wmin
4.4.3:针对第i(i=1,2…G)个粒子,进行以下子循环:
1)判断是否t<T,若判断结果为真,则选择该粒子的有效节点数为该粒子的节点数,记为node;最优粒子Best取节点数为node的类的局部最优解;若判断结果为假,则选择有效节点数为全局最优解Gbest、该粒子的当前最优解Pbest(i)和该粒子当前位置swarm(i)节点数的最大值作为第i个粒子的有效节点数node,而Best=Gbest;
2)计算第i个粒子的有效维度,采用以下公式:
active_dimen=node*D+1;
此处active_dimen表示有效维度;
3)根据以下公式更新粒子:
volecity(i,j)new=W*volecity(i,j)+c1*rand*(Pbest(i,j)-swarm(i,j))+...
c2*rand*(Best(j)-swarm(i,j))
swarm(i,j)new=swarm(i,j)+volecity(i,j)new
此处volecity(i,j)表示第i个粒子的速度的第j维分量,j=1,2…active_dimen,volecity(i,j)new为更新后的速度分量;W为惯性权重,c1和c2为加速常数;rand表示产生一个(0,1)之间均匀分布的随机数,Pbest(i,j)为第i个粒子当前最优解的第j维分量,swarm(i,j)为第i个粒子位置的第j维分量,swarm(i,j)new为更新后的粒子对应的位置分量;Best(j)为步骤1)中的最优粒子Best的第j维;
4)限制粒子swarm(i,j)和volecity(i,j)new的范围,采取以下公式:
当j不为1,即swarm(i,j)不为节点数时,
swarm(i,j)new=(Xmax-Xmin)*rand+Xmin
当swarm(i,j)lt;Xmax或者swarm(i,j)gt;Xmax
当j为1,即swarm(i,j)为节点数时,调整节点数为整数,采用以下公式:
swarm(i,1)new=ceil(swarm(i,1))
此处,ceil表示向上取整函数;
5)根据适应度函数,计算更新后的粒子的适应度值fitNew;
6)若第i个粒子的当前最优粒子的适应度值fitness(i)大于该粒子更新后的适应度值fitNew,则更新Pbest(i)和适应度值fitness(i),公式如下:
Pbest(i)=swarmnew(i)
fitness(i)=fitNew
此处swarmnew(i)为更新后的第i个粒子的位置;若fitness(i)<fitNew,不更新Pbest(i)和fitness(i);
7)若t<T,则判断fitNew是否小于第i个粒子所在的类的局部最优解的适应度值,若判断为真,则该类的局部最优解更新为swarmnew(i),该类局部最优解的适应度值更新为fieNew;否则,不更新;
8)根据第i个粒子的有效维度,重新初始化该粒子除有效维度部分外的位置分量;
4.4.4:更新全局最优解Gbest及其适应度值,更新的方法为:取fitness最小值为Gbest的适应度的值,且与该最小值对应的当前最优粒子为Gbest;
4.4.5:更新迭代计数器t,t=t+1;若t>iter,退出循环;否则返回步骤4.4.2。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京航空航天大学,未经南京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711134813.X/1.html,转载请声明来源钻瓜专利网。