黃在范 丁筱玲 施國英 郎需強(qiáng) 鄭成淑
摘 要:本研究設(shè)計了一種花卉無土栽培營養(yǎng)液主要成分在線檢測系統(tǒng)。該系統(tǒng)能夠?qū)崟r檢測營養(yǎng)液NO-3、PO3-4和K+濃度以及溫度、pH、EC的瞬時值,并且提供上述測量值的歷史數(shù)據(jù)以供查詢和分析。試用結(jié)果表明,該系統(tǒng)能夠滿足在設(shè)施內(nèi)花卉無土栽培中實現(xiàn)自動化控制營養(yǎng)液氮、磷、鉀等主要離子濃度,并具有可靠性和準(zhǔn)確性。
關(guān)鍵詞:花卉;無土栽培;營養(yǎng)液;離子濃度;檢測系統(tǒng)
中圖分類號:TP274 文獻(xiàn)標(biāo)識號:A 文章編號:1001-4942(2009)12-0017-05
花卉無土營養(yǎng)液栽培模式,可以達(dá)到高產(chǎn)、優(yōu)質(zhì)、高效的目標(biāo),并已成為一種技術(shù)上高度密集配套、生產(chǎn)及管理上集約化、自動化、現(xiàn)代化程度很高的農(nóng)藝生產(chǎn)技術(shù)體系[1]。在花卉無土栽培中,不同花卉及不同生長發(fā)育時期對營養(yǎng)液及其濃度的要求不同。氮、磷、鉀在花卉生長和發(fā)育過程中起著重要作用,且不同生長發(fā)育時期對其要求不同[5]。因此,隨時監(jiān)測氮、磷、鉀的離子濃度對生產(chǎn)優(yōu)質(zhì)花卉產(chǎn)品具有重要意義。傳統(tǒng)檢測通常采用離線實驗分析或儀表測量的方法。這些離線檢測方法的優(yōu)點是分析精度高,能夠分析的成分種類全面,但分析過程緩慢,取樣、預(yù)處理和測定過程復(fù)雜,不能直接和全面地分析營養(yǎng)液成分的變化情況,無法滿足建立可控環(huán)境農(nóng)業(yè)綜合智能自動化控制系統(tǒng)的要求[6]。Kupers(1992)等[7]通過試驗獲得了離子選擇電極用于營養(yǎng)液成分檢測的實踐經(jīng)驗,并且指出,相對于傳統(tǒng)的測量元件,離子選擇電極對于建立實用的控制系統(tǒng)具有很大優(yōu)勢[2]。但目前這類設(shè)備基本以國外引進(jìn)為主。Morimoto(1992)等[3]經(jīng)實驗證明,在蔬菜無土營養(yǎng)液栽培中,通過監(jiān)控K+和Ca2+濃度可以較好地實現(xiàn)營養(yǎng)液濃度的循環(huán)控制。賴勝(2004)等[4]也設(shè)計一個在線檢測和控制營養(yǎng)液中氮、鉀和鈣離子濃度以及溫度、pH值和EC值的系統(tǒng)。
但上述檢測技術(shù)都還不成熟,缺乏快速性和準(zhǔn)確性,而且也沒有建立真正實用的營養(yǎng)液在線檢測系統(tǒng)。本試驗通過選擇合適的離子選擇電極和溫度傳感器,設(shè)計電導(dǎo)傳感器和信號調(diào)理模塊,完成數(shù)據(jù)采集卡和PC機(jī)的通信,使用Delphi 6.0編制系統(tǒng)軟件,最終建立了營養(yǎng)液成分N、P、K濃度的在線檢測系統(tǒng),不僅可達(dá)到既符合生產(chǎn)要求又降低生產(chǎn)成本的目的,還可推動我國花卉無土栽培技術(shù)的發(fā)展和推廣。
1 系統(tǒng)硬件設(shè)計
1.1 花卉無土栽培營養(yǎng)液循環(huán)系統(tǒng)
該系統(tǒng)由栽培床、營養(yǎng)液池、水泵、攪拌器、清水罐、母液罐、電磁閥門組、供液管道及回流管道組成。營養(yǎng)液池儲存配制好的營養(yǎng)液,營養(yǎng)母液罐向池內(nèi)添加各種母液,通過攪拌器使母液與營養(yǎng)液充分混合,以實現(xiàn)營養(yǎng)液成分的調(diào)整。營養(yǎng)液通過供液管道輸送到花卉栽培床,流經(jīng)植物的根部之后,經(jīng)回收管道回流到營養(yǎng)液池循環(huán)利用。
1.2 花卉無土栽培營養(yǎng)液在線檢測系統(tǒng)
在花卉無土栽培營養(yǎng)液循環(huán)系統(tǒng)基礎(chǔ)上,加入一臺高性能的計算機(jī),配以離子選擇電極、信號調(diào)理模塊和數(shù)據(jù)采集卡,再進(jìn)行適當(dāng)?shù)南到y(tǒng)設(shè)計,即構(gòu)成了營養(yǎng)液成分在線檢測系統(tǒng),見圖1。
1.3 花卉無土栽培營養(yǎng)液在線檢測系統(tǒng)硬件部分
1.3.1 離子選擇電極 離子選擇電極的離子濃度測量原理是電化學(xué)分析中的能斯特方程,即平衡電極電位與溶液中給定離子濃度的對數(shù)值呈線性關(guān)系,通過離子選擇電極可以將濃度信號轉(zhuǎn)化
成電信號[3]。在該檢測系統(tǒng)中,采用PVC塑料膜電極作為離子選擇電極,飽和甘汞電極作為參比電極,以便在測量電池中提供和保持一個固定的參比電勢。離子選擇電極包含由特殊的電活性物質(zhì)組成的敏感膜,特定的敏感膜對溶液中某種離子的活度具有選擇性響應(yīng),從而在參比電極之間產(chǎn)生一定的NO-3、PO3-4和K+電勢,這樣就可以測量營養(yǎng)液中NO-3、PO3-4和K+的濃度。
1.3.2 電導(dǎo)和溫度傳感器
常用的電導(dǎo)測量方法為間接測量法,即根據(jù)電解導(dǎo)電的原理測量營養(yǎng)液電阻進(jìn)而間接測量營養(yǎng)液電導(dǎo),在測量電極對兩側(cè)施加一等幅恒定頻率的交變方波E(t)(防止電極極化),在電極中產(chǎn)生正比于營養(yǎng)液電導(dǎo)率的電流i(t),該電流經(jīng)標(biāo)準(zhǔn)采樣電阻R分壓后產(chǎn)生正比于營養(yǎng)液電導(dǎo)的交變電壓V(t),該電壓經(jīng)阻抗變換、放大和濾波后送入A/D轉(zhuǎn)換器數(shù)字化,計算機(jī)采集數(shù)據(jù)后進(jìn)行溫度補(bǔ)償和非線性校正獲得電導(dǎo)測量結(jié)果。電導(dǎo)傳感器測量電路圖見圖2。為克服電極極化和電極極間電容對測量精度的影響,選擇由555定時器(VCC,電源電壓+5V;R為復(fù)位端;Q為輸出端;TRIG為低電平觸發(fā)端;THR為高電平觸發(fā)端;GND為接地端)、電阻和電容組成的800 Hz對稱方波交流電源作為測量電源,含有電導(dǎo)信息的分壓信號經(jīng)第1級交流放大器進(jìn)行阻抗變換,經(jīng)整流后送入第2級直流放大器調(diào)理成0~5V的直流信號送入A/D轉(zhuǎn)換器。溫度傳感器選擇具有較高測量精度的AD590,它的非線性誤差<0.5℃,工作電壓為(4~30)V,檢測范圍為(-55~+155)℃,均符合系統(tǒng)要求。
1.3.3 信號調(diào)理模塊 信號調(diào)理模塊對接入的離子選擇電極和電導(dǎo)、溫度傳感器傳來的電信號進(jìn)行預(yù)處理,調(diào)理模塊中各通道的輸出信號在0~5V范圍內(nèi),然后送到數(shù)據(jù)采集卡進(jìn)行A/D變換。其具體實現(xiàn)可以參照圖2中的第2級直流放大器。
1.3.4 數(shù)據(jù)采集卡
數(shù)據(jù)采集卡采用研華公司的PCL-711S多功能數(shù)據(jù)采集卡,其主要特征包括:8通道模擬信號輸入,12位A/D信號轉(zhuǎn)換,可編程的模擬信號輸入范圍(±5V,±2.5V等),最大25 μs的快速A/D轉(zhuǎn)換率,最大支持25 000次/s的采樣速率,支持多種語言驅(qū)動(BASIC、PASCAL、C和C++)。
2 系統(tǒng)軟件設(shè)計
設(shè)計軟件結(jié)構(gòu)系統(tǒng)完成營養(yǎng)液中pH值、EC值、溫度值以及NO-3、PO3-4和K+的濃度值檢測,并且實時顯示上述成分的動態(tài)變化過程。將結(jié)果存入數(shù)據(jù)庫以便查詢和分析(見圖3)。
2.1 通信模塊
先安裝PCL-711S驅(qū)動程序,并單獨建立一個數(shù)據(jù)通信模塊單元Op Device.pas來完成數(shù)據(jù)的采集。具體調(diào)用函數(shù)接口完成這部分功能的語言如下:
2.1.1 開啟數(shù)據(jù)采集卡 ErrCde: = DRV_Device Open(0,Device Handle);
2.1.2 關(guān)閉數(shù)據(jù)采集卡 ErrCde: = DRV_Device Close(Device Handle);
2.1.3 設(shè)置數(shù)據(jù)采集卡 for i: = 0 to 5 do,begin;ptAI Config.DasChan: = i;{采樣通道i};ptAI Config.DasGain: = 0;{增益模式:0};ErrCde: = DRV_AIConfig(Device Handle,ptAI Config),end;
2.1.4 數(shù)據(jù)采集 for i: = 0 to 5 do;for j: = 1 to SampleRate do;{Sample Rate = 3000},begin;
AiVol In.chan: = i;{采樣通道i};AiVol In.gain: = 0;{增益模式:0};AiVol In.Trig Mode: = 0;{觸發(fā)模式:0};AiVol In.voltage: = @voltage;ErrCde: = DRV_AIVoltage In(Device Handle,AiVol In);
DataVol[i+1][j]: = voltage * 1000;end;
2.1.5 數(shù)據(jù)濾波及多線程處理 本試驗利用了Windows多線程技術(shù)。線程是一種操作系統(tǒng)對象,它表示在進(jìn)程中代碼的一條執(zhí)行路徑。在每一個Win32應(yīng)用程序中都至少有一個主線程,但可以在任何地方創(chuàng)建多個附屬線程,它們在后臺進(jìn)行其它各種類型的處理。Delphi把有關(guān)線程的API封裝在TThread這個Object Pascal的對象中。TThread類是一個抽象類,不能創(chuàng)建TThread的實例,而只能創(chuàng)建其派生類的實例。在程序中,新創(chuàng)建的線程對象如下:
TGet Data Thread = class(TThread)
private
{Private declarations}
protected
procedure Execute;override;
end;
派生類中唯一必須覆蓋的方法是Execute。由于要在子線程TGetDataThread中完成數(shù)據(jù)濾波,可以如下定義Execute:
Free On Terminate := True;{釋放線程對象}
Priority := tpHigher;{設(shè)置優(yōu)先級}
Device_GetData;{采集數(shù)據(jù)}
for i := 1 to 6 do
Temp Val[i] := 0;{數(shù)組Temp Val為濾波后各通道的數(shù)據(jù)}
for i := 1 to 6 do
for j := 1 to Sample Rate do
begin
Temp Val[i] := Temp Val[i] + DataVol[i,j];
end;
for i := 1 to 6 do
TempVal[i] := Temp Val[i]/Sample Rate;
然后,可通過調(diào)用線程對象的Create使上述代碼執(zhí)行:TGet Data Thread.Create(False);
{參數(shù)設(shè)置成False,當(dāng)調(diào)用Create后,Execute自動執(zhí)行;否則需要運行Resume來喚醒線程。}
2.2 數(shù)據(jù)模塊
2.2.1 數(shù)據(jù)擬合處理 由于采集來的只是各個測量點的電壓值,需要在程序中對其進(jìn)行處理,使之變成相應(yīng)的營養(yǎng)液成分值。程序中加入了二次添加法、逐步最小二乘擬合法等算法模塊,最終得到溫度、pH值、EC值,以及NO-3、PO3-4和K+的濃度值[8,9]。
2.2.2 數(shù)據(jù)存儲 數(shù)據(jù)模塊用VCL中的TData待Module類來操縱[4]。TData Module可以看作是一個不可見的窗體,在該窗體內(nèi)可以放置需要用到的數(shù)據(jù)訪問組件。因此,要在一個項目的多個窗體和單元之間共享數(shù)據(jù),有效的方法就是把數(shù)據(jù)訪問組件TTable和TDataSource放在數(shù)據(jù)模塊中,然后對它們進(jìn)行適當(dāng)關(guān)聯(lián),并且定義字段級的操作規(guī)則,諸如顯示格式、字段的最小/最大值等。在數(shù)據(jù)模塊創(chuàng)建時的觸發(fā)事件代碼為:
Create Data DB(DirName,TabName);{建立路徑為DirName,表名為Tab Name的庫文件}
Data Table.Database Name := DirName;
Data Table.Table Name := TabName;{指定路徑及表名給TTable對象DataTable}
DataTable.Active := True;{打開數(shù)據(jù)庫} 其中的CreateDataDB函數(shù)用來創(chuàng)建一個新的數(shù)據(jù)庫,并且定義字段和索引,主要代碼如下:
if not NewTable.Exists then begin
with FieldDefs do
begin
Clear;
with Add Field Def do {添加字段}
begin
Name :=“數(shù)據(jù)序號”;
Data Type := ft Integer;
Required := True;
end;
...
with IndexDefs.AddIndexDef do {添加索引}
begin
Fields := “數(shù)據(jù)序號”;
Name := “MainIndex”;
Options := [ixPrimary,ixUnique];
end;
...
end;
CreateTable;
{按照定義的字段以及索引建立數(shù)據(jù)庫}
end
完成這部分工作以后,如果在程序其它功能模塊中需要對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行操作,只要將數(shù)據(jù)模塊單元的名稱加入到uses子句中即可。2.2.3 動態(tài)顯示
因為以圖形方式動態(tài)顯示的數(shù)據(jù),都是經(jīng)過處理以后存儲在數(shù)據(jù)表中的,所以動態(tài)顯示單元首先要從數(shù)據(jù)表中讀取已存儲的各個營養(yǎng)液成分對應(yīng)的數(shù)值,然后,再利用Delphi提供的繪圖功能以及非可視控件TTimer,就可以在TImage對象上實現(xiàn)動態(tài)模擬顯示(見圖4)。用TTimer可以在指定的時間間隔有規(guī)律地觸發(fā)一個事件On Timer,程序中,定義Refresh Timer為TTimer類,并且定義Refresh Timer.Interval: = 1000,即每一秒刷新一次畫面,同時在事件Refresh Timer中完成在TImage對象上繪圖的功能:
with Image1.Canvas do
for i:=0 to 5 do
begin
Move To(DrawIndex + 1,
Round (To Draw Data [Draw Index - 2][i]));
Line To(Draw Index + 2,
Round(To Draw Data [Draw Index - 1][i]));
{分別繪制對應(yīng)的6條曲線}
end;
3 結(jié)論
該系統(tǒng)軟件基本實現(xiàn)了花卉無土栽培營養(yǎng)液主要成分NO-3、PO3-4、K+等的在線檢測。通過對歷史數(shù)據(jù)的查詢和分析,可以方便地檢測營養(yǎng)液主要成分的變化趨勢,進(jìn)一步利用Matlab等數(shù)學(xué)工具進(jìn)行深入研究,可以得到很多有關(guān)pH值、EC值和其它離子濃度的數(shù)學(xué)模型[10,11]。相對于國內(nèi)外傳統(tǒng)營養(yǎng)液成分檢測的離線方法,本研究從硬件和軟件兩個方面著手設(shè)計,并結(jié)合最小二乘辨識等建模方法,最終實現(xiàn)了花卉無土栽培營養(yǎng)液主要成分在線實時檢測系統(tǒng)。
參 考 文 獻(xiàn):
[1] 筵麗萍,曹東興,鄭志敏,等.無土栽培營養(yǎng)液自動控制系統(tǒng)的最佳方案設(shè)計[J]. 河北工業(yè)大學(xué)學(xué)報,2001,30(12):107-110.
[2] 于海業(yè),馬明建.營養(yǎng)液檢測與控制技術(shù)概況[J].山東工程學(xué)院學(xué)報,2002,16(1):69-72.
[3] Morimoto T, Nishina H, Hashimoto Y, et al. Sensor for Ion-control: An approach to control of nutrient solution in hydroponics[J]. Acta Hort., 1992, 304: 301-308.
[4] 賴 勝,王 永,孫德敏,等.營養(yǎng)液成分在線檢測系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機(jī)工程,2004,30(21):146-148.
[5] 邱雪峰,薛美盛,孫德敏,等.設(shè)施栽培中營養(yǎng)液成分的在線檢測[J].農(nóng)業(yè)工程學(xué)報,2000,16(1):83-86.
[6] 秦琳琳,王 永,孫德敏.營養(yǎng)液組分檢測與控制系統(tǒng)的設(shè)計與實現(xiàn)[J].中國科學(xué)技術(shù)大學(xué)學(xué)報,2004,34(2): 202-204.
[7] Kupers G, Van Gaalen J, Gieling T, et al.Diurnal changes in the ion concentration of the supple and return water of a tomato crop grown on rockwool[J].Acta Hort.,1992,304:291-300.
[8] 邱雪峰,薛美盛,孫德敏,等.在線檢測與估計營養(yǎng)液成分[J]. 中國科學(xué)技術(shù)大學(xué)學(xué)報,2000,30(3):351-355.
[9] Savvas D, Gizas G. Response of hydroponically grown gerbera to nutrient solution recycling and different nutrient cation ratios[J]. Scientia Horticulturae,2002,96(1):267-270.
[10]Ferentinos K P, Albright L D, Selman B. Neural network-based detection of mechanical, sensor and biological faults indeep-trough hydroponics[J]. Computers and Electronics in Agriculture,2003,40:65-85.
[11]藺金元.無土栽培營養(yǎng)液的自動配比控制系統(tǒng)[J].寧夏農(nóng)林科技,2006,6:34-35.