基于MCS單片機的é‹çˆæº«åº¦PID控制系統è¨è¨ˆ
  1å‰è¨€
  自70年代以來,由于工æ¥éŽç¨‹æŽ§åˆ¶çš„需è¦ï¼Œç‰¹åˆ¥æ˜¯åœ¨å¾®é›»å技術和計算機技術的迅猛發展以åŠè‡ªå‹•控制ç†è«–å’Œè¨è¨ˆæ–¹æ³•ç™¼å±•çš„æŽ¨å‹•ä¸‹ï¼Œåœ‹å…§å¤–æº«åº¦æŽ§åˆ¶ç³»çµ±çš„ç™¼å±•è¿…é€Ÿï¼Œå¹¶åœ¨æ™ºèƒ½åŒ–ï¼Œè‡ªé©æ‡‰ã€åƒæ•¸æ•´å®šç‰æ–¹é¢ï¼Œä»¥æ—¥æœ¬ã€ç¾Žåœ‹ã€å¾·åœ‹ã€ç‘žå…¸ç‰åœ‹æŠ€è¡“é ˜å…ˆï¼Œéƒ½ç”Ÿç”¢å‡ºäº†ä¸€æ‰¹å•†å“åŒ–çš„ã€æ€§èƒ½å„ªç•°çš„æº«åº¦æŽ§åˆ¶å™¨åŠå„€è¡¨ï¼Œå¹¶åœ¨å„行廣泛應用。
ã€€ã€€éš¨è‘—æ–°æŠ€è¡“çš„ä¸æ–·é–‹ç™¼èˆ‡æ‡‰ç”¨ï¼Œè¿‘年來單片機發展å分迅速,一個以微機應用為主的新技術é©å‘½æµªæ½®æ£åœ¨è“¬å‹ƒèˆˆèµ·ï¼Œå–®ç‰‡æ©Ÿçš„æ‡‰ç”¨å·²ç¶“滲é€åˆ°é›»åŠ›ã€å†¶é‡‘ã€åŒ–å·¥ã€å»ºæã€æ©Ÿæ¢°ã€é£Ÿå“ã€çŸ³æ²¹ç‰å„個行æ¥ã€‚傳統的溫度采集方法ä¸åƒ…費時費力,而且精度差,單片機的出ç¾ä½¿å¾—溫度的采集和數據處ç†å•é¡Œèƒ½å¤ å¾—åˆ°å¾ˆå¥½çš„è§£æ±ºã€‚æº«åº¦æ˜¯å·¥æ¥å°è±¡ä¸çš„一個é‡è¦çš„è¢«æŽ§åƒæ•¸ã€‚ç„¶è€Œæ‰€é‡‡ç”¨çš„æ¸¬æº«å…ƒä»¶å’Œæ¸¬é‡æ–¹æ³•也ä¸ç›¸åŒ;產å“的工è—ä¸åŒï¼ŒæŽ§åˆ¶æº«åº¦çš„精度也ä¸ç›¸åŒã€‚å› æ¤å°æ•¸æ“šé‡‡é›†çš„精度和采用的控制方法也ä¸ç›¸åŒã€‚傳統的控制方å¼å·²ä¸èƒ½æ»¿è¶³é«˜ç²¾åº¦ï¼Œé«˜é€Ÿåº¦çš„æŽ§åˆ¶è¦æ±‚,如溫度控制表溫度接觸器,其主è¦ç¼ºé»žæ˜¯æº«åº¦æ³¢å‹•范åœå¤§ï¼Œç”±äºŽå®ƒä¸»è¦é€šéŽæŽ§åˆ¶æŽ¥è§¸å™¨çš„é€šæ–·æ™‚é–“æ¯”ä¾‹ä¾†é”åˆ°æ”¹è®ŠåŠ ç†±åŠŸçŽ‡çš„ç›®çš„ï¼Œå—å„€è¡¨æœ¬èº«èª¤å·®å’Œäº¤æµæŽ¥è§¸å™¨çš„å£½å‘½é™åˆ¶ï¼Œé€šæ–·é »çŽ‡å¾ˆä½Žã€‚
ã€€ã€€é›»åŠ ç†±é‹çˆé‡‡ç”¨å…¨æ–°åŠ ç†±æ–¹å¼ï¼Œå®ƒå…·æœ‰è¨±å¤šå„ªé»žï¼Œä½¿å…¶æ¯”å…¶ä»–å½¢å¼çš„é‹çˆæ›´å…·æœ‰å¸å¼•力:
  (1)ç„¡æ±¡æŸ“ã€‚ä¸æœƒæŽ’放出有害氣體ã€é£›å¡µã€ç°æ¸£ï¼Œå®Œå…¨ç¬¦åˆç’°ä¿æ–¹é¢çš„è¦æ±‚。 (2)能é‡è½‰åŒ–æ•ˆçŽ‡é«˜ã€‚åŠ ç†±å…ƒä»¶ç›´æŽ¥èˆ‡æ°´æŽ¥è§¸ï¼Œèƒ½é‡è½‰æ›æ•ˆçŽ‡å¾ˆé«˜ï¼Œå¯é”95%以上。 (3)é‹çˆæœ¬é«”çµæ§‹ç°¡å–®ï¼Œå®‰å…¨æ€§å¥½ã€‚ä¸éœ€è¦å¸ƒç®¡è·¯ï¼Œæ²’有燃燒室ã€ç…™é“ï¼Œä¸æœƒå‡ºç¾ç‡ƒç…¤ã€ç‡ƒæ²¹ã€ç‡ƒæ°£çš„æ³„æ¼å’Œçˆ†ç‚¸å±éšªã€‚ (4)çµæ§‹ç°¡å–®ã€é«”ç©å°ã€é‡é‡è¼•,å 地é¢ç©å°ã€‚
  é‹çˆæº«åº¦æŽ§åˆ¶æ˜¯ç›®å‰å·¥æ¥ç”Ÿç”¢éŽç¨‹ä¸ç¶“常會é‡åˆ°çš„一種éŽç¨‹æŽ§åˆ¶,在一些工è—çš„éŽç¨‹ä¸å°æº«åº¦çš„æŽ§åˆ¶æ•ˆæžœå°‡ç›´æŽ¥å°ç”¢å“的質é‡ç”¢ç”Ÿå½±éŸ¿,å› è€Œè¨è¨ˆä¸€å¥—ç†æƒ³çš„é‹çˆæº«åº¦æŽ§åˆ¶ç³»çµ±æ˜¯å分有價值的。
