基于強化學習的控制率參數自主尋優

1.介紹

針對控制建模與設計場景中控制參數難以確定的普遍問題,提出了一種基于強化學習的控制律參數自主優化解決方案。該方案以客戶設計的控制律模型為基礎,根據自定義的控制性能指標,自主搜索并確定最優的、可狀態依賴的控制參數組合。

可用于各類飛行器、機器人等類的控制系統優化。無論是經典的PID控制,還是其他先進的控制方法,該模塊都能提供一種通用的參數優化方案。通過與控制律參數自主優化模塊的結合,工程師們將獲得更多的精力用于控制策略的設計和算法的創新,而將繁瑣的參數調試工作交給智能化優化系統完成。

2.應用場景

面向復雜系統的控制建模與控制律設計研發場景,適用于需要頻繁進行控制律設計、控制律調整、控制參數調整的研發場景,包括各類機器人設計(機械臂、機械狗、特殊結構如水上水下機器人、擬人機器人等)、各類飛行器設計(固定翼、四旋翼、航天器等)、其他機械設施(汽車、發動機等)。

3.參考示例-基于強化學習的PID參數整定

在控制系統控制器性能分析中,系統階躍響應對應的超調量、上升時間、調節時間等動態性能指標是關于控制器參數矢量 X 的非線性函數,評價控制器設計優劣的關鍵性因素。

結合強化學習理論和控制理論知識,設計一種基于強化學習(reinforcement learning, RL)的控制器參數自整定及優化算法。算法將控制參數矢量 X作為智能體的動作,控制系統的響應結果作為狀態,引入動態性能指標計算獎勵函數,通過在線學習周期性階躍響應數據、梯度更新控制器參數的方式改變控制器的控制策略,直至滿足優化目標,實現參數的自整定及優化。算法原理如下圖所示。

根據原理圖,參數自整定及優化算法將控制器參數整定問題定義為,求解滿足下列不等式約束條件的可行解:

式中: Z為待優化的參數矢量X的取值范圍;Ωi?(i=1,2,3) 為優化目標的約束值。基于控制系統動態性能指標超調量 δ、上升時間 tr、調節時間 ts,算法定義獎勵函數為

算法的參數整定及優化流程如下:

  1. 根據實際條件和需求設定優化目標 Ωi和參數 X的搜索范圍 Z,隨機初始化參數 X;
  2. 返回步驟 2),重復上述步驟。
  3. 利用梯度下降法更新參數;X=X+α??X+σ,其中 σ為高斯白噪聲,α為自適應學習率
  4. 計算 m個樣本的參數平均梯度 ?X;
  5. 從經驗回放集 S 中隨機批量抽取 m 個經驗樣本,將 2) 中數據存入經驗回放集 S;
  6. 獲得系統在參數 X下的周期階躍響應數據,計算動態性能指標 δ、tr ts和獎勵函數 R;若滿足優化目標,則終止迭代,輸出參數 X;

為了盡可能獲得全局最優的參數,參數自整定及優化算法在更新參數的過程中引入高斯白噪聲,增加參數的探索度。同時,算法利用經驗回放技術,對過去的經驗樣本進行隨機批量抽樣,減弱經驗數據的相關性和不平穩分布的影響,增加優化過程的準確性和收斂速度。實踐試驗中,為避免算法陷入局部死循環,當可行解的變異系數小于一定閾值時,即認為算法已獲得局部收斂(近似全局)的相對最優解,保留當前結果并重新搜索。

案例參考自:

YAN Jiazheng,ZHUAN Xiangtao. Parameter self-tuning and optimization algorithm based on reinforcement learning[J]. CAAI
Transactions on Intelligent Systems , 2022, 17(2): 341-347.

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

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

相關文章

unity打包的WebGL部署到IIS問題

