模型預測控制專題:無差拍預測電流控制

前言:

為了進一步深入探索電機控制這個領域,找到了一些志同道合的同學一起來進行知識的分享。最近群里投票后續更新內容,票數最多的方向就是模型預測控制;無論這個方向目前是否還是很火,至少應大家需求,工作室請到了一位這個方向研究者來進行分享。

0 文章數學符號定義總覽

1、為什么要用模型預測控制?

基礎內環的電流調節器是電機控制的基礎和核心環節之一,其性能決定了電機電流響應性能,因此電流調節器一直是電機控制領域的研究熱點之一。基于三相、兩電平的永磁同步電機的控制拓撲如圖所示;

通常,電流調節器對采集的電機相電流進行閉環控制,常用的電流、轉矩控制方包括:滯環、直接轉矩控制、基于PI的矢量控制、模型預測控制等非線性控制、無差拍控制等。基于PI的矢量控制是應用最為廣泛的電機控制方法之一,其基本原理是將指令和反饋之間的誤差進行積分,得到電壓指令,最終使得電流反饋跟蹤電流指令。PI控制器通常在頻域上設計,按照零極點相消的原則,將閉環電流控制最終等效為一階慣性環節。根據控制系統理論可知,一階慣性環節最重要的參數為帶寬,帶寬決定了系統的響應速度。但是:

基于PI控制器的電流內環性能存在一個關鍵短板——響應速度不足;

而對于電流調節器環節,其階躍響應速度是電機控制性能的最核心指標之一, 其性能將直接影響轉矩的響應速度,而轉矩的響應速度則決定了電機更多的“上層性能”,例如轉速、位置響應速度和諧波抑制能力等。為了解決這一問題,學者們提出了無差拍電流預測控制。無差拍模型預測電流控制(Deadbeat Model Predictive Current Control, DB-MPCC)在傳統模型預測電流控制(MPCC)的基礎上進一步優化,核心思想是在一個控制周期內迫使電流跟蹤誤差歸零,兼具無差拍控制的快速性與MPCC的靈活性。

無差拍控制的基本原理非常簡單,將連續域的物理模型離散化得到離散域的物理模型。再根據輸入指令、系統參數和反饋直接計算需要的系統輸入。對于電壓型變換器,根據靜止坐標系或者同步旋轉d-q軸的離散模型、電流指令和反饋以及電感、電阻等參數直接計算需要的電壓指令,再用PWM等效輸出該指令電壓;因此當所有電機參數均估算正確時,下個周期的實際d-q軸電流與指令電流
完全相等,且沒有相位差,也就是說電流指令的響應時間是一個開關周期。這個過程省去傳統MPCC的開關狀態遍歷和成本函數評估環節。其結構如下圖所示:

其優勢總結為以下幾點:

  • 嚴格的無差拍特性:通過數學推導直接計算所需電壓矢量,使電流在下一個采樣周期精確跟蹤參考值,動態響應速度接近理論極限(比傳統MPCC更快)。理論上可實現零穩態誤差:消除傳統PI控制的積分延遲,對階躍參考或負載突變的調節時間僅需1-2個控制周期。

  • 計算量降低:用解析解替代遍歷搜索:傳統MPCC需遍歷所有開關狀態并評估成本函數,而DB-MPCC通過無差拍方程直接解析計算最優電壓矢量,計算量降低50%以上。

  • 較小的系統結構更改:可直接接入SVPWM:這一點關鍵的優勢在于:對傳統控制結構的更改非常小,如果從信號流動的角度考慮,僅改變了參考電流到參考電壓的轉換模塊,傳統控制結構中其他部分均不需要進行任何改變。DB-MPCC輸出的是連續電壓矢量而非離散開關狀態,可接入SVPWM或SPWM模塊生成固定頻率的驅動信號,避免傳統MPCC開關頻率波動導致的諧波問題。

  • 低諧波失真:固定開關頻率+PWM:結合PWM調制后,電流諧波頻譜更集中,THD(總諧波失真)顯著低于開關頻率波動的有限控制集MPCC(FCS-MPCC)。

2、一拍誤差從而何來?

