陳志華,童曉斌,張陸續(xù)
(湖南三一智能控制設(shè)備有限公司,長沙 410100)
在工程施工中,能代替繁重體力勞動的機械與機具,統(tǒng)稱為工程機械,其中帶作業(yè)裝置的自行式工程機械,簡稱工程車輛。工程車輛種類繁多,如裝載機、泵車、壓路機、推土機、攤鋪機等,每種工程車輛均可在工程施工中完成特定的工程作業(yè)[1]。
工程車輛能夠?qū)崿F(xiàn)特定的工程作業(yè),是由于其具備一個或多個控制系統(tǒng),在控制系統(tǒng)中實現(xiàn)了對應(yīng)工程車輛的工作邏輯。在傳統(tǒng)的工程車輛控制系統(tǒng)中,通過PLC中的編程手段僅能夠?qū)崿F(xiàn)標(biāo)準(zhǔn)的控制邏輯,確保工程車輛能夠正常工作,對于復(fù)雜算法設(shè)計和行業(yè)成熟技術(shù)引用沒有成熟手段。隨著汽車行業(yè)和工程車輛行業(yè)的結(jié)合越來越緊密,原本在汽車行業(yè)使用的基于MATLAB的開發(fā)模式給解決工程車輛的復(fù)雜算法和成熟技術(shù)集成難題提供了新的方向和思路,為此可將MATLAB融入工程車輛控制系統(tǒng),但工程車輛的控制系統(tǒng)需解決以下3個問題:
1)MATLAB模型如何在現(xiàn)有工程車輛控制系統(tǒng)中集成;
2)MATLAB算法與原有的工程車輛CODESYS控制邏輯如何進(jìn)行結(jié)合;
3)如何實現(xiàn)算法模型和控制邏輯之間的時序,確保其運行的準(zhǔn)確性。
基于上述問題,本文根據(jù)工程車輛控制系統(tǒng)的特點,研究并設(shè)計了一種基于MATLAB的工程車輛控制系統(tǒng)通用設(shè)計平臺。
工程車輛控制系統(tǒng)通用設(shè)計平臺總體設(shè)計框圖如圖1所示。

圖1 工程車輛控制系統(tǒng)通用設(shè)計平臺總體設(shè)計框圖
工程車輛控制系統(tǒng)通用設(shè)計平臺主要是結(jié)合控制系統(tǒng)、MATLAB和CODESYS來完成其平臺的建設(shè),整體框架采用上下位機的結(jié)構(gòu),上位機可以采用普通的PC設(shè)備,運行MATLAB和CODESYS軟件,下位機即實際的工程車輛控制系統(tǒng),實時運行MATLAB算法模型和CODESYS邏輯。
基于CODESYS的嵌入式PLC平臺由其上位機軟件開發(fā)系統(tǒng)(包括開發(fā)層和通訊層)和嵌入式實時核系統(tǒng)組成,并且其提供了特有的IO驅(qū)動模塊開發(fā)接口,可以集成自定義IO模塊來完成相關(guān)功能的設(shè)計[2]。
基于MATLAB的模型開發(fā)設(shè)計也采用與CODESYS相同的架構(gòu),其上位機安裝MATLAB軟件,實現(xiàn)算法建模、離線仿真、交叉編譯、模型解析等功能,下位機實現(xiàn)模型的運算和調(diào)度,實時按照模型中設(shè)定的時間對模型進(jìn)行計算。
在上位機中,MATLAB和CODESYS是兩個獨立的軟件,可以獨立開發(fā)完成各自部分的算法或者邏輯,并且都可通過以太網(wǎng)直接下載到下位機進(jìn)行運行,兩者之間通過MATLAB模型編譯過程中生成的模型描述文件(XML)來進(jìn)行模型信息交互,也就是變量交互指針。在下位機中分別運行MATLAB的BackGround和CODESYS的RunTime,分別用以調(diào)度MATLAB模型和CODESYS應(yīng)用,在CODESYS中導(dǎo)入的模型描述文件中定義的變量交互指針指向MATLAB模型在下位機中運行時的變量空間,從而使得在CODESYS中可以實時監(jiān)控MATLAB的變量。

