MPC中常用到的非线性模型

考虑到理论模型太复杂或难以获得解析表达式,一些非理论模型可以高精度逼近真实系统,已经应用于非线性系统的MPC,如Volterra,NARMAX模型,维纳模型,Hammerstein模型等。本文选取几种做简单介绍:

  1. Volterra模型
    Volterra模型属于非理论性模型的一种,可以较为精确的描述非线性系统的动态特性。对于单数入单输出的离散非线性系统,二阶Volterra模型的一般形式可表述如下:
    y(k)=i=1Mh1(i)u(ki)+i=1Mj=1Mh2(i,j)u(ki)u(kj) y ( k ) = ∑ i = 1 M h 1 ( i ) u ( k − i ) + ∑ i = 1 M ∑ j = 1 M h 2 ( i , j ) u ( k − i ) u ( k − j )

    其中 yk y k uk u k 分别是模型的输出和输入, h1(i) h 1 ( i ) h2(i,j) h 2 ( i , j ) 分别是系统的一阶、二阶Volterra时域核。
  2. Wiener模型
    Wiener模型描述了这样一类非线性系统:在不同工作点上,系统的静态非线性增益相差很大,而系统的动态特性很接近。它由动态线性部分和静态非线性部分组成.
    线性部分:
    A(q1)x(t)=B(q1)u(t) A ( q − 1 ) x ( t ) = B ( q − 1 ) u ( t )

    非线性部分:
    y(t)=f(x(t)) y ( t ) = f ( x ( t ) )

    式中: A(q1)=1+a1q1+a2q2+...+anaqna A ( q − 1 ) = 1 + a 1 q − 1 + a 2 q − 2 + . . . + a n a q − n a B(q1)=1+b1q1+b2q2+...+bnbqnb B ( q − 1 ) = 1 + b 1 q − 1 + b 2 q − 2 + . . . + b n b q − n b ; u(t) u ( t ) 为模型输入; x(t) x ( t ) 为中间变量; y(t) y ( t ) 为模型输出; f() f ( · ) 为非线性增益。
    wiener模型的结构如下:
    —u—> | Linear Model | —x—> | Nonlinear Model | —y—>
    置换一下非线性模型和线性模型的位置,及为Hammerstein模型的结构。
  3. 非线性自回归滑动平均(NARMAX)模型
    NARMAX模型表示输入输出之间的非线性函数关系,该函数是一个非线性差分方程,如下式所示:
    y(k)=FNt(y(k1),...,y(kny),u(k1),...,u(knu),e(k1),...,e(kne))+e(k) y ( k ) = F N t ( y ( k − 1 ) , . . . , y ( k − n y ) , u ( k − 1 ) , . . . , u ( k − n u ) , e ( k − 1 ) , . . . , e ( k − n e ) ) + e ( k )

    其中, ny n y , nu n u , ne n e 分别是时刻 k k 时,系统输出、输入与噪声想的最大延迟数, u(k) u ( k ) , y(k) y ( k ) 分别是系统的输入与输出, FNt[] F N t [ · ] 是一个非线性函数。

(有时间随时更新)

你可能感兴趣的:(控制算法,建模)