電流環(huán)實(shí)戰(zhàn)應(yīng)用)
1. 項(xiàng)目概述從PID到ADRC控制算法的“降維打擊”在工業(yè)控制、機(jī)器人、電力電子這些領(lǐng)域摸爬滾打久了你一定會(huì)對(duì)PID控制器又愛(ài)又恨。愛(ài)它的簡(jiǎn)單直觀幾個(gè)參數(shù)調(diào)來(lái)調(diào)去大部分時(shí)候都能讓系統(tǒng)“動(dòng)起來(lái)”恨它的“嬌氣”面對(duì)非線性、強(qiáng)耦合、大時(shí)滯或者外部擾動(dòng)PID就像個(gè)經(jīng)驗(yàn)不足的舵手要么反應(yīng)遲鈍要么劇烈震蕩調(diào)參調(diào)到懷疑人生是常有的事。我當(dāng)年調(diào)試一個(gè)伺服系統(tǒng)為了應(yīng)對(duì)負(fù)載突變PID參數(shù)前前后后改了不下五十版最后還是加了前饋和各種濾波才勉強(qiáng)能用過(guò)程極其痛苦。后來(lái)接觸到自抗擾控制ADRC感覺(jué)像是打開(kāi)了一扇新世界的大門(mén)。它不像一些現(xiàn)代控制理論那樣需要精確的數(shù)學(xué)模型也不像模糊控制、神經(jīng)網(wǎng)絡(luò)那樣“黑箱”。ADRC的核心思想非?!鞍缘馈辈还芟到y(tǒng)內(nèi)部具體是什么結(jié)構(gòu)也不管外部來(lái)了什么妖魔鬼怪?jǐn)_動(dòng)我統(tǒng)統(tǒng)把它們打包成一個(gè)“總擾動(dòng)”然后實(shí)時(shí)估計(jì)并補(bǔ)償?shù)?。剩下的就是一個(gè)被我“馴化”好的、簡(jiǎn)單的積分串聯(lián)型系統(tǒng)用最簡(jiǎn)單的控制律就能搞定。這種“觀測(cè)-補(bǔ)償”的思路對(duì)于咱們這些一線工程師來(lái)說(shuō)直觀又實(shí)用。最近在搞永磁同步電機(jī)的電流環(huán)控制傳統(tǒng)的PI調(diào)節(jié)器在高速弱磁區(qū)或者參數(shù)變化時(shí)性能下降明顯。換上ADRC后動(dòng)態(tài)響應(yīng)和抗擾能力提升了一個(gè)檔次參數(shù)也更好整定。網(wǎng)上流傳的ADRC算法m文件我也研究過(guò)不少有的寫(xiě)得很精妙有的則存在理解偏差。今天我就結(jié)合自己的實(shí)戰(zhàn)經(jīng)驗(yàn)把ADRC從核心思想到代碼實(shí)現(xiàn)掰開(kāi)揉碎了講清楚目標(biāo)是讓你看完就能理解原理并且能動(dòng)手在自己的項(xiàng)目里嘗試應(yīng)用。2. ADRC核心思想與架構(gòu)拆解把復(fù)雜問(wèn)題“打包”解決ADRC的發(fā)明者韓京清研究員提出這一理論時(shí)目標(biāo)很明確找到一種既不依賴精確模型又能實(shí)現(xiàn)高性能魯棒控制的方法。它的整體架構(gòu)可以概括為“三部分”跟蹤微分器TD、擴(kuò)張狀態(tài)觀測(cè)器ESO和非線性狀態(tài)誤差反饋NLSEF。咱們先拋開(kāi)這些術(shù)語(yǔ)用個(gè)生活化的例子來(lái)理解。想象一下你在開(kāi)車目標(biāo)是讓車速穩(wěn)定在100km/h。傳統(tǒng)的PID控制器就像是你只盯著速度表當(dāng)前誤差發(fā)現(xiàn)慢了就多踩點(diǎn)油門(mén)發(fā)現(xiàn)快了就松一點(diǎn)。但如果遇到上坡負(fù)載擾動(dòng)、逆風(fēng)外部擾動(dòng)或者車子本身發(fā)動(dòng)機(jī)響應(yīng)特性變了模型不確定性你這個(gè)“只看速度表”的策略就會(huì)很被動(dòng)容易產(chǎn)生超調(diào)或調(diào)節(jié)緩慢。ADRC的做法則像是一個(gè)經(jīng)驗(yàn)豐富的老司機(jī)搭配一個(gè)智能副駕智能副駕TD他不滿足于當(dāng)前速度還會(huì)根據(jù)路況和你想要的速度規(guī)劃出一條平滑過(guò)渡的理想速度曲線。比如從80加速到100他不會(huì)讓你瞬間踩到底而是規(guī)劃一個(gè)既快速又平緩的加速過(guò)程避免沖擊。這就是TD的作用——安排過(guò)渡過(guò)程并提取出理想的系統(tǒng)狀態(tài)比如理想位置、理想速度。超級(jí)雷達(dá)ESO這是ADRC的靈魂。這個(gè)雷達(dá)不僅能看到車的實(shí)際速度和位置系統(tǒng)輸出還能實(shí)時(shí)“看見(jiàn)”并估算出所有影響車速的因素總和包括你踩的油門(mén)控制量、上坡的阻力、逆風(fēng)、發(fā)動(dòng)機(jī)的損耗等等。它把這些亂七八糟的東西全部打包估算成一個(gè)叫做“總擾動(dòng)”的信號(hào)。ESO的強(qiáng)大之處在于它不需要知道坡有多陡、風(fēng)有多大它只通過(guò)觀察車的實(shí)際運(yùn)動(dòng)就能把這個(gè)“總擾動(dòng)”實(shí)時(shí)算出來(lái)。決策大腦NLSEF大腦拿到兩個(gè)信息一是智能副駕規(guī)劃的理想狀態(tài)來(lái)自TD二是超級(jí)雷達(dá)提供的實(shí)際狀態(tài)和總擾動(dòng)估計(jì)來(lái)自ESO。大腦計(jì)算兩者的誤差并根據(jù)誤差的大小和變化率以一種非線性的方式比如誤差很大時(shí)增益大誤差很小時(shí)增益小避免高頻顫振計(jì)算出最初的控制力。但是這還沒(méi)完最關(guān)鍵的一步來(lái)了大腦會(huì)從初步控制力中減去雷達(dá)估算出的“總擾動(dòng)”。這樣一來(lái)實(shí)際作用到車子上的控制指令就相當(dāng)于是在一個(gè)“無(wú)擾動(dòng)”的理想環(huán)境下發(fā)出的指令。所以ADRC的流程就是規(guī)劃理想軌跡 - 觀測(cè)并估計(jì)所有內(nèi)外部擾動(dòng) - 基于理想軌跡和實(shí)際狀態(tài)的誤差計(jì)算控制量 - 補(bǔ)償?shù)艄烙?jì)的擾動(dòng) - 得到最終控制指令。經(jīng)過(guò)這樣的處理無(wú)論系統(tǒng)本身多復(fù)雜外部環(huán)境多惡劣被控對(duì)象在控制器“眼”里都近似變成了一個(gè)簡(jiǎn)單的、干凈的積分器串聯(lián)型系統(tǒng)自然就好控制了。這就是其“自抗擾”能力的根源——自己抵抗、補(bǔ)償擾動(dòng)。2.1 核心組件一跟蹤微分器TD—— 柔化指令提取微分TD經(jīng)常被初學(xué)者忽略覺(jué)得它不就是給個(gè)設(shè)定值嗎其實(shí)它的作用至關(guān)重要。直接給系統(tǒng)一個(gè)階躍設(shè)定值相當(dāng)于要求輸出瞬間跳變這對(duì)于物理系統(tǒng)來(lái)說(shuō)意味著需要無(wú)窮大的能量和控制力必然引起劇烈沖擊和超調(diào)。TD的核心作用是“安排過(guò)渡過(guò)程”。它接收一個(gè)跳變的指令信號(hào)v然后輸出一個(gè)平滑的跟蹤信號(hào)v1及其微分v2。最經(jīng)典的TD算法是韓老師提出的最速控制綜合函數(shù)fhan離散形式。它的內(nèi)部是一個(gè)離散差分方程通過(guò)非線性反饋使得v1能以最快速度無(wú)超調(diào)地跟蹤上v同時(shí)v2是v1的合理微分避免了直接數(shù)值微分的噪聲放大問(wèn)題。在實(shí)際編程中比如寫(xiě)那個(gè)ADRC算法m文件TD的代碼可能長(zhǎng)這樣function [v1, v2] TD(v, v1, v2, h, r) % v: 當(dāng)前目標(biāo)值 % v1, v2: 上一時(shí)刻的跟蹤值及其微分 % h: 離散積分步長(zhǎng) % r: 速度因子決定跟蹤快慢 d r * h; d0 h * d; y v1 - v h * v2; a0 sqrt(d*d 8*r*abs(y)); a v2 (a0 - d)/2 * sign(y); if abs(y) d0 a v2 sign(y) * r; end v2 v2 h * fsg(a, d, r); % fsg是一個(gè)符號(hào)函數(shù) v1 v1 h * v2; end注意參數(shù)r非常關(guān)鍵。r越大跟蹤速度越快但會(huì)對(duì)噪聲更敏感。通常需要根據(jù)系統(tǒng)響應(yīng)能力和采樣頻率來(lái)調(diào)整。h就是你的控制周期。2.2 核心組件二擴(kuò)張狀態(tài)觀測(cè)器ESO—— 擾動(dòng)估計(jì)的靈魂ESO是ADRC實(shí)現(xiàn)“抗擾”的核心。它的思想是將系統(tǒng)的總擾動(dòng)包括未建模動(dòng)態(tài)和外部擾動(dòng)擴(kuò)張成一個(gè)新的狀態(tài)變量然后設(shè)計(jì)一個(gè)觀測(cè)器對(duì)這個(gè)新?tīng)顟B(tài)即擾動(dòng)進(jìn)行實(shí)時(shí)估計(jì)。假設(shè)我們有一個(gè)二階系統(tǒng)很多電機(jī)、位置控制都可以簡(jiǎn)化成二階? f(y, ?, w, t) b*u其中f是未知的內(nèi)部動(dòng)態(tài)和外部擾動(dòng)w的總和b是控制增益通??纱致怨烙?jì)。ESO把這個(gè)系統(tǒng)重新表述為?1 x2?2 x3 b*u?3 ?假設(shè)擾動(dòng)變化率有界y x1這里x1是系統(tǒng)輸出yx2是輸出的微分?而x3就是我們擴(kuò)張出來(lái)的狀態(tài)用來(lái)代表總擾動(dòng)f。然后我們?cè)O(shè)計(jì)一個(gè)龍伯格觀測(cè)器Luenberger Observer來(lái)估計(jì)這三個(gè)狀態(tài)e z1 - y觀測(cè)誤差?1 z2 - β01 * e?2 z3 - β02 * e b*u?3 -β03 * e其中z1, z2, z3分別是x1, x2, x3的估計(jì)值。β01, β02, β03是觀測(cè)器增益需要精心配置以保證觀測(cè)器穩(wěn)定且快速。觀測(cè)器收斂后z3就會(huì)實(shí)時(shí)跟蹤上總擾動(dòng)f。這樣我們就“看見(jiàn)”了擾動(dòng)。在實(shí)際的ADRC電流環(huán)設(shè)計(jì)中y就是反饋的電流值u是電壓指令z3估計(jì)的就是反電動(dòng)勢(shì)、電阻電感參數(shù)變化、死區(qū)效應(yīng)等所有擾動(dòng)之和。2.3 核心組件三非線性狀態(tài)誤差反饋NLSEF與擾動(dòng)補(bǔ)償有了TD給出的理想狀態(tài)v1, v2和ESO給出的實(shí)際狀態(tài)估計(jì)z1, z2以及擾動(dòng)估計(jì)z3我們就可以計(jì)算控制了。首先計(jì)算誤差e1 v1 - z1位置/電流誤差e2 v2 - z2速度/電流微分誤差然后NLSEF采用一個(gè)非線性函數(shù)來(lái)處理這些誤差經(jīng)典的是“fal”函數(shù)fal(e, α, δ) |e|^α * sign(e), 當(dāng) |e| δfal(e, α, δ) e / δ^(1-α), 當(dāng) |e| ≤ δ其中0 α 1δ 0。這個(gè)函數(shù)的特點(diǎn)是大誤差時(shí)增益大提高響應(yīng)速度小誤差時(shí)增益小避免高頻顫振和平滑控制。δ是一個(gè)線性區(qū)間防止在零點(diǎn)附近因函數(shù)不平滑導(dǎo)致的抖動(dòng)。那么初步的控制量u0為u0 β1 * fal(e1, α1, δ) β2 * fal(e2, α2, δ)β1和β2是誤差增益。最后執(zhí)行關(guān)鍵的擾動(dòng)補(bǔ)償u (u0 - z3) / b這里b就是ESO里那個(gè)粗略的控制增益估計(jì)。這個(gè)公式的意義在于計(jì)算出的理想控制力u0減去觀測(cè)到的擾動(dòng)z3再除以增益b就得到了最終應(yīng)該施加的控制量u。經(jīng)過(guò)這樣的補(bǔ)償系統(tǒng)方程近似變成了? ≈ u0一個(gè)簡(jiǎn)單的雙重積分器非常好控制。3. ADRC參數(shù)整定與工程化實(shí)踐理論很美但落到代碼上參數(shù)整定是逃不過(guò)的坎。ADRC參數(shù)看起來(lái)比PID多TD的rhESO的β01, β02, β03, bNLSEF的β1, β2, α1, α2, δ但其實(shí)有很強(qiáng)的物理意義和整定規(guī)律并非盲目調(diào)試。3.1 “帶寬法”參數(shù)整定化繁為簡(jiǎn)這是工程上最常用、最有效的方法由高志強(qiáng)教授提出將觀測(cè)器和控制器的性能與“帶寬”這一概念掛鉤極大簡(jiǎn)化了調(diào)參。ESO參數(shù)整定將ESO的特征多項(xiàng)式配置為(s ω_o)^3其中ω_o稱為觀測(cè)器帶寬。通過(guò)極點(diǎn)配置可以推導(dǎo)出β01 3ω_oβ02 3ω_o^2β03 ω_o^3這樣一來(lái)ESO的三個(gè)增益就由一個(gè)參數(shù)ω_o決定了。ω_o越大觀測(cè)器收斂越快對(duì)擾動(dòng)的估計(jì)能力越強(qiáng)但同時(shí)對(duì)測(cè)量噪聲也越敏感。一般ω_o設(shè)為系統(tǒng)期望閉環(huán)帶寬的3~10倍。參數(shù)b需要大致估計(jì)它代表了控制量對(duì)輸出的增益比如在電流環(huán)中b ≈ 1/L電感倒數(shù)估不準(zhǔn)沒(méi)關(guān)系ESO有一定的魯棒性但偏差太大會(huì)影響性能。控制器參數(shù)整定將誤差反饋律線性化即取α1α21δ設(shè)大點(diǎn)其閉環(huán)特征多項(xiàng)式可配置為(s ω_c)^2其中ω_c稱為控制器帶寬??梢酝茖?dǎo)出β1 ω_c^2β2 2ω_cω_c直接決定了系統(tǒng)的響應(yīng)速度。ω_c越大響應(yīng)越快但控制量會(huì)越大也可能激發(fā)未建模的高頻動(dòng)態(tài)。通常ω_c應(yīng)小于ω_o的1/3到1/5以保證觀測(cè)器比控制器更快能及時(shí)提供準(zhǔn)確的擾動(dòng)估計(jì)。TD參數(shù)整定速度因子r決定了跟蹤設(shè)定值的最大加速度。理論上r可以很大但受限于執(zhí)行機(jī)構(gòu)物理極限和采樣頻率。步長(zhǎng)h就是控制周期。通常先設(shè)一個(gè)較大的r觀察v1的跟蹤曲線只要不超出執(zhí)行機(jī)構(gòu)能力且平滑即可。通過(guò)“帶寬法”我們將調(diào)參從8-9個(gè)減少到3個(gè)核心參數(shù)ω_o觀測(cè)器帶寬、ω_c控制器帶寬、b控制增益估計(jì)。r和h相對(duì)獨(dú)立。非線性參數(shù)α1, α2, δ在初步整定時(shí)可以先設(shè)為1即線性系統(tǒng)穩(wěn)定后再微調(diào)以優(yōu)化性能。α通常取0.5~0.75δ取采樣周期附近的值。3.2 工程實(shí)現(xiàn)要點(diǎn)與代碼結(jié)構(gòu)當(dāng)你動(dòng)手寫(xiě)那個(gè)ADRC算法m文件或C代碼時(shí)結(jié)構(gòu)應(yīng)該清晰。以下是一個(gè)面向?qū)ο蟮碾x散ADRC二階控制器偽代碼框架非常適合嵌入式實(shí)現(xiàn)classdef ADRC_2nd properties % TD 參數(shù) h, r; v1, v2; % TD狀態(tài) % ESO 參數(shù) beta01, beta02, beta03, b; z1, z2, z3; % ESO狀態(tài) % NLSEF 參數(shù) beta1, beta2, alpha1, alpha2, delta; % 其他 u_last; % 上一拍控制量用于補(bǔ)償 end methods function obj ADRC_2nd(h, r, wo, wc, b_est) % 初始化 obj.h h; obj.r r; obj.v1 0; obj.v2 0; % 帶寬法設(shè)置ESO增益 obj.beta01 3*wo; obj.beta02 3*wo^2; obj.beta03 wo^3; obj.b b_est; obj.z1 0; obj.z2 0; obj.z3 0; % 帶寬法設(shè)置控制器增益線性 obj.beta1 wc^2; obj.beta2 2*wc; obj.alpha1 1; obj.alpha2 1; % 先線性 obj.delta h; % 線性區(qū)間設(shè)為步長(zhǎng) obj.u_last 0; end function [u, states] update(obj, target, feedback) % 1. TD更新 [obj.v1, obj.v2] fhan(target, obj.v1, obj.v2, obj.h, obj.r); % 2. ESO更新 e_eso obj.z1 - feedback; obj.z1 obj.z1 obj.h * (obj.z2 - obj.beta01 * e_eso); obj.z2 obj.z2 obj.h * (obj.z3 - obj.beta02 * e_eso obj.b * obj.u_last); obj.z3 obj.z3 obj.h * (-obj.beta03 * e_eso); % 3. 計(jì)算誤差和非線性反饋 e1 obj.v1 - obj.z1; e2 obj.v2 - obj.z2; fe1 fal(e1, obj.alpha1, obj.delta); fe2 fal(e2, obj.alpha2, obj.delta); u0 obj.beta1 * fe1 obj.beta2 * fe2; % 4. 擾動(dòng)補(bǔ)償 u (u0 - obj.z3) / obj.b; % 5. 限幅和保存 u saturate(u, umin, umax); % 執(zhí)行器飽和 obj.u_last u; states [obj.v1, obj.v2, obj.z1, obj.z2, obj.z3]; end end end這個(gè)框架在每個(gè)控制周期被調(diào)用一次輸入當(dāng)前目標(biāo)值和系統(tǒng)反饋輸出控制量。清晰的狀態(tài)更新和分離的模塊便于調(diào)試和監(jiān)控。4. 在電機(jī)電流環(huán)中的應(yīng)用與調(diào)試實(shí)錄將ADRC應(yīng)用于永磁同步電機(jī)PMSM的電流環(huán)是檢驗(yàn)其性能的絕佳場(chǎng)景。電流環(huán)要求響應(yīng)快、抗擾強(qiáng)傳統(tǒng)的PI調(diào)節(jié)器在d-q軸解耦和反電動(dòng)勢(shì)擾動(dòng)上需要精細(xì)補(bǔ)償而ADRC可以將其視為總擾動(dòng)一并估計(jì)補(bǔ)償。4.1 模型建立與參數(shù)設(shè)計(jì)PMSM在同步旋轉(zhuǎn)坐標(biāo)系下的電壓方程忽略磁飽和等為u_d R*i_d L_d*di_d/dt - ω_e*L_q*i_qu_q R*i_q L_q*di_q/dt ω_e*(L_d*i_d ψ_f)其中ω_e是電角速度ψ_f是永磁體磁鏈??梢钥吹絨軸電壓方程中包含了反電動(dòng)勢(shì)項(xiàng)ω_e*ψ_f和耦合項(xiàng)ω_e*L_d*i_d這些都是PI控制器需要額外處理的前饋或解耦項(xiàng)。在ADRC框架下我們可以將每個(gè)電流環(huán)d軸和q軸獨(dú)立建模為一個(gè)一階系統(tǒng)因?yàn)殡妷悍匠瘫旧硎且浑A微分方程di/dt ( -R*i 耦合項(xiàng)/反電動(dòng)勢(shì) 擾動(dòng) b*u ) / L這里我們把-R*i/L作為部分已知?jiǎng)討B(tài)可以歸入b*u或作為已知擾動(dòng)補(bǔ)償而把耦合項(xiàng)、反電動(dòng)勢(shì)、參數(shù)變化、測(cè)量噪聲等所有其他因素都打包進(jìn)“總擾動(dòng)”f。于是模型簡(jiǎn)化為di/dt f b*u其中b可以粗略取為1/L或1/L_d,1/L_q。因此我們需要為每個(gè)電流環(huán)設(shè)計(jì)一個(gè)一階ADRC因?yàn)橄到y(tǒng)是一階的。一階ADRC比二階更簡(jiǎn)單TD安排電流指令的過(guò)渡過(guò)程輸出平滑的指令v1。ESO擴(kuò)張成一階觀測(cè)器估計(jì)電流z1和總擾動(dòng)z2。NLSEF計(jì)算誤差e1 v1 - z1并生成u0。補(bǔ)償u (u0 - z2) / b。參數(shù)整定依然用帶寬法。對(duì)于電流環(huán)響應(yīng)要求很高假設(shè)期望電流環(huán)帶寬為f_c 1000 Hz則ω_c 2*π*f_c。觀測(cè)器帶寬ω_o可取(3~5)*ω_c。b取1/L的標(biāo)稱值。4.2 調(diào)試步驟與問(wèn)題排查在實(shí)際電機(jī)平臺(tái)上調(diào)試ADRC電流環(huán)我建議遵循以下步驟準(zhǔn)備工作確保你的電流采樣、PWM驅(qū)動(dòng)、Clark/Park變換等基礎(chǔ)環(huán)節(jié)正確無(wú)誤。先用一個(gè)非常保守的PI控制器讓電機(jī)轉(zhuǎn)起來(lái)作為基準(zhǔn)。初始化與參數(shù)注入將一階ADRC參數(shù)寫(xiě)入代碼。開(kāi)始時(shí)將ω_c和ω_o設(shè)小比如對(duì)應(yīng)100Hz帶寬b值給準(zhǔn)NLSEF先設(shè)為線性α1。TD的r先設(shè)一個(gè)中等值。開(kāi)環(huán)測(cè)試ESO這是關(guān)鍵一步在電機(jī)靜止或低速空載下給一個(gè)很小的、恒定的電壓指令u同時(shí)讓ADRC算法運(yùn)行但不使用其輸出的u而是用你給定的那個(gè)小電壓。觀察ESO估計(jì)的電流z1是否跟蹤實(shí)際反饋電流i估計(jì)的擾動(dòng)z2是否穩(wěn)定在一個(gè)值附近。如果z1跟蹤良好說(shuō)明ESO基本工作正常。你可以故意改變一點(diǎn)b值看ESO的z2如何變化來(lái)補(bǔ)償這個(gè)建模誤差。閉環(huán)測(cè)試與帶寬提升將ADRC的輸出u接入系統(tǒng)形成閉環(huán)。給定一個(gè)小的階躍電流指令。逐步增大ω_c控制器帶寬觀察電流響應(yīng)速度。同時(shí)按比例增大ω_o保持ω_o 3ω_c。你會(huì)看到電流響應(yīng)越來(lái)越快。注意監(jiān)控控制量u即電壓指令確保沒(méi)有飽和。也要觀察估計(jì)的擾動(dòng)z2在負(fù)載突變時(shí)它應(yīng)該快速變化以抵消擾動(dòng)。引入非線性與抗擾測(cè)試當(dāng)線性ADRC工作穩(wěn)定后可以嘗試引入非線性fal函數(shù)。將α設(shè)為0.5或0.75δ設(shè)為幾個(gè)采樣周期的誤差值。這通常能進(jìn)一步平滑小誤差段的控制減少高頻噪聲。然后進(jìn)行抗擾測(cè)試突加負(fù)載、快速升降速對(duì)比ADRC和PI的電流跟蹤波形和恢復(fù)時(shí)間。常見(jiàn)問(wèn)題與排查表現(xiàn)象可能原因排查與解決思路系統(tǒng)發(fā)散、振蕩1.ω_o或ω_c過(guò)大超出系統(tǒng)有效帶寬。2. 參數(shù)b估計(jì)嚴(yán)重偏差。3. 控制量飽和未處理。1. 大幅降低ω_o和ω_c從很慢的響應(yīng)開(kāi)始調(diào)。2. 檢查b值符號(hào)和量級(jí)??赏ㄟ^(guò)開(kāi)環(huán)ESO測(cè)試給一個(gè)階躍u看z1的變化斜率斜率應(yīng)約等于b*u。3. 在輸出u后加入硬限幅并將限幅后的值反饋給ESO如上面?zhèn)未a的u_last這是關(guān)鍵ESO估計(jì)值z(mì)1有較大靜差1. ESO增益不足觀測(cè)器收斂慢。2. 測(cè)量反饋y有恒定偏差或噪聲過(guò)大。1. 適當(dāng)增大ω_o提高觀測(cè)器帶寬。2. 檢查電流采樣校準(zhǔn)和濾波。ESO本身有一定濾波作用但前端噪聲過(guò)大會(huì)影響估計(jì)精度。擾動(dòng)估計(jì)z2噪聲大1.ω_o過(guò)高放大了測(cè)量噪聲。2. 反饋信號(hào)y噪聲大。1. 降低ω_o在響應(yīng)速度和噪聲抑制間折衷。2. 對(duì)反饋信號(hào)y進(jìn)行一階低通濾波但需注意引入相位滯后?;蛘呖梢钥紤]使用降階ESO等變體。動(dòng)態(tài)響應(yīng)慢不如PI1.ω_c設(shè)置過(guò)低。2. TD的r過(guò)小指令過(guò)渡太慢。3. 非線性參數(shù)α太小或δ太大導(dǎo)致誤差增益始終很低。1. 在穩(wěn)定前提下逐步增大ω_c。2. 增大TD的r。3. 檢查fal函數(shù)輸出確保在動(dòng)態(tài)過(guò)程中e較大時(shí)非線性函數(shù)能輸出足夠大的值。可暫時(shí)切回線性α1對(duì)比。切換負(fù)載時(shí)電流恢復(fù)慢擾動(dòng)估計(jì)z2響應(yīng)不夠快。增大ω_o提高觀測(cè)器對(duì)擾動(dòng)變化的跟蹤速度。同時(shí)檢查b值是否準(zhǔn)確不準(zhǔn)確的b會(huì)降低補(bǔ)償效率。4.3 實(shí)測(cè)心得與進(jìn)階技巧經(jīng)過(guò)多個(gè)項(xiàng)目的實(shí)踐我總結(jié)出幾點(diǎn)心得“b”值不必精確ESO對(duì)b有很強(qiáng)的魯棒性。b的估計(jì)值在真實(shí)值的0.5到2倍范圍內(nèi)系統(tǒng)通常都能穩(wěn)定工作只是性能略有差異。這大大降低了工程應(yīng)用門(mén)檻。TD并非必須對(duì)于很多伺服系統(tǒng)指令本身變化并不劇烈或者對(duì)指令跟蹤的平滑性要求不高時(shí)可以省略TD直接用目標(biāo)指令作為v1其微分v2設(shè)為0。這能簡(jiǎn)化算法特別是在一階ADRC中。注意離散化與計(jì)算延時(shí)上面給出的ESO和TD公式都是歐拉離散化。在高帶寬或低采樣率下可能需要更高精度的離散化方法如雙線性變換。另外從采樣、計(jì)算到PWM更新產(chǎn)生的固有延時(shí)通常1-2個(gè)控制周期會(huì)影響高帶寬下的穩(wěn)定性必要時(shí)需要在ESO模型或控制律中考慮延時(shí)補(bǔ)償。從一階ADRC開(kāi)始很多物理系統(tǒng)如電流環(huán)、溫度控制本質(zhì)是一階的。從一階ADRC入手參數(shù)更少ω_o,ω_c,b調(diào)試更簡(jiǎn)單理解更深刻成功后再擴(kuò)展到二階位置/速度環(huán)。與現(xiàn)有框架融合你不需要完全拋棄現(xiàn)有的控制框架。例如可以在原有PI電流環(huán)的基礎(chǔ)上保留PI作為誤差反饋即u0的計(jì)算然后加上ESO進(jìn)行擾動(dòng)估計(jì)和補(bǔ)償形成一種“PI擾動(dòng)觀測(cè)器”的復(fù)合結(jié)構(gòu)這是一種平滑的遷移策略。ADRC的魅力在于它提供了一種統(tǒng)一、強(qiáng)大的框架來(lái)處理不確定性和擾動(dòng)。它不一定在所有場(chǎng)景下都碾壓PID但在模型不確定性強(qiáng)、擾動(dòng)頻繁的場(chǎng)合其優(yōu)勢(shì)非常明顯。調(diào)試的關(guān)鍵在于理解帶寬參數(shù)ω_o和ω_c的物理意義以及ESO那個(gè)“擾動(dòng)估計(jì)與補(bǔ)償”的核心動(dòng)作。當(dāng)你看到在負(fù)載突加時(shí)z2瞬間跳變并抵消了擾動(dòng)電流幾乎無(wú)靜差地恢復(fù)跟蹤那一刻你就會(huì)覺(jué)得之前所有的調(diào)試都是值得的。