技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 基于VB的燃料電池發(fā)動(dòng)機(jī)監(jiān)控系統(tǒng)設(shè)計(jì)

基于VB的燃料電池發(fā)動(dòng)機(jī)監(jiān)控系統(tǒng)設(shè)計(jì)

時(shí)間:2008-10-20 10:38:00來源:ronggang

導(dǎo)語:?應(yīng)用Visual Basic6.0開發(fā)燃料電池發(fā)動(dòng)機(jī)車載監(jiān)控系統(tǒng)軟件,包括動(dòng)態(tài)主控界面設(shè)計(jì)、通訊程序設(shè)計(jì)、控制程序設(shè)計(jì)和數(shù)據(jù)存儲(chǔ)程序設(shè)計(jì)
摘 要: 應(yīng)用Visual Basic6.0開發(fā)燃料電池發(fā)動(dòng)機(jī)車載監(jiān)控系統(tǒng)軟件,包括動(dòng)態(tài)主控界面設(shè)計(jì)、通訊程序設(shè)計(jì)、控制程序設(shè)計(jì)和數(shù)據(jù)存儲(chǔ)程序設(shè)計(jì)。描述了整個(gè)監(jiān)控畫面的設(shè)計(jì)原理和方法,詳細(xì)地介紹了通信協(xié)議和上位機(jī)監(jiān)控程序的工作流程,并補(bǔ)充說明了VB中PID控制算法的實(shí)現(xiàn),用以調(diào)整電堆溫度、壓力、水位等各種監(jiān)控參數(shù);最后介紹了歷史數(shù)據(jù)存儲(chǔ)程序的操作方法。實(shí)踐證明,該系統(tǒng)圖形界面友好,數(shù)據(jù)采集準(zhǔn)確可靠,操作簡單,安全穩(wěn)定。 關(guān)鍵詞: VB;燃料電池發(fā)動(dòng)機(jī);串行數(shù)據(jù)通信;PID控制 前言   為了保護(hù)地球環(huán)境,以燃料電池代替燃油發(fā)動(dòng)機(jī)是未來汽車發(fā)展的趨勢。燃料電池汽車與傳統(tǒng)汽車的區(qū)別主要在于由燃料電池動(dòng)力系統(tǒng)替換了傳統(tǒng)的內(nèi)燃機(jī)動(dòng)力系統(tǒng)。顯然,其發(fā)動(dòng)機(jī)系統(tǒng)的研究成了燃料電池電動(dòng)汽車研發(fā)的關(guān)鍵。因此,在研發(fā)過程中,需要對(duì)發(fā)動(dòng)機(jī)的各系統(tǒng)進(jìn)行實(shí)時(shí)監(jiān)控,記錄各種相關(guān)試驗(yàn)數(shù)據(jù),分析其運(yùn)行特性,為發(fā)動(dòng)機(jī)控制策略的不斷改進(jìn)提供依據(jù),同時(shí)對(duì)整車性能進(jìn)行評(píng)估。因此,燃料電池發(fā)動(dòng)機(jī)車載控制系統(tǒng)的開發(fā)具有很重要的現(xiàn)實(shí)意義。   VisualBasic6.0提供了豐富的控件,可以方便、快捷地開發(fā)燃料電池發(fā)動(dòng)機(jī)車載系統(tǒng)的整個(gè)軟件程序,達(dá)到對(duì)現(xiàn)場各個(gè)參數(shù)有效監(jiān)控的目的。同時(shí),VB中PID控制算法也可以對(duì)燃料電池水量、溫度、壓力等各個(gè)監(jiān)控量進(jìn)行實(shí)時(shí)整定。 1 燃料電池車載監(jiān)控系統(tǒng)的軟件設(shè)計(jì)   Visual Basic(簡稱VB),是微軟公司推出的強(qiáng)有力的系列開發(fā)軟件之一。不但提供了良好的界面設(shè)計(jì)能力,而且在微機(jī)串口通信方面也有很強(qiáng)的功能,它提供的串行通信控件MSComm32.OCX,全面提供了使用RS-232進(jìn)行數(shù)據(jù)通信的所有協(xié)議,我們可以使用不同的工作方式來處理和解決燃料電池車載監(jiān)控系統(tǒng)通信軟件設(shè)計(jì)的所有問題。   1.1 主控界面設(shè)計(jì)   燃料電池主控界面的設(shè)計(jì)是整個(gè)上位機(jī)軟件設(shè)計(jì)的重點(diǎn)之一,它直接影響發(fā)動(dòng)機(jī)系統(tǒng)監(jiān)控效率的高低。因此,清晰、人性化的界面設(shè)計(jì)是整個(gè)軟件開發(fā)的重要前提。   以VB6.0為軟件平臺(tái)開發(fā)的燃料電池車載監(jiān)控系統(tǒng)的主控畫面如圖1所示。 通過該主界面可以完成對(duì)系統(tǒng)主要設(shè)備運(yùn)行狀態(tài)的實(shí)時(shí)監(jiān)控,包括用不同的顏色來表示設(shè)備的啟、停,用文本框顯示系統(tǒng)主要的運(yùn)行參數(shù),如電壓、電流、壓力等,利用CommandButton控件的Click事件完成布爾變量的發(fā)送,從而實(shí)現(xiàn)對(duì)開關(guān)和閥門的開啟、關(guān)閉控制。同時(shí),添加各種控件,導(dǎo)入圖片,并通過設(shè)置其不同屬性,達(dá)到了美觀、實(shí)用的效果。 [align=center] 圖1 燃料電池車載監(jiān)控系統(tǒng)主畫面[/align]   1.2 通信程序設(shè)計(jì)   燃料電池發(fā)動(dòng)機(jī)車載監(jiān)控系統(tǒng)的通信包括上位機(jī)和下位機(jī)的通信。主要是PC機(jī)和下位機(jī)硬件之間通過串口線完成數(shù)據(jù)的傳輸,以期對(duì)工業(yè)現(xiàn)場采集的信息進(jìn)行適時(shí)準(zhǔn)確地監(jiān)控。   1.2.1 通信協(xié)議   在串行通信的實(shí)現(xiàn)過程中,底層為通信工作以及操作系統(tǒng)和計(jì)算機(jī)硬件提供了有力的支持,但是為了實(shí)現(xiàn)特定的用戶功能,必須在軟件中制定基于應(yīng)用的通信協(xié)議。在開發(fā)燃料電池串行數(shù)據(jù)通信程序的過程中,通過長期的調(diào)試和不斷的總結(jié),最終得到一套完整而可靠的通信協(xié)議.該協(xié)議一共分為3層,分別為:   1.物理層。規(guī)定了電子電氣方面的特性及原始位流在物理鏈路上的傳輸,提供了原始位流傳輸信道;   串行通信口:RS-232串口   硬件接口:DSP輸出的TTL電平經(jīng)專用集成塊轉(zhuǎn)換成RS-232信號(hào)   波特率:9600   字符格式:8位數(shù)據(jù)位,1位停止位   差錯(cuò)校驗(yàn):無奇偶校驗(yàn)   2.數(shù)據(jù)鏈接層。定義了數(shù)據(jù)幀作為信息傳輸單元,使用差錯(cuò)校驗(yàn)和幀應(yīng)答等技術(shù),屏蔽物理路上的噪聲,使傳輸通道變成一條可靠的信道;數(shù)據(jù)鏈接層為數(shù)據(jù)的準(zhǔn)確通信提供了充足的信息。表1描述了設(shè)備數(shù)據(jù)包傳輸?shù)慕Y(jié)構(gòu)。   表1 數(shù)據(jù)包傳輸結(jié)構(gòu)
  LENGTH——數(shù)據(jù)包字節(jié)總數(shù);   TYPE——命令類型。分為系統(tǒng)型(0X00)、具體型(0X11,0X13,0X15,0X16,0X17,0X18,0X1A,0X1B)和多協(xié)議型(0X14);   CMD——命令的ID號(hào)。決定命令類型為命令信息還是應(yīng)答信息;   DATA——由CMD決定數(shù)據(jù)字節(jié)長度;   CHKSUM——校驗(yàn)和碼。循環(huán)冗余校驗(yàn)是一種常用的校驗(yàn)碼。   3.應(yīng)用層。負(fù)責(zé)建立通信伙伴之間的連接關(guān)系,實(shí)現(xiàn)操作同步,報(bào)警及數(shù)據(jù)完整性等管理任務(wù)。對(duì)用戶及用戶程序提供以下功能:  ?。?)選擇控制多臺(tái)下位機(jī)定時(shí),即時(shí)或適時(shí)跟蹤采樣現(xiàn)場信息,將數(shù)據(jù)送數(shù)據(jù)庫保存,數(shù)據(jù)庫存儲(chǔ)一定時(shí)段的數(shù)據(jù),程序具有對(duì)數(shù)據(jù)二次處理,繪制曲線圖及報(bào)警等功能;  ?。?)設(shè)置采樣參數(shù);  ?。?)當(dāng)通信線路中斷或通信失敗時(shí),往下位機(jī)發(fā)出報(bào)警信息;   1.2.2 上位機(jī)工作流程   燃料電池發(fā)動(dòng)機(jī)車載監(jiān)控系統(tǒng)的上位機(jī)軟件分為手動(dòng)程序和自動(dòng)程序,自動(dòng)程序是通信程序設(shè)計(jì)的最終版,一旦進(jìn)入開機(jī)工作狀態(tài),就能夠自動(dòng)完成對(duì)下位機(jī)的監(jiān)控功能,包括發(fā)送和接收信息。(‘*******為注釋部分)  ?。?) 發(fā)送信息程序段。其工作流程如下圖2。簡單代碼舉例如下:   Private Sub Cmdstop_Click() ‘***********發(fā)送開機(jī)命令***********   byteout(0) = &HAA   byteout(1) = &H55   MSComm1.Output = byteout   End Sub  ?。?)接收信息程序段。接收部分需要準(zhǔn)確采集現(xiàn)場上傳的適時(shí)參數(shù),如溫度、電流、電壓、水位等,以便分析和改進(jìn)整車性能,是通信程序設(shè)計(jì)的重點(diǎn),通過VB中MSComm控件的OnComm事件來完成。其工作流程如下圖3,簡單代碼舉例如下:   Private Sub MSComm1_OnComm() ‘***數(shù)據(jù)接收   Dim buf() As Variant   Dim buf1(1 To 2) As Byte   buf = MSComm1.Input ‘***通過MSComm的Iutput屬性接收數(shù)據(jù)   buf1(1) = buf(0)   buf1(2) = buf(1)   Text1.Text = buf1(2) * 256 + buf1(1)   End Sub [align=center] 圖2 上位機(jī)發(fā)送信息流程圖 圖3 上位機(jī)接收信息流程圖[/align] 2 控制程序設(shè)計(jì)   PID控制是比例,積分,微分控制的縮寫。它具有原理簡單、使用方便、適用性廣和魯棒性強(qiáng)等特點(diǎn),在工業(yè)控制領(lǐng)域具有強(qiáng)大的生命力。改變P可提高響應(yīng)速度,減小靜態(tài)誤差,但太大會(huì)增大超調(diào)量和穩(wěn)定時(shí)間;I與P的作用基本相似,但要使靜態(tài)誤差為0,必須使用積分;D與P,I的作用相反,主要是為了減小超調(diào),減小穩(wěn)定時(shí)間。在仿真和實(shí)驗(yàn)中,如果被控對(duì)象的結(jié)構(gòu)和參數(shù)不能完全把握,或者得不到精確的數(shù)學(xué)模型,而且其它常規(guī)的控制方法難以實(shí)現(xiàn),這時(shí),系統(tǒng)控制器的結(jié)構(gòu)和參數(shù)必須依靠經(jīng)驗(yàn)和現(xiàn)場調(diào)試來確定,采用PID控制技術(shù)最為方便。   現(xiàn)階段,我們對(duì)燃料電池電堆的模型不是十分了解,還不能通過有效的測試手段來獲得系統(tǒng)的參數(shù),因此,采用增量PID控制算法比較適合。在VB中,增量PID控制算法是通過自定義Function函數(shù)及調(diào)用該函數(shù)來實(shí)現(xiàn)的。   自定義Function函數(shù):   Public Function PID(ByVal P As Single, I As Single, D As Single, PIDset As Single, PIDreturn As Single, DeltaPIDpre_1 As Single, DeltaPIDpre_2 As Single) As Single ‘********增量PID計(jì)算自定義函數(shù)**********   ‘**P——PID比例系數(shù);I——PID積分系數(shù);D——PID微分系數(shù)   ‘**PIDset——PID設(shè)定值   ‘**PIDreturn——PID反饋值   ‘**DeltaPIDpre_1——PID偏差前值   ‘**DeltaPIDpre_2——PID偏差前前值   Dim PIDout As Single ‘**PID輸出值**   Dim DeltaPID As Single ‘**PID偏差值,為中間變量**   DeltaPID = PIDset - PIDreturn   PIDout = P * (DeltaPID - DeltaPIDpre_1) + I * DeltaPID + D * (DeltaPID - 2 * DeltaPIDpre_1 + DeltaPIDpre_2)   DeltaPIDpre_2 = DeltaPIDpre_1   DeltaPIDpre_1 = DeltaPID   End Function   要對(duì)輸入的控制量進(jìn)行PID調(diào)節(jié),只需簡單的調(diào)用上述函數(shù)即可。   例如,在對(duì)電堆的輸入溫度進(jìn)行控制時(shí),調(diào)用上述函數(shù)過程如下:   Private Sub MSComm1_OnComm() ‘*******數(shù)據(jù)接收***********   Dim Mid As Single   Mid = Format(Round((buf1(5) * 256 + buf1(4) - 4095 / 5) * 125 / 4095, 2), "0.0") ‘*****輸入電堆溫度*****   Text1.Text = Mid + PID(outTP, outTI, outTD, outTPIDset, outTPIDreturn, outTDeltaPIDpre_1, outTDeltaPIDpre_2)   ‘**********outTP——溫度P, outTI——溫度I, outTD——溫度D, outTPIDset——溫度設(shè)定, outTPIDreturn——溫度, outTDeltaPIDpre_1——溫度前值, outTDeltaPIDpre_2——溫度后值   End Sub 3 數(shù)據(jù)存儲(chǔ)程序設(shè)計(jì)   VB語言提供了多種操縱數(shù)據(jù)庫的方法,使用Ado Data控件訪問數(shù)據(jù)庫就是一種很常用的操縱方法。通過設(shè)置和操縱其屬性就可以實(shí)現(xiàn)與數(shù)據(jù)庫的連接,通過綁定數(shù)據(jù)感知控件就能提供一個(gè)訪問數(shù)據(jù)庫的界面,用來對(duì)數(shù)據(jù)庫數(shù)據(jù)的瀏覽,添加,刪除,修改等操作。整個(gè)過程實(shí)現(xiàn)和操作起來非常簡單方便。具體連接步驟如下:   (1)建立Access數(shù)據(jù)庫  ?。?)引用Ado Data控件和數(shù)據(jù)感知控件DataGrid   (3)分別設(shè)置Ado Data控件的ConnectionString、CommandType、RecordSource三個(gè)重要的屬性以及DataGrid控件的DataSource屬性   在設(shè)置Ado Data控件的ConnectionString屬性的最后,將出現(xiàn)“測試連接”的按扭,通過單擊此按扭可以清楚的了解到數(shù)據(jù)庫連接成功與否,非常簡單方便。具體程序的編寫格式為:   數(shù)據(jù)庫畫面名稱.Adodc1.Recordset.AddNew   數(shù)據(jù)庫畫面名稱.Adodc1.Recordset.Fields("日期") = Date   數(shù)據(jù)庫畫面名稱.Adodc1.Recordset.Fields("時(shí)間") = Format(Now, "h:mm:ss")   數(shù)據(jù)庫畫面名稱.Adodc1.Recordset.Fields("參數(shù)名稱") =接收到的參量數(shù)據(jù)   數(shù)據(jù)庫畫面名稱.Adodc1.Recordset.Update   數(shù)據(jù)庫的設(shè)計(jì)需要特別注意的是:   1.在Access數(shù)據(jù)庫定義的各個(gè)參數(shù)的名稱、類型、出現(xiàn)的順序以及格式都必須與代碼中的“參數(shù)名稱“完全一致。   2.設(shè)置Ado Data控件的ConnectionString屬性的時(shí)候,必須選擇正確的數(shù)據(jù)庫所在路徑。 4 結(jié)束語   現(xiàn)場調(diào)試表明,該車載監(jiān)控系統(tǒng)能夠長時(shí)間穩(wěn)定工作,并且抗干擾能力較強(qiáng),能方便有效地監(jiān)控現(xiàn)場的各種實(shí)驗(yàn)數(shù)據(jù)。其數(shù)據(jù)庫管理操作也具有極大的靈活性和控制力。 本文作者創(chuàng)新點(diǎn):   1. VB中PID控制算法的實(shí)現(xiàn),以調(diào)整電堆溫度、壓力、水位等各種監(jiān)控參數(shù);   2. 基于VB的串口通信技術(shù)在燃料電池車載監(jiān)控系統(tǒng)中的應(yīng)用。 參考文獻(xiàn)   【1】 冀常鵬,包劍 基于CANBUS的汽車發(fā)動(dòng)機(jī)控制器研究 技術(shù) 2005   【2】 王文東,陳實(shí),吳鋒 溫度、壓力和濕度對(duì)質(zhì)子交換膜燃料電池性能的影響 能源研究與信息 Vol.19 No.1 2003   【3】 張永宏,胡德金 基于Visual Basic的串行通信技術(shù)在自動(dòng)化監(jiān)控系統(tǒng)中的應(yīng)用 組合機(jī)床與自動(dòng)化加工技術(shù) 2003年第10期   【4】 夏臨閩,胡仁杰 串行通信中數(shù)據(jù)正確性的保證 電子工程師2000年第11期   【5】 宋娟,羅志平,全書海 基于PID算法的燃料電池實(shí)驗(yàn)室組態(tài)王監(jiān)控系統(tǒng) 微計(jì)算機(jī)信息 2006年第22卷第1—1期第28頁

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:鍋爐房遠(yuǎn)程監(jiān)控系統(tǒng)

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動(dòng)網(wǎng)(www.wangxinlc.cn)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號(hào) | 營業(yè)執(zhí)照證書 | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)