永磁同步電機控制器中的“一拍誤差”(One-Step Delay Error)本質上是數字控制系統固有的離散化延遲物理系統連續時間特性之間的矛盾。討論這個技術要點時,可以回溯到典型的MCU例如DSP或者STM32等芯片數據手冊。下圖為DSP28335的EPWM模塊數據手冊截圖,在單周期單采樣模式下,底層外設的配置邏輯為:

ePWM模塊觸發ADC中斷——基于采樣數據計算控制電壓——計算PWM輸出計數器比較值;

這其中有個關鍵點,我們將連續控制過程分散為了以載波周期為單元間隔的離散控制過程,在以上MCU執行的過程中,計算所得的PWM輸出計數器值生效為占空比在下一個載波周期的起點(PWM更新在下一個載波周期),這是控制器一拍延遲的來源。ADC進行所處的載波周期也存在生效的占空比,但是該占空比是在上一個載波周期計算得到的。該過程時許示意圖如下所示:

2、DPCC 無差拍直接電流預測控制的實現原理

控制目標設定:由于控制器存在一拍的延遲(將載波周期時間Ts定義為一拍),當控制器在 t = kTs 時刻采樣,其控制器所得的PWM將在 (k+1)Ts? - (k+2)Ts 載波周期生效,因此控制目標應為時刻為 (k+2)Ts的電流值參考值

反饋電流計算(預測):因控制器所得的PWM將在 (k+1)Ts? - (k+2)Ts 載波周期生效,該PWM的作用起點實則為 (k+1)Ts 時刻的電流;因此反饋電流應為(k+1)Ts時刻的電流值反饋值

2.1 如何計算 (k+1)Ts 時刻的電流

對MCU而言,只能通過ADC模塊采集到 kTs 時刻的三相電流反饋值,而

(k+1)Ts?時刻的電流還未出現,無法直接被傳感器采樣得到,需要基于電機模型進行預測。

永磁同步電機電流模型如下所示:

電流模型微分形式:

電流模型離散表達式子:(用以 k+1 拍電流預測)

2.2 如何計算輸出電壓

如果從一個控制器黑盒的角度考慮,這個黑盒子的輸入就是在得到了 (k+1)Ts 時刻的電流后,即可對輸出電壓進行計算;其原理如下公式所示:

整體原理如下信號流圖所示:

在得到控制需求電壓后,將其輸出給SVPWM調制模塊即可;

3 仿真驗證

完成了原理性的學習后,我們對該算法進行仿真驗證;

仿真工況:給定轉速1000rpm,0.3s施加5N外部負載;

同步的PI調節器的效果:

前文有提到DPCC相對PI最大的優勢在于電流跟隨的快速性;如下圖所示,圖中紅色曲線為DPCC結果,而藍色曲線為PI調節器結果;涉及四種電流指令分別為10、8、6、4A,在不同電流指令大小時,DPCC的電流響應速度均由于傳統PI調節器;

4 總結與展望

本部分系統闡述了無差拍預測電流控制(DPCC)的核心優勢與局限性,深入分析了控制器一拍延遲的產生機理,并基于離散化電流模型推導出DPCC的閉環控制律,最終給出電壓指令的顯式表達式。通過與傳統PI控制器的動態仿真對比,驗證了DPCC在電流跟蹤速度上的顯著提升(響應時間縮短約40%),其階躍響應可在1-2個控制周期內實現無靜差跟蹤。

這部分內容主要講了三件事:

  1. DPCC的優缺點

    • 優點:電流跟蹤快,計算簡單,開關頻率穩。

  2. 控制器為啥會有“一拍延遲”?

    • 數字控制不是實時的,采樣、計算、執行都要時間,而電機是連續運行的,電流不能瞬間變,所以會有“慢拍”的情況。

  3. DPCC怎么算電壓?效果如何?

    • 公式核心:讓下一拍的電流精準追上目標值,電壓計算包含電阻壓降、耦合補償和動態調節。

    • 仿真對比:和傳統PI比,DPCC電流跟蹤快40%,1-2個周期就能跟上,還沒靜差!

簡單總結:DPCC速度快,但得模型準,仿真證明它比PI猛多了!

整提結構如上圖所示,此時僅僅只是仿真,仿真中參數都是準確的控制效果必然會好一些。后續章節具體解決如何提高參數魯棒性的問題。

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

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