圖2 基于MATLAB的模型開發(fā)流程設(shè)計框圖
基于MATLAB的模型開發(fā)流程設(shè)計包括模型設(shè)計、驅(qū)動模塊(用戶C模塊)接入、自動代碼生成、編譯連接下載和實時驗證實驗,具體開發(fā)流程如圖2所示。
離線建模仿真是基于MATLAB的模型設(shè)計方法來實現(xiàn)的,開發(fā)工作完全基于模型設(shè)計,在設(shè)計的過程中可以離線仿真檢查模型的正確性,實現(xiàn)在設(shè)計時進(jìn)行需求的迭代[3]。離線建模仿真過程可以完成與硬件無關(guān)的所有算法的驗證,與硬件相關(guān)的模型部分也可以通過設(shè)定硬件值的方法來完成驗證。
驅(qū)動模塊接入是針對控制系統(tǒng)來開發(fā)的通用模塊庫,包括用戶自定義基礎(chǔ)模塊庫(MATLAB或者C模塊)、專業(yè)算法模塊庫(EMD算法庫、Filter算法庫、TOF算法庫等)、硬件接口庫(DI、DO、PWM等),具體如圖3所示。算法庫設(shè)計是一種增量設(shè)計模式,用戶可根據(jù)需要進(jìn)行算法庫的添加,在不同的工程應(yīng)用中,借用已有的算法庫不僅能提高開發(fā)效率,也可有效避免新開發(fā)帶來的不穩(wěn)定性風(fēng)險。

圖3 驅(qū)動模塊庫示意圖
自動代碼生成借助MATLAB的RTW(Real-Time Workshop)工具箱來完成[4]。一般來說,控制系統(tǒng)支持C代碼的執(zhí)行,因此,在使用自定義的系統(tǒng)TLC中繼承了MATLAB已有的ert.tlc或者grt.tlc的代碼生成規(guī)則來生成代碼,確保代碼生成的可靠性,在此基礎(chǔ)上增加個性化代碼生成規(guī)則來實現(xiàn)其與CODESYS的對接。
編譯鏈接下載需要將當(dāng)前控制系統(tǒng)的編譯器集成到MATLAB中,并且通過在系統(tǒng)TLC對應(yīng)的TMF中建立編譯器關(guān)聯(lián)關(guān)系和規(guī)定編譯選項的方式進(jìn)行支持,可以完成一鍵編譯鏈接下載。編譯器是基于控制系統(tǒng)的開發(fā)環(huán)境提取的,能夠?qū)⒆詣哟a過程生成的C代碼、驅(qū)動模塊庫對應(yīng)的代碼以及框架代碼一起編譯鏈接,生成能夠在控制系統(tǒng)中直接執(zhí)行的二進(jìn)制文件。
實時驗證試驗部分采用CODESYS來完成,在CODESYS中導(dǎo)入編譯過程生成的XML文件,該文件不僅規(guī)定了MATLAB模型與CODESYS進(jìn)行數(shù)據(jù)交互的接口,還制定了CODESYS對MATLAB模型的控制接口。
基于MATLAB和CODESYS的協(xié)同運算設(shè)計流程如圖4所示,是基于3個方面來完成的:
1)MATLAB模型代碼生成過程中自動生成CODESYS可導(dǎo)入的模型描述文件XML;
2)在CODESYS中通過模型描述文件實現(xiàn)CODESYS數(shù)據(jù)端口與MATLAB模型變量內(nèi)存地址的綁定;
3)在運行的過程中MATLAB模型和CODESYS邏輯代碼去與變量交互區(qū)進(jìn)行數(shù)據(jù)交互。
在MATLAB代碼生成的過程中,MATLAB提供了可插入自定義腳本的功能,在腳本中根據(jù)IEC61131的標(biāo)準(zhǔn)生成對應(yīng)模型的XML文件,該文件描述了模型對應(yīng)的輸入輸出變量及用戶標(biāo)識的需要監(jiān)控的變量表,可直接通過CODESYS的PLCOpenXML導(dǎo)入功能直接導(dǎo)入已有的邏輯算法工程中,并且自動生成對應(yīng)的變量結(jié)構(gòu)指針,通過這些變量結(jié)構(gòu)指針可直接訪問MATLAB模型的變量。
將CODESYS邏輯代碼中已有的變量跟變量結(jié)構(gòu)指針建立綁定關(guān)系,如賦值、運算、引用等,使得MATLAB模型在CODESYS邏輯代碼中就相當(dāng)于一個模塊來調(diào)用。
在控制系統(tǒng)中MATLAB模型運行時將會開辟對應(yīng)的變量地址空間,并且將上述模型信息XML文件中定義的變量的地址空間直接映射為變量交互區(qū),在CODESYS邏輯運行的時候根據(jù)模型信息XML文件中的描述信息來訪問變量交互區(qū),從而使得MATLAB和CODESYS可以協(xié)同計算。

