自適應反步控制:理論與設計

自適應反步控制

文章目錄

  • 自適應反步控制
    • 1. 基本思想
      • A. 第一步
      • B. 第二步

1. 基本思想

基于傳統反步法,考慮了系統方程中以線性形式出現的未知參數。核心思想包括參數估計率和控制率。

考慮二階系統:
{x˙1=x2+φ1T(x1)θx˙2=u+φ2T(x1,x2)θ(1)\begin{cases} \dot{x}_1 = x_2 + \varphi_1^{T}(x_1)\theta \\ \dot{x}_2 = u + \varphi_2^{T}(x_1, x_2)\theta \end{cases} \tag{1} {x˙1?=x2?+φ1T?(x1?)θx˙2?=u+φ2T?(x1?,x2?)θ?(1)

其中 θ\thetaθ 是未知的常數參數(列向量),φ1(x1)\varphi_1(x_1)φ1?(x1?)φ2(x1,x2)\varphi_2(x_1,x_2)φ2?(x1?,x2?) 為已知的非線性函數。uuu 是控制輸入,xrx_rxr?x1x_1x1? 期望跟蹤到的軌跡。


設計目標有二確保閉環系統的所有狀態保持有界;讓 x1x_1x1? 漸進跟蹤到 xrx_rxr?

假設:參考軌跡 xrx_rxr? 及其導數有界并可預測;φ1(x1)\varphi_1(x_1)φ1?(x1?)φ2(x1,x2)\varphi_2(x_1,x_2)φ2?(x1?,x2?) 是已知且連續可微的;參數不確定性是線性形式出現的。這些假設的目的是保證在設計自適應律時,Lyapunov 導函數可以被有效約束,并且更新率是可實現的。

如果參數 θ\thetaθ 已知,可以使用靜態積分分反步法設計虛擬控制率 α1\alpha_1α1?,但此處的參數 θ\thetaθ 并非已知,所以需要設計合適的 θ\thetaθ 更新規則以保證閉環穩定。


A. 第一步

定義跟蹤誤差
z1=x1?xr(2)z_1 = x_1 - x_r \tag{2} z1?=x1??xr?(2)
z2=x2?α1?x˙r(3)z_2 = x_2 - \alpha_1 - \dot{x}_r \tag{3} z2?=x2??α1??x˙r?(3)

z2z_2z2? 表示“實際 x2x_2x2? 與理想目標值 α1+x˙r\alpha_1 + \dot{x}_rα1?+x˙r? 之間的偏差”。

對(2)求導數,并將(1)、(3)帶入:
z˙1=x˙1?x˙r=x2+φ1T(x1)θ?x2+z2+α1=z2+α1+φ1Tθ(4)\dot{z}_1 = \dot{x}_1 - \dot{x}_r = x_2 + \varphi_1^{T}(x_1)\theta - x_2 + z_2 + \alpha_1 = z_2 + \alpha_1 + \varphi_1^{T}\theta \tag{4} z˙1?=x˙1??x˙r?=x2?+φ1T?(x1?)θ?x2?+z2?+α1?=z2?+α1?+φ1T?θ(4)

其中 θ\thetaθ 是未知的,不能直接使用已知參數的反步法。設計 θ^1\hat{\theta}_1θ^1? 用以近似 θ\thetaθ;同時設計一個參數更新率來在線調整 θ^1\hat{\theta}_1θ^1?

設計 Lyapunov 候選函數:
V1=12z12+12θ~1TΓ?1θ~1(5)V_1 = \frac{1}{2} z_1^2 + \frac{1}{2} \tilde{\theta}_1^{T} \Gamma^{-1} \tilde{\theta}_1 \tag{5} V1?=21?z12?+21?θ~1T?Γ?1θ~1?(5)
其中 Γ>0\Gamma > 0Γ>0 是參數更新率的自適應增益矩陣,θ~1=θ?θ^1\tilde{\theta}_1 = \theta - \hat{\theta}_1θ~1?=θ?θ^1? 表示參數估計誤差。

對其求導:
V˙1=z1z˙1+θ~1TΓ?1θ~˙1(6)\dot{V}_1 = z_1 \dot{z}_1 + \tilde{\theta}_1^{T} \Gamma^{-1} \dot{\tilde{\theta}}_1 \tag{6} V˙1?=z1?z˙1?+θ~1T?Γ?1θ~˙1?(6)

將(4)帶入:
V˙1=z1(z2+α1+φ1Tθ)+θ~1TΓ?1θ~˙1(7)\dot{V}_1 = z_1(z_2 + \alpha_1 + \varphi_1^{T}\theta) + \tilde{\theta}_1^{T} \Gamma^{-1} \dot{\tilde{\theta}}_1 \tag{7} V˙1?=z1?(z2?+α1?+φ1T?θ)+θ~1T?Γ?1θ~˙1?(7)

展開:
V˙1=z1z2+z1α1+z1φ1Tθ^1+z1φ1Tθ~1?θ~1TΓ?1θ^˙1(8)\dot{V}_1 = z_1 z_2 + z_1 \alpha_1 + z_1 \varphi_1^{T} \hat{\theta}_1 + z_1 \varphi_1^{T} \tilde{\theta}_1 - \tilde{\theta}_1^{T} \Gamma^{-1} \dot{\hat{\theta}}_1 \tag{8} V˙1?=z1?z2?+z1?α1?+z1?φ1T?θ^1?+z1?φ1T?θ~1??θ~1T?Γ?1θ^˙1?(8)

由于 φ1Tθ~=θ~1Tφ1\varphi_1^{T}\tilde{\theta} = \tilde{\theta}_1^{T}\varphi_1φ1T?θ~=θ~1T?φ1?,可得:
V˙1=z1z2+z1α1+z1φ1Tθ^1+θ~1T(φ1z1?Γ?1θ^˙1)(9)\dot{V}_1 = z_1 z_2 + z_1 \alpha_1 + z_1 \varphi_1^{T} \hat{\theta}_1 + \tilde{\theta}_1^{T}(\varphi_1 z_1 - \Gamma^{-1} \dot{\hat{\theta}}_1) \tag{9} V˙1?=z1?z2?+z1?α1?+z1?φ1T?θ^1?+θ~1T?(φ1?z1??Γ?1θ^˙1?)(9)

定義虛擬控制 α1\alpha_1α1? 和參數更新率:
α1=?c1z1?φ1Tθ^1\alpha_1 = -c_1 z_1 - \varphi_1^{T} \hat{\theta}_1 α1?=?c1?z1??φ1T?θ^1?
θ^˙1=Γφ1z1(10)\dot{\hat{\theta}}_1 = \Gamma \varphi_1 z_1 \tag{10} θ^˙1?=Γφ1?z1?(10)

帶入可得:
V˙1=?c1z12+z1z2(11)\dot{V}_1 = -c_1 z_1^2 + z_1 z_2 \tag{11} V˙1?=?c1?z12?+z1?z2?(11)


B. 第二步

設計實際控制輸入 uuu,使 z2→0z_2 \to 0z2?0

由(3)可得:
z˙2=x˙2?α˙1?x¨r(12)\dot{z}_2 = \dot{x}_2 - \dot{\alpha}_1 - \ddot{x}_r \tag{12} z˙2?=x˙2??α˙1??x¨r?(12)

注意 α1\alpha_1α1? 實際上是 x1x_1x1?θ^1\hat{\theta}_1θ^1?xrx_rxr? 的函數,故采用復合函數求導方式。


選取新的 Lyapunov 函數:
V2=V1+12z22(14)V_2 = V_1 + \frac{1}{2} z_2^2 \tag{14} V2?=V1?+21?z22?(14)

求導:
V˙2=?c1z12+z2(z1+z˙2)(15)\dot{V}_2 = -c_1 z_1^2 + z_2(z_1 + \dot{z}_2) \tag{15} V˙2?=?c1?z12?+z2?(z1?+z˙2?)(15)

為消除未知參數項 θ\thetaθ,設計:
u=?z1?c2z2+?α1?x1x2?(φ2??α1?x1φ1)Tθ^2+?α1?θ^1Γφ1z1+?α1?xrx˙r+x¨r(18)u = -z_1 - c_2 z_2 + \frac{\partial \alpha_1}{\partial x_1} x_2 - \left( \varphi_2 - \frac{\partial \alpha_1}{\partial x_1} \varphi_1 \right)^T \hat{\theta}_2+ \frac{\partial \alpha_1}{\partial \hat{\theta}_1} \Gamma \varphi_1 z_1 + \frac{\partial \alpha_1}{\partial x_r} \dot{x}_r + \ddot{x}_r \tag{18} u=?z1??c2?z2?+?x1??α1??x2??(φ2???x1??α1??φ1?)Tθ^2?+?θ^1??α1??Γφ1?z1?+?xr??α1??x˙r?+x¨r?(18)

此時(13)變為:
z˙2=?z1?c2z2+(φ2??α1?x1φ1)T(θ?θ^2)(19)\dot{z}_2 = -z_1 - c_2 z_2 + \left( \varphi_2 - \frac{\partial \alpha_1}{\partial x_1} \varphi_1 \right)^T (\theta - \hat{\theta}_2) \tag{19} z˙2?=?z1??c2?z2?+(φ2???x1??α1??φ1?)T(θ?θ^2?)(19)

定義新的 Lyapunov 函數:
V2=V1+12z22+12θ~2TΓ?1θ~2(20)V_2 = V_1 + \frac{1}{2} z_2^2 + \frac{1}{2} \tilde{\theta}_2^{T} \Gamma^{-1} \tilde{\theta}_2 \tag{20} V2?=V1?+21?z22?+21?θ~2T?Γ?1θ~2?(20)

求導:
V˙2=?c1z12?c2z22?θ~2TΓ?1θ^˙2+θ~2T(φ2??α1?x1φ1)z2(21)\dot{V}_2 = -c_1 z_1^2 - c_2 z_2^2 - \tilde{\theta}_2^{T} \Gamma^{-1} \dot{\hat{\theta}}_2 + \tilde{\theta}_2^{T} \left( \varphi_2 - \frac{\partial \alpha_1}{\partial x_1} \varphi_1 \right) z_2 \tag{21} V˙2?=?c1?z12??c2?z22??θ~2T?Γ?1θ^˙2?+θ~2T?(φ2???x1??α1??φ1?)z2?(21)

令:
θ^˙2=Γ(φ2??α1?x1φ1)z2(22)\dot{\hat{\theta}}_2 = \Gamma \left( \varphi_2 - \frac{\partial \alpha_1}{\partial x_1} \varphi_1 \right) z_2 \tag{22} θ^˙2?=Γ(φ2???x1??α1??φ1?)z2?(22)

最終得到:
V˙2=?c1z12?c2z22(23)\dot{V}_2 = -c_1 z_1^2 - c_2 z_2^2 \tag{23} V˙2?=?c1?z12??c2?z22?(23)

可保證系統全局漸近穩定。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/92383.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/92383.shtml
英文地址,請注明出處:http://en.pswp.cn/web/92383.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[Oracle] LEAST()函數

LEAST() 是 Oracle 中一個非常有用的函數,用于從一組表達式中返回最小值LEAST()函數會從給定的參數列表中返回最小的值,它與GREATEST()函數正好相反語法格式LEAST(expr1, expr2 [, expr3, ...])參數說明expr1, expr2, ...:要比較的表達式(至少…

SVM算法實戰應用

目錄 用 SVM 實現鳶尾花數據集分類:從代碼到可視化全解析 一、算法原理簡述 二、完整代碼實現 三、代碼解析 1. 導入所需庫 2. 加載并處理數據 3. 劃分訓練集和測試集 4. 訓練 SVM 模型 5. 計算決策邊界參數 6. 生成決策邊界數據 7. 繪制樣本點 8. 繪制…

深度虛值期權合約有什么特點?

本文主要介紹深度虛值期權合約有什么特點?深度虛值期權合約是期權市場中一類特殊且風險收益特征鮮明的合約,其核心特點可歸納為以下六點。深度虛值期權合約有什么特點?一、定義:執行價與標的價差距極大深度虛值期權是指執行價&…

(LeetCode 面試經典 150 題) 86. 分隔鏈表(鏈表+雙指針)

題目:86. 分隔鏈表 思路:雙指針,時間復雜度0(n)。 雙指針來維護小于x的鏈表和不小于x的鏈表即可,后面將兩個鏈表連起來即可。 C版本: /*** Definition for singly-linked list.* struct ListNode {* int val;* …

安全掃描:檢測到目標站點存在javascript框架庫漏洞問題(vue)

如果升級Vue版本有限制或者時間比較緊急,可以暫時用下面方式來,規避檢測到目標站點存在javascript框架庫vue漏洞。 在 vue.config.js 中配置: module.exports {configureWebpack: {optimization: {minimizer: [new (require(terser-webpack-plugin))({t…

【性能測試】-2- JMeter工具的使用

一、基礎腳本搭建🎯 核心目標:用 JMeter 搭性能測試 “骨架”(測試計劃、線程組、取樣器、監聽器)📋 測試計劃:整個測試的 “容器”,所有測試組件都放這里🧵 線程組:模擬…

從零構建桌面寫作軟件的書籍管理系統:Electron + Vue 3 實戰指南

📚 從零構建桌面寫作軟件的書籍管理系統:Electron Vue 3 實戰指南 💡 本文深入探討了基于 Electron Vue 3 技術棧的桌面寫作軟件中書籍管理系統的設計與實現,涵蓋了書籍的創建、編輯、刪除等核心功能的完整技術方案,…

2025華數杯數學建模A題【 多孔膜光反射性能的優化與控制】原創論文講解(含完整python代碼)

大家好呀,從發布賽題一直到現在,總算完成了2025華數杯數學建模A題【 多孔膜光反射性能的優化與控制】完整的成品論文。本論文可以保證原創,保證高質量。絕不是隨便引用一大堆模型和代碼復制粘貼進來完全沒有應用糊弄人的垃圾半成品論文。A題論…

網絡相關(AI回答)

網管交換機都支持帶tag的以太幀嗎DeepSeek-R1 回答完成深度思考完成 用時24秒,搜索全網20篇資料是的,所有網管交換機都支持處理和轉發帶Tag(802.1Q VLAN標簽)的以太網幀,這是其核心功能之一。以下是關鍵要點&#xff1…

每日五個pyecharts可視化圖表-bars(5)

探索pyecharts庫中條形圖的高級用法與定制技巧,打造精美數據可視化圖表 在數據可視化中,條形圖是最常用的圖表類型之一。它能夠清晰地展示不同類別的數據對比,幫助我們快速理解數據特征。本文將為您介紹pyecharts庫中條形圖的5種高級用法&…

分布式版本控制工具Git

一.開發中為什么需要Git因為在多人開發中Git可以管理代碼,而且每個人都可以從庫里面下載代碼進行修改,每個人上傳和修改Git都會有記錄,如果出現大錯誤,還可以回退到正常版本。二.Git原理我們首先從代碼庫(Remote)下載代碼到工作區…

OpenAI重磅開源GPT-oss:首款支持商用的AI Agent專屬模型

今日凌晨,OpenAI宣布開源兩款全新大模型——GPT-oss-120B(1168億參數)與GPT-oss-20B(209億參數),成為全球首個支持商業化應用的開放權重推理模型。該模型專為AI智能體(Agent)設計&am…

【STM32】GPIO的輸入輸出

GPIO是通用的輸入輸出接口,可配置8種輸入模式,輸出模式下可控制端口輸出高低電平,用于點亮LED、控制蜂鳴器、模擬通信協議等;輸入模式下可以讀取端口的高低電平或者電壓,用于讀取按鍵、外接模塊的電平信號、ADC的電壓采…

5分鐘了解OpenCV

在數字化時代,圖像和視頻已經成為信息傳遞的核心載體。從手機拍照的美顏功能到自動駕駛的路況識別,從醫學影像分析到安防監控系統,視覺技術正深刻改變著我們的生活。而在這背后,OpenCV 作為一款強大的開源計算機視覺庫&#xff0c…

Oracle 關閉 impdp任務

Oracle 關閉 impdp任務 執行 impdp system/123456 attachSYS_EXPORT_TABLE_01 執行 stop_jobimmediate

數據結構——鏈表2

1.2 實現單鏈表 在上一篇文章中&#xff0c;單鏈表的實現只有一少部分&#xff0c;這一篇接著來了解單鏈表剩下的接口實現。 SList.h#pragma once #include<stdio.h> #include<stdlib.h> #include<assert.h>//定義單鏈表就是定義節點&#xff0c;因為單鏈表…

Windows和Linux應急響應以及IP封堵

目錄 1、Windows入侵排查思路 1.1 檢查系統賬號安全 1.2 檢查異常端口、進程 1.3 檢查啟動項、計劃任務、服務 1.4 檢查系統相關信息 1.5 自動化查殺 1.6 日志分析 系統日志分析 Web 訪問日志 2、Linux 入侵排查思路 2.1 賬號安全 2.1.1、基本使用 2.1.2、入侵排查…

MIT成果登上Nature!液態神經網絡YYDS

2025深度學習發論文&模型漲點之——液態神經網絡液態神經網絡&#xff08;Liquid Neural Networks&#xff0c;LNN&#xff09;是一種受生物神經系統啟發的連續時間遞歸神經網絡&#xff08;RNN&#xff09;&#xff0c;其核心創新在于將靜態神經網絡轉化為由微分方程驅動的…

AI 對話高效輸入指令攻略(四):AI+Apache ECharts:生成各種專業圖表

- **AI與數據可視化的革命性結合**:介紹AI如何降低數據可視化門檻,提升效率。 - **Apache ECharts:專業可視化的利器**:使用表格對比展示ECharts的特點、優勢和適用場景。 - **四步實現AI驅動圖表生成**:通過分步指南講解從環境準備到圖表優化的全流程,包含多個代碼示例及…

vue2 基礎學習 day04 (結構/樣式/邏輯、組件通信、進階語法)下

一、非父子通信-event bus 事件總線1.作用非父子組件之間&#xff0c;進行簡易消息傳遞。(復雜場景→ Vuex)2.步驟創建一個都能訪問的事件總線 &#xff08;空Vue實例&#xff09;import Vue from vue const Bus new Vue() export default BusA組件&#xff08;接受方&#xf…