一種基于收斂深度控制的嵌入式mpc控制方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及嵌入式控制領(lǐng)域,特別是涉及一種基于DSP的預(yù)測(cè)控制(MPC)框架,其 特點(diǎn)是帶有收斂深度控制,求解精度較高且求解速度較快。
【背景技術(shù)】
[0002] 近幾十年來(lái),模型預(yù)測(cè)控制(MPC)已經(jīng)在很多流程工業(yè)得以成功應(yīng)用。MPC的優(yōu)越 之處在于它能顯式地處理約束,并能很好地處理多變量的對(duì)象。但MPC現(xiàn)在的主要應(yīng)用還 局限于流程工業(yè)等控制周期較長(zhǎng)的慢速系統(tǒng)或是非常簡(jiǎn)單的動(dòng)態(tài)系統(tǒng)上。導(dǎo)致這一現(xiàn)象的 根本原因在于
[0003] MPC算法的實(shí)現(xiàn)平臺(tái)必須能在采樣周期內(nèi)求解一個(gè)約束優(yōu)化問(wèn)題,這對(duì)MPC控制 器的控制周期和計(jì)算資源都是一個(gè)很大的挑戰(zhàn),尤其是在一些MPC控制器受限的嵌入式系 統(tǒng)中。
[0004] 隨著MPC應(yīng)用場(chǎng)合的多樣化發(fā)展,人們對(duì)MPC的特性也提出了新的要求。工業(yè)過(guò) 程控制往往使用工控機(jī),雖然能實(shí)現(xiàn)MPC中數(shù)十甚至數(shù)百個(gè)變量的在線優(yōu)化,但成本較高。 而在很多領(lǐng)域和行業(yè)內(nèi),廣泛存在具有快速動(dòng)態(tài)特性的系統(tǒng)或設(shè)備,例如精密機(jī)電系統(tǒng)、汽 車運(yùn)動(dòng)控制、微型醫(yī)療設(shè)備等等。相比動(dòng)態(tài)特性緩慢變化的化工、石化生產(chǎn)過(guò)程,這些快速 動(dòng)態(tài)過(guò)程在實(shí)時(shí)性方面有非常高的要求(控制動(dòng)作頻率需要在IO-IOOHz以上),并且往往 在MPC控制器的實(shí)現(xiàn)方面有更為苛刻的限制(體積、功耗、計(jì)算資源等)。要求MPC控制器 能在很短的時(shí)間內(nèi)優(yōu)化少數(shù)幾個(gè)變量,采用成本高,功能強(qiáng)的工控機(jī)顯然不是最好的選擇, 這時(shí)嵌入式MPC控制器因其獨(dú)有的低成本、體積小巧、實(shí)時(shí)性等優(yōu)點(diǎn),逐漸成為新的研宄熱 點(diǎn)之一O
[0005] 現(xiàn)有的關(guān)于嵌入式平臺(tái)上的研宄主要集中在對(duì)于MPC中每周期的二次規(guī)劃命題 (QP命題)求解的研宄,因?yàn)镼P命題求解的時(shí)間占據(jù)了每周期MPC求解的絕大部分時(shí)間。 而且QP命題求解的方法主要分為離線方法和在線方法兩種。離線方法主要是顯式預(yù)測(cè)控 制(EMPC),即通過(guò)離線處理可以使得在線的計(jì)算量?jī)H限于線性函數(shù)的計(jì)算。在線的QP命題 求解方法主要包括內(nèi)點(diǎn)法和積極集法,有很多研宄著眼于對(duì)經(jīng)典的QP命題求解方法進(jìn)行 裁剪并結(jié)合MPC的一些特點(diǎn)進(jìn)行改進(jìn)。
[0006] 在硬件平臺(tái)方面,之前很多研宄都著眼于FPGA,因?yàn)镕PGA的計(jì)算能力更強(qiáng),但同 時(shí)其成本也相對(duì)更高。近年來(lái)隨著嵌入式硬件發(fā)展,DSP、ARM等計(jì)算平臺(tái)的計(jì)算能力也得 到了很大提高,同時(shí)這些硬件平臺(tái)也能維持相對(duì)低廉的價(jià)格。
[0007] 在MPC算法的實(shí)際應(yīng)用中,優(yōu)化算法的初始點(diǎn)的設(shè)計(jì)以及迭代終止條件的設(shè)計(jì)對(duì) 于優(yōu)化求解的速度和精度都有著很大的影響。一些關(guān)注初始點(diǎn)設(shè)計(jì)的研宄采用一種熱啟動(dòng) 的方法,即對(duì)上一次求解得到的解進(jìn)行保存作為本次求解的初始值,這一方面在實(shí)際中有 著不錯(cuò)的效果。與此同時(shí),關(guān)于在嵌入式MPC的研宄中卻幾乎沒(méi)有對(duì)于迭代終止準(zhǔn)則的研 宄。
【發(fā)明內(nèi)容】
[0008] 基于上面所述的一些研宄熱點(diǎn)和問(wèn)題,本發(fā)明提出一種基于收斂深度控制的嵌入 式MPC控制方法,可以在保證控制器求解精度的情況下,大幅度加快求解速度。
[0009] 本發(fā)明通過(guò)以下技術(shù)方案予以實(shí)現(xiàn):
[0010] (1)根據(jù)被控對(duì)象的模型和設(shè)定值曲線,對(duì)MPC控制器的參數(shù)進(jìn)行離線計(jì)算,離線 計(jì)算出在線求解中要用的參數(shù)即:被控變量加權(quán)陣Q,控制增量加權(quán)矩陣R,控制時(shí)域M,預(yù) 測(cè)時(shí)域P,預(yù)測(cè)方程中的系數(shù)F*?,以及以QP命題中的系數(shù)G,c,Q,《,把離線計(jì)算得 到的參數(shù)加載到DSP的內(nèi)存中。上述參數(shù)的具體計(jì)算方法將在【具體實(shí)施方式】中予以詳細(xì)說(shuō) 明。
[0011] ⑵根據(jù)步驟⑴所得的參數(shù),在每個(gè)控制周期調(diào)用一次MPC_online的函數(shù),完 成DSP上MPC在線求解的計(jì)算,并在求解結(jié)束后將控制變量u輸出;所述的MPC_online的 函數(shù)的計(jì)算依次包括狀態(tài)更新,約束檢查,熱啟動(dòng),QP迭代求解,收斂深度控制:
[0012] (2. 1)狀態(tài)更新:
[0013] 采用直接測(cè)量可測(cè)狀態(tài)的方法或者引入狀態(tài)觀測(cè)器對(duì)不可測(cè)的狀態(tài)進(jìn)行估計(jì)。對(duì) 于可以測(cè)量的狀態(tài),直接用測(cè)量得到的狀態(tài)值對(duì)當(dāng)前時(shí)刻的狀態(tài)進(jìn)行更新;對(duì)于不可測(cè)的 狀態(tài),引入狀態(tài)觀測(cè)器利用被控對(duì)象的輸入輸出數(shù)據(jù)對(duì)狀態(tài)進(jìn)行觀測(cè),然后采用觀測(cè)值對(duì) 當(dāng)前時(shí)刻的狀態(tài)進(jìn)行更新。
[0014] 所述的狀態(tài)觀測(cè)器優(yōu)選為Kalman濾波器。
[0015] (2. 2)約束檢查:
[0016] 在對(duì)被控對(duì)象的QP命題進(jìn)行迭代求解前,求解當(dāng)前QP命題的一個(gè)無(wú)約束命題,并 檢查該解是否滿足當(dāng)前QP命題的約束條件,如果滿足約束就可以跳過(guò)熱啟動(dòng)與迭代求解 的過(guò)程直接將該解輸出,如果不滿足約束就進(jìn)入熱啟動(dòng)與迭代求解的過(guò)程。因?yàn)闊o(wú)約束命 題的求解可以通過(guò)解析的表達(dá)式直接求得,因此在滿足約束的情況下直接輸出解可以節(jié)省 大量時(shí)間。
[0017] (2. 3)熱啟動(dòng):
[0018] 采用上一周期QP命題的解作為當(dāng)前QP命題的初始點(diǎn)。如果無(wú)約束的解不滿足當(dāng) 前QP命題的約束,就要進(jìn)行迭代求解來(lái)得到QP命題的解。而用于迭代求解的內(nèi)點(diǎn)法需要 一組初始點(diǎn),這里采用一種熱啟動(dòng)的方法確定初始點(diǎn),因?yàn)镸PC采用的是滾動(dòng)優(yōu)化的策略, 即在每個(gè)控制周期都要求解一個(gè)類似的QP命題,因此可以將上一周期的QP命題的解作為 初始點(diǎn)。這種熱啟動(dòng)的方法可以在一定程度上加快求解的進(jìn)程。
[0019] (2. 4)QP迭代求解
[0020] 應(yīng)用內(nèi)點(diǎn)法進(jìn)行迭代求解,計(jì)算當(dāng)前QP命題的解。MPC中QP命題求解的核心內(nèi)容 是迭代求解,即通過(guò)內(nèi)點(diǎn)法將當(dāng)前QP命題的最優(yōu)性條件(即為KKT條件)轉(zhuǎn)化為對(duì)一系列 線性方程組的迭代求解。在每次迭代中求解一次線性方程組,求得的解即為當(dāng)前的迭代點(diǎn)。
[0021] (2. 5)收斂深度控制
[0022] 計(jì)算步驟(2. 4)所述迭代點(diǎn)的收斂深度,判斷當(dāng)前迭代點(diǎn)是否滿足收斂深度閾 值的要求,如果滿足則終止迭代,輸出結(jié)果;如果不滿足則進(jìn)入下一次迭代,即重復(fù)步驟 (2. 4) 〇
[0023] 傳統(tǒng)的收斂準(zhǔn)則只能給出收斂或者未收斂這樣剛性的結(jié)論,而不能對(duì)當(dāng)前迭代點(diǎn) 的收斂程度給出估計(jì),因此往往會(huì)使得迭代過(guò)程進(jìn)入一種求解的成本遠(yuǎn)大于解的改進(jìn)程度 的狀況。本發(fā)明引入收斂深度控制作為優(yōu)化算法的迭代終止準(zhǔn)則,可以估計(jì)出當(dāng)前迭代點(diǎn) 的收斂程度,在迭代過(guò)程陷入迭代次數(shù)過(guò)多而解的改進(jìn)不明顯的情況下提前結(jié)束迭代,保 證MPC控制器的實(shí)時(shí)性。
[0024] (3)從步驟⑵控制器輸出的QP命題的解中選取當(dāng)前時(shí)刻的控制增量,然后將 當(dāng)前時(shí)刻的控制增量與之前時(shí)刻的控制量疊加得到當(dāng)前時(shí)刻的控制量u(k),將該控制量 u(k)輸出到被控對(duì)象上,可以得到被控對(duì)象的輸出值y(k);
[0025] 若被控對(duì)象的狀態(tài)為可測(cè),還可以得到被控對(duì)象的狀態(tài)變量X(k),則將y(k)和 x(k)構(gòu)造下一個(gè)控制周期的QP命題,從而進(jìn)入下一個(gè)控制周期的計(jì)算;若被控對(duì)象的狀態(tài) 為不可測(cè),則直接根據(jù)y(k)構(gòu)造下一個(gè)控制周期的QP命題,從而進(jìn)入下一個(gè)控制周期的計(jì) 算,從而實(shí)現(xiàn)嵌入式平臺(tái)上對(duì)快速對(duì)象的MPC控制過(guò)程。
[0026] 本發(fā)明的有益效果是:
[0027] 本發(fā)明引入收斂深度控制作為QP迭代求解中的迭代終止準(zhǔn)則,可以在QP迭代的 進(jìn)展不明顯時(shí)提前終止迭代,減少Q(mào)P命題求解所需要的時(shí)間。當(dāng)QP命題的無(wú)約束解恰好 是QP命題的解時(shí),通過(guò)引入約束檢查直接輸出QP命題的解,可以在控制器實(shí)際應(yīng)用中提高 計(jì)算速度。本發(fā)明引入熱啟動(dòng),將前一周期QP命題的解作為本周期求解的初始值,可以在 實(shí)際求解時(shí)進(jìn)一步減少迭代次數(shù),提高求解速度。從整體而言,這種方法可以提高M(jìn)PC控制 器的求解速度,提高M(jìn)PC的控制頻率,使得MPC控制器可以在嵌入式平臺(tái)上應(yīng)用到動(dòng)態(tài)過(guò)程 較快的對(duì)象上,而不是僅限在慢速對(duì)象上。
【附圖說(shuō)明】
[0028] 圖1是基于收斂深度控制的嵌入式MPC控制方法流程圖;
[0029] 圖2是傳統(tǒng)的迭代終止準(zhǔn)則中所采用的剛性判斷方法結(jié)果圖;
[0030] 圖3是通過(guò)Sigmoid函數(shù)把傳統(tǒng)的剛性的迭代終止準(zhǔn)則柔化為彈性的可控收斂深 度的準(zhǔn)則結(jié)果圖;
[0031] 圖4是采用收斂深度控制判斷迭代點(diǎn)收斂情況的流程圖;
[0032] 圖5是硬件在環(huán)(HIL)的說(shuō)明圖;
[0033] 圖6是基于傳統(tǒng)迭代終止準(zhǔn)則的控制效果和求解時(shí)間的示意圖;
[0034] 圖7是基于收斂深度控制的控制效果和求解時(shí)間的示意圖。
【具體實(shí)施方式】
[0035] 如圖1所示,一種基于收斂深度控制的嵌入式MPC控制方法,實(shí)施步驟如下:
[0036] (1)離線計(jì)算和設(shè)定MPC控制器的參數(shù)
[0037] 給定MPC控制器的預(yù)測(cè)時(shí)域P,控制時(shí)域M,誤差加權(quán)系數(shù)矩陣Q,控制增量加權(quán)系 數(shù)矩陣R。根據(jù)被控對(duì)象的模型,對(duì)MPC控制器內(nèi)的控制變量個(gè)數(shù)nu,被控變量個(gè)數(shù)ny,狀 態(tài)變量個(gè)數(shù)nx等參數(shù)進(jìn)行初始化。這里我們考慮一個(gè)用狀態(tài)空間模型描述的對(duì)象,即:
[0038] X