圖4 基于MATLAB和CODESYS的協(xié)同計算流程圖
一般情況下,控制系統(tǒng)所采集到的機械故障信號都不是線性信號和平穩(wěn)信號。在泵車設(shè)計過程中,泵車臂架振動信號也是這種無序的信號,怎么將臂架振動規(guī)律統(tǒng)計出來一直是一個難題。經(jīng)驗?zāi)B(tài)分解(Empirical Mode Decomposition,EMD)方法是一種處理非線性、非穩(wěn)定信號的有效分析方法,主要包含EMD分解和希爾伯特變換兩個過程[5]。在本平臺中使用EMD方法來處理臂架振動信號,可統(tǒng)計臂架振動規(guī)律,具體實現(xiàn)過程如下:
1)在控制系統(tǒng)中,通過傳感器采集臂架角度;
2)根據(jù)臂架本身的特性和其角度信息計算出臂架末端的位置信息;
3)將臂架末端位置數(shù)據(jù)傳入EMD算法中進(jìn)行分解和統(tǒng)計;
4)得出臂架振動規(guī)律來進(jìn)一步優(yōu)化臂架操控算法。
其中,EMD算法在傳統(tǒng)控制系統(tǒng)中用PLC代碼無法實現(xiàn),采用本設(shè)計平臺,用MATLAB模型來實現(xiàn)EMD算法,將臂架末端數(shù)據(jù)作為模型輸入,統(tǒng)計結(jié)果作為模型輸出,如此則可將臂架在一段時間內(nèi)的振動數(shù)據(jù)統(tǒng)計出來,振動數(shù)據(jù)如圖5所示。

圖5 臂架振動數(shù)據(jù)獲取圖
通過對大量泵車的臂架數(shù)據(jù)的收集和分析,可以得出臂架振動規(guī)律,根據(jù)該規(guī)律來改變臂架操控屬性設(shè)置,優(yōu)化控制算法,從而達(dá)到提高臂架穩(wěn)定性,更進(jìn)一步提升施工安全性的目標(biāo)。
當(dāng)前全球面臨著能源短缺的危機,并且大氣污染也是急待解決的難題。這兩大問題直接導(dǎo)致了傳統(tǒng)交通和工程機械向著電動化方向發(fā)展[6]。在電動化轉(zhuǎn)型的過程中,傳統(tǒng)交通工具——汽車已經(jīng)走在了前頭,采用本設(shè)計平臺可以將汽車行業(yè)成熟的電動化應(yīng)用模塊快速拿來在工程機械控制系統(tǒng)中集成,從而加快工程機械的電動化轉(zhuǎn)型。具體實現(xiàn)如下:
1)將電動化模型封裝為MATLAB模型,提取其輸入輸出,如圖6、圖7所示;
2)在CODESYS中導(dǎo)入模型描述文件,并且將模型對應(yīng)的端口跟實際的物理變量綁定。