ã€€ã€€æ ¹æ“šå差的比例(P)ã€ç©åˆ†(I)ã€å¾®åˆ†(D)ã€é€²è¡ŒæŽ§åˆ¶(PID控制)ï¼Œæ˜¯æŽ§åˆ¶ç³»çµ±ä¸æ‡‰ç”¨æœ€ç‚ºå»£æ³›çš„一種控制è¦å¾‹ã€‚PID控制器å•世至今有近70å¹´æ·å²ï¼Œå®ƒä»¥çµæ§‹ç°¡å–®ã€ç©©å®šæ€§å¥½ã€å·¥ä½œå¯é ã€èª¿æ•´æ–¹ä¾¿è€Œæˆç‚ºå·¥æ¥æŽ§åˆ¶çš„ä¸»è¦æŠ€è¡“ä¹‹ä¸€ã€‚ç•¶è¢«æŽ§å°è±¡çš„çµæ§‹å’Œåƒæ•¸ä¸èƒ½å®Œå…¨æŽŒæ¡ï¼Œæˆ–å¾—ä¸åˆ°ç²¾ç¢ºçš„æ•¸å¸æ¨¡åž‹æ™‚,控制ç†è«–çš„å…¶å®ƒæŠ€è¡“é›£ä»¥é‡‡ç”¨æ™‚ï¼Œç³»çµ±æŽ§åˆ¶å™¨çš„çµæ§‹å’Œåƒæ•¸å¿…é ˆä¾é ç¶“é©—å’Œç¾å ´èª¿è©¦ä¾†ç¢ºå®šï¼Œé€™æ™‚應用PID控制技術最為方便。
  2控制系統方案è¨è¨ˆ
  電熱é‹çˆçš„æº«åº¦æŽ§åˆ¶ç³»çµ±ä¸»è¦åŒ…括:單片機ã€éµç›¤é¡¯ç¤ºæ¨¡å¡Šã€æº«åº¦é‡‡é›†æ¨¡å¡Šå’ŒæŽ§åˆ¶åŸ·è¡Œæ©Ÿæ§‹ç‰å››å¤§éƒ¨åˆ†çµ„æˆã€‚

  采用單片機AT89S52為主控芯片。利用熱電阻PT100作為溫度傳感器件,然åŽé€šéŽé‹ç®—放大器OP-07æ§‹å»ºå·®åˆ†æ”¾å¤§å™¨å°‡æº«åº¦ä¿¡è™Ÿè½‰æ›æˆADC0809模擬通é“的輸入的0-5V標準信號,å†ç”±ADC0809å°‡æ¨¡æ“¬ä¿¡è™Ÿè½‰æ›æˆå…«ä½æ•¸å—信號,傳é€çµ¦å–®ç‰‡æ©ŸP0å£ï¼Œå–®ç‰‡æ©Ÿå°‡å¯¦æ™‚溫度和è¨ç½®åƒæ•¸é€šéŽæ•¸ç¢¼ç®¡é¡¯ç¤ºå‡ºä¾†ï¼ŒåŒæ™‚通éŽéµç›¤è¼¸å…¥è¨å®šæº«åº¦ï¼Œå–®ç‰‡æ©Ÿå°‡è¨å®šæº«åº¦åŒADC0809傳é€éŽä¾†çš„æ•¸æ“šé€²è¡Œæ¯”較é‹ç®—,利用PIDé‹ç®—,作出相應的判斷,從單片機P1.0輸出一個PWM波形來控制固態繼電器的導通與關閉,從而控制é‹çˆçš„åŠ ç†±çµ²åœ¨ä¸€å€‹å›ºå®šå‘¨æœŸä¸é€šé›»åŠ ç†±æ™‚é–“çš„é•·çŸä¾†é”åˆ°æ’æº«æŽ§åˆ¶çš„ç›®çš„ã€‚ç³»çµ±åŽŸç†æ¡†åœ–如下圖2所示。
  3 PID控制系統
  PID控制器å¯ä»¥æ–¹ä¾¿åœ°å¯¦æ–½å¤šç¨®æŽ§åˆ¶ç®—法,多年以來,在éŽç¨‹æŽ§åˆ¶ä¸ï¼ŒæŒ‰å差的比例(P)ã€ç©åˆ†(I)和微分(D)進行控制的PID控制器(亦稱PID調節器),是應用最為廣泛的一種自動控制器。它具有原ç†ç°¡å–®ï¼Œæ˜“于實ç¾ï¼Œé©ç”¨é¢å»£ï¼ŒæŽ§åˆ¶åƒæ•¸ç›¸äº’ç¨ç«‹ï¼Œåƒæ•¸çš„é¸å®šæ¯”較簡單ç‰å„ªé»ž;鏿“‡ç³»çµ±èª¿ç¯€è¦å¾‹çš„目的,是使調節器與調節å°è±¡èƒ½å¾ˆå¥½åœ°åŒ¹é…,使組æˆçš„æŽ§åˆ¶ç³»çµ±èƒ½æ»¿è¶³å·¥è—上所æå‡ºçš„å‹•ã€éœæ…‹æ€§èƒ½æŒ‡æ¨™çš„è¦æ±‚。

  PIDæŽ§åˆ¶å™¨æ˜¯ä¸€ç¨®ç·šæ€§æŽ§åˆ¶å™¨ï¼Œå®ƒæ ¹æ“šçµ¦å®šå€¼r(t)與實際輸出值c(t)æ§‹æˆæŽ§åˆ¶åå·®e(t),å³


  4 硬件電路è¨è¨ˆ
