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