呂淑平, 王 瀟
(哈爾濱工程大學(xué)自動(dòng)化學(xué)院,黑龍江哈爾濱150001)
采用單片機(jī)MC9SXS128設(shè)計(jì)了1種水溫控制系統(tǒng),該系統(tǒng)用于學(xué)生實(shí)驗(yàn)課里,集成了3種溫度傳感控制方案,實(shí)驗(yàn)時(shí)學(xué)生可任選1種或幾種。這樣不僅增加了系統(tǒng)的靈活性,也更好地?cái)U(kuò)大了學(xué)生的知識(shí)面[1]。
系統(tǒng)采用MC9SXS128為主控芯片,包含PT100電橋、PT1000阻值-頻率變換及DS12B20數(shù)字芯片等水溫測(cè)定方案。經(jīng)PID算法得到控制量,通過(guò)脈寬寬度調(diào)制(PWM)、過(guò)零觸發(fā)方法控制加熱棒功率從而控制水溫。水溫控制實(shí)驗(yàn)系統(tǒng)結(jié)構(gòu)圖如圖1所示。
圖1 水溫控制系統(tǒng)結(jié)構(gòu)圖
執(zhí)行部分采用過(guò)零觸發(fā)固態(tài)繼電器和加熱棒。
繼電器輸入控制端為3~32 VDC,輸出端為5 A 380 V,50~60 Hz,加熱棒功率為500~1 000 W。固態(tài)繼電器通過(guò)過(guò)零控制,在設(shè)定時(shí)間間隔內(nèi),改變固態(tài)繼電器內(nèi)部晶閘管導(dǎo)通的周波數(shù)實(shí)現(xiàn)對(duì)加熱棒功率控制,配合PWM模塊可方便實(shí)現(xiàn)。圖2是實(shí)驗(yàn)測(cè)得繼電器全導(dǎo)通下加熱棒對(duì)一定量水加熱溫度曲線。
2.2.1 PT100 電橋方案
PT100鉑電阻測(cè)溫元件和R4、R5、可調(diào)電阻R6組成單臂電橋,TL431為電橋提供2.5 V穩(wěn)定電壓。由于執(zhí)行部分過(guò)零觸發(fā)工作頻率太小(10 Hz),出現(xiàn)低頻干擾,系統(tǒng)加入2階低通濾波電路消除低頻干擾,截頻率為21 Hz(水溫變化正常不會(huì)超過(guò)這個(gè)頻率)。2級(jí)放大輸出直接連接單片機(jī)ADC0口,如圖3所示。
2.2.2 PT1000鉑電阻阻值頻率變換方案
圖2 繼電器全導(dǎo)通下一定量水加熱溫度曲線
圖3 PT100電橋方案電路
方案如圖4所示,利用NE555時(shí)基電路實(shí)現(xiàn)多諧振蕩器產(chǎn)生矩形波,頻率和矩形波占空比只與相關(guān)電阻值有關(guān)。輸出方波脈沖振蕩頻率為:
由于PT1 000阻值隨溫度變化,通過(guò)NE555得到1個(gè)近似線性的頻率變化,利用MC9SXS128內(nèi)部增強(qiáng)型捕獲定時(shí)器ECT捕獲該頻率大小和矩形波高電平脈寬,得到頻率與溫度之間的關(guān)系。
圖4 PT1000鉑電阻阻值頻率變換方案電路
2.2.3 DS18B20 數(shù)字芯片方案
電路如圖 5所示,采用美國(guó) DALLAS公司DS18B20,單總線接口方式。該方案為數(shù)字信號(hào)傳送,抗干擾能力強(qiáng),溫度不必標(biāo)定。
圖5 PT100鉑電阻阻值頻率變換方案
軟件部分包括基于MC9SXS128的嵌入式和基于C++Builder 6平臺(tái)設(shè)計(jì)的上位機(jī)軟件編程。
軟件采用C語(yǔ)言編程、模塊化結(jié)構(gòu),各硬件模塊對(duì)應(yīng)相應(yīng)軟件模塊。主函數(shù)首先對(duì)功能寄存器等進(jìn)行配置初始化,包括CPU倍頻、ADT初始化、SCI初始化、ECT初始化、PWM初始化等。流程圖如圖6所示。
3.1.1 增強(qiáng)型定時(shí)器捕獲脈沖頻率
通過(guò)ECT捕獲N個(gè)矩形波上升沿或下降沿?cái)?shù)量,并讀出n=0和n=N時(shí)ECT定時(shí)器寄存器值存于Count[0]和 Count[1]中。因?yàn)槎〞r(shí)器在自加過(guò)程中可能會(huì)溢出,這樣在相減得到N個(gè)脈沖的時(shí)間內(nèi)需要
圖6 嵌入式軟件流程圖
判斷是否溢出,同時(shí)保證在采集0~N過(guò)程中,不會(huì)發(fā)生定時(shí)器2次溢出情況,程序設(shè)計(jì)如下:
if(Count[1]> Count[0])
{period=Count[1]-Count[0];//N 個(gè)周期}
else if(Count[0] > Count[1])//顯然是溢出了 16 的定時(shí)器計(jì)數(shù)范圍
{period=0xffff-Count[0] +1+Count[1];//處理溢出}
3.1.2 改進(jìn)增量式PID算法
算法程序如下:
int Pid_cal(int SetTemp){
e=(int)(SetTemp-Temp);
//求出偏差量,其SetTemp為期望溫度值
de=e-ePast;//求出微分量
ePast=e;//記錄偏差信號(hào)
Out=(e+de*Kd)*Kp+ie/Ki;//PID運(yùn)算
OutPast[1] =OutPast[0];
OutPast[0] =Out;
ie=OutPast[1]+OutPast[0];//求出積分值
if(ie>30000)ie=30000;//限制積分值上限
else if(ie<=0)ie=0;//不做低溫積分
if(Out>=16500)Out=16500;//輸出值進(jìn)行限幅
else if(Out<0)Out=0;//小于0的輸出不計(jì)算
return Out;}
算法參數(shù)的確定首先采用階躍曲線法建立系統(tǒng)數(shù)學(xué)模型,再通過(guò)MATLAB仿真確定控制參數(shù)。階躍曲線如圖7,8所示,由曲線得到:y(t1)=0.39y(∞),y(t2)=0.632y(∞)時(shí)的 t1和 t2值。
一階慣性延時(shí)數(shù)學(xué)模型設(shè)為
求出:K=y(∞)/x0,T=2(t2-t1),τ=2t1-t2。
經(jīng)多次計(jì)算驗(yàn)證得到系統(tǒng)數(shù)學(xué)模型為:
圖7 階躍響應(yīng)曲線
利用Matlab得到PID階躍曲線,經(jīng)調(diào)試獲得控制參數(shù) KP=120,KI=0.2,KD=20。
圖8 PID階躍跟蹤結(jié)果
上位機(jī)采用Borland公司C++Builder 6.0,主要使用YbCommDevice串口控件、TChart圖表繪制控件和TTimer控件等。上位機(jī)軟件主流程圖如圖9所示。
3.2.1 串口控件YbCommDevice
YbCommDevice控件具有串口自動(dòng)識(shí)別和選擇、奇偶校驗(yàn)、數(shù)據(jù)位控制、停止位設(shè)置,并且可以設(shè)置調(diào)制解調(diào)器功能,如數(shù)據(jù)流控和自動(dòng)應(yīng)答等功能。設(shè)置界面如圖10所示。
讀取串口數(shù)據(jù)代碼如下:
unsigned char Buf[8192];//收到的字節(jié)數(shù)不會(huì)超過(guò)串口緩存的容量
AnsiString s;//AnsiString數(shù)據(jù)類型代表一序列的數(shù)據(jù)字,容量可從4 bytes到2GB
int n=YbCommDevice1->Read(Buf,8192);//收到 n 個(gè)字節(jié)
寫串口數(shù)據(jù)代碼如下:
YbCommDevice1-> Write(Buffer,nBytes);
Buffer表示待發(fā)送數(shù)據(jù)所在數(shù)組,nBytes表示所需發(fā)送的數(shù)據(jù)長(zhǎng)度。
3.2.2 TTimer 實(shí)現(xiàn)多線程操作
使用TTimer控件實(shí)現(xiàn)多線程操作或稱分時(shí)操作。方法是,使用多個(gè)TTimer,設(shè)置每個(gè)TTimer在沒(méi)有其他任務(wù)時(shí)的觸發(fā)時(shí)間。圖11為2個(gè)TTimer同時(shí)工作的流程圖。
圖9 上位機(jī)軟件主要流程圖
圖10 YbCommDevice控件設(shè)置界面
圖11 兩個(gè)TTimer同時(shí)工作流程圖
研制了基于MC9SXS128水溫控制實(shí)驗(yàn)系統(tǒng),與目前實(shí)驗(yàn)室現(xiàn)有的基于PLC過(guò)程控制實(shí)驗(yàn)系統(tǒng)相比,該系統(tǒng)制作簡(jiǎn)單、成本低。學(xué)生在掌握檢測(cè)傳感、過(guò)程控制等理論基礎(chǔ)上,可進(jìn)行建模及不同算法研究。
[1] 王再英,劉懷霞,陳毅靜.過(guò)程控制系統(tǒng)與儀表[M].北京:機(jī)械工業(yè)出版社,2007.
[2] 王天曦,李鴻儒,楊興華.堅(jiān)持改革創(chuàng)新,開(kāi)創(chuàng)電子實(shí)習(xí)新局面[J].實(shí)驗(yàn)技術(shù)與管理,2003,20(4):90-94.
[3] 管鳳旭,譚吉來(lái),呂淑萍.基于ARM的液位自動(dòng)控制實(shí)驗(yàn)系統(tǒng)[J].實(shí)驗(yàn)室研究與探索,2010,29(3):10-13.
[4] 胡曉波,李 瑛,王艷芳.計(jì)算機(jī)仿真技術(shù)在實(shí)驗(yàn)教學(xué)中的應(yīng)用[J].實(shí)驗(yàn)室科學(xué),2007(2):121-123.
[5] 馮毅萍,樂(lè)嘉華.計(jì)算機(jī)液位控制系統(tǒng)實(shí)驗(yàn)裝置的研制[J].實(shí)驗(yàn)室研究與探索,2000(2):78-80.
[6] 王正林,郭陽(yáng)寬.過(guò)程控制與Simulink應(yīng)用[M].北京:電子工業(yè)出版社,2006.
[7] 呂淑平,馬忠麗,王科俊.高等工程教育的實(shí)踐與思考[J].實(shí)驗(yàn)技術(shù)與管理,2010,27(8):123-135.
[8] 呂淑平,韓 健.按鍵及聲控步進(jìn)電機(jī)控制系統(tǒng)開(kāi)發(fā)[J].實(shí)驗(yàn)科學(xué)與技術(shù),2011,9(3):6-9.
[9] 賈 麗,袁小平,陳 燁,等.常用液位檢測(cè)方法的研究[J].能源技術(shù)與管理,2009(1):120-122.
[10] 洪志剛,杜維玲,周 玲.超聲波外測(cè)液位檢測(cè)方法研究[J].電子測(cè)量與儀器學(xué)報(bào),2007,21(4):46-49.
[11] 管鳳旭,楊慶國(guó),呂淑萍.基于ARM的環(huán)境檢測(cè)與控制綜合實(shí)驗(yàn)系統(tǒng)設(shè)計(jì)[J].實(shí)驗(yàn)技術(shù)與管理,2010,27(10):106-109.
[12] 王 毅,白澤生.現(xiàn)代溫室環(huán)境多參數(shù)測(cè)控系統(tǒng)設(shè)計(jì)[J].微計(jì)算機(jī)信息,2008,24(20):140-141.
[13] 匡迎春,沈 岳,姚幫松,等.簡(jiǎn)易型溫室溫濕度控制器設(shè)計(jì)[J].湖南農(nóng)業(yè)大學(xué)學(xué)報(bào),2009,35(4):452-456.
[14] 李宏俊,黃 鑫,盧開(kāi)硯.以單片機(jī)為核心的溫室智能控制系統(tǒng)[J].電子元器件應(yīng)用,2007,9(5):20-23.
[15] 王雪文,張志勇.傳感器原理及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2004.