閆亞賓,白 揚(yáng),李 磊,張 強(qiáng)
(1.江蘇師范大學(xué) 科文學(xué)院,江蘇 徐州 221000;2.徐州重型機(jī)械有限公司,江蘇 徐州 221000)
作為工程機(jī)械控制系統(tǒng)的基礎(chǔ),控制軟件現(xiàn)有基于代碼的開(kāi)發(fā)模式存在驗(yàn)證風(fēng)險(xiǎn)大、硬件關(guān)聯(lián)性強(qiáng)、代碼移植性差等不足,已成為產(chǎn)品安全和技術(shù)迭代的不利因素。不同于基于代碼的開(kāi)發(fā)模式,MBD (Model Based Design)模式的主要思路是面向?qū)ο箝_(kāi)發(fā)[1]。該模式使研發(fā)人員專注于模型設(shè)計(jì),代碼則由模型轉(zhuǎn)換器或代碼生成器從模型自動(dòng)生成。由于具有可提前驗(yàn)證發(fā)現(xiàn)問(wèn)題、代碼生成和標(biāo)準(zhǔn)符合性檢查等特點(diǎn),該模式可有效避免潛在驗(yàn)證風(fēng)險(xiǎn)。MBD模式已在飛行控制系統(tǒng)[2]、飛機(jī)剎車系統(tǒng)[3]和汽車電子[4]等領(lǐng)域得到深入研究。
需要注意的是,MBD模式的應(yīng)用多集中于模型到C代碼的轉(zhuǎn)換和MCU、DSP等嵌入式集成,在PLC方面缺少工程應(yīng)用研究,已有文獻(xiàn)多側(cè)重于半物理仿真[5]和教學(xué)應(yīng)用[6]等。而PLC是工程機(jī)械控制系統(tǒng)的核心,為解決工程機(jī)械控制軟件的現(xiàn)存問(wèn)題,利用MBD模式開(kāi)發(fā)控制系統(tǒng)并實(shí)現(xiàn)工程應(yīng)用是有意義且必要的。
MBD模式使研發(fā)人員從編程轉(zhuǎn)向高級(jí)別抽象,基于模型開(kāi)展需求描述、功能設(shè)計(jì)和驗(yàn)證等工作并擴(kuò)展到全生命周期[7]。該模式以模型為中心,與基于代碼即以代碼為中心的開(kāi)發(fā)模式對(duì)比如圖1所示。
由圖1可知:在工程應(yīng)用前,以代碼為中心的開(kāi)發(fā)模式無(wú)法驗(yàn)證系統(tǒng)功能性能,代碼變量耦合性強(qiáng)導(dǎo)致移植性差;以模型為中心的開(kāi)發(fā)模式在生成可執(zhí)行文件前已完成測(cè)試,可早期發(fā)現(xiàn)問(wèn)題,降低應(yīng)用風(fēng)險(xiǎn)和維護(hù)成本。
MATLAB/Simulink具有豐富的庫(kù)模塊,提供了邏輯和算法的實(shí)時(shí)仿真環(huán)境。而代碼轉(zhuǎn)換工具Simulink PLC Coder則為實(shí)現(xiàn)模型的工程應(yīng)用提供了有效途徑和可靠保證,該工具可將模型轉(zhuǎn)換為獨(dú)立于硬件的IEC 61131-3結(jié)構(gòu)化文本,通過(guò)代碼自動(dòng)分析生成測(cè)試報(bào)告,并將代碼和參數(shù)導(dǎo)入集成開(kāi)發(fā)環(huán)境。
根據(jù)工程機(jī)械控制系統(tǒng)設(shè)計(jì)的覆蓋性原則,本文以Simulink為模型載體,Simulink PLC Coder為代碼參數(shù)生成載體,CodeSys作為集成開(kāi)發(fā)環(huán)境,建立MATLAB+CodeSys工具鏈。
本文選取汽車起重機(jī)為典型對(duì)象,其運(yùn)動(dòng)控制包括伸縮、變幅等,系統(tǒng)復(fù)雜且安全性要求高。以缸臂銷伸縮系統(tǒng)為例,帶臂伸縮控制原理如圖2所示。
圖2 帶臂伸縮控制原理圖
圖2中,通過(guò)泵、閥控制伸縮油缸,同時(shí)配合缸臂銷動(dòng)作將第N+1節(jié)臂的臂銷插入第N節(jié)臂臂銷孔完成伸臂動(dòng)作。為避免油缸過(guò)伸導(dǎo)致意外事故,需進(jìn)行伸縮安全控制,方法如下:
(1) 利用測(cè)長(zhǎng)線獲取伸縮油缸長(zhǎng)度。
(2) 實(shí)時(shí)計(jì)算缸頭和第N+1節(jié)臂位置。
(3) 設(shè)計(jì)限速、限動(dòng),如式(1)、式(2)所示:
(1)
(2)
其中:SD、SS分別為限速和限動(dòng)狀態(tài),值為1表示觸發(fā)限速或限動(dòng),為0表示未觸發(fā);LR、LΔ和LT分別為伸縮油缸實(shí)時(shí)長(zhǎng)度、結(jié)構(gòu)距離和目標(biāo)距離;PD和PS分別為限速點(diǎn)和限動(dòng)點(diǎn)。
基于帶臂伸縮控制原理,依據(jù)MBD模式建立如圖3所示伸縮系統(tǒng)模型。模型包括測(cè)試用例模型、伸縮控制模型和伸縮運(yùn)動(dòng)模型。其中,測(cè)試用例模型模擬操縱輸入和故障注入等;伸縮控制模型包含基于安全控制邏輯和算法,為系統(tǒng)核心;伸縮運(yùn)動(dòng)模型根據(jù)控制輸出模擬油缸動(dòng)作。
圖3 伸縮系統(tǒng)模型
選取N=5,即控制第6節(jié)臂伸至目標(biāo)點(diǎn)。模擬伸縮控制輸入為0~100%,伸縮安全控制仿真結(jié)果如圖4所示。
圖4 伸縮安全控制仿真結(jié)果
由圖4可知:伸縮泵電流和臂長(zhǎng)隨控制輸入的增加而增加,伸臂速度增大;到達(dá)限速點(diǎn)后,伸縮泵電流顯著減小,伸臂速度減小;觸發(fā)限動(dòng)后,即使存在較大控制輸入,泵控電流也遞減為零,伸臂停止,安全控制功能正常。
利用Simulink PLC Coder將控制模型映射為PLC ST代碼,生成代碼和報(bào)告,如圖5所示。
圖5 代碼和報(bào)告
以某型汽車起重機(jī)為測(cè)試對(duì)象,將生成代碼導(dǎo)入CodeSys,編譯下載至車載控制器進(jìn)行實(shí)車測(cè)試,如圖6所示。
圖6 代碼集成和實(shí)車測(cè)試
經(jīng)測(cè)試,代碼運(yùn)行正常,實(shí)車伸縮功能正常。記錄操縱手柄、伸縮泵電流、臂長(zhǎng)等數(shù)據(jù)曲線,如圖7所示。
圖7 實(shí)車測(cè)試曲線
由圖7可知,伸縮油缸到達(dá)限速點(diǎn)和限動(dòng)點(diǎn)后,實(shí)車自動(dòng)防過(guò)伸限速限動(dòng)功能正常觸發(fā),安全控制功能準(zhǔn)確實(shí)現(xiàn);曲線與仿真結(jié)果一致,仿真驗(yàn)證為實(shí)車測(cè)試奠定了基礎(chǔ)。
針對(duì)現(xiàn)有工程機(jī)械控制軟件開(kāi)發(fā)模式的不足,本文引入MBD模式并建立工具鏈。以伸縮系統(tǒng)為例,構(gòu)建模型并生成PLC ST代碼,通過(guò)代碼集成和實(shí)車測(cè)試,實(shí)現(xiàn)了MBD模式在工程機(jī)械PLC控制領(lǐng)域的應(yīng)用。工程機(jī)械電液系統(tǒng)架構(gòu)多樣、需求多變,本文建立的硬件無(wú)關(guān)模型使生成代碼不受電液系統(tǒng)變化影響,可實(shí)現(xiàn)跨平臺(tái)快速部署。