圖6 模型封裝

圖7 具體算法
可在實車上通過CODESYS軟件來對MATLAB模型進(jìn)行算法參數(shù)優(yōu)化和標(biāo)定,也可借用其曲線繪制功能來查看變量之間變換的聯(lián)系和規(guī)律,從而在精確的時間點上精準(zhǔn)地把控算法的變換情況,可將算法的最優(yōu)配置在線調(diào)出來,使得車輛性能最佳,曲線繪制功能示意圖如圖8所示。

圖8 曲線監(jiān)控、對比示意圖
在傳統(tǒng)的泵車使用過程中,往往由于支腿和臂架展開匹配不到位導(dǎo)致泵車側(cè)翻事故頻發(fā),采用該設(shè)計平臺在MATLAB中對整車重心進(jìn)行算法仿真,仿真結(jié)果如圖9所示,并且將其直接轉(zhuǎn)換為代碼在控制系統(tǒng)中進(jìn)行計算,結(jié)果如圖10所示,能夠?qū)?dāng)前支腿打開位置、角度對應(yīng)的臂架可伸展的最高、最遠(yuǎn)臨界點精準(zhǔn)計算出來。可將該臨界值傳遞給顯示屏,在顯示屏中將相對應(yīng)的信息提示出來,用于指導(dǎo)用戶作業(yè)和做出臨界點預(yù)警,從而提高泵車使用的安全性。

圖9 泵車整車重心仿真結(jié)果

圖10 泵車整車重心實際運行結(jié)果
傳統(tǒng)泵車打泵的過程中,料斗料位的控制要么通過按喇叭警示要么通過人工呼喊提示的方式來實現(xiàn),并且需要在施工現(xiàn)場和投料現(xiàn)場分別安排人員來進(jìn)行操作。
在料斗上安裝攝像頭,如圖11所示,捕獲料斗料位信息傳遞給控制系統(tǒng),在控制系統(tǒng)中采用本設(shè)計平臺通過料位檢測圖像識別算法對料位信息進(jìn)行分析處理,得出當(dāng)前是否需要投料,并且將結(jié)果傳遞給投料設(shè)備(如攪拌車),從而達(dá)到自動投料的效果,既可提高投料的效率,節(jié)約人力,又可減少噪聲和操作不及時引發(fā)的其他問題。
本文在已有的工程車輛控制系統(tǒng)基礎(chǔ)上提供了一種基于MATLAB的工程車輛控制系統(tǒng)通用設(shè)計平臺的設(shè)計實現(xiàn)方法,實現(xiàn)了MATLAB與已有控制系統(tǒng)相融合、MATLAB模型和CODESYS邏輯在正確的時序下協(xié)同運算的功能,解決了現(xiàn)有控制系統(tǒng)在復(fù)雜算法設(shè)計和快速集成成熟算法模塊方面不足的問題。
在實際工作中已使用MATLAB的EMD算法來獲取泵車臂架振幅,并通過統(tǒng)計分析改進(jìn)設(shè)計以提高泵車的穩(wěn)定性和安全性;在智慧礦車系統(tǒng)中可將現(xiàn)有汽車行業(yè)的標(biāo)準(zhǔn)模塊拿來直接使用,提高了整車設(shè)計和開發(fā)效率;在泵車控制系統(tǒng)中使用在MATLAB中離線仿真計算過的重心算法,可提升算法開發(fā)集成效率,提升泵車安全性;使用圖像識別算法進(jìn)行料位檢測,可實現(xiàn)泵車與攪拌車協(xié)同工作,從而提高泵車工作效率,并節(jié)約人力。
實踐證明,采用該平臺可突破傳統(tǒng)控制系統(tǒng)局限性,提高復(fù)雜算法開發(fā)效率,增加模塊化設(shè)計功能,擴展控制系統(tǒng)應(yīng)用方向,從而加快工程車輛數(shù)字化、智能化轉(zhuǎn)型。

圖11 料斗攝像頭安裝現(xiàn)場圖