ã€€ã€€ç¡¬ä»¶é›»è·¯ä¸»è¦æœ‰å…©å¤§éƒ¨åˆ†çµ„æˆï¼šæ¨¡æ“¬éƒ¨åˆ†å’Œæ•¸å—éƒ¨åˆ†ï¼šå¾žåŠŸèƒ½æ¨¡å¡Šä¸Šä¾†åˆ†æœ‰ï¼šä¸»æ©Ÿé›»è·¯ã€æ•¸æ“šé‡‡é›†é›»è·¯ã€éµç›¤é¡¯ç¤ºé›»è·¯ã€æŽ§åˆ¶åŸ·è¡Œé›»è·¯ã€‚
  4.1 主機電路的è¨è¨ˆ
  主機é¸ç”¨atmelå…¬å¸çš„51系列單片機AT89s52來實ç¾,åˆ©ç”¨å–®ç‰‡æ©Ÿè»Ÿä»¶ç·¨ç¨‹éˆæ´»ã€è‡ªç”±åº¦å¤§çš„特點,力求用軟件完善å„種控制算法和é‚輯控制。本系統é¸ç”¨çš„at89s52芯片時é˜å¯é”12mhz,é‹ç®—速度快,控制功能完善。其內部具有128å—節ram,è€Œä¸”å…§éƒ¨å«æœ‰4kbçš„flash rom ä¸éœ€è¦å¤–擴展å˜å„²å™¨,å¯ä½¿ç³»çµ±æ•´é«”çµæ§‹æ›´ç‚ºç°¡å–®ã€å¯¦ç”¨ã€‚
  4.2 i/0通é“的硬件電路的è¨è¨ˆ
  就本系統來說,需è¦å¯¦æ™‚采集水溫數據,ç„¶åŽç¶“éŽa/d轉æ›ç‚ºæ•¸å—信號,é€å…¥å–®ç‰‡æ©Ÿä¸çš„特定單元,ç„¶åŽä¸€éƒ¨åˆ†é€åŽ»é¡¯ç¤º;å¦ä¸€éƒ¨åˆ†èˆ‡è¨å®šå€¼é€²è¡Œæ¯”較,通éŽPID算法得到控制é‡å¹¶ç¶“由單片機輸出去控制電熱é‹çˆåŠ ç†±æˆ–é™æº«ã€‚
  4.2.1 數據采集電路的è¨è¨ˆ
  數據采集電路主è¦ç”±AD590, 0p-07,74ls373,AD574aç‰çµ„æˆã€‚ç”±äºŽæŽ§åˆ¶ç²¾åº¦è¦æ±‚為0.1度,而考慮到測é‡å¹²æ“¾å’Œæ•¸æ“šè™•ç†èª¤å·®,則溫度傳感器和ad轉化器的精度應更高æ‰èƒ½ä¿è‰æŽ§åˆ¶ç²¾åº¦çš„實ç¾,這個精度å¯è™•粗略定為0.1度。故溫度傳感器需è¦èƒ½å¤ å€åˆ†0.1度;而å°äºŽad轉æ›å™¨,由于測é‡èŒƒåœç‚º40-90度,以0.1度作為響應的adå€åˆ†åº¦è¦æ±‚,則ad需è¦å€åˆ†(90-40)/0.1=500個數å—é‡,顯然需è¦10ä½ä»¥ä¸Šçš„ad轉æ›å™¨ã€‚為æ¤,é¸ç”¨é«˜ç²¾åº¦çš„12ä½ad574a。
  4.2.2 電控制執行電路的è¨è¨ˆ
  由輸出來控制電çˆ,é›»çˆå¯ä»¥è¿‘ä¼¼å»ºç«‹ç‚ºå…·æœ‰æ»¯åŽæ€§è³ªçš„ä¸€éšŽæ…£æ€§ç’°ç¯€æ•¸å¸æ¨¡åž‹ã€‚其傳éžå‡½æ•¸å½¢å¼ç‚ºï¼š

