反步控制学习笔记1——反步控制基础内容及简单实现

一、必要知识补充

李雅普诺夫第二法

1.标量函数的定号性

2.稳定性原理

 

 二、反步法介绍

1.反步法基本原理

反步法的核心观点是先分析简单的系统,从第一个方程开始一个个加入新的方程,从而倒推回原来的系统。

具体来说:反演(Backstepping)设计方法,又称反步法回推法后推法,通常与Lyapunov型自适应律结合使用,综合考虑控制律和自适应律,使整个闭环系统满足期望的动态与静态性能指标。

基本思想是将复杂的非线性系统分解成不超过系统阶数的子系统,然后为每个子系统分别设计Lyapunov 函数和中间虚拟控制量,一直“后退”到整个系统,直到完成整个控制器的设计。

2.反步控制理论设计过程

  • 推导要用到的判据:李雅普诺夫第二法中的主判据:若存在连续可导的标量函数Vx ,且Vx 正定,Vx 负定,则x 在原点处渐进稳定。

N阶单输入单输出系统:

    

说明:  ,……, 是状态量 , 输入为  ,输出为  , 另外 ,……, 为虚拟输入量 ,同时也是对状态量的期望值。

设跟踪误差为: ,……,

                                                                        

                                                              

将系统分为n阶子系统,依次定义n个李雅普诺夫函数:

 

然后依次从上到下设计反步控制,设计过程中需保证 ,即可保证系统稳定。

 

 三、反步推导及仿真实例

1.反步控制率推导

 

 2.仿真实验

控制框图

得到如下轨迹跟踪和轨迹跟踪误差图 

 

 

仿真结果验证了本设计的反步控制的有效性。

学习反步控制已有一年,有了一些自己的感悟,和大家分享一些,欢迎交流。

后续会更新一些反步控制改进、反步控制调参相关论文。 

  • 9
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
反演控制方法与实现 《反演控制方法与实现》系统地介绍了反演控制方法的基本原理及其在不确定非线性系统中的应用。《反演控制方法与实现》共分为6章,在介绍反演法的一般理论的基础上,重点论述了抑制参数漂移的自适应反演方法,考虑非线性干扰观测器的弱抖振滑模反演方法,针对系统模型部分未知的情况,使用模糊系统和神经网络估计系统中的未知部分,给出了基于智能系统的反演设计方法,同时本书介绍了系统状态未知情况下的反演设计方法。针对各种情况本书均给出了详细的理论设计方法和Matlab仿真。   《反演控制方法与实现》是作者在从事控制理论与控制方法研究的基础上完成的。本书适用于从事非线性控制方法研究的工作人员和研究生参考。 前言 第1章 绪论 1·1 研究的背景及意义 1·2 李雅普诺夫稳定性理论 1·2·1 李雅普诺夫意义下的稳定性 1·2·2 有界性 1·2·3 李雅普诺夫稳定性理论 1·3 微分几何理论基础 1·3·1 李导数和李括号 1·3·2 微分同胚 1·3·3 控制系统的相对阶 1·3·4 输入状态线性化 1·3·5 状态反馈线性化的设计 1·4 反演法的基本原理 1·5 反演法的研究概况 1·5·1 自适应反演控制 1·5·2 鲁棒自适应反演控制 1·5·3 滑模反演控制 1·5·4 智能反演控制 1·5·5 其他反演控制方法 1·6 本书的主要研究内容 第2章 自适应反演控制方法 2·1 引言 2·2 常规自适应反演法 2·2·1 自适应反演法设计思路 2·2·2 仿真算例 2·3 抑制参数漂移的自适应反演控制 2·3·1 问题描述及预备知识 2·3·2 抑制参数漂移的自适应反演控制器设计 2·3·3 系统稳定性分析 2·3·4 仿真算例 2·4 扩展的自适应反演控制 2·4·1 问题描述 2·4·2 参数自适应律的设计 2·4·3 基于动态面的扩展反演控制器设计 2·4·4 稳定性分析 2·4·5 仿真算例 2·5 仿真算例的Matlab实现 2·5·1 节仿真算例的Matlab实现 2·5·2 节仿真算例的Matlab实现 2·5·3 节仿真算例的Matlab实现 2·6 本章 小结 第3章 不确定非线性系统的弱抖振滑模反演控制 3·1 引言 3·2 滑模控制基本原理 3·3 匹配不确定非线性系统的弱抖振滑模反演控制 3·3·1 问题描述 3·3·2 滑模反演控制器设计 3·3·3 滑模反演控制稳定性分析 3·3·4 自适应滑模反演控制器设计 3·3·5 自适应滑模反演控制稳定性分析 3·3·6 非线性干扰观测器 3·3·7 匹配不确定非线性系统的弱抖振滑模反演控制 3·3·8 仿真算例 3·4 非匹配不确定非线性系统的多滑模反演控制 3·4·1 问题描述 3·4·2 多滑模反演控制 3·4·3 基于非线性干扰观测器的多滑模反演控制 3·4·4 系统稳定性分析 3·4·5 仿真算例 3·5 仿真算例的Matlab实现 3·5·1 节弱抖振滑模反演控制Matlab实现 3·5·2 节自适应弱抖振滑模反演控制Matlab实现 3·5·3 节多滑模反演控制Matlab实现 3·6 本章 小结 第4章 基于模糊系统的非线性系统反演控制 4·1 引言 4·2 基于模糊系统的非线性系统控制 4·2·1 问题的提出 4·2·2 模糊系统描述 4·2·3 控制器设计 4·2·4 仿真算例 4·3 节Matlab实现 4·4 本章 小结 第5章 基于神经网络的非线性系统反演控制 5·1 引言 5·2 非线性系统的鲁棒小波神经网络控制 5·2·1 问题的提出 5·2·2 小波神经网络结构 5·2·3 控制器的设计 5·2·4 稳定性分析 5·2·5 仿真 5·3 不确定非线性系统的鲁棒自适应渐近跟踪控制 5·3·1 控制目标 5·3·2 控制器设计 5·3·3 仿真算例 5·4 算例的Matlab实现 5·4·1 节算例的Matlab实现 5·4·2 节算例1的Matlab实现 5·4·3 节算例2的Matlab实现 5·5 本章 小结 第6章 基于状态观测器的反演控制器设计 6·1 滑模观测器控制器设计 6·1·1 滑模观测器设计 6·1·2 滑模反演控制器设计 6·2 仿真算例 6·3 节仿真实例的Matlab实现 6·4 本章 小结 参考文献
反步法(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 ``` 上述代码中,我们首先定义了神经网络的结构和参数,包括输入层大小、隐含层大小、输出层大小和学习率。然后,我们初始化了权重和偏置。接下来,使用反步法算法进行训练,其中包括前向传播和反向传播两个步骤。在前向传播中,我们计算了神经网络的输出。在反向传播中,我们计算了损失函数对各个参数的梯度,并使用梯度下降法来更新参数。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值