基于头脑风暴优化算法的非线性传感器校正方法与流程

文档序号:16974116发布日期:2019-02-26 18:49阅读:373来源:国知局
基于头脑风暴优化算法的非线性传感器校正方法与流程

本发明涉及一种非线性传感器的校正优化算法,具体涉及基于头脑风暴优化算法的非线性传感器校正方法。



背景技术:

传感器的输入与输出理想情况下是线性关系,但由于环境以及传感器本身等因素影响,很多传感器的输出与输入之间出现非线性关系。为了解决上述问题,通常采用硬件补偿和软件补偿两种方法,但是由于硬件补偿成本较大,故软件补偿较受欢迎。目前主要的软件补偿方法有最小二乘法、函数校正法、bp神经网络法、遗传算法和粒子群算法,其中最小二乘法、函数校正法和bp神经网络法容易陷入局部最优,而遗传算法和粒子群算法在高精度计算过程中耗时更长。因此提出一种更优的非线性传感器校正方法。



技术实现要素:

本发明的目的在于克服上述存在的问题,设计一种基于头脑风暴优化算法的非线性传感器校正方法,通过本发明对非线性传感器校正时具有精度高、速度快的特点。

本发明的目的是通过下述技术方案来实现的。

基于头脑风暴优化算法的非线性传感器校正方法,过程如下:

建立非线性传感器校正数学模型;

设定非线性传感器校正数学模型的校正容量约束;

设定非线性传感器校正数学模型的适应度函数;

利用非线性传感器校正数学模型、校正容量约束和适应度函数通过头脑风暴优化算法对非线性传感器进行校正。

所述非线性传感器校正数学模型为:

z(yi)=a0+a1yi+a2yi2+a3yi3+...+ajyij+...+anyin

其中,yi为非线性传感器校正数学模型的输入;z(yi)为非线性传感器校正数学模型的校正输出值;i为非线性传感器测试点数;n的数值由要求的准确度决定;a0、a1、a2...an为待定常数,由所有的待定常数形成待定常数组{a0、a1、a2...an}。

所述校正容量约束设定为:

ajmin≤aj≤ajmax

其中,aj为待定常数,ajmin与ajmax分别为待定常数aj的最大值与最小值,由实验所得。

所述适应度函数为:

其中,yi为非线性传感器测试点i的输出值,z(yi)为根据建立的非线性传感器校正数学模型计算的传感器值,m为待定常数组的个数。

利用非线性传感器校正数学模型、校正容量约束和适应度函数通过头脑风暴优化算法对非线性传感器进行校正的过程包括如下步骤:

步骤1,设定头脑风暴优化算法的待定常数组最大的个数、计算精度和最大迭代次数;

步骤2,根据校正容量约束产生待定常数:

步骤3,根据适应度函数计算各个传感器测试点的适应度值;

步骤4,根据适应度函数对迭代过程中已产生的待定常数组进行排序聚类,每个类中选择适应度值最大的作为聚类中心;

步骤5,如果在排序聚类过程中产生待定常数组个数达到最大值,则转至步骤6,否则转至步骤2;

步骤6,如果在排序聚类过程中达到最大迭代次数,则停止排序聚类,计算每个待定常数组的适应度,输出适应度最大的待定常数组;

否则转至步骤2,重复步骤2~步骤5。

所述步骤4中,最大聚类数取2。

所述步骤2中,根据下式产生待定常数:

aj=rand(x)*(ajmax-ajmin)+ajmin

其中,rand(x)为[0,1]的随机数,aj为待定常数,ajmin与ajmax分别为待定常数的最大值与最小值。

所述步骤2的具体过程如下:

步骤1),随机产生一个[0,1]的数值;

步骤2),如果步骤1)随机产生的数值比预设值p2小,则进行以下步骤;

步骤2.1),随机选择一个类;

步骤2.2),随机产生一个0到1间的数值;

步骤2.3),如果步骤2.2)随机产生的数值比预设值p3小,则生成临时待定常数组a,将生成的临时待定常数组a与步骤2.1)选择的类的聚类中心合并,产生新的待定常数组l;

如果步骤1)随机产生的数值不小于预设值p3,则生成临时待定常数组b,随机取步骤2.1)选择的类中的一个待定常数组c,将待定常数组c和临时待定常数组b合并,产生新的待定常数组l;

如果步骤1)随机产生的数值不小于预设值p2,则进行以下步骤;

步骤2.4),随机选择两个类;

步骤2.5),随机产生一个[0,1]的数值;

步骤2.6),如果步骤2.5)随机产生的数值小于预设值p3,将步骤2.4)选取的两个类的聚类中心合并后产生新的待定常数组l;

如果步骤2.5)随机产生的数值不小于p3,分别从步骤2.4)选取的两个类中各随机选择一个待定常数组,将选择的两个待定常数组合并产生新的待定常数组l。

预设值p2取值0.4~0.7;预设值p3取0.1~0.3。

本发明与现有技术相比,具有下述有益效果:

本发明基于头脑风暴优化算法的非线性传感器校正方法通过建立非线性传感器校正数学模型,设定非线性传感器校正数学模型的校正容量约束,设定非线性传感器校正数学模型的适应度函数,并利用非线性传感器校正数学模型、校正容量约束和适应度函数通过头脑风暴优化算法对非线性传感器进行校正;通过本发明的矫正方法能够通过对局部最优解进行对比得到全局最优解,能够高精度、高速度的计算出校正待定常数组。