ã€€ã€€å¯æŽ§ç¡…å¯ä»¥èªç‚ºæ˜¯ç·šå½¢ç’°ç¯€å¯¦ç¾å°æ°´æº«çš„æŽ§åˆ¶ã€‚單片機輸出與電çˆåŠŸçŽ‡åˆ†åˆ¥å±¬äºŽå¼±é›»èˆ‡å¼·é›»éƒ¨åˆ†,需è¦é€²è¡Œéš”離處ç†,這里采用光耦元件tlp521 在控制部分進行光電隔離,æ¤å¤–采用變壓器隔離實ç¾å¼±å¼·é›»çš„é›»æºéš”離。
  單片機pwm 輸出電平為0 時,光耦元件導通,å¾žè€Œä½¿ä¸‰æ¥µç®¡å½¢æˆæœ‰æ•ˆå置而導通,é€šéŽæ•´æµæ©‹çš„電壓經éŽé›†é›»æ¥µé›»é˜»ä»¥åŠå°„集åå‘å壓,有7v å·¦å³çš„é›»å£“åŠ åœ¨é›™å‘å¯æŽ§ç¡…æŽ§åˆ¶ç«¯,å¾žè€Œä½¿å¯æŽ§ç¡…å°Žé€šï¼Œäº¤æµé€šè·¯å½¢æˆï¼Œé›»é˜»çˆå·¥ä½œ;å之單片機輸出電平為0 時,光耦元件ä¸èƒ½å°Žé€š,三極管ä¸èƒ½å½¢æˆæœ‰æ•ˆå置而截æ¢,å¯æŽ§ç¡…æŽ§åˆ¶ç«¯é›»å£“å¹¾ä¹Žç‚ºé›¶,å¯æŽ§ç¡…æˆªæ¢å¾žè€Œæˆªæ–·äº¤æµé€šè·¯,é›»çˆåœæ¢å·¥ä½œã€‚æ¤å¤–,還有越é™å ±è¦,ç•¶æº«åº¦ä½ŽäºŽä¸‹é™æ™‚發光二極管亮;é«˜ä¸Šé™æ™‚蜂鳴器å«ã€‚控制執行部分的硬件電路如圖3所示。

  4.3 éµç›¤åŠé¡¯ç¤ºçš„è¨è¨ˆ
  éµç›¤é‡‡ç”¨è»Ÿä»¶æŸ¥è©¢å’Œå¤–éƒ¨ä¸æ–·ç›¸çµåˆçš„æ–¹æ³•來è¨è¨ˆ,低電平有效。按éµan1,an2,an3,an4, an5的功能定義如下: an1:復ä½éµ;an2:é‹è¡Œéµ;an3:功能轉æ›éµ;an4ï¼šåŠ ä¸€éµ;an5:減一éµã€‚
  按éµan3與p3.2相連,é‡‡ç”¨å¤–éƒ¨ä¸æ–·æ–¹å¼,并且優先級定為最高;按éµan5å’Œan4分別與p1.7å’Œp1.6相連,采用軟件查詢的方å¼;an1則為硬件復ä½éµ,與rã€cæ§‹æˆå¾©ä½é›»è·¯ã€‚
