??? 摘? 要: 基于ARM7和模糊控制算法" title="模糊控制算法">模糊控制算法開發(fā)的生物發(fā)酵" title="生物發(fā)酵">生物發(fā)酵智能控制系統(tǒng)" title="控制系統(tǒng)">控制系統(tǒng)。軟件設(shè)計中移植了μC/OS-II" title="C/OS-II">C/OS-II操作系統(tǒng),采用多任務(wù)程序設(shè)計方法設(shè)計,大大降低了編寫程序的復(fù)雜度。針對生物發(fā)酵控制過程中的時變性、非線性、延時性、隨機(jī)性等特點,提出采用模糊邏輯控制技術(shù)來實現(xiàn)系統(tǒng)的控制。在一定程度上解決了傳統(tǒng)控制方法" title="控制方法">控制方法不易得到系統(tǒng)數(shù)學(xué)模型、難于對控制系統(tǒng)進(jìn)行有效控制的不足。?
??? 關(guān)鍵詞: ARM7;模糊控制;μC/OS-II;生物發(fā)酵?
?
??? 近年來, 生物工程技術(shù)越來越引起科技界、工業(yè)界和政府部門的重視。生物工程的許多成果需要經(jīng)過發(fā)酵工業(yè)而轉(zhuǎn)化為工業(yè)產(chǎn)品,所以,生物發(fā)酵及其控制系統(tǒng)在生物工程中顯得越來越重要。生物發(fā)酵過程中的關(guān)鍵技術(shù)是發(fā)酵過程智能化控制。在智能化技術(shù)比較先進(jìn)的國家,此技術(shù)已經(jīng)得到了廣泛的發(fā)展和應(yīng)用,并轉(zhuǎn)化為成熟的產(chǎn)品。而國內(nèi)發(fā)酵過程的智能化控制程度比較低,生物發(fā)酵控制過程還處于初步研究階段,可以實際應(yīng)用的、成熟的系統(tǒng)比較缺少,正在使用的功能較為先進(jìn)的發(fā)酵過程智能控制系統(tǒng)均為進(jìn)口產(chǎn)品。因此,開發(fā)具有自主知識產(chǎn)權(quán)的生物發(fā)酵控制系統(tǒng)具有重要的現(xiàn)實意義和推廣應(yīng)用價值。隨著32/64位微處理器性能的提高,國內(nèi)微電子與嵌入式技術(shù)得到了迅速發(fā)展。基于此背景,本系統(tǒng)以基于ARM7內(nèi)核的嵌入式片上系統(tǒng)S3C44B0X為核心開發(fā)了智能發(fā)酵控制系統(tǒng),操作系統(tǒng)移植了嵌入式實時操作系統(tǒng)μC/OS-II。針對生物發(fā)酵控制過程中的時變性、大延時性、隨機(jī)性等特點,系統(tǒng)采用了模糊邏輯控制方法,適應(yīng)了復(fù)雜系統(tǒng)的控制。實踐表明,該控制系統(tǒng)可達(dá)到較為理想的控制效果。此控制方法可以推廣到其他具有大滯后、時變性等特點的控制對象中。?
1 系統(tǒng)硬件設(shè)計?
??? 系統(tǒng)采用基于嵌入式μC/OS-II操作系統(tǒng)[1]的ARM硬件平臺,以滿足系統(tǒng)較高的實時性需求,方便了軟硬件功能修改、擴(kuò)充、升級等需求,縮短了開發(fā)周期,降低了研發(fā)成本。?
??? 發(fā)酵過程智能控制系統(tǒng)的工作原理:系統(tǒng)啟動后,在自動運(yùn)行狀態(tài)下,ARM處理器執(zhí)行傳感器的采樣功能,并根據(jù)采樣值與設(shè)定值之間的差值,通過模糊控制算法分別控制各個控制元件。為了提高轉(zhuǎn)換精度,從硬件和軟件兩個方面采取措施:通過數(shù)字濾波法,進(jìn)一步去除干擾,提高精度;對傳感器的輸出信號實行非線性補(bǔ)償,提高系統(tǒng)的測控精度。手動運(yùn)行時,ARM處理器根據(jù)用戶指令輸出控制指令,控制各個執(zhí)行元件。另外,ARM處理器輸出的信號不足以驅(qū)動電磁閥等執(zhí)行元件,系統(tǒng)還提供了驅(qū)動電路。同時經(jīng)過串口接口電路將實際采樣值傳給計算機(jī)進(jìn)行處理,從而實現(xiàn)了發(fā)酵過程的智能控制。圖1是發(fā)酵過程智能控制系統(tǒng)的結(jié)構(gòu)框圖。?
?
?
圖1? 智能發(fā)酵控制系統(tǒng)系統(tǒng)的結(jié)構(gòu)框圖
?
1.1 ARM嵌入式處理器?
??? 系統(tǒng)采用基于μC/OS-II內(nèi)核的低功耗ARM處理器S3C44B0X[2]。它是三星公司專為手持設(shè)備和一般應(yīng)用提供的高性價比的微控制器解決方案。S3C44B0X具有ARM處理器的所有優(yōu)點:低功耗、高性能。具有豐富的片上資源:8KB高速緩存(Cache)、可配置的片內(nèi)SRAM、兩路握手功能的UART(通用串行口)、4路DMA控制器、系統(tǒng)管理功能、片選邏輯、FP/EDO/SRAM控制器、5路帶PWM的定時器、I/O接口、RTC時鐘、8路10位ADC、I2S總線、同步SIO接口和為系統(tǒng)提供時鐘的PLL倍頻電路,且集成了LCD控制器,可以將顯示緩存中的數(shù)據(jù)傳送到外部的LCD驅(qū)動電路中,非常適合嵌入式產(chǎn)品的開發(fā)。由于使用了該處理器眾多功能模塊使得系統(tǒng)結(jié)構(gòu)緊湊,減少了系統(tǒng)的復(fù)雜度。系統(tǒng)中主要用到了S3C44B0X的8路10位A/D轉(zhuǎn)換模塊、LCD控制器、32位定時器、UART、GPIO、PWM輸出模塊等。?
1.2 輸入/輸出通道?
??? 根據(jù)設(shè)計要求,系統(tǒng)對發(fā)酵液PH值、溶解氧含量DO實現(xiàn)在線實時檢測,以滿足發(fā)酵過程控制的實時性。為滿足控制系統(tǒng)的性能要求,PH、DO傳感器的反應(yīng)時間要快,成本要低。系統(tǒng)選用上海雷磁儀器廠的DDD-32D型導(dǎo)電儀。該電導(dǎo)率傳感器配有自動溫度補(bǔ)償功能;測量范圍大,測量上限為104μs/cm,滿足系統(tǒng)要求;輸出信號為0~10mA,滿足輸入信號要求。同時傳感器反應(yīng)時間也滿足控制要求,而且價格便宜。PH傳感器同樣滿足上述要求。系統(tǒng)將PH值、DO值傳感器的輸出信號統(tǒng)一轉(zhuǎn)換成電壓信號。用一片CD4501作為多路選擇開關(guān)。由于產(chǎn)生的信號很微弱,采用高精度可變增益放大器AD526實現(xiàn)信號的前置放大,調(diào)節(jié)模擬電壓信號幅度。A/D轉(zhuǎn)換器負(fù)責(zé)將采集來的模擬信號轉(zhuǎn)換成CPU可以識別的數(shù)字信號,從而作為模糊控制器的輸入,因此A/D轉(zhuǎn)換器的設(shè)計對整個系統(tǒng)來說至關(guān)重要。系統(tǒng)采用S3C44B0X芯片自帶的8位A/D轉(zhuǎn)換器,該轉(zhuǎn)換器內(nèi)部結(jié)構(gòu)中包括模擬多路復(fù)用器、自動調(diào)零器、時鐘產(chǎn)生器、10位逐次逼近寄存器和輸出寄存器??梢酝ㄟ^軟件設(shè)置為Sleep模式,可節(jié)電減少功率損失,最大轉(zhuǎn)換速率為100ksps,非線性度為正負(fù)1位,滿足系統(tǒng)對控制精度的要求。?
??? 輸出通道采用8255擴(kuò)展并口輸出。由于電磁閥等執(zhí)行元件需要24伏交流驅(qū)動,故加入驅(qū)動電路。8255輸出經(jīng)三極管放大后驅(qū)動固態(tài)繼電器,進(jìn)一步控制24V交流的通斷,以驅(qū)動電磁閥。?
1.3 人機(jī)通道?
??? 這部分包括顯示、鍵盤兩部分電路。系統(tǒng)直接使用S3C44B0X芯片上內(nèi)置的LCD控制器來構(gòu)造顯示模塊,將LCD控制器的控制信號經(jīng)74HC245驅(qū)動后與LCD模塊對應(yīng)信號相連即可。LCD顯示電路采用北京精電蓬遠(yuǎn)公司的MOBI2006液晶顯示,為128×64點陣圖形液晶,可顯8行西文、數(shù)字字符或者4行漢字,用來顯示系統(tǒng)PH值、DO的設(shè)定值及采樣值。當(dāng)按鍵修改參數(shù)時,顯示報警參數(shù)(上、下限報警值)以及各種提示符。?
??? 鍵盤電路采用HD7297鍵盤專用芯片來進(jìn)行鍵盤的設(shè)計。HD7297是一個具有串行接口的智能驅(qū)動芯片。該芯片同時還可連接多達(dá)64個鍵的鍵盤矩陣,內(nèi)部含有去抖電路。當(dāng)有鍵按下時,鍵值自動保存在寄存器中,通過讀取該寄存器,就可獲得鍵盤鍵號,避免了傳統(tǒng)的鍵盤掃描、計算鍵值等軟件,方便程序編寫。HD7297與S3C44B0X的連接極其簡單,只要把/CS、CLK、DATA和KEY四根線連接到S3C44B0X的GPIO即可。?
1.4 其他基本功能模塊?
??? 其他基本功能模塊包括存儲器模塊、超限報警模塊、異步串行通信模塊、JTAG接口模塊、電源及時鐘電路等。存儲器模塊用于記錄系統(tǒng)及發(fā)酵程序、發(fā)酵累計時間等信息。超限報警模塊由蜂鳴器實現(xiàn),當(dāng)由于意外因素導(dǎo)致實際采樣值高于設(shè)定值上限時,蜂鳴器鳴叫報警。UART模塊用于與上位機(jī)進(jìn)行通訊,以利用PC機(jī)的資源。JTAG系統(tǒng)是通過仿真器將系統(tǒng)與PC相連,利用S3C44B0X芯片內(nèi)部的在線調(diào)試模塊在上位機(jī)上調(diào)試程序。電源及時鐘電路提供系統(tǒng)工作時的電源及時鐘。?
2 模糊控制算法?
??? 生物發(fā)酵過程是時變、非線性、不確定等多變量的耦合系統(tǒng),涉及到生命體的生長繁殖過程,機(jī)理復(fù)雜。系統(tǒng)的滯后和慣性都很大,傳遞函數(shù)很難確定。又因為控制系統(tǒng)的執(zhí)行機(jī)構(gòu)是只有兩種狀態(tài)的開關(guān)電磁閥,只能控制電磁閥在控制周期內(nèi)的開關(guān)時間比例,用傳統(tǒng)控制方法不易得到較好的控制效果,因此,系統(tǒng)采用模糊邏輯控制方法[3-6]來實現(xiàn)。在設(shè)計模糊控制器時,系統(tǒng)選用二維模糊控制器,即以偏差e和偏差變化Δe作為輸入變量,控制系統(tǒng)框圖如圖2所示。這時的模糊控制器類似于一個PD控制器,從而有利于保證系統(tǒng)的穩(wěn)定性,減少響應(yīng)過程的超調(diào)量并削弱其振蕩現(xiàn)象。?
?
?
??? 因為系統(tǒng)延遲較大,并且由于生物發(fā)酵過程中發(fā)酵罐中葉輪的旋轉(zhuǎn)使檢測得到的PH值、DO值的波動大,e和Δe的模糊語言值和論域等級不宜過多。同時,根據(jù)系統(tǒng)傳感器A/D采樣值的數(shù)據(jù)分析,選取m=5,k=2。e、Δe和U的語言真值集為:E、EC、U。其中E={NB,NS,ZE,PS,PB},論域為:{-4,-3,-2,-1,0,1,2,3,4};EC={NB,NS,ZE,PS,PB},論域為:{-4,-3,-2,-1,0,1,2,3,4};U={NB,NS,ZE,PS,PB},論域為:{-4,-3,-2,-1,0,1,2,3,4}。系統(tǒng)輸入E、EC的隸屬函數(shù)與輸出U的隸屬函數(shù)如表1、表2所示。?
?
?
?
??? 二維模糊控制器的模糊規(guī)則通常由模糊條件語句:?
if 的模糊子集。多條這種結(jié)構(gòu)的模糊條件語句就可以總結(jié)為模糊控制規(guī)則表。系統(tǒng)根據(jù)實際發(fā)酵過程中操作人員的操作經(jīng)驗,總結(jié)出控制規(guī)則如表3。?
?
?
3 系統(tǒng)軟件設(shè)計?
??? 軟件設(shè)計采用了當(dāng)前流行的嵌入式系統(tǒng)開發(fā)技術(shù)。采用嵌入式實時操作系統(tǒng)μC/OS-II,并使用ARM和Thumb指令集混合編譯來優(yōu)化代碼密度。首先將實時操作系統(tǒng)μC/OS-II移植到S3C44B0X嵌入式微處理器上,系統(tǒng)將要完成的功能細(xì)化為幾個核心任務(wù),由μC/OS-II實時內(nèi)核進(jìn)行調(diào)度,實現(xiàn)多任務(wù)的并行執(zhí)行,系統(tǒng)的可靠性和實時性得到大幅提升。?
????按系統(tǒng)要實現(xiàn)的功能,系統(tǒng)軟件被劃分為幾個并行存在的任務(wù)。占先式操作系統(tǒng)對任務(wù)的調(diào)度是按優(yōu)先權(quán)的高低進(jìn)行的,將系統(tǒng)的所有任務(wù)按其優(yōu)先級從高到低順序依次是:系統(tǒng)監(jiān)視、鍵盤掃描、LCD顯示、模糊控制算法、控制量輸出和異步串行通信。數(shù)據(jù)采集部分放到定時器中斷程序中執(zhí)行,即每2s對PH值、DO值進(jìn)行數(shù)據(jù)采集、存儲。系統(tǒng)監(jiān)視任務(wù)用來監(jiān)視其他任務(wù)。當(dāng)被監(jiān)視任務(wù)在執(zhí)行過程中出現(xiàn)差錯時,系統(tǒng)監(jiān)視任務(wù)將按照預(yù)先設(shè)定的處理表對其進(jìn)行處理,使出錯的任務(wù)恢復(fù)正常運(yùn)行,從而提高系統(tǒng)運(yùn)行的可靠性。系統(tǒng)運(yùn)行時,首先進(jìn)行系統(tǒng)初始化操作,初始化所有數(shù)據(jù)結(jié)構(gòu)、分配堆??臻g,然后建立任務(wù)間通信的郵箱或消息隊列,建立任務(wù)及分配任務(wù)優(yōu)先權(quán)。所有新建任務(wù)被置為就緒態(tài),系統(tǒng)程序從優(yōu)先權(quán)最高的任務(wù)開始執(zhí)行。圖3為系統(tǒng)的運(yùn)行流程圖。圖4為系統(tǒng)軟硬件原理圖。?
?
?
?
??? 系統(tǒng)的數(shù)據(jù)采集中斷程序Temp_Sampling_Task(void)(上接第40頁)?
如下:?
??? Void Temp_Sampling_Task()?
??? {?
? ? ??#if OS_CRITICAL_METHOD==3?
??????? ??OS_CPU_SR cpu_sr;?
??? ? #endif?
??? ? int temp;?
??? ? for(;;)?
???????{?
??????? temp=Temp_Sample();?
??????? if(QueueWrite((void*)QueueBuf,temp)==QUEUE_FULL)?
??????????? OSTimeDly(4);?
??? ??? }?
??? }?
??? 采集中斷程序中用OSTimeDly()函數(shù)實現(xiàn)2個節(jié)拍延時,即系統(tǒng)每隔4×0.5=2ms執(zhí)行一次任務(wù),這就保證了每2ms采集一次PH值、DO值的采樣速率。?
??? 針對時變、非線性、不確定性、多變量的生物發(fā)酵過程,采用ARM嵌入式處理器S3C44B0X實現(xiàn)生物發(fā)酵智能控制系統(tǒng)的設(shè)計,不僅可以減少外設(shè),而且提高了系統(tǒng)的實時性和可靠性。采用模糊控制算法,解決了傳統(tǒng)控制方法不易得到系統(tǒng)數(shù)學(xué)模型,難于對控制系統(tǒng)進(jìn)行有效控制的不足。同時,通過移植μC/OS-II操作系統(tǒng),大大方便了編程,縮短了軟件的開發(fā)周期,提高了開發(fā)效率。實踐證明,系統(tǒng)能夠滿足整體性能要求,達(dá)到良好的控制效果。?
參考文獻(xiàn)?
[1] 王田苗.嵌入式系統(tǒng)設(shè)計與實例開發(fā):基于ARM微處理器與μC/OS-II實時操作系統(tǒng).北京:清華大學(xué)出版社,2002.?
[2] 馬忠梅.ARM嵌人式處理器結(jié)構(gòu)與應(yīng)用.北京:北京航空航天大學(xué)出版社,2002.?
[3] 徐愛軍.智能化測量控制儀表原理與設(shè)計「M].北京:航空航天大學(xué)出版社,1995.?
[4] 諸靜.模糊控制原理與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2005.?
[5] 張弋力,馬明前.基于模糊控制算法的溫度控制系統(tǒng)[J].自動化與儀器儀表,2004,(1):21-23.?
[6] 劉新平,李宗民.基于模糊算法的高精度溫度控制系統(tǒng)[J].電力系統(tǒng)及其自動化學(xué)報,2001,(4):60-63.