基于牛顿法极值搜索的多峰极值搜索方法与流程

文档序号:11654232阅读:535来源:国知局
基于牛顿法极值搜索的多峰极值搜索方法与流程

本发明属于极值搜索技术领域,更为具体地讲,涉及一种基于牛顿法极值搜索的多峰极值搜索方法。



背景技术:

对于单输入单输出系统,其输入和输出会满足一定的函数关系。在实际应用中,通常需要将输入调整到合适的值,以使输出达到极值,此时就需要用到极值搜索方法。目前传统的极值搜索算法只能搜索到局部峰值,如果系统函数为多峰函数,那么就只能搜索到初始点附近的一个峰值,对于其他峰值的搜索无能为力,而局部峰值并不一定是全局峰值。显然,要想搜索得到多峰函数系统的极值,极大地依赖于初始点的设置,而初始点一般是人为设置的,很难摆脱主观因素的影响,因此亟需一种能够对多峰函数的极值进行搜索的方法。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种基于牛顿法极值搜索的多峰极值搜索方法,通过不断更新初始点进行极值搜索,以实现对系统函数为多峰函数的单输入单输出系统的多峰极值搜索。

为实现上述发明目的,本发明基于牛顿法极值搜索的多峰极值搜索方法包括以下步骤:

s1:设定极值搜索的输入初始点x0;

s2:以初始点x0作为系统输入,采用牛顿法极值搜索算法进行时长为t+m的极值搜索,记录时刻t的系统输出yt和时刻t+m的系统输出yt+m,t和m都是根据实际情况设置的时间参数;牛顿法极值搜索算法的具体步骤包括:

s2.1:令系统输入

s2.2:将系统输入与扰动s(t)相加,得到输入

s2.3:将系统输入x输入系统,得到对应的系统输出y,通过滤波器滤去不稳定的波形,得到稳定的输出

s2.4:将输出分别与扰动m(t)和扰动n(t)相乘,得到信号通过riccati(里卡蒂)方程构造出hessian(海森)矩阵h的逆矩阵的估计矩阵γ,然后将估计矩阵γ乘以输出与扰动m(t)相乘后的结果,产生变量

s2.5:将δy乘以一个常系数-k后进行积分,其中k>0,在估计点处寻找到下一个估计迭代点返回步骤s2.2;

s3:判断是否|yt+m-yt|<ε,ε表示预设阈值,ε>0,如果是,则将yt+m作为当前初始点x0对应的极值,进入步骤s6,否则进入步骤s4;

s4:延长牛顿法极值搜索算法的搜索时间,延长的搜索时间为τ+m,τ表示延长时间参数,记录本次延长搜索时间中时刻τ的系统输出yτ和时刻τ+m的系统输出yτ+m;

s5:判断是否|yτ+m-yτ|<ε,ε表示预设阈值,如果是,则将yτ+m作为当前初始点x0对应的极值,进入步骤s6,否则返回步骤s4;

s6:令初始点x0=x0+h,返回步骤s2,h表示初始点更新步长;

在步骤s2至步骤s6循环执行期间,对搜索结束参数进行监测,一旦达到搜索结束条件,则多峰极值搜索结束。

本发明基于牛顿法极值搜索的多峰极值搜索方法,针对单输入单输出系统,给定输入初始点采用牛顿法极值搜索进行预设时间的极值搜索,通过判断搜索结束时段两个相近时间点的差值来确定是否搜索到局部极值,如果搜索到局部极值,则更新输入初始点搜索下一个局部极值,否则延长搜索时间继续搜索该初始点对应的局部极值。

本发明针对传统极值搜索算法无法对系统函数为多峰函数的单输入单输出系统进行多峰极值搜索的情况,基于牛顿法极值搜索算法进行了扩展,增加了改变输入初始点的外循环,通过对初始点的改变,利用牛顿法极值搜索算法搜索出不同初始点附近的极值,从而完成对多峰函数的极值搜索过程。通过仿真验证可以发现,本发明是一个双闭环系统,可以准确搜索到不同输入初始点相对应的极值,搜索速度快,稳定性好。

附图说明

图1是本发明基于牛顿法极值搜索的多峰极值搜索方法的具体实施方式流程图;

图2是本发明中牛顿法极值搜索算法示意图;

图3是本实施例中系统函数的曲线图;

图4是本实施例中采用本发明多峰极值搜索方法得到的波峰值与时间的变化图;

图5是图4中对应极值点与时间的变化图;

图6是输入初始点为3时牛顿法极值搜索算法的波峰值与时间的变化图;

图7是输入初始点为4时牛顿法极值搜索算法的波峰值与时间的变化图;

图8是输入初始点为5时牛顿法极值搜索算法的波峰值与时间的变化图;

图9是本实施例中采用本发明多峰极值搜索方法得到的波谷值与时间的变化图;

图10是图9中对应极值点与时间的变化图;

图11是初始点为3时牛顿法极值搜索算法的波谷值与时间的变化图;

