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