黃光普 吳 祥 俞 立
(浙江工業(yè)大學(xué)信息工程學(xué)院網(wǎng)絡(luò)化控制系統(tǒng)實(shí)驗(yàn)室 杭州310023)
網(wǎng)絡(luò)化控制系統(tǒng)通過(guò)網(wǎng)絡(luò)連接被控對(duì)象、控制器、傳感器和執(zhí)行器,具有結(jié)構(gòu)簡(jiǎn)單、通信速率高、可擴(kuò)展性強(qiáng)、網(wǎng)絡(luò)集成性高等諸多優(yōu)點(diǎn),一直是控制領(lǐng)域研究和應(yīng)用的熱點(diǎn)方向[1],如網(wǎng)絡(luò)化魯棒控制[2-4]、網(wǎng)絡(luò)時(shí)延和丟包問(wèn)題[5-7]、網(wǎng)絡(luò)化運(yùn)動(dòng)控制[8,9]、網(wǎng)絡(luò)化模型預(yù)測(cè)控制[10]以及近年興起的云/霧控制系統(tǒng)[11-12]等。在早期的網(wǎng)絡(luò)化控制系統(tǒng)分析和算法研究過(guò)程中,由于缺乏合適的實(shí)驗(yàn)平臺(tái),大部分的研究?jī)H限于純理論分析和仿真實(shí)驗(yàn)[2,5-6],研究成果的實(shí)際應(yīng)用效果往往無(wú)法得到有效驗(yàn)證,這對(duì)系統(tǒng)的開發(fā)和應(yīng)用帶來(lái)了一定阻礙。近年來(lái),網(wǎng)絡(luò)化控制系統(tǒng)實(shí)驗(yàn)平臺(tái)得到越來(lái)越多的重視。文獻(xiàn)[3]和文獻(xiàn)[4]分別設(shè)計(jì)了一種網(wǎng)絡(luò)化電機(jī)控制實(shí)驗(yàn)平臺(tái),驗(yàn)證所提出魯棒控制器的有效性。文獻(xiàn)[8]設(shè)計(jì)了一種網(wǎng)絡(luò)化多軸運(yùn)動(dòng)控制平臺(tái),并研究了其高精度輪廓跟蹤控制問(wèn)題。文獻(xiàn)[9]設(shè)計(jì)了一種網(wǎng)絡(luò)化多軸同步控制平臺(tái),解決了其高性能同步控制問(wèn)題。文獻(xiàn)[12]為了對(duì)比分析云控制和霧控制的性能,設(shè)計(jì)了基于兩自由度機(jī)械臂的對(duì)比實(shí)驗(yàn)。文獻(xiàn)[13]和文獻(xiàn)[14]描述了一種部署在廣域網(wǎng)上的網(wǎng)絡(luò)化控制系統(tǒng)實(shí)驗(yàn)室,包含有倒立擺、磁懸浮、電機(jī)等各類網(wǎng)絡(luò)化控制系統(tǒng)教學(xué)和研究平臺(tái)。在上述實(shí)驗(yàn)平臺(tái)的支撐下,可直接觀察分析系統(tǒng)和算法的性能,根據(jù)實(shí)驗(yàn)結(jié)果進(jìn)行修改完善,優(yōu)化系統(tǒng)理論設(shè)計(jì)和應(yīng)用開發(fā)過(guò)程。然而,上述網(wǎng)絡(luò)化控制實(shí)驗(yàn)平臺(tái)基本屬于定制化設(shè)計(jì),大多用于特定對(duì)象和算法的設(shè)計(jì)開發(fā),實(shí)驗(yàn)平臺(tái)的開放性和移植性較差,很難被其他學(xué)者復(fù)制。因此,設(shè)計(jì)一款結(jié)構(gòu)簡(jiǎn)單、通用性高、開放式和可復(fù)制的網(wǎng)絡(luò)化控制系統(tǒng)實(shí)驗(yàn)平臺(tái)具有較好的應(yīng)用價(jià)值和參考意義。
在控制系統(tǒng)的研發(fā)過(guò)程中,快速控制原型(rapid control prototype,RCP)[15]利用數(shù)字化虛擬控制器構(gòu)建對(duì)實(shí)際物理對(duì)象控制的半實(shí)物仿真系統(tǒng),可快速實(shí)現(xiàn)對(duì)所設(shè)計(jì)控制器或者控制算法的實(shí)驗(yàn)驗(yàn)證,研究人員可基于實(shí)驗(yàn)結(jié)果進(jìn)行優(yōu)化設(shè)計(jì),從而節(jié)約實(shí)驗(yàn)測(cè)試成本,縮短研發(fā)周期。因此,由于RCP 半實(shí)物仿真系統(tǒng)在控制系統(tǒng)算法設(shè)計(jì)和理論驗(yàn)證過(guò)程中帶來(lái)的便利性,被廣泛應(yīng)用于機(jī)電控制[16]、電力系統(tǒng)[17]、電動(dòng)汽車[18]、教學(xué)儀器[19]等各個(gè)領(lǐng)域中。一些研究機(jī)構(gòu)和商業(yè)公司相繼提出了多個(gè)RCP 軟硬件系統(tǒng),如德國(guó)的dSPACE[20]、加拿大的RTLAB[21]等。文獻(xiàn)[22]對(duì)當(dāng)時(shí)的商業(yè)RCP 系統(tǒng)進(jìn)行了較為全面的對(duì)比分析,所設(shè)計(jì)的RCP 系統(tǒng)包含PC 機(jī)算法設(shè)計(jì)中心(主機(jī))、基于高性能計(jì)算機(jī)的算法運(yùn)行中心(目標(biāo)機(jī))以及I/O 接口板,在實(shí)時(shí)性、采樣周期和接口多樣性方面表現(xiàn)出良好性能。然而,商業(yè)RCP 系統(tǒng)往往考慮應(yīng)用和性能的完備設(shè)計(jì),采用PCI、ISA 總線方式設(shè)計(jì)I/O 板卡,存在價(jià)格昂貴、依懶性強(qiáng)、可移植性差等諸多問(wèn)題,導(dǎo)致其推廣受限。因此,基于免費(fèi)和開源軟硬件系統(tǒng)和資源設(shè)計(jì)RCP 系統(tǒng)成為有效解決手段[23]。同時(shí),利用嵌入式微處理器替代高性能計(jì)算機(jī)設(shè)計(jì)低成本、結(jié)構(gòu)簡(jiǎn)便的RCP 系統(tǒng)成為新的發(fā)展方向。文獻(xiàn)[24]設(shè)計(jì)了基于現(xiàn)場(chǎng)可編程門陣列(field programmable gate arry,FPGA)的目標(biāo)機(jī)控制器,并采用PXI 系統(tǒng)和LabVIEW 軟件開發(fā)了上位機(jī)仿真平臺(tái)。文獻(xiàn)[25]基于Raspberry Pi 設(shè)計(jì)了信號(hào)處理教儀平臺(tái),在個(gè)人計(jì)算機(jī)(personal computer,PC)上利用Matlab/Simulink 仿真工具設(shè)計(jì)搭建控制算法框圖,并轉(zhuǎn)換成C 語(yǔ)言代碼,下載到目標(biāo)機(jī)中實(shí)現(xiàn)實(shí)時(shí)控制。文獻(xiàn)[26]基于Arduino Due 控制板設(shè)計(jì)了開源和低成本的RCP 系統(tǒng),直接將PC 作為算法設(shè)計(jì)和運(yùn)行中心,并采用USB 接口連接PC 機(jī)和I/O 板,無(wú)需編譯和下載過(guò)程,實(shí)現(xiàn)了更加通用化的設(shè)計(jì),可推廣應(yīng)用于高校實(shí)驗(yàn)課程教育中。文獻(xiàn)[27]采用實(shí)時(shí)嵌入式處理器作為虛擬設(shè)備模型,設(shè)計(jì)了用于輔助信息物理系統(tǒng)協(xié)調(diào)器的設(shè)計(jì)和仿真的RCP 系統(tǒng),有效縮短算法和產(chǎn)品設(shè)計(jì)時(shí)間。然而,現(xiàn)有設(shè)計(jì)中并沒(méi)有適用于網(wǎng)絡(luò)化控制研究和開發(fā)的RCP 系統(tǒng)。因此,面向當(dāng)下網(wǎng)絡(luò)化控制系統(tǒng)的高速發(fā)展需求,設(shè)計(jì)相應(yīng)的網(wǎng)絡(luò)化開放式RCP 系統(tǒng)十分必要。
綜上所述,本文基于嵌入式架構(gòu)設(shè)計(jì)開發(fā)一款低成本、免費(fèi)開源的網(wǎng)絡(luò)化開放式RCP 系統(tǒng),設(shè)計(jì)了基于Raspberry Pi 和STM32 微處理器的雙嵌入式目標(biāo)機(jī),采用Matlab/Simulink 仿真軟件作為PC 機(jī)控制系統(tǒng)設(shè)計(jì)工具,采用TCP/UDP/IP 通信協(xié)議連接控制系統(tǒng)和目標(biāo)機(jī),同時(shí)以磁懸浮球?yàn)楸豢貙?duì)象設(shè)計(jì)了實(shí)驗(yàn)裝置。本文主要工作和貢獻(xiàn)如下。
(1) 所設(shè)計(jì)RCP 系統(tǒng)采用開源硬件和免費(fèi)軟件工具開發(fā),基于嵌入式和網(wǎng)絡(luò)化架構(gòu),具有成本低廉、體積小巧、部署方便、開放性好、可移植性強(qiáng)等優(yōu)點(diǎn),可實(shí)現(xiàn)參數(shù)的在線修改和可視化;目標(biāo)機(jī)通過(guò)以太網(wǎng)與PC 機(jī)連接能實(shí)現(xiàn)即連即用,可廣泛應(yīng)用于網(wǎng)絡(luò)化控制領(lǐng)域各類算法和產(chǎn)品的輔助設(shè)計(jì)過(guò)程中,以及作為教學(xué)儀器在控制工程實(shí)驗(yàn)教學(xué)中推廣應(yīng)用。
(2) 基于所設(shè)計(jì)嵌入式目標(biāo)機(jī),一方面可將控制算法仿真框圖進(jìn)行編譯后下載到目標(biāo)機(jī)中進(jìn)行本地計(jì)算和運(yùn)行,將所設(shè)計(jì)RCP 切換為本地控制模式;另一方面,可將PC 機(jī)與目標(biāo)機(jī)之間的局域網(wǎng)替換為廣域網(wǎng)(如引入云計(jì)算服務(wù)),將RCP 系統(tǒng)轉(zhuǎn)變?yōu)樵瓶刂颇J?用于輔助云控制的理論研究。
(3) 設(shè)計(jì)了2 個(gè)網(wǎng)絡(luò)化控制實(shí)驗(yàn)案例:1)典型網(wǎng)絡(luò)化預(yù)測(cè)控制算法,驗(yàn)證RCP 系統(tǒng)有效性;2)基于觀測(cè)器思想補(bǔ)償時(shí)變時(shí)延引起不確定性理論方法,通過(guò)實(shí)驗(yàn)對(duì)該理論進(jìn)行了驗(yàn)證,表明了RCP 系統(tǒng)的優(yōu)越性。
本節(jié)對(duì)所設(shè)計(jì)的網(wǎng)絡(luò)化開放式RCP 系統(tǒng)整體架構(gòu)(如圖1 所示)進(jìn)行詳細(xì)說(shuō)明。系統(tǒng)主要由2部分組成:(1)PC 機(jī)控制系統(tǒng),搭載Windows 操作系統(tǒng),安裝有Matlab/Simulink 仿真軟件環(huán)境,主要實(shí)現(xiàn)算法仿真框圖的設(shè)計(jì)開發(fā)以及網(wǎng)絡(luò)數(shù)據(jù)發(fā)送和接收;(2)嵌入式目標(biāo)機(jī),由Raspberry Pi 數(shù)據(jù)處理中心以及STM 32 驅(qū)動(dòng)模塊組成。前者負(fù)責(zé)與控制系統(tǒng)進(jìn)行數(shù)據(jù)交換,根據(jù)預(yù)先設(shè)定的數(shù)據(jù)格式對(duì)網(wǎng)絡(luò)通信數(shù)據(jù)進(jìn)行打包以及解包,并記錄時(shí)間戳用于系統(tǒng)網(wǎng)絡(luò)通信時(shí)延的計(jì)算,并且是RCP 系統(tǒng)處于本地模式時(shí)的算法計(jì)算中心;后者與被控對(duì)象進(jìn)行交互,負(fù)責(zé)模擬控制量的輸出和控制對(duì)象的實(shí)時(shí)狀態(tài)信息采集。PC 機(jī)控制系統(tǒng)與目標(biāo)機(jī)之間通過(guò)以太網(wǎng)連接,采用TCP/UDP/IP 協(xié)議實(shí)現(xiàn)數(shù)據(jù)通信;目標(biāo)機(jī)與控制對(duì)象之間通過(guò)信號(hào)線進(jìn)行連接;通過(guò)設(shè)計(jì)不同驅(qū)動(dòng)接口,則被控對(duì)象可以連接各類機(jī)電系統(tǒng)、信息物理系統(tǒng)等,具有非常良好的通用性。
圖1 網(wǎng)絡(luò)化開放式RCP 系統(tǒng)架構(gòu)圖
根據(jù)網(wǎng)絡(luò)化RCP 系統(tǒng)架構(gòu),系統(tǒng)工作流程如圖2所示。其中,步驟S2、S3 和S4 運(yùn)行于PC 機(jī)控制系統(tǒng)的Matlab/Simulink 環(huán)境中,步驟S1~S5 運(yùn)行于嵌入式目標(biāo)機(jī)中。首先,在PC 機(jī)控制系統(tǒng)的Matlab/Simulink 環(huán)境中設(shè)計(jì)好控制算法仿真框圖和程序,隨后運(yùn)行RCP 系統(tǒng)進(jìn)行算法測(cè)試驗(yàn)證。主要流程步驟如下。S0:系統(tǒng)初始化過(guò)程,目標(biāo)機(jī)完成初始化配置后向PC 機(jī)發(fā)送確認(rèn)標(biāo)識(shí)符,Simulink 程序接收到確認(rèn)位后開始執(zhí)行控制算法仿真函數(shù);S1:目標(biāo)機(jī)按照給定采樣周期采集被控對(duì)象狀態(tài)數(shù)據(jù),并通過(guò)以太網(wǎng)發(fā)送給PC 機(jī)控制系統(tǒng);S2:Simulink 函數(shù)接收來(lái)自目標(biāo)機(jī)的反饋數(shù)據(jù),并更新仿真函數(shù)相應(yīng)數(shù)據(jù);S3:控制算法根據(jù)新的反饋數(shù)據(jù)量進(jìn)行計(jì)算得到新的控制量輸出,并將其轉(zhuǎn)換為實(shí)際控制值;S4:將得到的實(shí)際控制值數(shù)據(jù)通過(guò)以太網(wǎng)發(fā)送給目標(biāo)機(jī);S5:目標(biāo)機(jī)接收到實(shí)際控制值并將其轉(zhuǎn)換得到實(shí)際模擬控制輸出發(fā)送給被控對(duì)象;最終,實(shí)現(xiàn)對(duì)被控對(duì)象的網(wǎng)絡(luò)化控制。
圖2 系統(tǒng)工作流程圖
根據(jù)上述工作流程,RCP 系統(tǒng)在網(wǎng)絡(luò)化/云控制模式下,無(wú)需對(duì)算法仿真框圖進(jìn)行編譯和下載,可實(shí)現(xiàn)控制算法的開放式設(shè)計(jì),且在仿真系統(tǒng)運(yùn)行過(guò)程中能實(shí)時(shí)修改算法參數(shù),調(diào)試過(guò)程非常簡(jiǎn)單,能很好地輔助各類網(wǎng)絡(luò)化系統(tǒng)的設(shè)計(jì)開發(fā)。在RCP 系統(tǒng)處于本地控制模式下時(shí),由Simulink 構(gòu)建的控制算法需要先通過(guò)自動(dòng)代碼生成器生成C 語(yǔ)言代碼,編譯后下載到Raspberry Pi 中,Raspberry Pi 作為算法計(jì)算中心實(shí)時(shí)運(yùn)行,并通過(guò)串行外設(shè)接口(serial peripheral interface,SPI)與STM 32 驅(qū)動(dòng)模塊進(jìn)行交互,實(shí)現(xiàn)對(duì)被控對(duì)象的本地控制。
本節(jié)將詳細(xì)介紹所提出的網(wǎng)絡(luò)化開放式RCP系統(tǒng)的硬件(嵌入式目標(biāo)機(jī))和軟件(PC 機(jī)控制系統(tǒng)軟件)的設(shè)計(jì)過(guò)程。
本系統(tǒng)所設(shè)計(jì)的雙嵌入式架構(gòu)目標(biāo)機(jī)硬件由Raspberry Pi 3B 和STM 32 驅(qū)動(dòng)模塊兩部分組成,其硬件電路如圖3 所示。Raspberry Pi 3B 是一臺(tái)信用卡大小的單板計(jì)算機(jī),配備Broadcom 公司的BCM2837四核心64 位處理器,運(yùn)行主頻為1.2 GHz;是一款基于ARM Cortex-A53 內(nèi)核微控制器的計(jì)算機(jī),具有1 GB 的隨機(jī)存取存儲(chǔ)(RAM)、40 針通用輸入輸出(general-purpose input/output,GPIO)、2.4 GHz WIFI模塊、100 Mbps 以太網(wǎng)接口等。STM 32驅(qū)動(dòng)模塊采用ST 公司的STM 32 F 103RBT6 微處理器,基于ARM Cortex-M3 內(nèi)核,最高頻率為72 MHz,擁有48個(gè)具有復(fù)用功能的GPIO、多通道12-bit 分辨率的高速(采樣間隔可達(dá)1 μs)模擬數(shù)字轉(zhuǎn)換器(analog to digital converter,ADC)接口、帶死區(qū)和剎車功能的專用電機(jī)控制脈沖寬帶調(diào)制(pulse width modulation,PWM)接口,以及最高支持18 Mbit/s 的SPI 接口。系統(tǒng)設(shè)計(jì)中采用Raspberry Pi 3B 以及STM 32的主要原因如下。
圖3 嵌入式目標(biāo)機(jī)硬件實(shí)物圖
(1)兩者都是開源平臺(tái),使用廣泛,資料豐富且價(jià)格便宜,不會(huì)帶來(lái)經(jīng)濟(jì)負(fù)擔(dān)。
(2)兩者尺寸都相對(duì)較小(最大長(zhǎng)度為85 mm),使得系統(tǒng)硬件模塊小巧輕便,無(wú)任何其他硬件資源依賴性,可隨身攜帶。
(3)Raspberry Pi 3B 擁有強(qiáng)大的計(jì)算能力,可以運(yùn)行安裝PREEMPT RT 補(bǔ)丁的Linux 系統(tǒng)來(lái)進(jìn)行實(shí)時(shí)控制。同時(shí),自帶100 Mbps 以太網(wǎng)接口以及2.4 GHz WIFI 模塊,擁有高速網(wǎng)絡(luò)通信能力。
(4)STM32 驅(qū)動(dòng)模塊基于ARM Cotex-M3 內(nèi)核,具有嵌套向量中斷控制器(NVIC),擁有豐富的外設(shè)和PWM 輸出接口,方便實(shí)現(xiàn)對(duì)各類被控對(duì)象的驅(qū)動(dòng)控制和數(shù)據(jù)采集。
網(wǎng)絡(luò)化RCP 系統(tǒng)的軟件設(shè)計(jì)主要包括Simulink仿真功能模塊以及目標(biāo)機(jī)處理函數(shù)程序設(shè)計(jì)。Simulink 仿真功能模塊采用S-Function 開發(fā),使用C 語(yǔ)言代碼進(jìn)行編寫,設(shè)計(jì)有網(wǎng)絡(luò)通信功能、PWM 和頻率輸出功能、ADC 和編碼器數(shù)據(jù)采集功能、I/O 控制功能;其中網(wǎng)絡(luò)通信功能包含有網(wǎng)絡(luò)數(shù)據(jù)發(fā)送器(network transmitter)和網(wǎng)絡(luò)數(shù)據(jù)接收器(network receiver),可實(shí)現(xiàn)預(yù)定格式的網(wǎng)絡(luò)數(shù)據(jù)快速交換;I/O控制功能包含有數(shù)據(jù)輸入(data input,DI)和數(shù)據(jù)輸出(data output,DO)功能;各功能模塊根據(jù)數(shù)據(jù)輸入和輸出屬性可分類列出,如圖4 所示。從而,控制算法設(shè)計(jì)人員只需關(guān)注算法設(shè)計(jì)過(guò)程,無(wú)須花費(fèi)時(shí)間在各類外圍設(shè)備功能的開發(fā)上。
圖4 RCP 系統(tǒng)的Simulink 仿真功能模塊
嵌入式目標(biāo)機(jī)處理函數(shù)設(shè)計(jì)中包含Raspberry Pi 和STM32 驅(qū)動(dòng)模塊兩部分,相關(guān)功能函數(shù)采用C語(yǔ)言開發(fā)。Raspberry Pi 主要開發(fā)有TCP/UDP/IP協(xié)議用于與PC 機(jī)實(shí)現(xiàn)以太網(wǎng)通信,開發(fā)有SPI 接口功能實(shí)現(xiàn)與STM32 的串行數(shù)據(jù)通信,還開發(fā)有本地模式下的算法運(yùn)行API 接口實(shí)現(xiàn)本地實(shí)時(shí)控制。STM32 驅(qū)動(dòng)模塊開發(fā)有SPI 接口、PWM 輸出、ADC數(shù)據(jù)采集、編碼器采集、I/O 控制功能等,PWM 輸出控制驅(qū)動(dòng)模塊輸出實(shí)際控制值,ADC 和編碼器功能負(fù)責(zé)采集被控對(duì)象的實(shí)時(shí)狀態(tài)信息,從而構(gòu)建RCP系統(tǒng)與被控對(duì)象的完整控制閉環(huán)。
綜上所述,RCP 系統(tǒng)軟件設(shè)計(jì)過(guò)程簡(jiǎn)單,對(duì)編程開發(fā)人員要求較低,確保了系統(tǒng)具有較好的可復(fù)制性和移植性。系統(tǒng)啟動(dòng)后,首先對(duì)網(wǎng)絡(luò)通信IP 及端口參數(shù)進(jìn)行設(shè)置,確保系統(tǒng)通信回路暢通;隨后設(shè)置系統(tǒng)控制(采樣)周期和I/O 類型,配置相應(yīng)的定時(shí)器參數(shù)和外設(shè)接口;當(dāng)目標(biāo)機(jī)完成初始化后發(fā)送確認(rèn)標(biāo)識(shí)位到PC 機(jī)控制系統(tǒng),完成握手確認(rèn)后算法仿真程序進(jìn)入循環(huán)運(yùn)行狀態(tài),RCP 系統(tǒng)程序運(yùn)行流程如圖5 所示,具體步驟描述如下。
圖5 系統(tǒng)程序運(yùn)行流程圖
(1) Raspberry Pi 的定時(shí)器作為RCP 系統(tǒng)的基準(zhǔn)時(shí)鐘,以設(shè)定的采樣周期T向STM32 發(fā)送數(shù)據(jù)采集請(qǐng)求。
(2) STM32 接收到采集請(qǐng)求后立即通過(guò)外設(shè)接口采集被控對(duì)象(傳感器)實(shí)時(shí)數(shù)據(jù),并通過(guò)SPI接口發(fā)送給Raspberry Pi。
(3) Raspberry Pi 接收到反饋的狀態(tài)信息后,記錄實(shí)時(shí)時(shí)間戳t1i,并按照定義的協(xié)議格式將狀態(tài)信息和時(shí)間戳等數(shù)據(jù)打包通過(guò)以太網(wǎng)發(fā)送給PC 機(jī)控制系統(tǒng)。
(4) Simulink 接收到反饋狀態(tài)信息后進(jìn)行算法計(jì)算,得到新的控制量輸出,并通過(guò)以太網(wǎng)發(fā)送給Raspberry Pi。
(5) Raspberry Pi 接收到新的控制量,記錄時(shí)間戳t2i,并將其通過(guò)SPI 接口發(fā)送給STM 32 驅(qū)動(dòng)模塊。
(6) STM32 將控制量轉(zhuǎn)換成實(shí)際控制值,如轉(zhuǎn)換成PWM 占空比大小從而控制輸出電壓值。
因此,所設(shè)計(jì)RCP 系統(tǒng)中PC 機(jī)控制系統(tǒng)負(fù)責(zé)完成系統(tǒng)初始化配置交互過(guò)程,Raspberry Pi 作為系統(tǒng)程序循環(huán)運(yùn)行的起點(diǎn),STM 32 驅(qū)動(dòng)模塊根據(jù)配置參數(shù)可初始化不同的外設(shè)和采集接口,從而可方便地將系統(tǒng)切換為本地模式,同時(shí)外接不同的被控對(duì)象,最大化系統(tǒng)的通用性。
PC 機(jī)控制系統(tǒng)中設(shè)計(jì)了網(wǎng)絡(luò)數(shù)據(jù)發(fā)送器和接收器實(shí)現(xiàn)與目標(biāo)機(jī)之間的數(shù)據(jù)通信,其數(shù)據(jù)包格式如圖6 所示。發(fā)送器數(shù)據(jù)格式包含1 個(gè)字節(jié)指令數(shù)據(jù)、1 字節(jié)控制(采樣)周期設(shè)置數(shù)據(jù)、2 字節(jié)I/O模塊類型數(shù)據(jù)、8 字節(jié)時(shí)間戳數(shù)據(jù)和20 字節(jié)控制量數(shù)據(jù)。接收器數(shù)據(jù)格式包含5 字節(jié)傳感器采樣數(shù)據(jù)、8字節(jié)時(shí)間戳數(shù)據(jù)和5 字節(jié)網(wǎng)絡(luò)通信時(shí)延數(shù)據(jù)。
圖6 網(wǎng)絡(luò)通信數(shù)據(jù)包格式
綜上所述,本文所提網(wǎng)絡(luò)化開放式RCP 系統(tǒng)從控制系統(tǒng)、嵌入式目標(biāo)機(jī)和系統(tǒng)軟件設(shè)計(jì)多個(gè)方面保證了系統(tǒng)方案具有非常高的通用性、可復(fù)制性、開放性和可移植性,主要體現(xiàn)在以下幾個(gè)方面。
(1) 通用性體現(xiàn)在所設(shè)計(jì)的網(wǎng)絡(luò)化開放式RCP系統(tǒng)可接入不同的被控對(duì)象設(shè)備,如磁懸浮、倒立擺、伺服電機(jī)、飛行器、機(jī)器人等,實(shí)現(xiàn)其網(wǎng)絡(luò)化控制;同時(shí),系統(tǒng)還可以切換為本地模式和云控制模式,進(jìn)一步拓展了其通用性。
(2) 可復(fù)制性體現(xiàn)在PC 控制系統(tǒng)直接采用Simulink 作為算法設(shè)計(jì)工具,硬件采用了使用極為廣泛的低成本開源平臺(tái),系統(tǒng)軟件設(shè)計(jì)過(guò)程簡(jiǎn)單,對(duì)編程開發(fā)人員要求低,從而使得其他學(xué)者或者開發(fā)人員可參考本文系統(tǒng)方案進(jìn)行簡(jiǎn)單、快速的復(fù)制設(shè)計(jì),沒(méi)有成本壓力以及開發(fā)授權(quán)問(wèn)題。
(3) 開放性體現(xiàn)在Simulink 工具支持各種功能模塊的組合,具有很高的開放性,同時(shí)用戶可方便地在PC 機(jī)端進(jìn)行二次開發(fā)以滿足各種不同的需求。也可以使用其他的軟件平臺(tái)作為PC 機(jī)控制系統(tǒng)的設(shè)計(jì)工具,例如SCILAB、Python、Qt 以及微軟基礎(chǔ)類庫(kù)(MFC)等,以滿足不同的上層人機(jī)交互設(shè)計(jì)。
(4) 可移植性體現(xiàn)在系統(tǒng)軟件程序都是基于ANSI C 以及POSIX 標(biāo)準(zhǔn)開發(fā)的,可以很方便地遷移到其他軟硬件平臺(tái)中運(yùn)行,如Rock Pi、Orange Pi 或者Beagle Bone Black 等,從而可將實(shí)驗(yàn)編譯程序快速移植到產(chǎn)品研發(fā)過(guò)程中。
值得說(shuō)明的是,本文方案的目標(biāo)機(jī)硬件采用了由Raspberry Pi 和STM 32 組成的雙嵌入式架構(gòu)。如前文所述,部分學(xué)者基于FPGA、Raspberry Pi 和Arduino Due 進(jìn)行目標(biāo)機(jī)硬件的設(shè)計(jì)開發(fā)?;贔PGA 的目標(biāo)機(jī)可以進(jìn)行并行計(jì)算,具有較強(qiáng)的計(jì)算性能,并且支持創(chuàng)建各種自定義I/O 外設(shè),但僅支持?jǐn)?shù)字I/O,同時(shí)相對(duì)價(jià)格也較高;此外,FPGA 的開發(fā)語(yǔ)言為硬件描述語(yǔ)言Verilog HDL,導(dǎo)致其開發(fā)難度相對(duì)較大,可復(fù)制性以及可移植性差。基于Raspberry Pi 目標(biāo)機(jī)具有較強(qiáng)的運(yùn)算性能以及較低的價(jià)格,但其只帶有數(shù)字I/O,大幅限制了其應(yīng)用場(chǎng)景,使其通用性受限?;贏rduino Due 的目標(biāo)機(jī)價(jià)格較低,具有豐富的數(shù)字和模擬I/O,但是其微處理器性能有限,無(wú)法滿足高速、復(fù)雜的控制應(yīng)用需求。因此,本文方案與基于FPGA、Raspberry Pi 以及Arduino Due 的目標(biāo)機(jī)方案對(duì)比如表1 所示,本文方案采用的雙嵌入式架構(gòu)設(shè)計(jì)綜合了其他方案的優(yōu)點(diǎn),具有性能強(qiáng)、成本低、開發(fā)簡(jiǎn)單、通用性和可移植性好、模擬和數(shù)字接口豐富等諸多優(yōu)勢(shì)。
表1 本方案與基于FPGA、Raspberry Pi、Arduino Due 等方案的對(duì)比
為了驗(yàn)證所設(shè)計(jì)的網(wǎng)絡(luò)化開放式RCP 系統(tǒng)的有效性和優(yōu)越性,本文設(shè)計(jì)搭建了一套網(wǎng)絡(luò)化磁懸浮控制系統(tǒng)(如圖7 所示)。磁懸浮裝置由電磁鐵、激光傳感器和空心鐵球組成;控制系統(tǒng)通過(guò)調(diào)節(jié)電磁鐵的電流,使鐵球穩(wěn)定在指定位置或沿著期望軌跡運(yùn)動(dòng),激光傳感器用于檢測(cè)鐵球的實(shí)時(shí)位置。網(wǎng)絡(luò)化磁懸浮RCP 系統(tǒng)中的PC 機(jī)控制系統(tǒng)配置為:處理器Intel(R) Core i5-7500,CPU 主頻3.0 GHz,內(nèi)存8 GB,操作系統(tǒng)Windows10,軟件平臺(tái)為Matlab R2019B;PC 機(jī)與目標(biāo)機(jī)處于同一局域網(wǎng)中,兩機(jī)之間采用UDP/IP 協(xié)議進(jìn)行通信,對(duì)應(yīng)的IP 地址分別為192.168.135.100 和192.168.135.107。
嵌入式目標(biāo)機(jī)中的Raspberry Pi 具有高頻精確定時(shí)器功能,作為網(wǎng)絡(luò)化RCP 系統(tǒng)的時(shí)間基準(zhǔn),從而可以精確測(cè)量網(wǎng)絡(luò)化系統(tǒng)的網(wǎng)絡(luò)通信時(shí)延大小。設(shè)置系統(tǒng)控制(采樣)周期T=2 ms,測(cè)量得到某一時(shí)間段內(nèi)的時(shí)延大小如圖8 所示。由圖8 可知系統(tǒng)時(shí)延具有典型時(shí)變特性,且出現(xiàn)有低頻的大時(shí)延現(xiàn)象。下面建立網(wǎng)絡(luò)化磁懸浮RCP 系統(tǒng)模型,用于后續(xù)實(shí)驗(yàn)驗(yàn)證過(guò)程。磁懸浮系統(tǒng)本地模型可以描述為如下形式
圖8 網(wǎng)絡(luò)化RCP 系統(tǒng)通信時(shí)延
其中x=[x1x2]T為系統(tǒng)狀態(tài),x1和x2分別表示小球的位置和速度;u、y分別為系統(tǒng)的輸入和輸出;A、B、C均為常值矩陣。顯然,網(wǎng)絡(luò)通信時(shí)延會(huì)對(duì)系統(tǒng)控制性能帶來(lái)影響,分別考慮存在時(shí)變短時(shí)延和時(shí)變長(zhǎng)時(shí)延情況下的網(wǎng)絡(luò)化系統(tǒng)模型。
考慮時(shí)變短時(shí)延情形,此時(shí)網(wǎng)絡(luò)時(shí)延τk滿足0 ≤τk≤T,由于傳感器采用時(shí)間驅(qū)動(dòng)模式,控制器以及執(zhí)行器采用事件驅(qū)動(dòng)模式,可得到時(shí)變短時(shí)延情形下的系統(tǒng)控制輸入時(shí)序圖如圖9 所示。
圖9 短時(shí)延情形下控制輸入時(shí)序圖
將時(shí)變短時(shí)延描述為如下形式:
其中τ0和Δτk分別表示τk的標(biāo)稱值部分和不確定部分。由圖9 可知,在每個(gè)控制周期內(nèi)至多有2 個(gè)控制量作用在被控對(duì)象上,即
以采樣周期T對(duì)系統(tǒng)對(duì)系統(tǒng)離散化,同時(shí)考慮網(wǎng)絡(luò)時(shí)延τk的影響,具有時(shí)變短時(shí)延的網(wǎng)絡(luò)化控制系統(tǒng)可描述為
針對(duì)控制系統(tǒng)時(shí)變長(zhǎng)時(shí)延情形,即τk >T,首先做如下假設(shè)。
假設(shè)1假設(shè)時(shí)延是有界的,即T <τk <dMT,dM為正整數(shù)。此假設(shè)符合實(shí)際系統(tǒng)特征。
假設(shè)2假設(shè)執(zhí)行器總是使用當(dāng)前控制周期內(nèi)最先到達(dá)的控制量,且控制量不會(huì)發(fā)生時(shí)序錯(cuò)亂。由于采用的是UDP/IP 傳輸方式,不會(huì)對(duì)發(fā)送錯(cuò)誤或者失敗的數(shù)據(jù)進(jìn)行重新傳輸,故控制量的下發(fā)都是按照先后順序的,不會(huì)發(fā)生錯(cuò)序的情況;由于執(zhí)行器采用事件驅(qū)動(dòng)模式,為了避免執(zhí)行器頻繁動(dòng)作,因此執(zhí)行器總是使用當(dāng)前周期內(nèi)最先到達(dá)的控制量。如果在當(dāng)前控制周期內(nèi)執(zhí)行器未接收到新的控制量,則采用上周期控制量進(jìn)行計(jì)算,故此假設(shè)合理。
根據(jù)上訴假設(shè),時(shí)變長(zhǎng)時(shí)延情形下的系統(tǒng)控制輸入時(shí)序如圖10 所示,則時(shí)變長(zhǎng)時(shí)延可描述為式(6)形式。
圖10 長(zhǎng)時(shí)延情形下控制輸入時(shí)序圖
可得知每個(gè)控制周期內(nèi)至多有2 個(gè)控制量作用在被控對(duì)象上,即
那么可以得到具有時(shí)變長(zhǎng)時(shí)延的網(wǎng)絡(luò)化控制系統(tǒng)模型:
值得說(shuō)明的是,當(dāng)取系統(tǒng)式(8)中的n=0,系統(tǒng)式(8)退化為系統(tǒng)式(4)。因此,結(jié)合式(4)和(8),可得到具有有界時(shí)變時(shí)延的網(wǎng)絡(luò)化控制系統(tǒng)模型為
其中n∈N,0 ≤n <dM。在本地模式下,采用系統(tǒng)辨識(shí)方法得到模型參數(shù)分別為
本節(jié)基于網(wǎng)絡(luò)化磁懸浮RCP 系統(tǒng),設(shè)計(jì)了2 個(gè)實(shí)驗(yàn)案例,分別對(duì)文獻(xiàn)[8]和文獻(xiàn)[10]中針對(duì)網(wǎng)絡(luò)化系統(tǒng)的理論方法進(jìn)行實(shí)驗(yàn)驗(yàn)證。文獻(xiàn)[10]提出了一種基于模型預(yù)測(cè)控制(model predictive control,MPC)的網(wǎng)絡(luò)化預(yù)測(cè)控制策略,是網(wǎng)絡(luò)化控制理論中的典型算法,通過(guò)該算法實(shí)驗(yàn)驗(yàn)證所設(shè)計(jì)RCP 系統(tǒng)的有效性。文獻(xiàn)[8]提出了基于等價(jià)輸入干擾(equivalent input disturbance,EID)方法補(bǔ)償網(wǎng)絡(luò)化時(shí)變時(shí)延的策略,通過(guò)數(shù)字仿真驗(yàn)證了其有效性。然而由于其網(wǎng)絡(luò)化實(shí)驗(yàn)平臺(tái)的限制,無(wú)法對(duì)上述理論進(jìn)行獨(dú)立實(shí)驗(yàn)驗(yàn)證。本文通過(guò)對(duì)上述理論方法進(jìn)行實(shí)驗(yàn),驗(yàn)證所設(shè)計(jì)系統(tǒng)的優(yōu)越性。在PC 機(jī)控制系統(tǒng)的Simulink 環(huán)境中搭建算法仿真框圖如圖11所示,其中控制算法可以通過(guò)Simulink 自帶的功能模塊實(shí)現(xiàn),也可以通過(guò)S-Function 模塊編程實(shí)現(xiàn)。為了加快仿真的計(jì)算速度,給出示例中的控制算法均采用C 代碼編寫的S-Function 模塊實(shí)現(xiàn)。顯然可知,針對(duì)不同的控制算法實(shí)驗(yàn)設(shè)計(jì)只需要替換SFunction 模塊即可,這保證了RCP 系統(tǒng)的便捷性、開放性和通用性。
圖11 控制算法仿真框圖
文獻(xiàn)[10]所提出的網(wǎng)絡(luò)化MPC 控制方法主要思想是將網(wǎng)絡(luò)通信時(shí)延處理為系統(tǒng)控制(采樣)周期的整數(shù)倍,采用MPC 計(jì)算得到多步預(yù)測(cè)的系統(tǒng)控制輸入,并將其打包成一個(gè)數(shù)據(jù)包通過(guò)以太網(wǎng)發(fā)送到執(zhí)行器端。那么執(zhí)行器可根據(jù)網(wǎng)絡(luò)通信時(shí)延大小選擇相應(yīng)預(yù)測(cè)步長(zhǎng)的控制輸入作為當(dāng)前實(shí)際控制量發(fā)送給被控對(duì)象,從而主動(dòng)補(bǔ)償網(wǎng)絡(luò)通信時(shí)延對(duì)控制系統(tǒng)的影響。網(wǎng)絡(luò)化MPC 控制器設(shè)計(jì)步驟如下所示。
(1) 確定時(shí)延上界dM。
(2) 計(jì)算狀態(tài)反饋增益K。K可以通過(guò)極點(diǎn)配置以及線性二次型調(diào)節(jié)(linear quadratic regulator,LQR)等方式設(shè)計(jì),需要滿足Ag+BgK為Schur 穩(wěn)定矩陣。
(3) 構(gòu)造預(yù)測(cè)控制輸入集U(k),具體形式為
由圖8 可知,實(shí)驗(yàn)環(huán)境下的網(wǎng)絡(luò)通信時(shí)延τk<6 ms,由于采樣周期T=2 ms,因此取dM=3。代入系統(tǒng)模型參數(shù)Ag以及Bg,采用LQR 方法設(shè)計(jì)狀態(tài)反饋增益K=[716.18 71.77],小球位置控制實(shí)驗(yàn)結(jié)果如圖12 所示。實(shí)驗(yàn)結(jié)果表明,小球在平衡位置(45 mm)只有較小幅度的波動(dòng),具有較好的穩(wěn)定性,驗(yàn)證了文獻(xiàn)[10]提出的網(wǎng)絡(luò)化MPC 控制理論,也說(shuō)明了所設(shè)計(jì)網(wǎng)絡(luò)化RCP 系統(tǒng)的有效性。
圖12 網(wǎng)絡(luò)化MPC 控制實(shí)驗(yàn)
文獻(xiàn)[8]提出了基于擾動(dòng)觀測(cè)器(EID)的網(wǎng)絡(luò)化系統(tǒng)時(shí)變時(shí)延補(bǔ)償方法,其主要是將時(shí)變時(shí)延帶來(lái)的不確定性等效為系統(tǒng)的網(wǎng)絡(luò)擾動(dòng),采用EID 思想將網(wǎng)絡(luò)擾動(dòng)等效為系統(tǒng)輸入端的干擾,并在控制量中對(duì)其進(jìn)行補(bǔ)償,從而消除網(wǎng)絡(luò)時(shí)延給系統(tǒng)帶來(lái)的影響。
為了更加清晰地說(shuō)明該理論的正確性,此處設(shè)計(jì)了本地模型下的線性二次型最優(yōu)控制(LQR)、網(wǎng)絡(luò)系統(tǒng)的LQR 控制以及基于EID 的LQR(LQR +EID)控制3 種實(shí)驗(yàn)。采用LQR 方法設(shè)計(jì)狀態(tài)反饋增益K=[716.18 71.77],EID 觀測(cè)器增益L=[1.9002 472.3421]T以及濾波器時(shí)間常數(shù)Ts=0.01。實(shí)驗(yàn)結(jié)果如圖13 所示。顯然,根據(jù)本地模式和網(wǎng)絡(luò)化控制模型下的LQR 控制實(shí)驗(yàn)結(jié)果對(duì)比可知,時(shí)變時(shí)延帶來(lái)的不確定性影響使得磁懸浮球位置在平衡點(diǎn)附近發(fā)生了較大波動(dòng),使得系統(tǒng)控制性能下降;然而,引入EID 擾動(dòng)補(bǔ)償策略后,網(wǎng)絡(luò)化控制模型下的系統(tǒng)位置控制性能基本與本地模式一致??偨Y(jié)得出,實(shí)驗(yàn)結(jié)果與文獻(xiàn)[8]中的理論和仿真結(jié)果一致,驗(yàn)證了其理論正確性,同時(shí)也說(shuō)明了本文所設(shè)計(jì)網(wǎng)絡(luò)化RCP 系統(tǒng)的優(yōu)越性。
圖13 LQR 控制器本地控制和網(wǎng)絡(luò)化控制效果圖
本文采用開源的硬件和軟件環(huán)境搭建了一套網(wǎng)絡(luò)化開放式RCP 系統(tǒng),設(shè)計(jì)了雙嵌入式目標(biāo)機(jī)架構(gòu),采用以太網(wǎng)連接PC 控制系統(tǒng)和目標(biāo)機(jī),具有結(jié)構(gòu)簡(jiǎn)單、開放性好、成本低、部署方便、可擴(kuò)展性強(qiáng)等諸多優(yōu)點(diǎn),并以磁懸浮球?yàn)楸豢貙?duì)象設(shè)計(jì)了網(wǎng)絡(luò)化RCP 實(shí)驗(yàn)平臺(tái)。本文對(duì)系統(tǒng)硬件設(shè)計(jì)和軟件控制流程進(jìn)行了詳細(xì)介紹,并設(shè)計(jì)了2 個(gè)代表性網(wǎng)絡(luò)化理論算法實(shí)驗(yàn),表明了所提RCP 系統(tǒng)在算法設(shè)計(jì)中的便捷性和輔助開發(fā)中的優(yōu)越性。本文所設(shè)計(jì)網(wǎng)絡(luò)化開放式RCP 系統(tǒng)可用于各類網(wǎng)絡(luò)化控制系統(tǒng)理論分析和產(chǎn)品研發(fā)過(guò)程,具有良好輔助設(shè)計(jì)價(jià)值。