图12是初始点为4时牛顿法极值搜索算法的波谷值与时间的变化图;

图13是初始点为5时牛顿法极值搜索算法的波谷值与时间的变化图。

具体实施方式

下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。

实施例

图1是本发明基于牛顿法极值搜索的多峰极值搜索方法的具体实施方式流程图。如图1所示,本发明基于牛顿法极值搜索的多峰极值搜索方法的具体步骤包括:

s101:设定初始参数:

设定极值搜索的输入初始点x0。

s102:牛顿法极值搜索:

以初始点x0作为系统输入,采用牛顿法极值搜索算法进行时长为t+m的极值搜索,记录时刻t的系统输出yt和时刻t+m的系统输出yt+m,t和m都是根据实际情况设置的时间参数。

图2是本发明中牛顿法极值搜索算法示意图。如图2所示,牛顿法极值搜索算法的具体过程包括以下步骤:

s201:令系统输入

s202:输入扰动处理:

将系统输入与扰动s(t)相加,得到输入

本实施例中采用的扰动表示式为:

其中,η(t)=[cos(w(t)),sin(w(t))]t是布朗单位圆运动,是一个常向量,其中,h1>0,h2>0和a>0是设计参数。

s203:获取对应系统输出:

将系统输入x输入系统,得到对应的系统输出y,通过滤波器滤去不稳定的波形,得到稳定的输出

s204:输出扰动处理:

将输出分别与扰动m(t)和扰动n(t)相乘,得到信号

本实施例中扰动m(t)和扰动n(t)可分别表示为:

输出与m(t)相乘是为了估计输出的一阶导数。输出与扰动n(t)相乘后得到的结果通过riccati方程构造出hessian矩阵h的逆矩阵的估计矩阵γ,然后将估计矩阵γ乘以输出与扰动m(t)相乘后的结果,产生变量

s205:寻找下一个估计迭代点:

将δy乘以一个常系数-k后进行积分,其中k>0,在估计点处寻找到下一个估计迭代点返回步骤s202。

牛顿法的迭代公式为:其中即为hessian矩阵h,的估计即为γ,即为滤波后输出与扰动m(t)相乘后的估计,令为负牛顿方向,在此处二个估计点的差值:所以积分后能寻找到下一个估计迭代点

s103:判断是否搜索得到局部极值:

通过比较时刻t的系统输出yt和时刻t+m的系统输出yt+m的差值是否小于预设阈值即可判定是否搜索得到局部极值,即判断是否|yt+m-yt|<ε,ε表示预设阈值,ε>0,如果是,则将yt+m作为当前初始点x0对应的极值,进入步骤s107,否则进入步骤s104。显然,m是一个较短的时间间隔。

s104:延长搜索时间:

如果还未搜索到当前初始点x0对应的极值,则需要延长牛顿法极值搜索算法的搜索时间,延长的搜索时间为τ+m,τ表示延长时间参数,记录本次延长搜索时间中时刻τ的系统输出yτ和时刻τ+m的系统输出yτ+m。

s105:判断延长搜索是否搜索得到局部极值:

与步骤s103类似,通过比较延长搜索时间中时刻τ的系统输出yτ和时刻τ+m的系统输出yτ+m的差值是否小于预设阈值即可判定是否搜索得到局部极值,即判断是否|yτ+m-yτ|<ε,ε表示预设阈值,如果是,则将yτ+m作为当前初始点x0对应的极值,进入步骤s106,否则返回步骤s104。

可见,如果从以初始点x0作为牛顿法极值搜索的初始输入开始计时,首先会进行时长为t+m的极值搜索,如果搜索不到极值,还会继续进行时长τ+m的极值搜索,以此类推,每次延长时长为τ+m的搜索,一直搜索下去。

s106:更新初始点:

令初始点x0=x0+h,返回步骤s102,h表示初始点更新步长,是根据实际情况来设置的。

可见,步骤s102至步骤s106形成了一个循环,持续搜索得到系统的各个极值。在步骤s102至步骤s106循环执行期间,对搜索结束参数进行监测,一旦达到搜索结束条件,则多峰极值搜索结束。一般来说,搜索结束参数可以设置为两种,一种是多峰极值搜索方法的总体运行时间,即采用一个计时器来记录多峰极值搜索方法的总体运行时间,当总体运行时间达到预设阈值,则多峰极值搜索结束;一种是当前初始点的值,即如果初始点x0超出预设范围,则多峰极值搜索结束。用户可以根据实际系统的情况来选择采用哪种搜索结束条件进行判定。

为了说明本发明的可行性和正确性,下面分别通过理论推导和仿真验证两种方式来对本发明的技术方案进行分析说明。

本发明在对每个初始值进行局部峰值搜索时,采用的是牛顿法极值搜索算法,该方法对于一个给定初始值,能通过不断的迭代进行自闭环循环,从而搜索到给定初始点附近的峰值,其证明的具体过程如下。

对于任意非线性系统:

