孫小明
(內(nèi)蒙古科技大學(xué) 機(jī)械工程學(xué)院,內(nèi)蒙古 包頭 014010)
滾動軸承是旋轉(zhuǎn)機(jī)械中廣泛應(yīng)用的零件,其工作狀態(tài)的好壞直接決定著整臺機(jī)械的運(yùn)行效率。但由于滾動軸承承受沖擊能力差,易發(fā)生故障。針對滾動軸承的故障診斷,目前大多數(shù)研究者是借助Matlab強(qiáng)大的信號處理能力,運(yùn)用不同方法對軸承振動信號進(jìn)行分析,提取故障特征。這些方法在軸承故障診斷方面都擁有各自的優(yōu)點(diǎn)和適用性,但都缺乏必要的人機(jī)交互界面,操作不便,具有一定的局限性[1-3]。為此,本文基于LabVIEW和Matlab混合編程的思想,利用Matlab Script節(jié)點(diǎn)技術(shù)將LabVIEW和Matlab的優(yōu)勢相結(jié)合,開發(fā)了一套軸承故障診斷系統(tǒng),既彌補(bǔ)了Matlab人機(jī)交互能力差的缺點(diǎn),又克服了LabVIEW數(shù)據(jù)處理分析方面的不足,為準(zhǔn)確、高效地提取并判斷軸承故障提供了途徑。
生產(chǎn)者-消費(fèi)者設(shè)計模式基于主/從設(shè)計模式,將生產(chǎn)和消費(fèi)數(shù)據(jù)速度不同的任務(wù)分開處理。通過基于隊列的并行執(zhí)行方式,生產(chǎn)者-消費(fèi)者模式可以有效地避免因時間的延遲所導(dǎo)致的數(shù)據(jù)丟失現(xiàn)象[4]。本系統(tǒng)采用結(jié)合生產(chǎn)者與消費(fèi)者的事件響應(yīng)機(jī)制,將事件結(jié)構(gòu)放入生產(chǎn)者循環(huán),通過隊列將事件信息傳遞給消費(fèi)者,在消費(fèi)者循環(huán)中獲得響應(yīng),增加了事件結(jié)構(gòu)的靈活性,提高了事件處理的效率。設(shè)計模式如圖1所示。

圖1 融合事件結(jié)構(gòu)的生產(chǎn)者-消費(fèi)者模式
若程序運(yùn)行出現(xiàn)錯誤或用戶主動停止程序時,先跳出生產(chǎn)者循環(huán),不再向消費(fèi)者循環(huán)輸出數(shù)據(jù),這將導(dǎo)致消費(fèi)者循環(huán)中的“元素出隊”函數(shù)發(fā)生錯誤,從而使進(jìn)程執(zhí)行結(jié)束。……