相關文章

Youtube雙塔模型

1. 引言 在大規模推薦系統中,如何從海量候選物品中高效檢索出用戶可能感興趣的物品是一個關鍵問題。傳統的矩陣分解方法在處理稀疏數據和長尾分布時面臨挑戰。本文介紹了一種基于雙塔神經網絡的建模框架,通過采樣偏差校正技術提升推薦質量,并…

.net8創建tcp服務接收數據通過websocket廣播

注冊TCP服務器 注冊WebSocket中間件 using System.Net; using System.Net.Sockets; using System.Text; using System.Text.Json; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.SignalR.Client; using Microsoft.AspNet…

閱讀服務使用示例(HarmonyOS Reader Kit)

閱讀服務使用示例(HarmonyOS Reader Kit) Reader Kit到底能干啥? 第一次搞電子書閱讀器,真以為就是“讀txt顯示出來”這么簡單,結果各種格式、排版、翻頁動效、目錄跳轉……全是坑。還好有Reader Kit,救了…

ASP.NET Core Web API 實現 JWT 身份驗證

在ASP.NET Core WebApi中使用標識框架(Identity)-CSDN博客 因為一般需要和標識框架一起使用,建議先查看標識框架用法 一.為什么需要JWT 我們的系統需要實現認證,即服務端需要知道登錄進來的客戶端的身份,管理員有管理員的權限,普通用戶有普通用戶的權限. 但服務…

優化Cereal宏 一行聲明序列化函數

Cereal序列化庫中宏遞歸展開的優化方案及技術解析 未優化&#xff1a;參考nlohmann json設計Cereal宏 一行聲明序列化函數 宏實現 #include <cereal/cereal.hpp>// 強制二次展開 #define CEREAL_EXPAND( x ) x// 獲取宏參數的數量&#xff0c;對應的CEREAL_PASTEn宏NAME…

14-C#的彈出的窗口輸入與輸出

C#的彈出的窗口輸入與輸出 1.文件名輸入 string fileName Interaction.InputBox("輸入保存的文件名", "保存");2.彈窗信息輸出 MessageBox.Show("請選擇輪詢!", "Error", MessageBoxButtons.OK);catch (Exception ex){MessageBox.S…

多模態大語言模型arxiv論文略讀(141)

Mini-InternVL: A Flexible-Transfer Pocket Multimodal Model with 5% Parameters and 90% Performance ?? 論文標題&#xff1a;Mini-InternVL: A Flexible-Transfer Pocket Multimodal Model with 5% Parameters and 90% Performance ?? 論文作者&#xff1a;Zhangwei …

VScode使用usb轉網口遠程開發rk3588

我使用的是魯班貓的板&#xff0c;只有一個網口&#xff0c;需要接雷達&#xff0c;因此另外弄了一個usb轉網口來連接電腦開發。 在使用vscode或MobaXterm連接板子時&#xff0c;使用主機名與用戶名來連接&#xff1a; ssh catlubancat rk那邊就直接插入usb轉網口以及網線&a…

AUTOSAR圖解==>AUTOSAR_AP_EXP_SOVD

AUTOSAR服務導向車輛診斷詳解 面向現代化車輛架構的診斷方案 目錄 1. 引言 1.1 ASAM SOVD簡介1.2 SOVD產生的動機 2. SOVD參考架構 2.1 SOVD網關2.2 診斷管理器2.3 SOVD到UDS轉換2.4 后端連接 3. SOVD用例 3.1 SOVD和UDS的共同用例3.2 SOVD特定用例 3.2.1 訪問權限3.2.2 軟件更…

第八講:STL簡介

1. 什么是STL STL(standard template libaray-標準模板庫)&#xff1a;是C標準庫的重要組成部分&#xff0c;不僅是一個可復的 組件庫&#xff0c;而且是一個包羅數據結構與算法的軟件框架。 2. STL的版本 a. 原始版本 Alexander Stepanov、Meng Lee 在惠普實驗室完成的原始版本…

高彈性、高可靠!騰訊云 TDMQ RabbitMQ Serverless 版全新發布