ã€€ã€€æŒ‰éµæŒ‰ä¸‹(d1亮)時,顯示溫度è¨å®šå€¼ï¼Œè¨å®šæº«åº¦æ¼¸æ¬¡æ¸›ä¸€;按éµå‡èµ·(d1ä¸äº®)時,é¡¯ç¤ºå‰æº«åº¦å€¼ï¼Œè¨å®šæº«åº¦æ¼¸æ¬¡åŠ ä¸€ã€‚
  5 系統軟件è¨è¨ˆ
  系統的軟件由三大模塊組æˆï¼šä¸»ç¨‹åºæ¨¡å¡Šã€åŠŸèƒ½å¯¦ç¾æ¨¡å¡Šå’Œé‹ç®—控制模塊。
  5.1 ä¸»ç¨‹åºæ¨¡å¡Š
  在主程åºä¸é¦–先給定PIDç®—æ³•çš„åƒæ•¸å€¼,ç„¶åŽé€šéŽå¾ªç’°é¡¯ç¤ºç•¶å‰æº«åº¦,并且è¨å®šéµç›¤å¤–éƒ¨ä¸æ–·ç‚ºæœ€é«˜å„ªå…ˆç´š,以便能實時響應éµç›¤è™•ç†;軟件è¨å®šå®šæ™‚器t0為5秒定時,在無éµç›¤éŸ¿æ‡‰æ™‚æ¯éš”5秒響應一次,以用來采集經éŽa/d轉æ›çš„æº«åº¦ä¿¡è™Ÿ;è¨å®šå®šæ™‚器t1為嵌套在t0之ä¸çš„å®šæ™‚ä¸æ–·,åˆå€¼ç”±PID算法åç¨‹åºæä¾›ã€‚åœ¨ä¸»ç¨‹åºä¸åˆ†é…好æ¯ä¸€éƒ¨åˆ†å程åºçš„起始地å€,ä¸»ç¨‹åºæµç¨‹åœ–如圖4 所示。 

  5.2 åŠŸèƒ½å¯¦ç¾æ¨¡å¡Š
  以用來執行å°å¯æŽ§ç¡…åŠé›»çˆçš„æŽ§åˆ¶ã€‚åŠŸèƒ½å¯¦ç¾æ¨¡å¡Šä¸»è¦ç”±A/D 轉æ›å程åºã€ä¸æ–·è™•ç†å程åºã€éµç›¤è™•ç†å程åºã€é¡¯ç¤ºå程åºç‰éƒ¨åˆ†çµ„æˆã€‚
