劉煒 恒慶海 李慶奎
北京信息科技大學(xué)自動(dòng)化學(xué)院,北京 100101
供應(yīng)鏈系統(tǒng)是由供應(yīng)商、制造商、分銷商和零售商組成的復(fù)雜網(wǎng)絡(luò)系統(tǒng),具有原材料采購(gòu)、材料轉(zhuǎn)化為中間產(chǎn)品和成品以及成品分銷的功能,并通過(guò)控制信息流和物流[1]傳遞給客戶。目前,大多數(shù)的動(dòng)態(tài)供應(yīng)鏈系統(tǒng)采用機(jī)理建模[2]的方式,利用物料平衡等原理對(duì)供應(yīng)鏈系統(tǒng)進(jìn)行建模,然后從控制工程的角度設(shè)計(jì)控制策略,改善系統(tǒng)的性能,抑制不確定需求對(duì)供應(yīng)鏈系統(tǒng)的影響,以達(dá)到更加高效的供應(yīng)鏈管理和決策。事實(shí)上,復(fù)雜供應(yīng)鏈系統(tǒng)由于節(jié)點(diǎn)多,運(yùn)行時(shí)間尺度不一,以及模態(tài)混雜,機(jī)理建模通常不易實(shí)現(xiàn),而利用供應(yīng)鏈運(yùn)作過(guò)程中產(chǎn)生的數(shù)據(jù)進(jìn)行建模比機(jī)理建模更加貼近實(shí)際。在無(wú)法獲取系統(tǒng)內(nèi)部參數(shù)的條件下,子空間辨識(shí)方法可以利用輸入輸出數(shù)據(jù)獲得預(yù)測(cè)矩陣,這種直接數(shù)據(jù)驅(qū)動(dòng)方法在學(xué)術(shù)界和工業(yè)界已有使用,WOODLEY B R等人[3]將該子空間辨識(shí)方法進(jìn)行擴(kuò)展并應(yīng)用到了H∞控制中,其設(shè)計(jì)方法更方便擴(kuò)展到自適應(yīng)控制算法。GHASEMI H等人[4]的研究表明,子空間預(yù)估器可以對(duì)系統(tǒng)未來(lái)狀態(tài)進(jìn)行預(yù)測(cè),滿足預(yù)測(cè)控制的要求。KADALI R等人[5]提出了利用預(yù)估器設(shè)計(jì)預(yù)測(cè)控制的算法。另一方面,對(duì)于供應(yīng)鏈系統(tǒng)為了降低企業(yè)成本,優(yōu)化生產(chǎn)策略,在應(yīng)對(duì)客戶需求的不確定性下出現(xiàn)的庫(kù)存積壓以及供應(yīng)鏈中生產(chǎn)環(huán)節(jié)的變更造成的庫(kù)存波動(dòng),許多學(xué)者[6-7]采用預(yù)測(cè)控制策略進(jìn)行生產(chǎn)庫(kù)存的決策。
預(yù)測(cè)控制來(lái)源于工業(yè)應(yīng)用[8],在化工、航天等領(lǐng)域均有涉及。由于其對(duì)建模精確程度要求不高,并且在控制周期內(nèi)采用滾動(dòng)優(yōu)化策略,故對(duì)于系統(tǒng)模型失配和干擾抑制的性能較好,所以在供應(yīng)鏈系統(tǒng)中也常使用。BOSE S等人[9]研究了預(yù)測(cè)控制在供應(yīng)鏈系統(tǒng)中的應(yīng)用,結(jié)果表明,這種滾動(dòng)優(yōu)化的策略在供應(yīng)鏈系統(tǒng)的優(yōu)化決策中有突出的優(yōu)勢(shì)。PEREA-LóPEZ E等人[10]采用模型預(yù)測(cè)控制策略,尋找多產(chǎn)品供應(yīng)鏈中利潤(rùn)最大化的最優(yōu)決策變量,在集中管理和分散管理方式下均取得了較好的效果。
傳統(tǒng)動(dòng)態(tài)供應(yīng)鏈系統(tǒng)的研究一般是在基于機(jī)理建模下討論末端不確定用戶需求對(duì)供應(yīng)鏈系統(tǒng)各級(jí)節(jié)點(diǎn)的影響[11-12]。然而,由于突發(fā)事件或各種因素的影響造成供應(yīng)鏈系統(tǒng)變更是不可避免的。研究基于變更設(shè)計(jì)的供應(yīng)鏈系統(tǒng)分析、控制及預(yù)測(cè)問(wèn)題,具有重要的現(xiàn)實(shí)意義,尤其在新冠疫情及貿(mào)易爭(zhēng)端背景下,全球供應(yīng)鏈系統(tǒng)受到重要影響,有些處于中斷或阻塞狀態(tài),對(duì)經(jīng)濟(jì)平穩(wěn)運(yùn)行產(chǎn)生巨大影響。眾多研究者從不同角度開(kāi)展相關(guān)研究,如:QI X等人[13]研究了靜態(tài)方式下存在需求中斷時(shí)供應(yīng)鏈協(xié)調(diào)的條件;HEARNSHAW E J S等人[14]的研究表明,供應(yīng)鏈系統(tǒng)變更首先會(huì)影響該節(jié)點(diǎn)中的設(shè)備,其次,由于供應(yīng)鏈的級(jí)聯(lián)特性,某一節(jié)點(diǎn)的變更會(huì)使得該供應(yīng)鏈中的其他設(shè)備也受到影響;BLACKHURST J V等人[15]指出由于供應(yīng)鏈之間的關(guān)聯(lián)性、全球性,所以在中斷等突發(fā)事件的影響下會(huì)破壞人員、貨物、信息的流動(dòng)而使供應(yīng)鏈的成本增加。為解決上述問(wèn)題,ZHAO K等人[16]使用拓?fù)浞治龅燃夹g(shù)提高了供應(yīng)鏈網(wǎng)絡(luò)的魯棒性;BEHZADI G等人[17]利用魯棒優(yōu)化技術(shù),得到了期望利潤(rùn)和風(fēng)險(xiǎn)為目標(biāo)的風(fēng)險(xiǎn)規(guī)避解。上述研究大多基于供應(yīng)鏈管理角度研究系統(tǒng)變更造成的不良影響并未考慮各生產(chǎn)節(jié)點(diǎn)的動(dòng)態(tài),本文旨在從工程控制論的角度設(shè)計(jì)控制器來(lái)進(jìn)行生產(chǎn)決策,利用數(shù)據(jù)驅(qū)動(dòng)方法可以很方便地將供應(yīng)鏈系統(tǒng)變更問(wèn)題建模為系統(tǒng)內(nèi)部參數(shù)的變化,從而避免由于系統(tǒng)內(nèi)節(jié)點(diǎn)變更導(dǎo)致對(duì)供應(yīng)鏈系統(tǒng)的不良影響。
本文借鑒上述文獻(xiàn)的思想,從工程控制論的角度,針對(duì)動(dòng)態(tài)供應(yīng)鏈系統(tǒng)中節(jié)點(diǎn)發(fā)生變更的情況,提出了一種基于數(shù)據(jù)驅(qū)動(dòng)的自適應(yīng)預(yù)測(cè)控制方法。首先,為更加符合實(shí)際供應(yīng)鏈運(yùn)行狀況,利用數(shù)據(jù)驅(qū)動(dòng)的方法建立供應(yīng)鏈系統(tǒng)的子空間預(yù)估模型,由于運(yùn)行過(guò)程中系統(tǒng)發(fā)生變更,故引入滑動(dòng)窗口機(jī)制對(duì)系統(tǒng)進(jìn)行在線辨識(shí),利用異常數(shù)據(jù)檢查機(jī)制更新預(yù)估器矩陣;其次,將子空間預(yù)估器作為預(yù)測(cè)模型,利用預(yù)估矩陣參數(shù)設(shè)計(jì)自適應(yīng)預(yù)測(cè)控制器,通過(guò)滾動(dòng)優(yōu)化和反饋校正機(jī)制,進(jìn)一步求得多級(jí)供應(yīng)鏈系統(tǒng)在運(yùn)作過(guò)程中發(fā)生內(nèi)部節(jié)點(diǎn)變更狀況下的庫(kù)存控制策略;最后,以三節(jié)點(diǎn)生產(chǎn)—庫(kù)存供應(yīng)鏈系統(tǒng)為例,驗(yàn)證所提出的方法。在仿真部分,驗(yàn)證了基于數(shù)據(jù)建模的準(zhǔn)確性和供應(yīng)鏈系統(tǒng)在自適應(yīng)預(yù)測(cè)控制的生產(chǎn)策略下,其在內(nèi)部節(jié)點(diǎn)發(fā)生變更前后庫(kù)存水平的波動(dòng)狀況,仿真結(jié)果表明該方法的魯棒性和有效性。
如圖1所示的多級(jí)供應(yīng)鏈系統(tǒng),其中,xi表示下游節(jié)點(diǎn)給上游節(jié)點(diǎn)的訂單量;ui表示節(jié)點(diǎn)i的生產(chǎn)量;yi表示每個(gè)生產(chǎn)節(jié)點(diǎn)的庫(kù)存數(shù)量。假設(shè),每個(gè)節(jié)點(diǎn)的yi和ui均可獲得,且在理想狀態(tài)下不考慮運(yùn)輸途中的損失,根據(jù)文獻(xiàn)[18],供應(yīng)鏈系統(tǒng)動(dòng)態(tài)可以用差分方程來(lái)表達(dá),當(dāng)多級(jí)供應(yīng)鏈中的某一個(gè)節(jié)點(diǎn)或者幾個(gè)節(jié)點(diǎn)由于突發(fā)原因產(chǎn)生變更時(shí),必然造成系統(tǒng)內(nèi)部參數(shù)的變化,這些變化最終會(huì)反映到系統(tǒng)的輸入輸出數(shù)據(jù)上。本文采用數(shù)據(jù)驅(qū)動(dòng)的思想對(duì)供應(yīng)鏈系統(tǒng)進(jìn)行在線建模,利用預(yù)測(cè)控制求解生產(chǎn)策略,從而使系統(tǒng)在發(fā)生變更后仍然能夠穩(wěn)定運(yùn)行。
由于多級(jí)供應(yīng)鏈系統(tǒng)末端用戶需求一般視作不確定的,且與生產(chǎn)量之間是相互獨(dú)立的,采用POMOSEP法對(duì)上述多級(jí)供應(yīng)鏈系統(tǒng)進(jìn)行辨識(shí)?;跀?shù)據(jù)驅(qū)動(dòng)的供應(yīng)鏈系統(tǒng)可以用下式描述:
其中,(k) ∈Rm——各級(jí)理想生產(chǎn)量;
(k)∈Rl——理想狀態(tài)下各級(jí)庫(kù)存量;
f(·) ——未知函數(shù);
θ(k) ——時(shí)變參數(shù)用來(lái)刻畫(huà)系統(tǒng)的變更情況,采用有限時(shí)域的滑動(dòng)窗口在線辨識(shí)方法,遞推更新模型。在進(jìn)行閉環(huán)辨識(shí)的過(guò)程中會(huì)有各種干擾,定義輸入輸出信號(hào)測(cè)量模型:
其中,ω∈Rl、v∈Rm分別為各級(jí)庫(kù)存量的測(cè)量噪聲和生產(chǎn)量的測(cè)量噪聲,ω和v是有界的且與過(guò)去的控制量u不相關(guān)。子空間預(yù)估器采用如下不確定形式描述:
uf=節(jié)點(diǎn)未來(lái)的生產(chǎn)量;
k——當(dāng)前采樣時(shí)刻,每個(gè)元素均為列向量;
wp=過(guò)去庫(kù)存水平和生產(chǎn)量的輸入輸出矩陣;
Np——預(yù)測(cè)時(shí)域;
Nc——控制時(shí)域。
公式(3)表征了各級(jí)生產(chǎn)量與各級(jí)庫(kù)存量之間的關(guān)系,模型參數(shù)可直接作為控制器的設(shè)計(jì)參數(shù),ΔLw和ΔLu表示模型的不確定性。
構(gòu)造輸入量U的Hankel矩陣如下:
其中,p、f——“過(guò)去”和“未來(lái)”;
Up——系統(tǒng)“過(guò)去”的輸入;
Uf——系統(tǒng)“未來(lái)”的輸入。
其中,L=[L,L]為子空間矩陣,滿足L1∈R(l×N)×((l+m)×N),
12分別表示狀態(tài)和確定性輸入子空間預(yù)估器矩陣。
公元618年,唐國(guó)公李淵長(zhǎng)安稱帝,建立了繁榮的大唐帝國(guó),從此中國(guó)封建社會(huì)進(jìn)入了最為強(qiáng)盛的時(shí)期。一個(gè)民族音樂(lè)文化的發(fā)展壯大,有的時(shí)候需要幾個(gè)世紀(jì)的文化沉淀,而就在唐朝建立初期,這個(gè)漫長(zhǎng)的音樂(lè)文化沉淀已悄然開(kāi)始。它融會(huì)貫通、博采眾長(zhǎng),造就出了歷史上空前強(qiáng)盛的局面,為中國(guó)古代音樂(lè)文化做出了積極的貢獻(xiàn)。唐代的音樂(lè)機(jī)構(gòu)主要分由政府管轄和宮廷管轄兩個(gè)不同的體系,其中太常寺是唐代最高的行政機(jī)構(gòu),大樂(lè)署、鼓吹署隸屬于太常寺,屬于政府管理的音樂(lè)機(jī)構(gòu),監(jiān)管雅樂(lè)與俗樂(lè)。教坊和梨園則隸屬于宮廷管轄。
對(duì)于式(1)的系統(tǒng),設(shè)計(jì)長(zhǎng)度為n的滑動(dòng)窗口方法在線更新用于計(jì)算子空間預(yù)估器矩陣的數(shù)據(jù),并且在每個(gè)采樣時(shí)刻利用遞推方法更新一次數(shù)據(jù)集,從而實(shí)現(xiàn)預(yù)測(cè)模型的在線求解。
設(shè)Ξ∈R4N(m+l)×j為k時(shí)刻的輸入輸出Hankel矩陣:
其中,Wp(k)、Uf(k)和Yf(k)分別為閉環(huán)系統(tǒng)采集到的過(guò)去生產(chǎn)量和庫(kù)存水平數(shù)據(jù)矩陣、未來(lái)生產(chǎn)量數(shù)據(jù)矩陣和庫(kù)存水平數(shù)據(jù)矩陣。將Ξ最左列的[19]數(shù)據(jù)定義為在k+1采樣時(shí)刻,將一組新的生產(chǎn)量和庫(kù)存水平數(shù)據(jù)定義為,其 中,
在k+1采樣時(shí)刻的輸入輸出Hankel矩陣Ψ為:
其中,Wp(k+1)、Uf(k+1)和Yf(k+1)與Wp(k)、Uf(k)和Yf(k)的定義類似。
為了保證滾動(dòng)窗口大小固定,須將ξ從Ξ中移除,并將ζ添加到Ξ中,因此得到關(guān)系式 [Ξ :ζ]= [ξ: Ψ],進(jìn)一步有 [Ξ :ζ][Ξ :ζ]T= [ξ: Ψ][ξ: Ψ]T,對(duì)該式分解得到:
則k+1時(shí)刻的輸入輸出Hankel矩陣Ψ的QR分解結(jié)果:
同理,對(duì)k時(shí)刻的Ξ進(jìn)行上述操作,由上述定義和式(8)可分別求得ζζT和ξξT,進(jìn)一步可得預(yù)估器矩陣R(k+1)中:
故:
其中,chol(·)為Cholesky分解。要得到子空間預(yù)估器矩陣,需先求R21(k+1)、R22(k+1)和R32(k+1)。
同理,利用式(8)與Cholesky分解可分別求得R31(k+1)、R22(k+1)和R32(k+1)。
其中, ? 表示偽逆矩陣,通過(guò)奇異值分解得到,式(3)表示的子空間預(yù)估器模型中,Lw=L1,Lu為L(zhǎng)2的前l(fā)×Nu列元素。
由于動(dòng)態(tài)供應(yīng)鏈系統(tǒng)的運(yùn)作過(guò)程存在用戶的不確定性需求,各級(jí)庫(kù)存量的測(cè)量過(guò)程難免存在噪聲影響,這些因素會(huì)降低滑動(dòng)窗口自適應(yīng)策略的辨識(shí)精度。采用一次預(yù)測(cè)誤差的數(shù)據(jù)檢查策略來(lái)消除異常數(shù)據(jù)對(duì)在線辨識(shí)過(guò)程的影響[19-20]。
計(jì)算數(shù)據(jù)更新前的預(yù)測(cè)誤差:
yk+1——k+1時(shí)刻的實(shí)測(cè)值。
在下一采樣時(shí)刻,重復(fù)上面的異常數(shù)據(jù)檢查策略。
通過(guò)滑動(dòng)窗口自適應(yīng)機(jī)制與異常數(shù)據(jù)檢查策略有ΔLw→0,ΔLu→0,故式(3)可以轉(zhuǎn)化為:
在預(yù)測(cè)控制設(shè)計(jì)中,定義性能指標(biāo)函數(shù)為:
rf——參考庫(kù)存水平;
uf——控制量;
Q≥0,R>0。
將上述滑動(dòng)窗口自適應(yīng)辨識(shí)策略與預(yù)測(cè)控制相結(jié)合,則自適應(yīng)預(yù)測(cè)控制問(wèn)題可以描述為求解如下的優(yōu)化問(wèn)題,即:
將式(17)帶入式(18)可得:
系統(tǒng)在每個(gè)采樣時(shí)刻重新計(jì)算式(19)的優(yōu)化問(wèn)題,得到最優(yōu)控制序列uf,取最優(yōu)控制序列的第一項(xiàng)作為當(dāng)前的控制率施加到控制系統(tǒng)中。
自適應(yīng)預(yù)測(cè)控制算法步驟:
(1)采集多級(jí)供應(yīng)鏈系統(tǒng)中各級(jí)生產(chǎn)量與庫(kù)存量,構(gòu)造閉環(huán)供應(yīng)鏈系統(tǒng)的Hankel矩陣;
(2)在采樣時(shí)刻k,利用QR分解計(jì)算初始Lw和Lu;
(4)利用式(20)計(jì)算最優(yōu)預(yù)測(cè)控制序列uk,并施加到系統(tǒng)中;
(5)在采樣時(shí)刻k+1,采集到新的系統(tǒng)數(shù)據(jù)時(shí),執(zhí)行2.2節(jié)中的異常數(shù)據(jù)檢查策略,當(dāng)新數(shù)據(jù)異常時(shí),保持uk,否則,進(jìn)行如下步驟:
(6)構(gòu)造新的生產(chǎn)量與庫(kù)存水平的Hankel矩陣Ψ,通過(guò)式(11)~(13)計(jì)算R矩陣;
(7)進(jìn)行異常數(shù)據(jù)檢查,決定是否更新R矩陣,通過(guò)步驟(3)和步驟(4)計(jì)算預(yù)測(cè)輸出和最優(yōu)預(yù)測(cè)控制序列uk,然后返回步驟(5)進(jìn)行異常數(shù)據(jù)判斷。
以三節(jié)點(diǎn)生產(chǎn)—庫(kù)存供應(yīng)鏈系統(tǒng)[9]為例,驗(yàn)證上述算法的有效性,其中,yi(s)為供應(yīng)鏈系統(tǒng)的3個(gè)生產(chǎn)環(huán)節(jié)的庫(kù)存水平;ui(s)為供應(yīng)鏈系統(tǒng)的3個(gè)生產(chǎn)環(huán)節(jié)的出貨量,其中,θi為生產(chǎn)運(yùn)輸延遲,αi為損耗系數(shù)。
假設(shè)三節(jié)點(diǎn)生產(chǎn)—庫(kù)存供應(yīng)鏈系統(tǒng)在t=450時(shí),由于突發(fā)事件造成生產(chǎn)環(huán)節(jié)的第二環(huán)節(jié)發(fā)生變更,其延遲系數(shù)變?yōu)棣?′=3。采用自適應(yīng)預(yù)測(cè)控制策略進(jìn)行生產(chǎn)決策,設(shè)置控制時(shí)域Nc=40,預(yù)測(cè)時(shí)域Np=60,不確定用戶需求滿足正態(tài)分布(μ,σ),其中,μ=0,σ=0.01,庫(kù)存水平設(shè)定值為一號(hào)倉(cāng)庫(kù)20,二號(hào)倉(cāng)庫(kù)30,三號(hào)倉(cāng)庫(kù)30。仿真結(jié)果表明,在上述用戶需求下,采用自適應(yīng)預(yù)測(cè)控制策略可以使得庫(kù)存水平維持在設(shè)定值范圍內(nèi)。在t=450時(shí),二號(hào)節(jié)點(diǎn)倉(cāng)庫(kù)發(fā)生變更,可以看出,庫(kù)存水平雖然波動(dòng),但仍在允許范圍,仿真結(jié)果如圖5所示。
本文對(duì)多級(jí)供應(yīng)鏈系統(tǒng)在正常生產(chǎn)運(yùn)作過(guò)程中某生產(chǎn)環(huán)節(jié)發(fā)生變更的情況下,從控制理論的角度提出了基于數(shù)據(jù)驅(qū)動(dòng)自適應(yīng)預(yù)測(cè)控制的生產(chǎn)-庫(kù)存控制策略。為了更符合實(shí)際供應(yīng)鏈系統(tǒng)的運(yùn)行狀況,文中采用數(shù)據(jù)驅(qū)動(dòng)的方式對(duì)系統(tǒng)進(jìn)行在線辨識(shí),將生產(chǎn)環(huán)節(jié)的變更問(wèn)題建模為系統(tǒng)內(nèi)部的可變參數(shù)。為增加控制器的魯棒性,利用滑動(dòng)窗口子空間線辨識(shí)方法,結(jié)合異常數(shù)據(jù)檢測(cè)機(jī)制更新預(yù)估器矩陣建立系統(tǒng)的預(yù)測(cè)模型,將子空間預(yù)估器參數(shù)與預(yù)測(cè)控制相結(jié)合,利用滾動(dòng)優(yōu)化與反饋校正機(jī)制,設(shè)計(jì)了自適應(yīng)預(yù)測(cè)控制器在線求解最優(yōu)控制率,最后在仿真部分利用一個(gè)三節(jié)點(diǎn)生產(chǎn)—庫(kù)存供應(yīng)鏈系統(tǒng)驗(yàn)證了所提方法能夠在發(fā)生系統(tǒng)變更的情況下,將庫(kù)存水平維持在給定值允許的誤差范圍內(nèi),表明該方法的魯棒性和有效性。