導語 2025年6月起&#xff0c;騰訊云 TDMQ RabbitMQ 版正式推出 Serverless 版本&#xff0c;該版本基于自研的存算分離架構&#xff0c;兼容 AMQP 0-9-1 協議和開源 RabbitMQ 的各個組件與概念&#xff0c;且能夠規避開源版本固有的不抗消息堆積、腦裂等穩定性缺陷&#xff0…

Linux 內存調優之 BPF 分析用戶態小內存分配

寫在前面 博文內容為 使用 BPF 工具跟蹤 Linux 用戶態小內存分配(brk,sbrk)理解不足小伙伴幫忙指正 ??,生活加油我看遠山,遠山悲憫 持續分享技術干貨,感興趣小伙伴可以關注下 _ brk 內存分配簡單概述 一般來說,應用程序的數據存放于堆內存中,堆內存通過brk(2)系統調用進…

心理測評app心理測試系統框架設計

一、邏輯分析 用戶管理邏輯 新用戶注冊&#xff1a;需要收集用戶的基本信息&#xff0c;如用戶名、密碼、郵箱等&#xff0c;并且要對輸入信息進行合法性校驗&#xff0c;確保信息完整且符合格式要求。同時&#xff0c;為每個新用戶生成唯一的標識符&#xff0c;方便后續數據管…

配置有nvlink的H20A800使用pytorch報錯

背景 裝有nvlink的h20機器上配置好驅動和cuda之后使用pytorch報錯 A800機器同樣 (pytorch2.4) rootxx-dev-H20:~# python Python 3.12.0 | packaged by Anaconda, Inc. | (main, Oct 2 2023, 17:29:18) [GCC 11.2.0] on linux Type “help”, “copyright”, “credits” or …

sql的語句執行過程

第一步&#xff1a;客戶端把語句發給服務器端執行 當我們在客戶端執行SQL語句時&#xff0c;客戶端會把這條SQL語句發送給服務器端&#xff0c;讓服務器端的進程來處理這語句。也就是說&#xff0c;Oracle 客戶端是不會做任何的操作&#xff0c;他的主要任務就是把客戶端產生的…

深度學習-分類

深度學習-分類方式 &#xff08;重點&#xff09;一、按數據類型與處理邏輯分類1. 序列數據&#xff08;時序/順序相關&#xff09;2. 網格狀數據&#xff08;空間相關&#xff09;3. 圖結構數據&#xff08;非歐幾里得結構&#xff09;4. 其他特殊類型數據 &#xff08;重點&a…

C語言---常見的字符函數和字符串函數介紹

目錄 前言 1 字符分類函數 2 字符轉換函數 3 strlen的使用和模擬實現 3.1 strlen的模擬實現 4 strcpy的使用和模擬實現 4.1 strcpy的模擬實現 5 strcat的使用和模擬實現 5.1 strcat的模擬實現 6 strcmp的使用和模擬實現 6.1 strcmp的模擬實現 7 strncpy函數的使用…

Minio入門+適配器模式(實戰教程)

一、安裝Minio 1.1 拉取鏡像 docker pull minio/minio docker images 1.2創建掛載目錄 1.2.1 創建數據目錄 mkdir -p /docker-minio/data 1.2.2 創建配置文件目錄 mkdir -p /docker-minio/config 1.2.3 設置權限 chmod -R 777 /docker-minio/data /docker-minio/config …

LLaMA-Factory 對 omnisql 進行 ppo dpo grpo nl2sql任務 實現難度 時間 全面對比

在LLaMA-Factory框架下&#xff0c;針對omnisql任務&#xff08;自然語言到SQL生成&#xff09;應用PPO、DPO、GRPO三種算法的實現難度、時間及全面對比如下&#xff1a; 一、實現難度對比 1. PPO&#xff08;近端策略優化&#xff09; 難度&#xff1a;★★☆☆☆&#xff…

Kingbase 數據庫中的 sys_guid() 函數報錯

解決 Kingbase 數據庫中的 sys_guid() 函數報錯問題 問題背景 Kingbase 數據庫在遷移或使用過程中&#xff0c;可能會遇到 select sys_guid() 函數報錯 , 提示函數不存在的情況&#xff0c;這通常是由于以下幾種原因造成的&#xff1a; 函數未正確安裝或未啟用函數參數不符合…