一、合理的目標,合理的結果
只有按合理的目標執行,才可能有合理的結果。例如一個小孩最多只能出20公斤的力,但強要他搬運50公斤的東西,顯然搬不動。又例如工廠生產的電機,額定最高速度只有3000轉/分鐘,通過弱磁算法增速10%到3300轉/分鐘,是可以實現的,但要翻倍到6000轉/分鐘,肯定實現不了的。
圖1是無刷直流電機基于ADRC的無感FOC速度控制框圖。雖然ADRC抗擾能力一流,但如果目標和實際能力差別太大,它也是無能為力的。
圖1 ADRC速度控制
圖2顯示電機的加速過程。黃線是目標速度,它的加速度、最高速都非常大。紅線是實際速度,它已實時地跟進目標速度,但無奈能力有限,加速開始就明顯滯后目標值,最終的速度也不夠高。粉線是驅動電流(電流越大加速度越大),電流在加速階段一直保持最大值,說明驅動器已經盡力了,用了最大的電流,但電機的加速度還是跟不上。如果要加速度上去,只能更換驅動器或換電機了。
圖2 目標不合理
圖3是讓電機勻速運行的波形圖。黃線是目標速度,紅線是實際速度。實際速度在目標速度附近明顯波動,無論怎樣調節ADRC參數,波動無法減弱,百思不得其解!
圖3 速度震動1
后來,將波形放大觀看,如圖4。發現目標速度黃線在大概2%的范圍內波動,實際速度紅線跟著這個波動。但是這個是無感FOC系統,電機速度的測量精度有限,硬件上實在沒辦法做到2%以內的測量誤差。目標速度波動了一點,ADRC就跟著調節一點,但輸出控制量太大了,導致電機速度在大范圍內波動。
圖4 速度震動2
那再來看,2%的目標速度波動,是誰定的?有必要嗎?產品要求速度按10%調節即可,2%顯然沒必要!2%的波動怎樣來的?分析一下系統,發現是調速的旋鈕電位器引起,電阻值有輕微測量波動!
二、過濾不合理的目標
上面說的2%目標波動,是不合理的,ADRC反應速度快,會老老實實的跟著目標調節速度,但系統的測量誤差大,ADRC有心無力,實際速度跟著波動。既然不合理,那我們就濾除不合理的目標,給ADRC制定合理的目標。
在周立功ADRC軟件庫中,第一步就是用軟件低通濾波器,濾除不合理的目標值。軟件低通濾波器的設計,我們先從模擬電路分析。圖5是最簡單的RC一階濾波器,e(t)和u(t)分別是濾波器的輸入電壓和輸出電壓,電阻的阻值是R,電容的容量是C。
圖5 RC一階濾波
根據電學原理,列出公式1。
公式1
假設MCU每隔一個采樣周期TS進行一次計算,在第k-1個采樣周期輸出電壓為u(k-1),在第k個采樣周期輸出電壓為u(k),輸入電壓為e(k),如公式2。
公式2
根據電學原理,濾波器的截止頻率fc-和RC的關系是:代入公式2,整理得公式3,其中,使用時根據截止頻率、采樣周期等調節這兩個參數即可。
公式3
濾波后平滑很多,如圖6所示,目標速度和實際速度都在0.5%內波動,噪聲也降低2db!
圖6 速度穩定2
“假作真時真亦假,無為有處有還無”。給定的目標往往是“真假”混在一起,無法區分,但系統自身的控制能力是可以預知的,ADRC會根據自身的控制能力,過濾掉無法實現的目標,以免后面越控制越亂。
下一期,我們將繼續探討ADRC的技術原理,敬請關注!
最后一起欣賞我們在研的基于NXP i.MX RT1050的伺服電機板。i.MX RT1050 是業界首款跨界處理器,兼具應用處理器的高性能與高度集成,以及微控制器的易用性和實時功能。i.MX RT1050 基于 ARM Cortex-M7 內核,運行頻率 600 MHz。
圖7 RT1050伺服電機板
-
NXP
+關注
關注
60文章
1267瀏覽量
183390 -
無刷直流電機
+關注
關注
60文章
686瀏覽量
46019 -
FOC
+關注
關注
20文章
320瀏覽量
42672
原文標題:自抗擾控制02: ADRC如何避免執行錯誤命令?
文章出處:【微信號:Zlgmcu7890,微信公眾號:周立功單片機】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論