附图说明

图1是本发明的bso非线性传感器校正系统结构图;

图2为本发明的bso非线性传感器校正原理图;

图3是本发明的bso算法流程图。

具体实施方式

下面结合附图及实施例对本发明做进一步说明。

如图1和图2所示,本发明的校正方法所采用的校正系统,包括计算机、cpu和非线性传感器,以及传感器数据采集需要的外围器件:计算机与cpu相连,cpu和非线性传感器相连;该非线性传感器为需要被矫正的传感器;cpu用于采集传感器数据,获取非线性的传感器输出数据,并将非线性的传感器输出数传输给计算机;同时还能够接收计算机传输的数据,并根据该数据以及数学模型计算校正后的传感器数据;

计算机用于接收cpu传输的数据,在计算机软件开发环境vs运行校正算法程序,接收传感器数据,将接收的该数据经过头脑风暴优化算法进行处理,得到待定常数组,将待定常数组打包;再将打包后的数据传输给cpu。

其中,cpu通过ad转换器与spi接口与传感器连接,或者cpu通过ad转换器与iic接口与传感器连接;cpu通过rs232接口、usb接口或网口与计算机连接。

参照图3,本发明的基于头脑风暴优化算法的非线性传感器校正方法过程如下:

建立非线性传感器校正数学模型,该非线性传感器校正数学模型为:

z(yi)=a0+a1yi+a2yi2+a3yi3+...+ajyij+...+anyin

其中,yi为非线性传感器校正数学模型的输入;z(yi)为非线性传感器校正数学模型的校正输出值;i为非线性传感器测试点数;n的数值由要求的准确度决定;a0、a1、a2...an为待定常数,由所有的待定常数形成待定常数组{a0、a1、a2...an};

设定非线性传感器校正数学模型的校正容量约束,校正容量约束设定为:

ajmin≤aj≤ajmax

其中,aj为待定常数,ajmin与ajmax分别为待定常数aj的最大值与最小值,由实验所得;

设定非线性传感器校正数学模型的适应度函数f:

其中,yi为非线性传感器测试点i的输出值,z(yi)为根据建立的非线性传感器校正数学模型计算的传感器值,m为待定常数组的个数;

利用非线性传感器校正数学模型、校正容量约束和适应度函数通过头脑风暴优化算法对非线性传感器进行校正,其具提包括以下步骤:

步骤1,设定头脑风暴优化算法的待定常数组最大的个数、计算精度和最大迭代次数;

步骤2,根据校正容量约束产生待定常数,具体根据下式产生待定常数:

aj=rand(x)*(ajmax-ajmin)+ajmin

其中,rand(x)为[0,1]的随机数,aj为待定常数,ajmin与ajmax分别为待定常数的最大值与最小值;具体过程如下:

步骤1),随机产生一个[0,1]的数值;

步骤2),如果步骤1)随机产生的数值比预设值p2小,则进行以下步骤;

步骤2.1),随机选择一个类;

步骤2.2),随机产生一个0到1间的数值;

步骤2.3),如果步骤2.2)随机产生的数值比预设值p3小,则生成临时待定常数组a,将生成的临时待定常数组a与步骤2.1)选择的类的聚类中心合并,产生新的待定常数组l;

如果步骤1)随机产生的数值不小于预设值p3,则生成临时待定常数组b,随机取步骤2.1)选择的类中的一个待定常数组c,将待定常数组c和临时待定常数组b合并,产生新的待定常数组l;

如果步骤1)随机产生的数值不小于预设值p2,预设值p2取值为0.4~0.7,则进行以下步骤;

步骤2.4),随机选择两个类;

步骤2.5),随机产生一个[0,1]的数值;

步骤2.6),如果步骤2.5)随机产生的数值小于预设值p3,将步骤2.4)选取的两个类的聚类中心合并后产生新的待定常数组l;

如果步骤2.5)随机产生的数值不小于p3,预设值p3取0.1~0.3,分别从步骤2.4)选取的两个类中各随机选择一个待定常数组,将选择的两个待定常数组合并产生新的待定常数组l;

步骤3,根据适应度函数计算各个传感器测试点的适应度值;

步骤4,根据适应度函数对迭代过程中已产生的待定常数组进行排序聚类,每个类中选择适应度值最大的作为聚类中心,其中,最大聚类数取2;

步骤5,如果在排序聚类过程中产生待定常数组个数达到最大值,则转至步骤6,否则转至步骤2;

步骤6,如果在排序聚类过程中达到最大迭代次数,则停止排序聚类,计算每个待定常数组的适应度,输出适应度最大的待定常数组;

否则转至步骤2,重复步骤2~步骤5。

综上,本发明的基于头脑风暴优化算法的非线性传感器校正方法通过不断地聚类与分类发散,分析待定常数组解集合构成,基于待定常数组解得分布生成新的待定常数组解,经过迭代求解,具有求解过程不依赖数学模型的特点;且有效的调节了局部和全局搜索方式,跳出局部最优解,从而得到全局最优的待定常数组。

进一步,因为传感器非线性曲线多为s型曲线,固用高阶幂函数更适合校正传感器曲线。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施方式仅限于此,对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单的推演或替换,都应当视为属于本发明由所提交的权利要求书确定专利的保护范围。

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