ã€€ã€€è©²ä¸æ–·æ˜¯å–®ç‰‡æ©Ÿå…§éƒ¨5så®šæ™‚ä¸æ–·,優先級è¨ç‚ºæœ€ä½Ž,但廿˜¯æœ€é‡è¦çš„å程åºã€‚åœ¨è©²ä¸æ–·éŸ¿æ‡‰ä¸,單片機è¦å®ŒæˆA/D數據采集轉æ›ã€æ•¸å—濾波ã€åˆ¤æ–·æ˜¯å¦è¶Šé™ã€æ¨™åº¦è½‰æ›è™•ç†ã€ç¹¼çºŒé¡¯ç¤ºç•¶å‰æº«åº¦ã€èˆ‡è¨å®šå€¼é€²è¡Œæ¯”較,調用PID算法å程åºå¹¶è¼¸å‡ºæŽ§åˆ¶ä¿¡è™Ÿç‰åŠŸèƒ½ã€‚
  5.3 PID算法å程åº
  系統算法控制采用工æ¥ä¸Šå¸¸ç”¨çš„ä½ç½®åž‹PIDæ•¸å—æŽ§åˆ¶,并且çµåˆç‰¹å®šçš„ç³»çµ±åŠ ä»¥ç®—æ³•çš„æ”¹é€²,å½¢æˆäº†è®Šé€Ÿç©åˆ†PID一ç©åˆ†åˆ†é›¢PID控制相çµåˆçš„自動è˜åˆ¥çš„æŽ§åˆ¶ç®—法。該方法ä¸åƒ…大大減å°äº†è¶…調é‡,而且有效地克æœäº†ç©åˆ†é£½å’Œçš„影響,使控制精度大大æé«˜ã€‚PID控制算法的æµç¨‹åœ–如圖5所示。

  6 çµè«–
  在æ¤ç³»çµ±è¨è¨ˆä¸ï¼Œç”¨å–®ç‰‡æ©Ÿä½œç‚ºä¸»æŽ§èŠ¯ç‰‡ï¼Œé€šéŽé›»æ©‹ä½¿å¾—PT100來檢測溫度模擬信號,然åŽé€²è¡Œæ¨¡/數轉æ›å¹¶å‚³é€çµ¦å–®ç‰‡æ©ŸæŠŠæ•¸æ“šé€²è¡Œé€²ä¸€æ¥è™•ç†åŽä¸€æ–¹é¢é€çµ¦LED實ç¾å¯¦æ™‚顯示,并判斷是å¦éœ€è¦å ±è¦ï¼Œé€šéŽèˆ‡çµ¦å®šå€¼é€²è¡Œæ¯”è¼ƒï¼Œç„¶åŽæ ¹æ“šå差值進行PIDé‹ç®—,æ¤å¤–程åºéœ€è¦å°5個è¨ç½®æŒ‰éµé€²è¡Œå¾ªç’°æŽƒæï¼Œä¸€æ—¦æœ‰éµæŒ‰ä¸‹ï¼Œæœƒåšå‡ºç›¸æ‡‰è¨ç½®éŽç¨‹ã€‚æ¤ç³»çµ±è»Ÿä»¶æŽ§åˆ¶éƒ¨åˆ†é‡‡ç”¨ç¶“典的PID算法控制,方法簡單且å°é‹çˆæº«åº¦æ’溫控制起到良好的效果。