码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 机器人动力学与控制学习笔记(十四)————RBF网络自适应控制


    十四、基于模型整体逼近的机器人RBF网络自适应控制

    14.1  机械臂模型

            设n关节机械臂方程为:

                                 M\left (q \right )\ddot{q}+C\left ( q,\dot{q} \right )\dot{q}+G\left ( q \right )+F\left ( \dot{q} \right )+\tau _{d}=\tau                    (1)

            设计跟踪误差为:

                                                      e\left ( t \right )=q_{d}\left ( t \right )-q\left ( t \right )                                           (2)

            定义误差函数为:

                                                          r=\dot{e}+\Lambda e                                                    (3)

            其中\Lambda =\Lambda ^{T}> 0,则

    \dot{q}=-r+\dot{q}_{d}+\Lambda e

    M\dot{r}=M\left ( \ddot{q}_{d}-\ddot{q}+ \dot{e} \right )=M\left ( \ddot{q}_{d}+ \Lambda \dot{e} \right )-M\ddot{q}

                                                   =M\left ( \ddot{q}_{d}+\Lambda \dot{e} \right )-Cr+C\left ( \dot{q}_{d} +\Lambda e\right )+G+F+\tau _{d}-\tau                                                              =-Cr-\tau +f+\tau _{d}                                                     (4)

            其中f\left ( x \right )=M\left ( \ddot{q}_{d}+\Lambda \dot{e} \right )+C\left (\dot{q}_{d} +\Lambda e \right )+G+F

            实际模型中,模型不确定项f为未知,因此需要对不确定项f进行逼近。   

            采用RBF网络逼近f,根据f\left ( x \right )的表达式,网络输入取

    x=\left [ \begin{matrix} e^{T} & \dot{e}^{T} &q_{d}^{T} &\dot{q}_{d}^{T} & \ddot{q}_{d}^{T} \end{matrix} \right ]    

            设计控制律为

                                                          \tau =\widehat{f}+K_{v}r                                              (5)

            其中\widehat{f}\left ( x \right )为RBF网络对f\left ( x \right )的估计值。

    14.2  控制器设计

            采用RBF网络逼近f,则RBF神经网络的输出为:


    \widehat{f}\left ( x \right )=\widehat{W}^{T}\varphi \left ( x \right )

    设计控制律为:

    \tau =\widehat{f}\left ( x \right )+K_{v}r-v=\widehat{W}^{T}\varphi \left ( x \right )+K_{v}r-v

    其中v为用于克服神经网络逼近误差\varepsilon的鲁棒项。

    将上式控制律代入式(4)得:

    M\dot{r}=-\left ( K_{v}+C \right )r+\widetilde{W}^{T}\varphi \left ( x \right )+\left ( \epsilon +\tau_{d} \right )+v=-\left ( K_{v}+C \right )r+\xi _{1}

    其中\xi _{1}=\widetilde{W}^{T}\varphi \left ( x\right )+\left ( \varepsilon +\tau _{d} \right )+v。

    14.3  对不确定项f\left ( x \right )进行RBF网络逼近

    控制律取:

    \tau =\widehat{W}^{T}\varphi \left ( x\right )+K_{v}r-v

    鲁棒项v设计为v=-\left ( \varepsilon _{N}+b_{d} \right )sgn\left ( r \right )。

    被控对象中的f\left ( x \right )项可以写为:

    f\left ( x \right )=M\left ( q \right )\zeta _{1}\left ( t \right )+C\left ( q,\dot{q} \right )\zeta _{2}\left ( t \right )+G\left ( q \right )+F\left ( \dot{q} \right )

    其中\zeta _{1}\left ( t \right )=\ddot{q}_{d}+\Lambda \dot{e},\zeta _{2}\left ( t \right )=\dot{q}_{d}+\Lambda e

    采用RBF网络,可以对f\left ( x \right )中的各项分别进行逼近:

    \widehat{M}\left ( q\right )=W_{M}^{T}\varphi _{M}\left ( q \right )

    \widehat{C}\left ( q,\dot{q}\right )=W_{V}^{T}\varphi _{V}\left ( q,\dot{q} \right )

    \widehat{G}\left ( q\right )=W_{G}^{T}\varphi _{G}\left ( q \right )

    \widehat{F}\left ( \dot{q}\right )=W_{F}^{T}\varphi _{F}\left (\dot{ q} \right )

    则

    \widehat{f}\left ( x \right )=\begin{bmatrix} W_{M}^{T}\zeta _{1}\left ( t \right ) &W_{V}^{T}\zeta _{2}\left ( t \right ) &W_{G}^{T} & W_{F}^{T} \end{bmatrix}\begin{bmatrix} \varphi _{M}\\ \varphi _{V}\\ \varphi _{G}\\ \varphi _{F} \end{bmatrix}

    其中

    \varphi \left ( x \right )=\begin{bmatrix} \varphi _{M}\\ \varphi _{V}\\ \varphi _{G}\\ \varphi _{F} \end{bmatrix}

    W^{T}=\begin{bmatrix} W_{M}^{T}\zeta _{1}\left ( t \right ) &W_{V}^{T}\zeta _{2}\left ( t \right ) &W_{G}^{T} & W_{F}^{T} \end{bmatrix}

    14.4  Simulink仿真

    Simulink中的控制框图如下:

    仿真结果如下:       

            上图分别是关节1和2的期望轨迹和实际轨迹,从图中可以看出,在设计好RBF控制律、调节好参数后,关节1和关节2的轨迹拟合程度很好,可以达到预期。

  • 相关阅读:
    在linux中详细解释下kill命令,不同信号的含义及使用场景
    淘宝/天猫API:item_search_neighbors-邻家好货
    MSDC 4.3 接口规范(18)
    Figma 怎么切图?新手入门教程详解
    基于GFS进行威斯康星州乳腺癌(诊断)数据分析(Matlab代码实现)
    【2019】【论文笔记】基于石墨烯/TiO2/Si三层异质结的全光THz调制——
    ​力扣解法汇总1775. 通过最少操作次数使数组的和相等
    方案设计|汽车轮胎数显胎压计方案
    zabbix(三)————zabbix源码安装及部署
    企业新闻稿怎么写?教你撰写企业新闻稿
  • 原文地址:https://blog.csdn.net/weixin_38452841/article/details/109035360
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号