CN102629105A - 一种自适应控制方法和装置 - Google Patents
一种自适应控制方法和装置 Download PDFInfo
- Publication number
- CN102629105A CN102629105A CN201210097834XA CN201210097834A CN102629105A CN 102629105 A CN102629105 A CN 102629105A CN 201210097834X A CN201210097834X A CN 201210097834XA CN 201210097834 A CN201210097834 A CN 201210097834A CN 102629105 A CN102629105 A CN 102629105A
- Authority
- CN
- China
- Prior art keywords
- iterations
- error
- vector
- amplitude range
- adaptive filter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Filters That Use Time-Delay Elements (AREA)
- Feedback Control In General (AREA)
Abstract
本发明涉及一种自适应控制方法和装置,该方法包括:计算输出信号反馈的期望信号和估计信号的误差以及根据误差计算误差向量;根据迭代次数以及误差计算并更新迭代次数,和/或根据幅度范围以及误差计算并更新所述幅度范围;根据输出信号形成的输出向量的自相关矩阵、迭代次数以及幅度范围,迭代计算自适应滤波器系数的改变量;根据自适应滤波器系数的改变量,更新自适应滤波器系数;输出信号经由自适应滤波器处理后,得到输出信号反馈的估计信号。因此,本发明公开的一种自适应控制方法和装置,根据误差信号计算幅度范围和迭代次数这两个参数,使得该参数随着误差的变化而变化,从而自适应的调整该算法的收敛速度、稳态误差、以及算法复杂度。
Description
技术领域
本发明涉及自适应信号处理领域,尤其涉及一种自适应控制方法和装置。
背景技术
自适应滤波器理论是自适应信号处理领域的一个分支,它能够自动地迭代调节自身的滤波器参数,以满足某种准则的要求,从而实现最优滤波。自适应滤波算法是自适应滤波器设计过程中的重要组成部分。自适应算法的优劣决定着自适应滤波器的优劣。
图1为现有技术中自适应控制系统的示意图。如图所示,输入信号x(i)经过前向通路G增强输入信号,得到输出信号u(i)。输出信号经过反馈路径H又返回到输入信号形成输出信号反馈的期望信号d(i),同时u(i)经过自适应滤波器产生输出信号反馈的估计信号y(i),e(i)为输出信号反馈的期望信号d(i)和输出信号反馈的估计信号y(i)的差值。该方法的目的是选择自适应算法,使得输出信号反馈的期望信号d(i)和输出信号反馈的估计信号y(i)的误差e(i)值达到最小,理想情况下误差e(i)为0。
最小均方算法(Least mean square,LMS)是自适应滤波中的一种典型算法。现在使用较多的是它的归一化模式NLMS(normalized least-meansquares),其他使用的算法有指数加权递推最小二乘法(exponentiallyweighted recursive least squares,ERLS)和投影仿射算法(affineprojection algorithm,APA)。RLS算法和APA算法的收敛速度都很快,但是计算复杂度却很高,这使得两种算法在某些要求计算复杂度低的应用领域(如助听器)无法使用。另外,NLMS算法的收敛速度无法达到要求,也使得它无法在需要快速收敛的应用领域使用。
由Zakhar0v Y提出的二分坐标下降(dichotomous coordinate descent,DCD)算法能够用最简单的方式解决RLS和APA算法中计算量最大的部分,使算法的乘法计算次数由o(n2)降到o(n),于是可以具体为:保证收敛速度的前提下降低算法复杂度。通过这种方式改进的算法有DCD-ERLS算法、DCD-APA算法等。
但是,现有的二分坐标下降-指数加权递推最小二乘法(dichotomouscoordinate descent-exponentially weighted recursive least squares,DCD-ERLS),二分坐标下降-仿射投影算法(dichotomous coordinatedescent-affine projection algorithm,DCD-APA)算法中每执行一次DCD算法的迭代次数和幅度范围都是不变的。当误差e(i)很大时,相对于能迅速增大的可变的迭代次数,固定的迭代次数不能迅速收敛到所需要的值,当误差e(i)很小时,不需要多次迭代,则固定的迭代次数有很大浪费。当误差e(i)很大时,如果初始幅度范围设置的太小,则不能快速的收敛;如果初始幅度范围设置的太大,不一定能收敛。当误差e(i)较小时,固定的初始幅度范围设置使得算法拥有固定的误差范围,在需要高精度的误差范围时,这种算法明显不合适。
发明内容
本发明的目的是,提供一种自适应控制方法和装置。该方法和装置基于DCD算法能够使迭代次数和幅度范围根据误差值实时变化,从而产生最适合的迭代次数和幅度范围。
为实现上述目的,本发明提供了一种自适应控制方法,所述方法包括:
计算输出信号反馈的期望信号和输出信号反馈的估计信号的误差以及根据所述误差计算误差向量;
根据迭代次数以及所述误差计算并更新迭代次数,和/或根据幅度范围以及所述误差计算并更新所述幅度范围;
根据输出信号形成的输出向量的自相关矩阵、所述迭代次数以及所述幅度范围,迭代计算自适应滤波器系数的改变量;
根据所述自适应滤波器系数的改变量,更新自适应滤波器系数;
所述输出信号经由所述自适应滤波器处理后,得到所述输出信号反馈的估计信号。
优选的,所述计算迭代次数的计算方法为:
p1(i)=λ1×p1(i-1)+r1×e2(i)
优选的,所述计算幅度范围的计算方法为:
p2(i)=λ2×p2(i-1)+r2×|e(i)|
H(i)=2q(i)
其中,e(i)为所述误差,p2(i)初始值为0,表示不小于log2(p2(i))的最小整数,0<λ2<1,r2>0,H(i)为所述幅度范围。
优选的,所述根据输出信号形成的输出向量的自相关矩阵、所述迭代次数以及所述幅度范围,迭代计算自适应滤波器系数的改变量的步骤包括:
步骤a,步长的初始值为所述幅度范围,计算并更新步长,每次计算并更新后的步长是上一次步长的二分之一,并且步长的更新次数递增1;
步骤b,判断步长的更新次数是否大于设定值,若是,则执行步骤f,否则执行步骤c;
步骤c,残留向量的初始值为所述误差向量,从所述残留向量的第一个元素开始,依次比较所述残留向量中的元素的绝对值是否大于所述步长的二分之一与输出信号形成的输出向量的自相关矩阵相乘后得到的矩阵的对应的对角线元素,得到比较结果,若所述比较结果是大于,则执行步骤d,否则,若比较已达到所述残留向量的最后一个元素并且从所述残留向量的第一个元素至最后一个元素的所有所述比较结果均不是大于,则执行步骤a,否则,重复本步骤,进行下一次比较,若比较已达到所述残留向量的最后一个元素,则下一次比较再次从所述残留向量的第一个元素开始;
步骤d,计算所述自适应滤波器系数的改变量以及计算所述残留向量,并且以计算次数递加1来更新所述计算次数;
步骤e,判断所述计算次数是否大于所述迭代次数,若是,则执行步骤f,否则继续执行步骤c;
步骤f,计算结束并得到所述自适应滤波器系数的改变量。
本发明还提供了一种自适应控制装置,所述装置包括:
第一计算单元用于计算输出信号反馈的期望信号和输出信号反馈的估计信号的误差以及根据所述误差计算误差向量。
第二计算单元用于根据迭代次数以及所述误差计算并更新迭代次数,和/或根据幅度范围以及所述误差计算并更新所述幅度范围。
第三计算单元用于根据输出信号形成的输出向量的自相关矩阵、所述迭代次数以及所述幅度范围,迭代计算自适应滤波器系数的改变量。
自适应滤波器系数生成单元用于根据所述自适应滤波器系数的改变量,更新自适应滤波器系数。
第四计算单元用于所述输出信号经由所述自适应滤波器处理后,得到所述输出信号反馈的估计信号。
优选的,所述第三计算单元中所述计算迭代次数的计算方法为:
p1(i)=λ1×p1(i-1)+r1×e2(i)
其中,e(i)为所述误差,p1(i)初始值为0,表示不小于p1(i)的最小整数,0<λ1<1,r1>0,Nu(i)为所述迭代次数。
优选的,所述第三计算单元中所述计算幅度范围的计算方法为:
p2(i)=λ2×p2(i-1)+r2×|e(i)|
H(i)=2q(i)
优选的,所述第三计算单元包括:
第一计算子单元,用于步长的初始值为所述幅度范围,计算并更新步长,每次计算并更新后的步长是上一次步长的二分之一,并且步长的更新次数递增1;
第一判断子单元,判断步长的更新次数是否大于设定值,若是,则进入结束子单元,否则进入第二判断子单元;
第二判断子单元,用于残留向量的初始值为所述误差向量,从所述残留向量的第一个元素开始,依次比较所述残留向量中的元素的绝对值是否大于所述步长的二分之一与输出信号形成的输出向量的自相关矩阵相乘后得到的矩阵的对应的对角线元素,得到比较结果,若所述比较结果是大于,则进入第二计算子单元,否则,若比较已达到所述残留向量的最后一个元素并且从所述残留向量的第一个元素至最后一个元素的所有所述比较结果均不是大于,则进入第一计算子单元,否则,重复本步骤,进行下一次比较,若比较已达到所述残留向量的最后一个元素,则下一次比较再次从所述残留向量的第一个元素开始;
第二计算子单元,用于计算所述自适应滤波器系数的改变量以及计算并更新所述残留向量,并且以计算次数递加1来更新所述计算次数;
第三判断子单元,用于判断所述计算次数是否大于所述迭代次数,若是,则进入结束子单元,否则进入第二判断子单元,进行下一次比较,若比较已达到所述残留向量的最后一个元素,则下一次比较再次从所述残留向量的第一个元素开始;
结束子单元,用于计算结束并得到所述自适应滤波器系数的改变量。
因此,本发明公开的自适应控制方法和装置,根据误差计算幅度范围H和迭代次数Nu这两个参数,使得幅度范围和迭代次数这两个参数随着误差的变化而变化,从而自适应的调整该算法的收敛速度、稳态误差、以及算法复杂度。
附图说明
图1为现有技术中自适应控制系统的示意图;
图2A为本发明实施例采用的指数加权递推最小二乘法ERLS算法的实现框图;
图2B为本发明实施例采用的指数加权递推最小二乘法ERLS算法的实现流程图;
图3为本发明实施例采用的二分坐标下降算法DCD的实现流程图;
图4为本发明实施例一种自适应控制的方法流程图;
图5为本发明实施例一种自适应控制的方法中迭代计算自适应滤波器系数的改变量的方法流程图。
图6为本发明实施例一种自适应控制装置示意图;
图7为本发明实施例一种自适应控制装置中第三计算单元的示意图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
本发明实施例是以DCD-ERLS算法为基础的。
DCD-ERLS算法是以指数加权递推最小二乘法(exponentially weightedrecursive least squares,ERLS)为基础算法,利用二分坐标下降(dichotomous coordinate descent,DCD)算法来解决ERLS算法里最复杂的一步,从而简化算法。同样的,DCD算法也能适用在APA算法上,即为DCD-APA算法。
图2A为本发明实施例采用的指数加权递推最小二乘法ERLS算法的实现框图。如图所示,其中,图2A中的输出信号u(i)为图1中的输出信号u(i)。ERLS算法的具体实现过程如图2B所示,具体为:
步骤201,通过输出信号u(i)采样N点得到输出向量U(i),如公式(1)所示,再通过输出信号u(i)和输出向量U(i)产生输出信号形成的输出向量的自相关矩阵R,如公式(2)所示。
U(i)=[u(i),u(i-1),…,u(i-N+1)]T (1)
其中,T表示转置。
R矩阵的构成方法:R(i)为i时刻的R矩阵,R(i)的右下N-1阶矩阵来源于R(i-1)的左上N-1阶矩阵,R(i)的第一列采用公式(2)求得,再通过对称得到第一行,则得到R矩阵,R矩阵用来构成计算自适应滤波器系数的改变量的方程。
R(1)(i)=λR(1)(i-1)+u(i)U(i)(2)
其中λ为常数,0<λ<1,R(1)(i)表示R(i)的第1列。
步骤202,输出向量U(i)与自适应滤波器系数h(i-1)相乘得到输出信号反馈的估计信号y(i),UT(i)为输出向量U(i)的转置,h(i)为自适应滤波器估计的反馈路径,h(i)为N×1维列向量,h(i-1)表示延迟一个单位。如公式(3)所示。
y(i)=UT(i)h(i-1)(3)
步骤203,输出向量U(i)通过实际反馈路径得到输出信号反馈的期望信号d(i),输出信号反馈的期望信号d(i)减去输出信号反馈的估计信号y(i)得到误差信号e(i),如公式(4)所示。
e(i)=d(i)-y(i)(4)
步骤204,通过误差信号e(i)与输出向量U(i)得到误差向量β0(i),β0(i)向量用来构成计算自适应滤波器系数的改变量的方程。如公式(5)所示。
β0(i)=g(i-1)+e(i)U(i)(5)
其中,g向量的初始值为零向量,其中,β0(i)表示当前i时刻的误差向量,g(i-1)表示i-1时刻的剩余误差向量。
值得指出的是,步骤201构成了矩阵R,步骤202至步骤204构成了向量β0(i)。
步骤205,通过前面构成的矩阵R和向量β0(i),计算出自适应滤波器系数的改变量Δh(i),如公式(6)所示。
R(i)Δh(i)=β0(i)(6)
步骤206,当使用简化算法计算该方程时,会留有误差,这一步计算下一次循环时的剩余误差向量g(i),如公式(7)所示。
g(i)=β0(i)-R(i)Δh(i)(7)
步骤207,修改滤波器h的值,即加上自适应滤波器系数的改变量Δh(i),这是整个算法的目的。如公式(8)所示。
h(i)=h(i-1)+Δh(i)(8)
上述ERLS算法中,步骤205是最关键的一步,而且第五步的算法复杂度是最高的,一般需要o(n2)级乘法和o(n2)次加法。采用DCD算法来解决ERLS算法里最复杂的一步即步骤205,从而简化算法。
图3为本发明实施例采用的二分坐标下降算法DCD的实现流程图。如图所示,DCD算法具体实现过程如下:
步骤301,初始化。
具体地,对算法中使用的数值和向量进行初始化,如公式(9)所示。
Δh=0,r=β0,α=H,q=0(9)
其中,Δh是自适应滤波器系数的改变量,β0为N×1维列向量,就是公式(6)中的右边向量β0(i),r为残留向量,H为幅度范围,α是步长,q为计算自适应滤波器系数的改变量的变化次数,它用来控制算法的复杂度。
步骤302,判断第一循环次数m是否小于第一设定值Mb。
具体地,循环系数m的取值为1、2、...、Mb,其中,Mb为自适应滤波器系数的改变量Δh的更新次数,根据实际情况设定数值,一般为4或8。另外,Mb的设置也是为了控制算法的复杂度,最多执行Mb次循环后算法结束。若第一循环次数m小于第一设定值Mb时,则到步骤303;若第一循环次数m大于或等于第一设定值Mb时,则到步骤312。
步骤303,根据所述幅度范围计算步长,即每次成功迭代后以二分之一的步长进行下一次迭代,接着执行步骤304。
具体地,计算步长如公式(10)所示。
α=α/2(10)
其中,α是步长,α的初始值为幅度范围。
步骤304,设置标记位flag为0,该标记位用来控制算法的走向,接着执行步骤305。
步骤305,判断第二循环次数n是否小于第二设定值N。
具体地,N为β0的长度,β0为N×1维列向量。若第二循环次数n小于第二设定值N时,则到步骤306;若第二循环次数n大于或等于第二设定值N时,则到步骤309。值得指出的是,这里的第二设定值N是输出向量的长度N。
步骤306,判断残留向量r的第n个元素是否大于步长的二分之一与输出信号形成的输出向量的自相关矩阵R相乘后得到的矩阵的第n行n列的的对角线元素。
具体地,残留向量r的初始值为误差向量β0。判断残留向量r的第n个元素是否大于步长的二分之一与输出信号形成的输出向量的自相关矩阵R相乘后得到的矩阵的第n行n列的的对角线元素。若是,则执行步骤307,否则,则执行步骤311。值得指出的是,残留向量r中的第n个值表示为rn,输出信号形成的输出向量的自相关矩阵R的第n行n列的值表示为Rn,n。
步骤307,计算自适应滤波器系数的改变量Δh和改变次数q 以及更新残留向量r并设置标志位为1,接着执行步骤308。
具体地,计算自适应滤波器系数的改变量Δh的第n个值的改变量Δhn和自适应滤波器系数的改变量Δh的改变次数q 以及更新残留向量r。其计算公式如公式(11-13)。
Δhn=Δhn+sign(rn)α(11)
r=r-sign(rn)×α×R(n)(12)
q=q+1,flag=1(13)
其中,R(n)为R矩阵的第n列,sign(rn)表示rn的符号函数,rn为残留向量r的第n个元素值。flag是标记位,控制循环的走向。
步骤308,判断改变次数q是否大于迭代次数设定值Nu。
具体地,Nu为迭代次数,根据实际情况设定的数值。若改变次数q大于迭代次数设定值Nu时,则执行步骤312;若改变次数q小于或等于迭代次数设定值Nu时,则执行步骤311。
步骤309,判断标记flag是否等于1,若是,则说明在这个步长α下,自适应滤波器系数的改变量Δh发生了变化,还需要修改滤波器的值,接着执行步骤304;否则,说明在这个步长α下,自适应滤波器系数的改变量Δh未发生变化,不需要修改滤波器的值,则接着执行步骤310。
步骤310,第一循环次数m加1,接着执行步骤302。
步骤311,第二循环次数n加1,接着执行步骤305。
步骤312,获得自适应滤波器系数的改变量Δh(i),DCD算法结束。
因此,在DCD-ERLS算法中,利用DCD算法来解决ERLS算法里最复杂的一步,即通过不断的迭代,不断的缩小误差,从而得到自适应滤波器系数的改变量Δh(i)近似解。其中,DCD算法在迭代过程中只使用加法,不需要乘法,使得该算法易于实现。但是幅度范围H和迭代次数Nu这两个参数选取的皆为固定值,固定参数H使近似解的误差达到H·2-Mb时,就不能够继续降低,固定Nu则增加了算法复杂度。
图4为本发明实施例的自适应控制方法的流程图。如图所示,本发明实施例具体实现为:
步骤401,计算输出信号反馈的期望信号d(i)和输出信号反馈的估计信号y(i)的误差e(i)以及根据所述误差计算误差向量β0(i)。
具体地,由ERLS算法中的步骤201中通过输出信号u(i)采样N点得到输出向量U(i),如公式(1)所示,再通过输出信号u(i)和输出向量U(i)产生输出信号形成的输出向量的自相关矩阵R,如公式(2)所示;步骤202中输出向量U(i)的转置与自适应滤波器系数h相乘得到输出信号反馈的估计信号y(i);步骤203中输出信号反馈的期望信号d(i)减去输出信号反馈的估计信号y(i)得到误差信号e(i);步骤204中通过误差信号e(i)与输出向量U(i)得到误差向量β0(i)。
步骤402,根据迭代次数以及所述误差计算并更新迭代次数,和/或根据幅度范围以及所述误差计算并更新所述幅度范围。
具体地,在DCD算法中,幅度范围H和迭代次数Nu这两个参数选取的皆为固定值。在本发明实施例中,根据误差信号e(i)来动态地确定迭代次数和幅度范围的数值。对于迭代次数和幅度范围的实现形式有3种,分别为:
a、幅度范围H为固定值,而迭代次数Nu为可变化值;
b、幅度范围H为可变化值,而迭代次数Nu为固定值;
c、幅度范围H和迭代次数Nu皆为可变化值。
当确定第一种实现形式时,则只改变迭代次数;当确定第二种实现形式时,则只改变幅度范围,当确定第三种实现形式时,则同时改变迭代次数和幅度范围。具体改变迭代次数或改变幅度范围,还是同时改变迭代次数和幅度范围,是根据实际情况来决定的。
本发明实施例中根据迭代次数和幅度范围的实现形式定义三种不同的算法,分别为VI-DCD算法、VA-DCD算法和VIA-DCD算法,其中VI代表可变迭代次数,VA代表可变幅度范围,VIA代表可变迭代次数和可变迭代范围。
下面对VI-DCD算法、VA-DCD算法和VIA-DCD算法分别作详细的描述。
a、VI-DCD算法,在该算法中幅度范围H为固定值,而迭代次数Nu为可变化值,该算法的其余步骤与DCD算法相同。其中,计算迭代次数Nu的过程如公式(14-15)所示。
p1(i)=λ1×p1(i-1)+r1×e2(i)(14)
b、VA-DCD算法,在该算法中幅度范围H为可变化值,而迭代次数Nu为固定值,该算法的其余步骤与DCD算法相同。其中,计算幅度范围H的过程如公式(17-19)所示。
p2(i)=λ2×p2(i-1)+r2×|e(i)|(16)
H(i)=2q(i)
其中,e(i)为所述误差,p2(i)初始值为0,表示不小于log2(p2(i))的最小整数,0<λ2<1,r2>0,比如λ2和r2分别取值为0.999和10-6,H(i)为所述幅度范围。
c、VIA-DCD算法,在该算法中幅度范围H和迭代次数Nu皆为可变化值。该算法的其余步骤与DCD算法相同。其中,计算迭代次数Nu和幅度范围H的过程如公式(14-18)所示。
根据上述三种算法即VI-DCD算法、VA-DCD算法和VIA-DCD算法中的其中一个算法中涉及的计算公式,计算并更新迭代次数和幅度范围。
步骤403,根据输出信号形成的输出向量的自相关矩阵、所述迭代次数以及所述幅度范围,迭代计算自适应滤波器系数的改变量。
具体地,通过输出信号u(i)采样N点得到输出向量U(i),如公式(1)所示,再通过输出信号u(i)和输出向量U(i)产生输出信号形成的输出向量的自相关矩阵R,如公式(2)所示。根据输出信号形成的输出向量的自相关矩阵R并利用VI-DCD算法、VA-DCD算法和VIA-DCD算法这三种算法都可以用来计算自适应滤波器系数的改变量,计算步骤与DCD算法的计算步骤相同,这里不再一一赘述。其中,唯一不同的就是对幅度范围H和迭代次数Nu这两个参数的取值不同,在DCD算法中这两个参数皆取固定值,在VI-DCD算法中幅度范围H为固定值而迭代次数Nu为可变化值,在VA-DCD算法中幅度范围H为可变化值而迭代次数Nu为固定值,在VIA-DCD算法中幅度范围H和迭代次数Nu皆为可变化值。该详细步骤包括DCD算法的步骤301到312。
步骤404,根据计算出的自适应滤波器系数的改变量Δh(i),更新自适应滤波器系数。
具体地,该步骤包括ERLS算法的步骤206到207,故不再详细阐述。
步骤405,输出信号u(i)经由自适应滤波器处理后,得到所述输出信号u(i)反馈的估计信号y(i)。
图5为本发明实施例一种自适应控制的方法中迭代计算自适应滤波器系数的改变量的方法流程图。如图所示,本发明实施例具体实现为:
步骤501,步长的初始值为所述幅度范围,计算并更新步长,每次计算并更新后的步长是上一次步长的二分之一,并且步长的更新次数递增1,所述步长的更新次数的初始值为0。
具体地,在计算并更新步长值之前,要对计算过程中使用的数值和向量进行初始化,如公式(9)所示。计算步长如公式(10)所示,α是步长,控制着自适应滤波器系数的改变量。其中步长的初始值为所述幅度范围,每次成功迭代后的步长值是上一次步长值的二分之一。其中,所述幅度范围为步骤402中计算出的幅度范围。
步骤502,判断步长的更新次数是否大于设定值。
具体地,为了控制上述计算过程的复杂性,尤其当所述迭代次数非常大时,上述计算过程循环的次数会非常大,甚至会无限循环下去。为了避免出现这一情况,故根据实际需要设定一数值,一般为4或8,该数值为上述计算过程循环次数的设定值。判断步长的更新次数是否大于设定值,若是,则执行步骤508,否则执行步骤503;
步骤503,残留向量的初始值为所述误差向量,从所述残留向量的第一个元素开始,依次比较所述残留向量中的元素的绝对值是否大于所述步长的二分之一与输出信号形成的输出向量的自相关矩阵相乘后得到的矩阵的对应的对角线元素,得到比较结果,若所述比较结果是大于,则执行步骤506,否则,执行步骤504;
步骤504,判断是否比较到了最后一个元素,若是则执行步骤505,否则执行步骤503;
步骤505,设置下一次比较元素为所述残留向量的第一个元素,判断是否所有所述比较结果都不是大于,若是则执行步骤501,否则执行步骤503;
步骤506,计算所述自适应滤波器系数的改变量Δh以及计算所述残留向量r,并且以计算次数递加1来更新所述计算次数,接着执行507。
具体地,计算所述自适应滤波器系数的改变量Δh如公式(11)所示,计算残留向量r如公式(12)所示,并且以计算次数递增1来更新所述计算次数如公式(13)所示,q用来计算滤波器的改变次数,在本申请实施例中q定义为计算次数。
步骤507,判断所述计算次数是否大于所述迭代次数。
具体地,所述计算次数为q,q用来计算滤波器的变化次数,所述迭代次数为步骤402中计算出的迭代次数。判断计算次数是否大于迭代次数,若是,则执行步骤508;否则,执行步骤503,若比较已达到所述残留向量的最后一个元素,则下一次比较再次从所述残留向量的第一个元素开始。
步骤508,计算结束并且获得所述自适应滤波器系数的改变量。
图6为本发明实施例一种自适应控制装置示意图。如图所述,该装置具体包括第一计算单元11、第二计算单元12、第三计算单元13、自适应滤波器系数生成单元14和第四计算单元15。
第一计算单元11用于计算输出信号反馈的期望信号和输出信号反馈的估计信号的误差以及根据所述误差计算误差向量;第二计算单元12用于根据迭代次数以及所述误差计算并更新迭代次数,和/或根据幅度范围以及所述误差计算并更新所述幅度范围;第三计算单元13用于根据迭代次数以及所述误差计算并更新迭代次数,和/或根据幅度范围以及所述误差计算并更新所述幅度范围;自适应滤波器系数生成单元14用于根据所述自适应滤波器系数的改变量,更新自适应滤波器系数;第四计算单元15用于所述输出信号经由所述自适应滤波器处理后,得到所述输出信号反馈的估计信号。
具体地,第一计算单元11中由ERLS算法中的步骤201中通过输出信号u(i)采样N点得到输出向量U(i),如公式(1)所示,再通过输出信号u(i)和输出向量U(i)产生输出信号形成的输出向量的自相关矩阵R,如公式(2)所示;步骤202中输出向量U(i)的转置与自适应滤波器系数h相乘得到输出信号反馈的估计信号y(i);步骤203中输出信号反馈的期望信号d(i)减去输出信号反馈的估计信号y(i)得到误差信号e(i);步骤204中通过误差信号e(i)与输出向量U(i)得到误差向量β0(i)。
第二计算单元12中确定迭代次数和幅度范围的实现形式包括:a、所述幅度范围为固定值,而所述迭代次数为可变化值;b、所述幅度范围为可变化值,而所述迭代次数为固定值;c、所述幅度范围和迭代次数皆为可变化值。当所述幅度范围为固定值而迭代次数为可变化值时,则所述迭代次数的计算公式如公式(14-15)所示。
当所述幅度范围为可变化值而所述迭代次数为固定值时,则所述幅度范围的计算公式如公式(16-18)所示。
当所述幅度范围和迭代次数皆为可变化值时,则所述幅度范围和迭代次数的计算公式如公式(14-18)所示:
根据上述三种算法中的其中一个算法中涉及的计算公式,计算并更新迭代次数和幅度范围的数值。
第三计算单元13中使用VI-DCD算法、VA-DCD算法和VIA-DCD算法这三种算法都可以计算自适应滤波器系数的改变量,计算步骤与DCD算法的计算步骤相同。其中,与DCD算法相比唯一不同的就是对幅度范围H和迭代次数Nu这两个参数的取值不同,在DCD算法中这两个参数皆取固定值,在VI-DCD算法中幅度范围H为固定值而迭代次数Nu为可变化值,在VA-DCD算法中幅度范围H为可变化值而迭代次数Nu为固定值,在VIA-DCD算法中幅度范围H和迭代次数Nu皆为可变化值。
图7为本发明实施例一种自适应控制装置中第三计算单元的示意图。如图所述,该第三计算单元13具体包括:第一计算子单元131、第一判断子单元132、第二判断子单元133、第二计算子单元134、第三判断子单元135和结束子单元136。
第一计算子单元131用于步长的初始值为所述幅度范围,计算并更新步长,每次计算并更新后的步长是上一次步长的二分之一,并且步长的更新次数递增1,所述步长的更新次数的初始值为0。
具体地,在计算并更新迭代的步长值之前,要对计算过程中使用的数值和向量进行初始化,如公式(9)所示。计算步长如公式(10)所示,α是步长,控制着自适应滤波器系数的改变量。其中步长的初始值为所述幅度范围,每次计算后的步长值是上一次步长值的二分之一。其中,所述幅度范围为步骤402中计算出的幅度范围。
第一判断子单元132用于判断步长的更新次数是否大于设定值。
具体地,为了控制上述计算过程的复杂性,尤其当所述迭代次数非常大时,上述计算过程循环的次数会非常大,甚至会无限循环下去。为了避免出现这一情况,故根据实际需要设定一数值,一般为4或8,该数值为上述计算过程循环次数的设定值。当步长的更新次数大于设定值,则进入结束子单元136;否则进入第二判断子单元133。
第二判断子单元133,用于残留向量的初始值为所述误差向量,从所述残留向量的第一个元素开始,依次比较所述残留向量中的元素的绝对值是否大于所述步长的二分之一与输出信号形成的输出向量的自相关矩阵相乘后得到的矩阵的对应的对角线元素,得到比较结果,若所述比较结果是大于,则进入第二计算子单元134,否则,若比较已达到所述残留向量的最后一个元素并且从所述残留向量的第一个元素至最后一个元素的所有所述比较结果均不是大于,则进入第一计算子单元131,否则,重复本步骤,进行下一次比较,若比较已达到所述残留向量的最后一个元素,则下一次比较再次从所述残留向量的第一个元素开始;
第二计算子单元134用于计算所述自适应滤波器系数的改变量Δh以及计算所述残留向量r,并且以计算次数递加1来更新所述计算次数。
具体地,计算所述自适应滤波器系数的改变量Δh如公式(11)所示,计算残留向量r如公式(12)所示,并且以计算次数递增1来更新所述计算次数如公式(13)所示,q用来计算滤波器的变化次数,在本申请实施例中q定义为计算次数。
第三判断子单元135用于判断所述计算次数是否大于所述迭代次数,若是,则进入结束子单元,否则进入第二判断子单元,进行下一次比较,若比较已达到所述残留向量的最后一个元素,则下一次比较再次从所述残留向量的第一个元素开始。
结束子单元136用于计算结束并且获得所述自适应滤波器系数的改变量。
因此,本发明公开的自适应控制方法和装置,根据误差信号计算幅度范围和迭代次数这两个参数,使得幅度范围和迭代次数这两个参数随着误差信号的变化而变化,从而自适应的调整该算法的收敛速度、稳态误差以及算法复杂度。与DCD算法相比,本发明在算法复杂度、收敛速度和稳态误差方面都优于DCD算法。另外,本发明公开的自适应控制方法和装置特别适用于低功耗和高精度的应用场景。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本发明中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种自适应控制方法,其特征在于,所述方法包括:
计算输出信号反馈的期望信号和输出信号反馈的估计信号的误差以及根据所述误差计算误差向量;
根据迭代次数以及所述误差计算并更新迭代次数,和/或根据幅度范围以及所述误差计算并更新所述幅度范围;
根据输出信号形成的输出向量的自相关矩阵、所述迭代次数以及所述幅度范围,迭代计算自适应滤波器系数的改变量;
根据所述自适应滤波器系数的改变量,更新自适应滤波器系数;
所述输出信号经由所述自适应滤波器处理后,得到所述输出信号反馈的估计信号。
4.根据权利要求1所述的自适应控制方法,其特征在于,所述根据输出向量的自相关矩阵、所述迭代次数以及所述幅度范围,迭代计算自适应滤波器系数的改变量的步骤包括:
步骤a,步长的初始值为所述幅度范围,计算并更新步长,每次计算并更新后的步长是上一次步长的二分之一,并且步长的更新次数递增1;
步骤b,判断步长的更新次数是否大于设定值,若是,则执行步骤f,否则执行步骤c;
步骤c,残留向量的初始值为所述误差向量,从所述残留向量的第一个元素开始,依次比较所述残留向量中的元素的绝对值是否大于所述步长的二分之一与输出向量的自相关矩阵相乘后得到的矩阵的对应的对角线元素,得到比较结果,若所述比较结果是大于,则执行步骤d,否则,若比较已达到所述残留向量的最后一个元素并且从所述残留向量的第一个元素至最后一个元素的所有所述比较结果均不是大于,则执行步骤a,否则,重复本步骤,进行下一次比较,若比较已达到所述残留向量的最后一个元素,则下一次比较再次从所述残留向量的第一个元素开始;
步骤d,计算所述自适应滤波器系数的改变量以及计算并更新所述残留向量,并且以计算次数递加1来更新所述计算次数;
步骤e,判断所述计算次数是否大于所述迭代次数,若是,则执行步骤f,否则执行步骤c,进行下一次比较,若比较已达到所述残留向量的最后一个元素,则下一次比较再次从所述残留向量的第一个元素开始;
步骤f,计算结束并得到所述自适应滤波器系数的改变量。
5.一种自适应控制装置,其特征在于,所述装置包括:
第一计算单元,用于计算输出信号反馈的期望信号和输出信号反馈的估计信号的误差以及根据所述误差计算误差向量;
第二计算单元,用于根据迭代次数以及所述误差计算并更新迭代次数,和/或根据幅度范围以及所述误差计算并更新所述幅度范围;
第三计算单元,用于根据输出信号形成的输出向量的自相关矩阵、所述迭代次数以及所述幅度范围,迭代计算自适应滤波器系数的改变量;
自适应滤波器系数生成单元,用于根据所述自适应滤波器系数的改变量,更新自适应滤波器系数;
第四计算单元,用于所述输出信号经由所述自适应滤波器处理后,得到所述输出信号反馈的估计信号。
8.根据权利要求5所述的自适应控制装置,其特征在于,所述第三计算单元包括:
第一计算子单元,用于步长的初始值为所述幅度范围,计算并更新步长,每次计算并更新后的步长是上一次步长的二分之一,并且步长的更新次数递增1;
第一判断子单元,判断步长的更新次数是否大于设定值,若是,则进入结束子单元,否则进入第二判断子单元;
第二判断子单元,用于残留向量的初始值为所述误差向量,从所述残留向量的第一个元素开始,依次比较所述残留向量中的元素的绝对值是否大于所述步长的二分之一与输出信号形成的输出向量的自相关矩阵相乘后得到的矩阵的对应的对角线元素,得到比较结果,若所述比较结果是大于,则进入第二计算子单元,否则,若比较已达到所述残留向量的最后一个元素并且从所述残留向量的第一个元素至最后一个元素的所有所述比较结果均不是大于,则进入第一计算子单元,否则,重复本步骤,进行下一次比较,若比较已达到所述残留向量的最后一个元素,则下一次比较再次从所述残留向量的第一个元素开始;
第二计算子单元,用于计算所述自适应滤波器系数的改变量以及计算并更新所述残留向量,并且以计算次数递加1来更新所述计算次数;
第三判断子单元,用于判断所述计算次数是否大于所述迭代次数,若是,则进入结束子单元,否则进入第二判断子单元,进行下一次比较,若比较已达到所述残留向量的最后一个元素,则下一次比较再次从所述残留向量的第一个元素开始;
结束子单元,用于计算结束并得到所述自适应滤波器系数的改变量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210097834XA CN102629105A (zh) | 2012-04-05 | 2012-04-05 | 一种自适应控制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210097834XA CN102629105A (zh) | 2012-04-05 | 2012-04-05 | 一种自适应控制方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102629105A true CN102629105A (zh) | 2012-08-08 |
Family
ID=46587372
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210097834XA Pending CN102629105A (zh) | 2012-04-05 | 2012-04-05 | 一种自适应控制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102629105A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014047854A1 (zh) * | 2012-09-27 | 2014-04-03 | 华为技术有限公司 | 基于误差子带的自适应滤波方法及系统 |
WO2015139631A1 (en) * | 2014-03-20 | 2015-09-24 | Huawei Technologies Co., Ltd. | System and method for adaptive filter |
CN103900682B (zh) * | 2012-12-26 | 2016-02-03 | 中国科学院声学研究所 | 一种时频联合式信号起伏对齐检测方法及系统 |
WO2016131178A1 (zh) * | 2015-02-16 | 2016-08-25 | 华为技术有限公司 | 处理信号的方法和装置 |
CN106549746A (zh) * | 2015-09-22 | 2017-03-29 | 英特尔公司 | 用于全双工无线系统的rls‑dcd适应硬件加速器 |
CN108155920A (zh) * | 2017-12-27 | 2018-06-12 | 长春长光精密仪器集团有限公司 | 一种消除电磁干扰的方法及系统 |
CN109274308A (zh) * | 2018-08-13 | 2019-01-25 | 瑞声科技(新加坡)有限公司 | 马达参数控制系统及马达参数控制方法 |
-
2012
- 2012-04-05 CN CN201210097834XA patent/CN102629105A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014047854A1 (zh) * | 2012-09-27 | 2014-04-03 | 华为技术有限公司 | 基于误差子带的自适应滤波方法及系统 |
US9419826B2 (en) | 2012-09-27 | 2016-08-16 | Huawei Technologies Co., Ltd. | Adaptive filtering method and system based on error sub-band |
CN103900682B (zh) * | 2012-12-26 | 2016-02-03 | 中国科学院声学研究所 | 一种时频联合式信号起伏对齐检测方法及系统 |
WO2015139631A1 (en) * | 2014-03-20 | 2015-09-24 | Huawei Technologies Co., Ltd. | System and method for adaptive filter |
US9679260B2 (en) | 2014-03-20 | 2017-06-13 | Huawei Technologies Co., Ltd. | System and method for adaptive filter |
WO2016131178A1 (zh) * | 2015-02-16 | 2016-08-25 | 华为技术有限公司 | 处理信号的方法和装置 |
CN106549746A (zh) * | 2015-09-22 | 2017-03-29 | 英特尔公司 | 用于全双工无线系统的rls‑dcd适应硬件加速器 |
CN106549746B (zh) * | 2015-09-22 | 2019-12-20 | 英特尔公司 | 用于全双工无线系统的rls-dcd适应硬件加速器 |
CN108155920A (zh) * | 2017-12-27 | 2018-06-12 | 长春长光精密仪器集团有限公司 | 一种消除电磁干扰的方法及系统 |
CN109274308A (zh) * | 2018-08-13 | 2019-01-25 | 瑞声科技(新加坡)有限公司 | 马达参数控制系统及马达参数控制方法 |
CN109274308B (zh) * | 2018-08-13 | 2022-06-14 | 瑞声科技(新加坡)有限公司 | 马达参数控制系统及马达参数控制方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102629105A (zh) | 一种自适应控制方法和装置 | |
CN108132599B (zh) | 一种基于迭代反馈整定的ude控制系统设计方法 | |
CN111308896B (zh) | 基于可变误差的非线性系统自适应最优控制方法 | |
CN110083063B (zh) | 一种基于非策略q学习的多个体优化控制方法 | |
CN103324093B (zh) | 一种多模型自适应控制系统及其控制方法 | |
Beyhan et al. | Stable modeling based control methods using a new RBF network | |
KR20170023098A (ko) | 타겟 시스템 제어 | |
WO2018227820A1 (zh) | 控制机械臂运动的方法及装置、存储介质和终端设备 | |
CN116610025A (zh) | 一种基于改进元启发式算法的pid控制器优化方法 | |
CN115755581A (zh) | 一种pid控制器的控制方法 | |
CN114742231A (zh) | 基于帕累托优化的多目标强化学习方法和装置 | |
Marusak | A numerically efficient fuzzy MPC algorithm with fast generation of the control signal | |
Srivignesh et al. | Design of neural based PID controller for nonlinear process | |
JP5581528B1 (ja) | 制御パラメータ決定装置、方法、及びプログラム、並びに、制御器及び最適化制御システム | |
CN111240201B (zh) | 一种扰动抑制控制方法 | |
CN116880191A (zh) | 一种基于时序预测的过程工业生产系统的智能控制方法 | |
CN111798060A (zh) | 一种基于机组爬坡率估计的功率指令优化分配方法 | |
Anuradha et al. | Direct inverse neural network control of a continuous stirred tank reactor (CSTR) | |
JP3868358B2 (ja) | 物理系の制御方法および装置ならびに物理系の制御のためのコンピュータプログラム | |
Bukovsky et al. | Laboratory systems control with adaptively tuned higher order neural units | |
CN114859725A (zh) | 一种非线性系统自适应事件触发控制方法及系统 | |
CN111221250B (zh) | 一种具有参数不确定性和多个外部扰动的非线性系统及其设计方法 | |
Ma et al. | Detection meeting control: Unstable steady states in high-dimensional nonlinear dynamical systems | |
Wu et al. | Receding horizon iterative learning control for continuously operated systems | |
CN115390560B (zh) | 一种基于混合网格多模型的地面目标轨迹跟踪方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120808 |