楊鈴鈴,于亞萍,李留安,趙喆
(1.天津農(nóng)學(xué)院工程技術(shù)學(xué)院,天津 300384;2.天津農(nóng)學(xué)院動物醫(yī)學(xué)與動物科學(xué)學(xué)院,天津 300384;3.金洼農(nóng)業(yè)科技發(fā)展有限公司,天津 300273)
雞蛋是人們?nèi)粘5鞍踪|(zhì)攝取的重要來源之一,其消費數(shù)量可以從某一方面反映生活水平高低[1]。隨著畜禽養(yǎng)殖業(yè)規(guī)模化、專業(yè)化程度不斷提高,出現(xiàn)了許多大規(guī)模散養(yǎng)雞場。因為散養(yǎng)雞活動范圍大,容易出現(xiàn)窩外蛋情況。散養(yǎng)雞場雞蛋蛋殼容易沾染污染物、容易在收回過程中碰撞破裂等,當雞蛋裂縫比較細微時,肉眼難以發(fā)現(xiàn),但裂縫蛋容易引起細菌侵襲而變質(zhì),影響雞蛋銷售品質(zhì),致使養(yǎng)殖戶造成經(jīng)濟損失。因此靠人為判斷標準區(qū)分雞蛋品質(zhì),很難分清雞蛋的具體等級。通過查閱中華人民共和國農(nóng)業(yè)農(nóng)村部頒布的鮮蛋等級規(guī)格,本系統(tǒng)采用了6個指標,即雞蛋大小、蛋形指數(shù)、污染物面積、裂縫大小、蛋殼強度、新鮮度來建立數(shù)據(jù)庫。通過對這些指標進行定量描述,避免了因人而異的檢測結(jié)果,減小了檢測與分級誤差。
整個系統(tǒng)由用戶或?qū)<业卿洝⒅R庫、推理機及人機接口組成。散養(yǎng)雞場養(yǎng)殖戶可以通過對比專家推理方法的計算機模型來解決實際的雞蛋分級問題。具體功能[2]主要由四大模塊構(gòu)成,分別是用戶或?qū)<业卿浗缑?、?shù)據(jù)庫核查界面、推理機推理系統(tǒng)、數(shù)據(jù)庫數(shù)據(jù)處理模塊。將測試的雞蛋的特征參數(shù),保存下來;運行用戶或?qū)<业卿浗缑妫斎胝_的用戶名和密碼,點擊登錄按鈕,選擇進入等級判斷推理機推理系統(tǒng)還是數(shù)據(jù)庫核查界面,系統(tǒng)功能框圖如圖1所示。
圖1 蛋品質(zhì)分級系統(tǒng)功能框圖Fig.1 The functional block diagram of egg quality grading system
它是分級系統(tǒng)與用戶交互的入口,編程思路是把用戶名和密碼保存在一個文本文件中,用數(shù)組函數(shù)中的搜索一維數(shù)組函數(shù),讓用戶輸入的信息和已存入的信息進行對比,對比成功后進入到之后的程序。登錄成功后,會彈出窗口,顯示進入等級判斷推理機推理系統(tǒng)還是數(shù)據(jù)庫核查界面,進行蛋品質(zhì)專家系統(tǒng)下一步的判定。圖2是用戶或?qū)<业卿浗缑媲懊姘寮俺绦蚩驁D。
圖2 用戶或?qū)<业卿浗缑媲懊姘寮俺绦蚩驁DFig.2 The front panel and program block diagram of user or expert login interface
依據(jù)中華人們共和國農(nóng)業(yè)農(nóng)村部頒發(fā)的雞蛋等級規(guī)格,確定了6個指標,分別是大小、蛋形指數(shù)、污染物面積、裂縫、蛋殼強度、新鮮度,輸出等級分別為AA級、A級、B級。AA級標準蛋殼強度在3.0~3.4 kg/cm2,蛋殼清潔完整,呈規(guī)則卵圓形,氣室高度不超過5 mm,蛋黃居中,輪廓不明顯,蛋重≥50 g、<64 g;A級標準蛋殼強度在3.0~3.4 kg/cm2,蛋殼清潔完整呈規(guī)則卵圓,氣室高度不超過7 mm,蛋黃居中或稍偏,輪廓較清晰,蛋重≥45 g、<50 g;B級蛋殼強度大于3.4 kg/cm2,蛋殼表面異物面積小于1 cm2,完整,氣室高度不超過9 mm,蛋黃居中或稍偏,輪廓清晰,蛋重≥37 g、<44 g;如果不在等級范圍之內(nèi),按不合格蛋處理。
知識表示方法[3,4]主要有一階謂語表示法、產(chǎn)生式表示法、框架表示法、語義網(wǎng)絡(luò)表示法、面向?qū)ο蟊硎痉?。本文采用一階謂語表示方法和產(chǎn)生式表示方法來解釋知識庫。其中,一階謂語表示方法,Parameter是謂語名;size雞蛋大小、egg-shaped蛋形指數(shù)、pollution污染物面積、crack裂縫、intensity蛋殼強度、freshness新鮮度是個體。具體表現(xiàn)形式是
parameter(size,egg-shaped,pollution,crack,intensity,freshness)
雞蛋等級判定為AA級的條件謂詞公式為
size∧egg-shaped∧pollution∧crack∧intensity∧freshness
根據(jù)以上的知識表示方法,設(shè)計蛋品質(zhì)分級系統(tǒng)的數(shù)據(jù)庫。通過獲取的雞蛋參數(shù)指標,建立推理機。
主程序由3個子程序構(gòu)成,分別是文件夾查詢、文本文件查詢、數(shù)據(jù)輸入。點擊運行后,先判斷是否為用戶所選的文件夾,進入到文本文件查詢子VI中,之后自動把輸入的數(shù)據(jù)存入到文本文件中,圖3是主VI的程序框圖。
圖3 測試數(shù)據(jù)輸入程序框圖Fig.3 The test data input program block diagram
此模塊為判斷雞蛋品質(zhì)做準備,為了簡化程序,避免程序中有小數(shù)的出現(xiàn)對數(shù)據(jù)進行擴大。把蛋形指數(shù)、污染物面積、裂縫大小的數(shù)據(jù)擴大了100倍;蛋殼強度的數(shù)據(jù)擴大了10倍,其他數(shù)據(jù)仍為檢測的實際數(shù)據(jù)。
數(shù)據(jù)庫[5]用于存儲領(lǐng)域內(nèi)的初始數(shù)據(jù)和推理過程中得到的各種信息。數(shù)據(jù)庫中存放的內(nèi)容分為2種,一種是校正數(shù)據(jù),另一種是待測數(shù)據(jù)。具體實現(xiàn)的步驟是,建立一個ACCESS文件和連接數(shù)據(jù)庫文件,通過LabVIEW的數(shù)據(jù)庫連接包,讀取數(shù)據(jù)庫中的信息,將數(shù)據(jù)庫中的數(shù)據(jù)轉(zhuǎn)化為字符型數(shù)據(jù),便于之后的數(shù)據(jù)處理,在通過MATLAB使用歸一化和反歸一化函數(shù)進行數(shù)據(jù)處理,處理之后的數(shù)據(jù)傳給推理機,讓推理機進行下一步的判斷。
推理機主要根據(jù)當前輸入的數(shù)據(jù)即數(shù)據(jù)庫中的信息,按一定的推理策略,去解決當前的問題,由推理機告知用戶結(jié)果。使用正確的推理策略[6]是得出結(jié)論的關(guān)鍵步驟,推理策略的完善度直接影響結(jié)果分析的準確性。以雞蛋等級為研究對象,分析影響等級的指標,推理機或與圖見圖4。
圖4 推理機或與圖Fig.4 The inference engine
推理機推理系統(tǒng)的主VI由3個子VI構(gòu)成,分別是獲取待測數(shù)據(jù)子VI、數(shù)據(jù)判斷子VI、結(jié)果輸出子VI。首先輸入待測數(shù)據(jù)存儲位置[7],程序自動獲取數(shù)據(jù),并以數(shù)組的形式展示給用戶看,之后獲取二維數(shù)組中的一維數(shù)組的字符串數(shù)據(jù),按順序把雞蛋參數(shù)送到順序語句中,讓其分別判斷是否在等級標準的范圍內(nèi)。對數(shù)據(jù)進行統(tǒng)一,將符合等級標準的輸出為正數(shù),不符合等級標準的輸出為負數(shù);把轉(zhuǎn)化后的數(shù)值送到條件結(jié)構(gòu)中,通過條件結(jié)構(gòu)判斷出等級結(jié)果,告知給用戶,推理機前面板及程序框圖如圖5所示。
圖5 推理機前面板設(shè)計Fig.5 The front panel design of inference engine
本系統(tǒng)采用混合推理法,先根據(jù)謂詞公式的執(zhí)行順序進行正向推理,在反向推理從已經(jīng)對比過的特征指標中在選取一個指標進行復(fù)檢,是否真正的符合標準。將數(shù)組函數(shù)、字符串函數(shù)、對話框和用戶界面VI和函數(shù)等函數(shù)與條件結(jié)構(gòu)、事件結(jié)構(gòu)相結(jié)合,主要使用平鋪式順序結(jié)構(gòu)依次把未知等級的雞蛋的數(shù)據(jù)和知識庫中的規(guī)則比較,通過彈出窗口的方式告訴用戶雞蛋的等級結(jié)果,程序具體實現(xiàn)步驟如下圖6所示。
圖6 推理機推理流程圖Fig.6 The inference flow chart of inference engine
本設(shè)計充分運用LabVIEW圖形化編程的特點,根據(jù)雞蛋大小、蛋形指數(shù)、污染物面積、裂縫大小、蛋殼強度、新鮮度這6個性能指標作為輸入量,完成了蛋品質(zhì)分級系統(tǒng),得到了與理論分析相一致的結(jié)果。該分級系統(tǒng)的設(shè)計為散養(yǎng)雞場的雞蛋自動化智能分級系統(tǒng)提供一定的參考。