y=f(x),x∈r(4)

其中f(·)是未知的系统函数,已知f(·)在x=x*处有局部极值y*=f(x*),假设f(·)是二阶连续可微的,并存在一个常值x*∈r,有

根据图2所示的基于牛顿法的极值搜索方法可知:

上标“·”表示一阶导数,h>0。

定义估计误差x*表示极值点,上标“-1”表示逆矩阵,可得

由假设可知f(x)在x=x*处的泰勒展开式为

将式(5)和式(10)带入式(8)和式(9),可得误差系统:

对误差系统使用均值理论,可得其均值系统:

由均值系统可得均衡点:

与其相应的雅可比矩阵:

由h>0和k>0,可知雅可比矩阵即为赫尔维兹矩阵,那么均值系统在均衡点(0,0)处是指数稳定的,至此证明了对任意一给定初始点,可通过牛顿法极值搜索算法稳定的搜索到其附近的极值。

本发明多峰极值搜索方法通过比较两个相近时间点输出值的差值是否小于一阀值来判断是否搜索到该初始点附近的极值,若搜索到,则将初始点每次增加h后作为新的初始点。通过更新初始点的值,即可实现对单输入单输出系统的多峰极值搜索。

为了证明本发明的技术效果,采用一个具体的系统进行了仿真验证。所采用系统的系统函数如下:

图3是本实施例中系统函数的曲线图。如图3所示,本实施例中系统函数是一个周期函数,有无穷多个峰值。本实施例中仅对其中几个峰值进行仿真验证。

首先采用本发明方法对该系统的进行峰值搜索,然后利用牛顿法极值搜索算法进行局部单峰的搜索以作为对比,由于牛顿法极值搜索算法每次只能搜索到一个峰值,因此采用本发明方法的输入初始值进行多次搜索。

在采用本发明方法对该系统进行峰值搜索时,各参数设置如下:初始值x0=3,初始值更新步长h=1,搜索时间参数t=20,m=1,延长时间参数τ=4,局部极值的判断阈值ε=0.1,搜索结束条件采用搜索的总体运行时间t总=50。为了更好地进行对比,本次仿真验证中对波峰和波谷分别进行搜索,即波峰判断局部极值点的条件为0≤yt+m-yt<ε和0≤yτ+m-yτ<ε,波谷判断局部极值点的条件为0≤yt-yt+m<ε和0≤yτ-yτ+m<ε。

图4是本实施例中采用本发明多峰极值搜索方法得到的波峰值与时间的变化图。图5是图4中对应极值点与时间的变化图。如图4和图5所示,可知共搜索到了3个不同的波峰值,对应的初始点分别为3、4和5,当初始点x0=3时y0=3.6136,当x0=4时y1=6.1658,当x0=5时y2=14.4970。将图3和图4中搜索到的波峰值和对应极值点与图3相比较,可以看出是相吻合的。

分别设置初始值x0为3、4、5采用牛顿法极值搜索算法进行单峰搜索。图6是输入初始点为3时牛顿法极值搜索算法的波峰值与时间的变化图。图7是输入初始点为4时牛顿法极值搜索算法的波峰值与时间的变化图。图8是输入初始点为5时牛顿法极值搜索算法的波峰值与时间的变化图。如图6至图8所示,对于牛顿法极值搜索算法,当给定的初始值x0=3时y=3.6140,当给定的初始值x0=4时y=6.1650,当给定的初始值x0=5时y=14.4950,将这三幅图的搜索结果与图4的搜索结果进行对比可知,误差均小于0.1,由此可以说明在搜索波峰值方面本发明的正确性。

图9是本实施例中采用本发明多峰极值搜索方法得到的波谷值与时间的变化图。图10是图9中对应极值点与时间的变化图。如图9和图10所示,可知共搜索到了3个不同的波谷值,对应的初始点分别为3、4和5,当初始点x0=3时y0=-2.6362,当x0=4时y1=-3.5853,当x0=5时y2=-12.8680。将图9和图10中搜索到的波谷值和对应极值点与图3相比较,可以看出是相吻合的。

同样地,分别设置初始点x0为3、4、5采用牛顿法极值搜索算法对波谷值进行单峰搜索。图11是初始点为3时牛顿法极值搜索算法的波谷值与时间的变化图。图12是初始点为4时牛顿法极值搜索算法的波谷值与时间的变化图。图13是初始点为5时牛顿法极值搜索算法的波谷值与时间的变化图。如图11至图13所示,对于牛顿法极值搜索算法,当给定的初始点x0=3时y=-2.6390,当给定的初始点x0=4时y=-3.5820,当给定的初始点x0=5时y=-12.8650,将这三幅图的搜索结果与图9的搜索结果进行对比可知,误差均小于0.1,由此可以说明在搜索波谷方面本发明方法也是正确的。

综上所述,可知本文所提算法能够准确稳定的搜索到多峰函数的峰值,对于波峰和波谷的搜索都适用。

尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

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