部署之后會出錯,我遇到的有以下幾種; 進度條卡住不動 明明已經部署到了IIS上,為什么瀏覽網頁的時候還是過不去或者直接報錯。 進度條卡住不動的問題其實就是wasm和data的錯誤。 此時在瀏覽器上按F12進入開發者模式查看錯誤(下圖…

前端知識點雜記

本文章用于記錄前端學習中遇到的瑣碎問題及解決方法,歡迎大家一起學習補充~ 前端如何獲取UUID發送至后端? 1. 命令行下載uuid庫 npm install uuid 2. 工程導入uuid庫 import { v4 as uuidv4 } from "uuid"; 3. 使用方法生成uuid實例 co…

付費工具邏輯

1.付費推廣目的: 傳播信息心理暗示;擴大銷售,指導消費;樹立形象,塑道品牌; 2.付費和免費廣告: 付費主要為了增加曝光;免費廣告一般比付費廣告轉化率高; 3.平臺廣告交…

《Kubernetes部署篇:基于麒麟V10+ARM64架構部署harbor v2.4.0鏡像倉庫》

總結:整理不易,如果對你有幫助,可否點贊關注一下? 更多詳細內容請參考:企業級K8s集群運維實戰 一、環境信息 K8S版本 操作系統 CPU架構 服務版本 1.26.15 Kylin Linux Advanced Server V10 ARM64 harbor v2.4.0 二、部…

chrome谷歌瀏覽器開啟Gemini Nano模型

前提 確保您的操作系統語言設置為英語(美國) 可能還需要將 Chrome 瀏覽器的語言更改為英語(美國)。 下載dev或Canary版本Chrome Chrome Canary Chrome Dev 注意:確認您的版本高于 127.0.6512.0。 其中一個Chrome版本不行就切換另外一個版本 繞過性能檢查 Tab輸入: …

中國美業元宇宙-探索美容行業的未來

隨著科技的不斷進步和數字化轉型的深入,元宇宙作為一種全新的虛擬現實交互平臺,正逐漸成為推動多個行業革新的重要力量。在這種背景下,中國美業也在積極擁抱元宇宙,希望通過這一新興技術為傳統美容行業帶來創新與發展。 #### 中國…

結構體相關習題的補充

結構體相關習題的補充 題目1: 如有以下代碼: struct student {int num;char name[32];float score; }stu;則下面的敘述不正確的是:( ) A.struct 是結構體類型的關鍵字 B.struct student 是用戶定義的結構體類型 C.num, score 都是結構體…

正邦科技(day4)

燒錄 一、燒錄固件二、 通訊模塊升級1:USB的方式升級固件2:通過mqtt的方式升級固件3:切換環境 三、 燒錄WiFi1:短接2:燒錄腳本 設備注意事項: 第一種方式:通信模組和MCU都可以統一燒錄BoodLoade…

Oracle Hint /*+APPEND*/插入性能總結

oracle append用法 Oracle中的APPEND用法主要用于提高數據插入的效率。 基本用法:在使用了APPEND選項后,插入數據會直接加到表的最后面,而不會在表的空閑塊中插入數據。這種做法不需要尋找freelist中的free block,從而避免了在…

【計算機畢設】基于Spring Boot的課程作業管理系統 - 源碼免費(私信領取)

免費領取源碼 | 項目完整可運行 | v:chengn7890 誠招源碼校園代理! 1. 研究目的 課程作業管理系統旨在為教師和學生提供一個便捷的平臺,用于發布、提交和評定課程作業。本系統旨在提高作業管理的效率,促進教…

Golang反射

文章目錄 基本介紹reflect包reflect.Typereflect.Valuereflect.Kind具體類型、空接口與reflect.Value的相互轉換 反射應用場景修改變量的值訪問結構體的字段信息調用變量所綁定的方法實現函數適配器創建任意類型的變量 基本介紹 基本介紹 在Go中,反射(re…

錯誤 0x80070570:文件或目錄損壞且無法讀取/無法訪問[拒絕訪問]-解決方法

1.起因:在挪動U盤文件時,出現無法移動的報錯提示: and無法訪問[拒絕訪問]: 2.原因[大多是胡亂拔出U盤] [來自0x80070570 文件或目錄損壞且無法讀取 CHKDSK 修復方法-CSDN博客&#…

iOS AVFoundation 音視頻源碼分享

引言 在現代移動開發中,音視頻處理是一個不可忽視的重要領域。iOS 提供了強大的 AVFoundation 框架,使開發者能夠輕松實現音視頻錄制、播放、編輯等功能。無論是創建高效的視頻播放器,還是實現復雜的音頻處理,AVFoundation 都能提…

Leecode---買賣股票最大利潤問題

121—題目(只能買賣一次): 給定一個數組 prices ,它的第 i 個元素 prices[i] 表示一支給定股票第 i 天的價格。 你只能選擇 某一天 買入這只股票,并選擇在 未來的某一個不同的日子 賣出該股票。設計一個算法來計算你所…

python-pytorch編寫transformer模型實現問答0.5.00--訓練和預測

python-pytorch編寫transformer模型實現問答0.5.00--訓練和預測 背景代碼訓練預測效果背景 代碼寫不了這么長,接上一篇 https://blog.csdn.net/m0_60688978/article/details/139360270 代碼 # 定義解碼器類 n_layers = 6 # 設置 Decoder 的層數 class Decoder(nn.Module)…

【JavaEE進階】——帶你詳細了解Spring日志以及配置日志

目錄 🚩Spring日志的認識 🚩Spring日志的作用 🚩觀察日志 🚩使用日志 🎈在程序中得到日志對象 🎈使??志對象輸出要打印的內容 🚩日志框架的介紹 🎈門面模式(外觀模式&…

Unity實現簡單的第一人稱控制

先看效果 實現方式 1.首先創建一個腳本 2.編輯腳本內容 付上腳本代碼 private float RotationX 0;public float speed 2f;//移動速度// Use this for initializationvoid Start(){Cursor.lockState CursorLockMode.Locked;//鎖定鼠標到中心點Cursor.visible false;//隱藏鼠…

(CPU/GPU)粒子繼承貼圖顏色發射

GetRandomInfo節點(復制貼進scratch pad Scripts) Begin Object Class/Script/NiagaraEditor.NiagaraClipboardContent Name"NiagaraClipboardContent_22" ExportPath/Script/NiagaraEditor.NiagaraClipboardContent"/Engine/Transient.NiagaraClipboardConten…

uni-app+php 生成微信二維碼 分銷海報

主要代碼如下,可直接復制調試參數: //查詢當前用戶是否有分銷海報public function user_poster(){$this->checkAuth();//查詢會員信息$user $this->getUserInfoById($this->user_id);if(!empty($user[distribution_img])){$result[data] $use…

深入解析力扣170題:兩數之和 III - 數據結構設計(哈希表與雙指針法詳解及模擬面試問答)

在本篇文章中,我們將詳細解讀力扣第170題“兩數之和 III - 數據結構設計”。通過學習本篇文章,讀者將掌握如何設計一個數據結構來支持兩種操作,并了解相關的復雜度分析和模擬面試問答。每種方法都將配以詳細的解釋和ASCII圖解,以便…