反步法Backstepping的数学本质

本文建议有一定反步法知识的同学阅读,欢迎参考笔者另一篇详细介绍反步法Backstepping的文章Backstepping反步法控制四旋翼无人机(2)

1. 反步法Backstepping简介

假设有一个二阶非线性时变系统
{ x ˙ 1 = x 2 x ˙ 2 = f ( t , x 1 , x 2 ) + g ( t ) u y = x 1 (1) \begin{cases} \begin{aligned} \dot{x}_1 &= x_2 \\ \dot{x}_2 &= f(t, x_1, x_2)+ g(t) u \\ y &= x_1 \end{aligned} \tag{1} \end{cases} x˙1x˙2y=x2=f(t,x1,x2)+g(t)u=x1(1)其中 f ( t , x 1 , x 2 ) , g ( t ) f(t, x_1, x_2), g(t) f(t,x1,x2),g(t)均为非线性时变函数,状态 x 1 x_1 x1为输出状态。

设期望的状态为 x 1 d x_{1d} x1d,则可以写出期望状态与实际状态的误差
e 1 = x 1 d − x 1 e_1 = x_{1d}- x_1 e1=x1dx1根据李雅普诺夫稳定性理论,可以设计李雅普诺夫函数 V 1 = 1 2 e 1 2 V_1 = \frac{1}{2}e_1^2 V1=21e12,则其导数为
V ˙ 1 = e 1 e ˙ 1 = e 1 ( x ˙ 1 d − x ˙ 1 ) = e 1 ( x ˙ 1 d − x 2 ) \dot{V}_1 = e_1 \dot{e}_1 = e_1 \left( \dot{x}_{1d} - \dot{x}_1 \right) = e_1 \left( \dot{x}_{1d} - x_2 \right) V˙1=e1e˙1=e1(x˙1dx˙1)=e1(x˙1dx2)若存在理想状态量 x 2 v x_{2v} x2v,满足
x 2 v = x ˙ 1 d + α 1 e 1 x_{2v} = \dot{x}_{1d} + \alpha_1 e_1 x2v=x˙1d+α1e1则李雅普诺夫函数导数即有
V ˙ 1 = e 1 ( x ˙ 1 d − x 2 v ) = e 1 ( x ˙ 1 d − x ˙ 1 d − α 1 e 1 ) = − α 1 e 1 2 ≤ 0 \begin{aligned} \dot{V}_1 &= e_1 \left( \dot{x}_{1d} - x_{2v} \right) \\ &= e_1 \left( \dot{x}_{1d} - \dot{x}_{1d} - \alpha_1 e_1 \right) \\ &= -\alpha_1 e_1^2 \leq 0 \end{aligned} V˙1=e1(x˙1dx2v)=e1(x˙1dx˙1dα1e1)=α1e120然而,实际情况下 x 2 ≠ x 2 v x_2 \neq x_{2v} x2=x2v。由此需要引入新的误差 e 2 = x 2 − x 2 v e_2 = x_2 - x_{2v} e2=x2x2v,并修改李雅普诺夫函数:
V 2 = 1 2 e 1 2 + 1 2 e 2 2 V_2 = \frac{1}{2} e_1^2 + \frac{1}{2} e_2^2 V2=21e12+21e22容易观察出:
e 2 = x 2 − x 2 v = x 2 − x ˙ 1 d − α 1 e 1 ⟹ x ˙ 1 d − x 2 = − e 2 − α 1 e 1 e_2 = x_2 - x_{2v} = x_2 - \dot{x}_{1d} - \alpha_1 e_1 \\ \Longrightarrow \dot{x}_{1d} - x_2 = -e_2 - \alpha_1 e_1 e2=x2x2v=x2x˙1dα1e1x˙1dx2=e2α1e1接下来对新的李雅普诺夫函数求导:
V ˙ 2 = e 1 e ˙ 1 + e 2 e ˙ 2 = e 1 ( x ˙ 1 d − x 2 ) + e 2 ( x ˙ 2 − x ¨ 1 d − α 1 e ˙ 1 ) = − e 1 ( e 2 + α 1 e 1 ) + e 2 [ f ( t , x 1 , x 2 ) + g ( t ) u − x ¨ 1 d − α 1 ( x ˙ 1 d − x 2 ) ] = − e 1 ( e 2 + α 1 e 1 ) + e 2 [ f ( t , x 1 , x 2 ) + g ( t ) u − x ¨ 1 d + α 1 ( e 2 + α 1 e 1 ) ] \begin{aligned} \dot{V}_2 &= e_1 \dot{e}_1 + e_2 \dot{e}_2 \\&= e_1 \left( \dot{x}_{1d} - x_2 \right) + e_2 \left( \dot{x}_2 - \ddot{x}_{1d} - \alpha_1 \dot{e}_1 \right) \\ &= - e_1 \left( e_2 + \alpha_1 e_1 \right) + e_2 \left[ f(t, x_1, x_2)+ g(t) u - \ddot{x}_{1d} - \alpha_1 \left( \dot{x}_{1d} - x_2 \right) \right] \\ &= - e_1 \left( e_2 + \alpha_1 e_1 \right) + e_2 \left[ f(t, x_1, x_2)+ g(t) u - \ddot{x}_{1d} + \alpha_1 \left( e_2 + \alpha_1 e_1 \right) \right] \end{aligned} V˙2=e1e˙1+e2e˙2=e1(x˙1dx2)+e2(x˙2x¨1dα1e˙1)=e1(e2+α1e1)+e2[f(t,x1,x2)+g(t)ux¨1dα1(x˙1dx2)]=e1(e2+α1e1)+e2[f(t,x1,x2)+g(t)ux¨1d+α1(e2+α1e1)]此时只要设计 u u u
u = 1 g ( t ) [ − f ( t , x 1 , x 2 ) + x ¨ 1 d − α 1 ( e 2 + α 1 e 1 ) + e 1 − α 2 e 2 ] (2) u = \frac{1}{g(t)} \left[ -f(t, x_1, x_2) + \ddot{x}_{1d} - \alpha_1 \left( e_2 + \alpha_1 e_1 \right) + e_1 - \alpha_2 e_2 \right] \tag{2} u=g(t)1[f(t,x1,x2)+x¨1dα1(e2+α1e1)+e1α2e2](2)即可,代回上式可得到此时李雅普诺夫函数的导数为
V ˙ 2 = − α 1 e 1 2 − α 2 e 2 2 ≤ 0 \dot{V}_2 = -\alpha_1 e_1^2 - \alpha_2 e_2^2 \leq 0 V˙2=α1e12α2e220系统即稳定。

2. 反步法的数学本质

把得到的控制量式(2)带回到原系统(1)中:
{ x ˙ 1 = x 2 x ˙ 2 = f ( t , x 1 , x 2 ) + g ( t ) u y = x 1 \begin{cases} \begin{aligned} \dot{x}_1 &= x_2 \\ \dot{x}_2 &= f(t, x_1, x_2)+ g(t) u \\ y &= x_1 \end{aligned} \end{cases} x˙1x˙2y=x2=f(t,x1,x2)+g(t)u=x1
x ˙ 2 = x ¨ 1 = f ( t , x 1 , x 2 ) + g ( t ) u = f ( t , x 1 , x 2 ) + g ( t ) ⋅ 1 g ( t ) [ − f ( t , x 1 , x 2 ) + x ¨ 1 d − α 1 ( e 2 + α 1 e 1 ) + e 1 − α 2 e 2 ] = x ¨ 1 d − α 1 ( e 2 + α 1 e 1 ) + e 1 − α 2 e 2 \begin{aligned} \dot{x}_2 &= \ddot{x}_1 = f(t, x_1, x_2)+ g(t) u \\ &= f(t, x_1, x_2)+ g(t) \cdot \frac{1}{g(t)} \left[ -f(t, x_1, x_2) + \ddot{x}_{1d} - \alpha_1 \left( e_2 + \alpha_1 e_1 \right) + e_1 - \alpha_2 e_2 \right] \\ &= \ddot{x}_{1d} - \alpha_1 \left( e_2 + \alpha_1 e_1 \right) + e_1 - \alpha_2 e_2 \end{aligned} x˙2=x¨1=f(t,x1,x2)+g(t)u=f(t,x1,x2)+g(t)g(t)1[f(t,x1,x2)+x¨1dα1(e2+α1e1)+e1α2e2]=x¨1dα1(e2+α1e1)+e1α2e2代入 e 1 , e 2 e_1, e_2 e1,e2表达式:
x ˙ 2 = x ¨ 1 = x ¨ 1 d − α 1 [ ( x 2 − x ˙ 1 d − α 1 e 1 ) + α 1 e 1 ] + e 1 − α 2 ( x 2 − x ˙ 1 d − α 1 e 1 ) = x ¨ 1 d − α 1 ( x 2 − x ˙ 1 d ) + e 1 − α 2 ( x 2 − x ˙ 1 d − α 1 e 1 ) = x ¨ 1 d − α 1 ( x ˙ 1 − x ˙ 1 d ) + e 1 − α 2 ( x ˙ 1 − x ˙ 1 d − α 1 e 1 ) = x ¨ 1 d + α 1 e ˙ 1 + e 1 − α 2 ( − e ˙ 1 − α 1 e 1 ) = x ¨ 1 d + α 1 e ˙ 1 + e 1 + α 2 e ˙ 1 + α 1 α 2 e 1 (3) \begin{aligned} \dot{x}_2 = \ddot{x}_1 &= \ddot{x}_{1d} - \alpha_1 \left[ \left( x_2 - \dot{x}_{1d} - \alpha_1 e_1 \right) + \alpha_1 e_1 \right] + e_1 - \alpha_2 \left( x_2 - \dot{x}_{1d} - \alpha_1 e_1 \right) \\ &= \ddot{x}_{1d} - \alpha_1 \left( x_2 - \dot{x}_{1d} \right) + e_1 - \alpha_2 \left( x_2 - \dot{x}_{1d} - \alpha_1 e_1 \right) \\ &= \ddot{x}_{1d} - \alpha_1 \left( \dot{x}_1 - \dot{x}_{1d} \right) + e_1 - \alpha_2 \left( \dot{x}_1 - \dot{x}_{1d} - \alpha_1 e_1 \right) \\ &= \ddot{x}_{1d} + \alpha_1 \dot{e}_1 + e_1 - \alpha_2 \left( - \dot{e}_1 - \alpha_1 e_1 \right) \\ &= \ddot{x}_{1d} + \alpha_1 \dot{e}_1 + e_1 + \alpha_2 \dot{e}_1 + \alpha_1 \alpha_2 e_1 \end{aligned} \tag{3} x˙2=x¨1=x¨1dα1[(x2x˙1dα1e1)+α1e1]+e1α2(x2x˙1dα1e1)=x¨1dα1(x2x˙1d)+e1α2(x2x˙1dα1e1)=x¨1dα1(x˙1x˙1d)+e1α2(x˙1x˙1dα1e1)=x¨1d+α1e˙1+e1α2(e˙1α1e1)=x¨1d+α1e˙1+e1+α2e˙1+α1α2e1(3)将上式变形
x ¨ 1 − x ¨ 1 d = α 1 e ˙ 1 + e 1 + α 2 e ˙ 1 + α 1 α 2 e 1 \ddot{x}_1 - \ddot{x}_{1d} = \alpha_1 \dot{e}_1 + e_1 + \alpha_2 \dot{e}_1 + \alpha_1 \alpha_2 e_1 x¨1x¨1d=α1e˙1+e1+α2e˙1+α1α2e1
− e ¨ 1 = ( α 1 + α 2 ) e ˙ 1 + ( α 1 α 2 + 1 ) e 1 (4) -\ddot{e}_1 = \left( \alpha_1 + \alpha_2 \right) \dot{e}_1 + \left( \alpha_1 \alpha_2 + 1 \right) e_1 \tag{4} e¨1=(α1+α2)e˙1+(α1α2+1)e1(4)式(4)即为关于 x 1 x_1 x1的误差量 e 1 e_1 e1的一个微分方程。对其做拉普拉斯变换,转换到 s s s空间:
− s 2 E 1 ( s ) = ( α 1 + α 2 ) s E 1 ( s ) + ( α 1 α 2 + 1 ) E 1 ( s ) -s^2 E_1 (s) = \left( \alpha_1 + \alpha_2 \right) s E_1 (s) + \left( \alpha_1 \alpha_2 + 1 \right) E_1 (s) s2E1(s)=(α1+α2)sE1(s)+(α1α2+1)E1(s)若将其视为一个系统,则其传递函数为
W ( s ) = 1 s 2 + ( α 1 + α 2 ) s + ( α 1 α 2 + 1 ) (5) W(s) = \frac{1}{s^2 + \left( \alpha_1 + \alpha_2 \right) s + \left( \alpha_1 \alpha_2 + 1 \right)} \tag{5} W(s)=s2+(α1+α2)s+(α1α2+1)1(5)由于该传递函数是从反步法稳定后的系统得出的,若将稳定后的系统视作某个开环系统 G ( s ) G(s) G(s)的闭环系统,则很容易就能反求出该开环系统:
G ( s ) = 1 s 2 + ( α 1 + α 2 ) s + α 1 α 2 = 1 ( s + α 1 ) ( s + α 2 ) (6) G(s) = \frac{1}{s^2 + \left( \alpha_1 + \alpha_2 \right) s + \alpha_1 \alpha_2} = \frac{1}{ \left( s + \alpha_1 \right) \left( s + \alpha_2\right) } \tag{6} G(s)=s2+(α1+α2)s+α1α21=(s+α1)(s+α2)1(6)
由此可以对反步法的数学本质做出解释:

  1. 反步法本质上是向系统里引入了两个极点 s 1 = α 1 , s 2 = α 2 s_1 = \alpha_1, s_2 = \alpha_2 s1=α1,s2=α2,使得系统变成两个一阶惯性环节的串联,从而增强稳定性。
  2. 同时可以推断出的是,当系统不是二阶系统,而是三阶、n阶时,相应地式(6)必将拥有3个、n个极点。
  3. 由于极点 s 1 = α 1 , s 2 = α 2 s_1 = \alpha_1, s_2 = \alpha_2 s1=α1,s2=α2即为反步法的两个调节参数,故也可以得出结论:调节参数 α 1 , α 2 \alpha_1, \alpha_2 α1,α2可以改善系统表现,当 α 1 , α 2 \alpha_1, \alpha_2 α1,α2靠近虚轴时系统振荡变强,响应时间变长;当 α 1 , α 2 \alpha_1, \alpha_2 α1,α2增大时极点远离虚轴,系统响应时间变短,甚至无超调。
  • 12
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
反步法(Backpropagation)是一种常用的神经网络训练算法,用于计算神经网络中各个参数的梯度,并通过梯度下降法来更新参数。下面是一个简单的MATLAB代码示例,用于实现反步法算法: ```matlab % 定义神经网络结构和参数 inputSize = 2; % 输入层大小 hiddenSize = 3; % 隐含层大小 outputSize = 1; % 输出层大小 learningRate = 0.1; % 学习率 % 初始化权重和偏置 W1 = randn(hiddenSize, inputSize); % 输入层到隐含层的权重 b1 = randn(hiddenSize, 1); % 隐含层的偏置 W2 = randn(outputSize, hiddenSize); % 隐含层到输出层的权重 b2 = randn(outputSize, 1); % 输出层的偏置 % 定义反步法算法 for epoch = 1:numEpochs % 前向传播 z1 = W1 * input + b1; a1 = sigmoid(z1); z2 = W2 * a1 + b2; output = sigmoid(z2); % 计算损失函数的梯度 delta2 = (output - target) .* sigmoidGradient(z2); delta1 = (W2' * delta2) .* sigmoidGradient(z1); % 更新权重和偏置 W2 = W2 - learningRate * delta2 * a1'; b2 = b2 - learningRate * delta2; W1 = W1 - learningRate * delta1 * input'; b1 = b1 - learningRate * delta1; end ``` 上述代码中,我们首先定义了神经网络的结构和参数,包括输入层大小、隐含层大小、输出层大小和学习率。然后,我们初始化了权重和偏置。接下来,使用反步法算法进行训练,其中包括前向传播和反向传播两个步骤。在前向传播中,我们计算了神经网络的输出。在反向传播中,我们计算了损失函数对各个参数的梯度,并使用梯度下降法来更新参数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值