陳 宇,劉 雪,陳 晶
(華中科技大學(xué) 電氣與電子工程學(xué)院,湖北 武漢 430074)
模型預(yù)測控制(MPC)是在已知系統(tǒng)模型的基礎(chǔ)上求解一個最優(yōu)控制,根據(jù)計算方法的不同可劃分為在線MPC 和顯式MPC。在線MPC 是在控制過程中進行最優(yōu)控制變量的求解,但由于計算量大,不適用于控制周期極短的電力電子變換器。與在線MPC 相比,顯式MPC首先離線計算出優(yōu)化控制規(guī)律的集合,再將該集合存儲于控制器中,供在線查詢與計算使用,因而有效減少了在線求解時間[1]。
顯式MPC 的控制律集合是由大量參數(shù)表述的。實時控制時,首先需要根據(jù)實時狀態(tài)反饋查找合適的控制規(guī)律,再計算出控制參數(shù),查找和計算時間仍然較長。為此,通常事先將連續(xù)的狀態(tài)空間進行離散,將離散值代入相應(yīng)的控制律中,計算得到對應(yīng)的控制變量,從而構(gòu)成以狀態(tài)空間為輸入、控制變量為輸出的表格。將該表格存儲在控制器中,就可根據(jù)反饋狀態(tài)直接查詢得到控制變量[2?3]。
顯式MPC 在負載投切等工作點小范圍變化工況下控制性能較好,但在啟動過程等工作點大范圍變化工況下控制性能不佳。為解決這一問題,本文設(shè)計了一種在啟動過程中對表格進行迭代修改的方法。該方法借鑒了迭代學(xué)習(xí)的思想[4?9],即首先讓電力電子變換器在已有控制規(guī)律下運行一輪,將運行一輪過后的波形與期望波形進行比較,對控制規(guī)律進行若干修正。這一過程不斷迭代進行,使實際波形與期望波形的誤差不斷減小。
本文以Buck 變換器[10?11]為例展示顯式MPC 的在線迭代學(xué)習(xí)策略。該策略在Buck 變換器啟動過程中不斷對控制表進行修改,在不降低負載投切控制性能的同時,有效提升了啟動過程的控制性能。仿真結(jié)果亦證明了所提方法的有效性。
Buck 變換器如圖1 所示,其中,S,D 分別為開關(guān)管和續(xù)流二極管;L,C和Ro分別為電感、電容和負載電阻。當(dāng)開關(guān)管S 導(dǎo)通時,電感電流iL線性上升,電能經(jīng)電感L供給電容C與負載電阻Ro,同時電感L儲存能量;當(dāng)開關(guān)管S 關(guān)斷時,電感電流iL經(jīng)D 續(xù)流構(gòu)成回路,iL線性下降,電感L中儲存的磁能轉(zhuǎn)化為電能繼續(xù)供給電容C與負載電阻Ro。為便于下文論述與討論,Buck 變換器的參數(shù)如表1 所示。
圖1 Buck 變換器
表1 Buck 變換器參數(shù)
為展開顯式MPC 設(shè)計,需首先得到Buck 變換器的狀態(tài)空間平均模型:
式中vo為輸出電壓。
本文中顯式MPC 的控制目標是將vo在LPH步內(nèi)調(diào)節(jié)到參考電壓vref,首先定義目標函數(shù):
式中:LPH為預(yù)測的步長,文中設(shè)定LPH=20,即希望vo可在20 步以內(nèi)達到給定值;vo(k+l|k)表示第k步采樣值下,基于一組輸入量所計算的第k+l個狀態(tài)量,在本文的設(shè)計中,通過試探法將加權(quán)系數(shù)[12]設(shè)置為q=100。
此外,顯式MPC 還允許定義狀態(tài)變量vo和iL,以及控制參數(shù)dBuck的相關(guān)約束,使其不超過其物理限制,例如令:
式中:ILmax為使電感磁芯飽和的電流值。本文中設(shè)為ILmax=10 A;Vmax的設(shè)置是為了避免輸出電壓超調(diào),本文中設(shè)為Vmax=30 V。
為使成本函數(shù)J的值最小,借助多參數(shù)線性規(guī)劃工具箱(MPT)[13],可方便地離線生成所需的控制律,在此不詳細展開敘述。控制律會將狀態(tài)空間分割成圖2 所示的大量區(qū)域,當(dāng)狀態(tài)變量vo和iL落入該區(qū)域時,根據(jù)對應(yīng)區(qū)域的增益矩陣與偏置矩陣計算得到dBuck。
式中:Ar和Br為第r個區(qū)域的增益矩陣和偏置矩陣,由MPT 生成。
圖2 MPC 控制律的區(qū)域劃分
按式(6)進行計算需要大量檢索與計算時間。為簡化計算,在實際應(yīng)用時通常將vo和iL均勻劃分成N等份(在本文中取N=60),則整個求解區(qū)域被劃分成N×N的區(qū)間,取每個區(qū)間中點的vo和iL代入式(6)計算出相應(yīng)的dBuck,從而將求解區(qū)域離散成一張60×60 的控制表,當(dāng)狀態(tài)變量vo和iL落入某區(qū)間時,即用該dBuck實施控制。存儲該表需要3 600 個存儲單元,但免去了查找區(qū)域,取出增益矩陣、偏置矩陣以及進行計算的時間,實時性得到極大提升。為便于下文進一步討論,以vo為x軸,iL為y軸,dBuck為z軸,將離散后的表格繪制成如圖3 所示的三維圖,由圖3 可直觀地看出,在不同的(vo,iL)組合下,查找得到的dBuck均不相同,且由dBuck組成的曲面基本光滑,保證了調(diào)節(jié)過程的連續(xù)性。
依上述設(shè)計,可得圖4 虛線框所示的MPC 系統(tǒng)。在每一個開關(guān)周期內(nèi),控制系統(tǒng)均對vo和iL進行采樣,經(jīng)AD 轉(zhuǎn)換單元送入控制器,在控制器里依圖3 控制表的x軸與y軸進行定位,取出對應(yīng)z軸的占空比dBuck,經(jīng)PWM 單元產(chǎn)生開關(guān)管S 的驅(qū)動信號,形成閉環(huán)反饋。
圖3 離散化的控制表
圖4 Buck 變換器控制示意圖
本文提出的在線迭代學(xué)習(xí)策略可在已有顯式MPC控制系統(tǒng)中增加,如圖4 所示。首先,在Buck 變換器啟動過程中記錄vo和iL的運動軌跡;其次,以vo軌跡逼近期望軌跡vref為目標,將啟動過程所經(jīng)過的運動軌跡對應(yīng)的占空比dBuck進行修改;最后,將修改過的控制表用卷積運算進行平滑處理,并將平滑處理后的控制表用于下一輪迭代。下面將對上述過程進行詳細論述。
圖5 給出了Buck 變換器在MPC 下的啟動波形。其中,圖5a)為vo隨時間變化的波形,由圖可見啟動過程較慢,且有超調(diào);圖5b)為iL隨時間變化的波形;圖5c)為vo和iL的運行軌跡,即圖3 控制表中的x?y平面。在Buck變換器啟動前,vo和iL均為0,處于圖中的A點,依該狀態(tài)查表,可得到對應(yīng)的占空比dBuck,該占空比作用于Buck變換器上,使vo和iL產(chǎn)生變化,如此循環(huán)直到Buck 變換器的輸出電壓vo達到vref。本設(shè)計中,從A點到B點,共計記錄M=90 個點的運行軌跡。
圖5 Buck 變換器的運行軌跡
定義一個迭代周期內(nèi)輸出誤差的總和E:
式中:vref[k]和vo[k]為第k個開關(guān)周期的期望電壓和輸出電壓;以E為基礎(chǔ)修改運行軌跡對應(yīng)的占空比dBuck,修改原則是使E盡可能小。首先定義懲罰函數(shù)Q[k]:
式(8)的意義是:若當(dāng)前vo[k]出現(xiàn)超調(diào),即高于vref[k]時,Q[k]給出一定懲罰量,強度由超調(diào)量和kp1調(diào)整系數(shù)給出;否則Q[k]=0。基于Q[k]設(shè)計占空比dBuck的修改法則:
由于電路具有遲滯性,所以k拍的輸出,是由k-1 拍的占空比決定的。式(9)右邊第一項dBuck[k-1]為上一拍(即iL[k-1],vo[k-1])對應(yīng)的占空比。第二項加上E乘以調(diào)整系數(shù)kp2和(M-k)后,對經(jīng)過軌跡上的占空比進行調(diào)整,以加快動態(tài)響應(yīng)。(M-k)的作用是在啟動初始階段k較小時使dBuck增加的幅度較大,從而使vo上升的速度較快,而隨著k增大,使dBuck的增加幅度變小,以便vo可更快趨于穩(wěn)定。第三項為懲罰函數(shù),可在超調(diào)出現(xiàn)前及時減小占空比,抑制超調(diào)的出現(xiàn)。按式(9)修改一輪后的控制表如圖6 所示。在曲面上突起的點,即為運行軌跡被修改過的dBuck值[14]。
圖6 修改運行軌跡后的控制表
圖6 中可見,本輪迭代修改了此次運行軌跡上的占空比。在下一次啟動過程中,由于第k-1 拍占空比已修改,將造成k拍運行軌跡的改變。因此,新運行軌跡與原運行軌跡必將有所偏差。為將本次迭代學(xué)習(xí)的效果擴大到控制表中本次運行軌跡附近的位置,以對下次運行起作用,需對控制表進行平滑處理,為此對控制表進行二維卷積。卷積定義為:
式中:A為卷積核;B為被卷積的二維變量(即控制表);p和q會遍歷所有可得到的A(p,q)和B(j-p+1,i-q+1)合法下標的值?,F(xiàn)以式(11)為例展示卷積的效果。設(shè)卷積核A中的所有元素均為,B中僅有對角線元素為1,其他元素為0。將A和B的卷積結(jié)果與B相比可見,卷積結(jié)果的對角線附近的數(shù)值都有所增大,即對二維變量進行了空間上的平滑處理[15]。
在本文的設(shè)計中,A為一個5×5 的二維變量,元素的總加權(quán)系數(shù)為1,B為上述修改過的控制表。用A對該控制表做卷積后,所得的控制表如圖7 所示,可見控制表已經(jīng)得到了平滑處理。
圖7 經(jīng)卷積運算后的控制表
在完成本次迭代后,將更新后的控制表重新用于Buck 變換器的控制中,得到下次啟動過程的運行軌跡,如圖8 所示。由圖8a)可見:vo的啟動過程較上一輪更快,超調(diào)量也更??;由圖8b)可知,對應(yīng)的iL也與上一輪所有不同;由圖8c)可見:啟動過程的運行軌跡亦與上一輪有所不同。由于對控制表進行了卷積平滑,新的運行軌跡上的對應(yīng)占空比亦已被修改,因此可保證連續(xù)平穩(wěn)的運行。
圖8 迭代后的運行軌跡
本文通過Matlab 軟件仿真,對基于迭代學(xué)習(xí)的Buck 變換器進行了仿真驗證。仿真參數(shù)與表1 一致。
在迭代開始時,首先將控制表應(yīng)用于Buck 變換器的控制中,得到迭代學(xué)習(xí)的過程如圖9 所示,起始時間為0,輸出電壓vo從0 開始啟動并穩(wěn)定在24 V,然后將dBuck置0,模擬電力電子變換器停機,后續(xù)電壓從24 V 下跌并穩(wěn)定至0。在啟動過程中對控制表進行修改并不斷迭代,從而得到圖9 中電壓不斷上升和下跌的波形。
由圖9 可看出,在第1 個迭代周期內(nèi),vo超調(diào)較大,此時由于懲罰函數(shù)Q[k]的作用,在第2 個迭代周期超調(diào)已經(jīng)有所減小,至第5 個迭代周期超調(diào)已基本消失,在控制表的三維圖像里表現(xiàn)為曲面內(nèi)有一處凹陷。同時,kp2(M-k)E項使經(jīng)過軌跡上的dBuck增大,在圖9 中表現(xiàn)為曲面內(nèi)運行軌跡經(jīng)過的地方凸起,其中,第11 個迭代周期的凸起程度較第2,5,8 個迭代周期都有所增加。由于(M-k)的作用,軌跡起始階段凸起較高,后續(xù)凸起較低。
若迭代學(xué)習(xí)過程中超調(diào)再次出現(xiàn),則Q[k]將重新發(fā)揮作用將其消除。最終E值達到動態(tài)平衡,迭代結(jié)束。
圖9 迭代學(xué)習(xí)的過程
迭代學(xué)習(xí)完成后的啟動控制性能如圖10 所示,相比于未修改前的響應(yīng)曲線,輸出電壓的暫態(tài)響應(yīng)明顯增加且基本上無超調(diào)。圖11 給出Buck 變換器穩(wěn)定運行后從半載突加滿載的波形,可見采用文中所提出的迭代學(xué)習(xí)方法并不會對負載投切的控制性能造成影響。
圖10 迭代前后啟動過程的vo曲線
本文提出一種顯式MPC 控制表的迭代學(xué)習(xí)方法,以提高啟動過程的控制性能。以Buck 變換器為例,首先對Buck 變換器進行數(shù)學(xué)建模,生成相應(yīng)控制表,再給出啟動過程中控制表的修改方法,最后通過仿真驗證了方法的準確性。從仿真中可見,在迭代學(xué)習(xí)的過程中,Buck 變換器啟動過程的動態(tài)響應(yīng)不斷加快,同時超調(diào)也得到了有效抑制,并且該方法可推廣于各類采用了顯式MPC 的電力電子變換器中。
圖11 迭代前后負載投切的vo曲線