摘 要: 步進電機的遠程多點位置控制系統,利用TCP協議將服務器端控制中心和客戶端控制器接入因特網,可實現控制數據和位置監控數據的遠程同步傳輸。系統采用NI公司的CompactRIO作為核心控制器;通過LabVIEW編寫改進專家PID控制算法,可根據設定位置與實時位置的偏差動態設定輸出控制器參數,有效防止過沖現象,實現步進電機的精確位置控制。步進電機的驅動控制電路由單片機和LM298構成,結合多級細分控制方法可有效抑制步進電機的震動和失步。
關鍵詞: 遠程位置控制; CompactRIO; 改進專家PID算法; TCP協議
中圖分類號: TN820.3?34 文獻標識碼: A 文章編號: 1004?373X(2013)13?0142?05
Remote position control system of multipoint stepper motor
LIU Yun?hong, LI Shi?yu
(Dalian University of Technology, Dalian 116024, China)
Abstract: By using transmission control protocol (TCP) to connect the sever control centre and client controller to Internet, the remote multipoint position control system of the stepper motor could realize the remote synchronous transmission of control data and position monitoring data. CompactRIO of National Instrument Company is taken as the core controller of the system. By writing the modified expert PID control algorithm in LabVIEW, the parameters of the output controller can be dynamically set according to the deviation between setting position and real?time position, the overshoot phenomenon can be prevented efficiently, and the precise position control of stepper motor can be realized. The drive control circuit of the stepper motor is consist of singlechip and LM298, which can effectively restrain the vibration and out?of?step of the stepper motor in combination with with multilevel subdivided control method.
Keywords: remote position control; CompactRIO; modified expert PID control algorithm; TCP
0 引 言
精確位置控制是精密儀器制造業、航天業以及軍事領域中不可缺少的重要環節[1],這些領域中常常會遇到控制現場不便接近或存在危險性的問題,因此遠程位置控制就具有非常重要的研究意義。已經廣泛覆蓋的因特網為實現遠程控制提供了可能,并且具有通信速率高、可靠性高和成本低等諸多優勢。本設計中的遠程位置控制系統將因特網作為通信介質,同時應用TCP(Transmission Control Protocol)協議保證數據準確傳輸,能實現控制中心同時對多臺步進電機的遠程位置控制。
步進電機的開環位置控制雖然易于實現,但隨著工業應用的不斷深入和相關技術的發展,開環控制尚不能滿足精密位置控制系統不斷提高的精度要求,因此需要使用更為精確的閉環控制。還考慮到步進電機的擾動扭矩以及機械系統的阻尼、剛度慣量等因素,傳統的PID控制方法無法提供最佳的PID參數[2],因此本文將專家經驗與數字PID控制方法相結合設計出改進專家PID算法,并應用到位置控制系統中,有效抑制了步進電機定位過程中的過沖現象,大大提高了系統的控制精度,很好的解決了以上問題。
系統的核心控制器CompactRIO是NI公司生產的一款堅固耐用、可重新配置的嵌入式測控系統,包括實時控制器、可重配置的FPGA(現場可編程門陣列)和工業級I/O模塊。內嵌FPGA的可重配置機箱是CompactRIO的核心,機箱中的FPGA直接和每個I/O模塊相連,控制器可高速訪問I/O電路與步進電機的驅動電路,無論在數據運算還是數據通信都十分快速,保證了系統的實時性。
本文將介紹系統的硬件結構,重點研究改進專家PID算法在精確位置控制中的實現方法,并分析了TCP協議在系統遠程控制中的應用。
1 系統硬件結構
1.1 系統整體硬件結構
系統硬件的核心是cRIO?9014嵌入式實時控制器,該控制器帶有10/100 BaseT以太網端口,可通過PC接入因特網。配合cRIO?9014選用了8槽cRIO?9112可重新配置的嵌入式機箱,支持所有CompactRIO I/O模塊,使用Xilinx Virtex?5系列FPGA 核心,具有超強的處理能力。選用了8通道、5 V/TTL高速雙向數字I/O模塊NI?9401為步進電機驅動模塊提供控制時序信號,由于NI?9401具有100 ns超高速數字輸入/輸出功能,基本消除了系統響應延遲。還選用了16位模擬輸入模塊NI?9215來實時采樣步進電機的位置電壓信號,NI?9215具有四通道100 KS/s的同步采樣速率,可以滿足對多點控制的要求。I/O模塊的選擇充分考慮了遠程定位系統控制信號的頻率以及采樣信號的分辨率和采樣率的要求。控制器結構如圖1所示。
<\\192.168.0.25\$d\8月\8-2\補\補!現代電子技術201313\Image\29t1.tif>
圖1 核心控制器結構圖
系統硬件除了核心控制器CompactRIO外還包括上位機、由單片機和電機驅動芯片LM298構成步進電機驅動電路、步進電機位置信號采集電路和多臺步進電機。系統整體結構如圖2所示。
<\\192.168.0.25\$d\8月\8-2\補\補!現代電子技術201313\Image\29t2.tif>
圖2 系統整體硬件結構圖
安裝了LabVIEW應用程序的PC作為系統的控制中心,與在控制現場載入了LabVIEW應用程序的CompactRIO控制器進行遠程通信。通過接入網絡,控制中心將各臺步進電機的目標位置信息發送到控制現場的控制器,同時控制器將采集到的各臺步進電機的實時位置反饋到控制中心。
CompactRIO將從控制中心接收到包含各臺電機控制信息的數據報譯碼,得到十進制的位置角度值和控制器初始參數值,然后將各電機目標位置角度值與電機的實時位置角度值送入改進專家PID控制器進行比較分析。根據分析結果,數字量I/O模塊NI?9401向電機的驅動控制模塊中的單片機的I/O口發送控制信號,實現對步進電機的位置控制。
1.2 步進電機驅動控制電路結構
步進電機的驅動控制電路主要包括Atmel公司的ATmega8單片機和SGS公司的雙全橋式電機驅動芯片LM298,LM298作為驅動電機的電力輸出器件,單片機作為驅動控制器,電路結構如圖3所示。LM298內含兩個H橋的高電壓大電流雙向橋式驅動器,接受標準TTL電平信號,可驅動電壓46 V、每相2.5 A及以下的步進電機[3]。由于采用雙極性驅動,因此電機線圈完全利用,使驅動步進電機的效果最佳。NI?9401的DIO0、DIO1、DIO2、DIO3四路數字數字輸出口分別接單片機的PC0~PC3口,向單片機發送時序信號控制指令。單片機的PD4~PD7口分別接到LM298的四路輸入,LM298的四路輸出則接到步進電機的A、B、C、D的四個控制端。為避免控制信號受到干擾,單片機I/O輸出腳與LM298輸入腳之間采用光耦TIL117進行信號隔離。
被控電機選擇兩相混合式42BYGH型步進電機,采用四相八拍制的多級細分通電方式,即對步進電機定子的A、B、C、D四相以A?AB?B?BC? C?CD?D?DA或A?AD?D?DC?C?CB?B?BA的順序單相與兩相間隔通電,步進電機步距角為[θb=0.9°。]多級細分控制,通過把原有最小步距角再進行細分,可以把步進電機的步距角進一步減小(減小到幾個角分)[4]。本設計利用單片機軟件編程實現細分控制,可簡化硬件電路。原理是將原有的八個通電狀態中每組相鄰狀態的變化過程(單相通電到兩相通電或兩相通電到單相通電)分為四個階梯狀的階段。以從A相通電到AB兩相通電的過程為例,此過程中,A相保持通電狀態,B相則處于通電與斷電的交替過程中,但通電時間呈階梯狀上升,從1/4時間通電到1/2時間通電,再到3/4時間通電,最后到達B相完全通電即AB兩相同時通電狀態。AB兩相通電到B相單相通電過程中A相的斷電過程同樣呈階梯狀,只是趨勢相反。步進電機的相繞組中電流也成四層階梯狀變化,因此運行的每一步變為原來的[14],即[θb]=0.225°。這樣步進電機運行更近似勻速運動,震動變小了,發生失步的概率也降低了。
1.3 位置信號采集電路結構
采用總阻值為10 kΩ的精密多圈旋轉電位器(共10圈,每圈1 kΩ)替代絕對值式旋轉編碼器采集步進電機的位置信號,此設計可簡化硬件、降低成本。電位器兩固定端接10 V直流穩壓電源的+10 V端和COM端,滑動端接NI?9215模擬量輸入模塊AI+端,穩壓電源的COM端接NI?9215模塊的AI-端和COM 端。
步進電機的起始位置為0°,對應0.000 V電壓;終點位置為3 600°,對應10.000 V電壓;步距角為0.9°,對應0.025 V電壓。每個NI?9215模塊可以同時采集四個節點步進電機的實時位置電壓信號,為多路閉環位置控制提供了精確的實時位置反饋信號。
2 精確位置控制的算法設計
專家控制的實質是基于受控對象和控制規律的各種知識,以智能的方式利用這些知識來設計控制器。利用專家經驗來設計PID參數便構成專家PID控制[5]。為使不同的被控步進電機在起始位置與設定位置不同情況下都能快速精確到達設定位置,就需要智能的調節控制器參數。將整個位置控制過程分為幾個階段,需要控制器參數能夠適應不同階段而進行自行調節,已達到最佳定位效果。本設計根據大量實驗數據與前人經驗相結合,設計了適應快速精確位置控制系統的改進專家PID控制器,并通過LabVIEW編程實現。
令[e(k)]表示設定的步進電機位置角度值[p0]與步進電機實時位置角度采樣值[p(k)]之差,即當前位置角度差值;令[Δe(k)]表示當前位置角度差值與前次位置角度差值之差,反應位置角度差值的變化趨勢。即有:
[e(k)=p0-p(k)] (1)
[Δe(k)=e(k)-e(k-1)] (2)
根據分析[e(k)]與[Δe(k)]將定位過程分成了4個階段,因此根據這四種情況來設計專家PID的控制器:
(1)當[e(k)>M1]時,說明當前位置與設定位置相差很大,無論位置差變化趨勢如何,都應考慮控制器的輸出按最大(后最小),以迅速調整位置差,使位置差絕對值以最大速度減小。此時,只采用比例控制,且為提高響應速度比例系數應取大些,而積分系數與微分系數則為0,相當于實施開環控制。控制器輸出可為:
[p(k)=p(k-1)+λp1?Kp[e(k)-e(k-1)]] (3)
(2)當[M2 [p(k)=p(k-1)+Kp[e(k)-e(k-1)]+λi2*Kie(k)+Kd[e(k)-2e(k-1)+e(k-2)]] (4) (3)當[ε 若[e(k)?Δe(k)>0],說明位置差在向絕對值增大的方向變化,為抑制超調,應加強微分控制,選較大的微分系數。輸出控制器為: [p(k)=p(k-1)+Kp[e(k)-e(k-1)]+Kie(k)+λd1*Kd[e(k)-2e(k-1)+e(k-2)]] (5) 若[e(k)?Δe(k)0,]說明位置差的絕對值朝較小方向變化,或已經達到平衡位置,應減小微分系數。輸出控制器為: [p(k)=p(k-1)+Kp[e(k)-e(k-1)]+Kie(k)+λd2*Kd[e(k)-2e(k-1)+e(k-2)]] (6) (4)當[e(k)ε]時,當前位置已經很接近設定位置了。為較小穩態誤差,此時采用PI控制,選擇較大的積分系數并使微分系數為0。輸出控制器為: [p(k)=p(k-1)+λp2*Kp[e(k)-e(k-1)]+λi1*Kie(k)] (7) 以上式中[λp1,][λi1,][λd1]為增益系數,大于1;而[λp2,][λi2,][λd2]為抑制系數,大于0小于1。[M1,][M2]及[ε]的值是根據位置控制系統實際情況而定的,本設計中它們的取值分別為18°,9°和3.6°。 某次位置控制過程中的改進專家PID控制器的參數變化如表1所示,其中設定的初始參數[Kp,][Ki,][Kd]分別為60,0.01,0.01。 表1 某位置控制過程中控制器參數設置 [\[e(k)>18]\[9 此次位置控制過程的起始位置為240.00°、設定位置為100.00°,過程采樣圖如圖4所示。可見,在距設定位置較遠時步進電機快速運行;而到接近設定位置時,由于比例調節減弱了,位置曲線變緩,在微分調節和積分調節的共同作用,有效抑制了超調現象的發生,而且穩態誤差也非常的小,僅為0.10°,遠小于最小步距角。 <\\192.168.0.25\$d\8月\8-2\補\補!現代電子技術201313\Image\29t4.tif> 圖4 某次位置控制過程采樣圖 3 TCP協議在系統中的應用 系統遠程通信部分是基于LabVIEW實現的。LabVIEW不僅在程序界面設計時采用了與其他高級語言類似的圖形化方式[6],更重要的是,它針對不同的應用和不同的層次,提供了可以通過圖形化編程實現的共享變量、DataSocket、TCP和UDP等多種網絡通信方式。其中以TCP與UDP兩種網絡協議最基本、最流行。TCP是最常用的網絡協議,它也是很多互聯網協議(如HTTP 和FTP)的基礎[7],在提供良好工作性能的基礎上,具有編號系統、流量控制、差錯控制、擁塞控制等機制[8]。可靠性(不丟失數據)是TCP最重要的特性,能保證數據能夠最終到達設定的接收端,或者發送端能夠接收到失敗信息。在LabVIEW提供的所有通信標準中,TCP提供了最高的吞吐量和最好的可靠性,在傳輸大量數據的時候尤其能夠體現其高效的特性。而另一種常見的網絡協議是UDP和TCP不同,UDP可能會丟失數據。這意味著當發送數據時,不能保證數據能夠準確到達目的地。如果網絡過于擁擠或者接收方未成功響應,一些數據將會丟失[9]。 為保證遠程位置控制系統在數據傳輸過程中的可靠性與高效性,選擇TCP協議實現服務器端的控制中心和客戶端的控制器之間的數據通信。本設計中主要應用到的幾個VI函數的功能如表2所示。 表2 TCP編程VI函數功能列表 [VI函數名稱\功能\TCP偵聽\在指定端口創建一個監聽端,并等待客戶端的連接\打開TCP連接\打開指定的TCP連接\讀取TCP數據\從指定的TCP連接讀取數據\寫入TCP數據\向指定的TCP連接寫入數據\關閉TCP連接\關閉指定的TCP連接\] 所有TCP連接都由兩對IP地址和TCP端口惟一識別,每個主機都有一個地址/端口對[10]。因此為系統的服務器端和客戶端分別分配了獨立的IP地址,分別為202.118.73.26與202.118.73.25。將服務器端PC的2055端口專門用于定位系統的數據通信。在控制中心PC和CompactRIO可以交換數據之前,服務器端先對2055端口進行監聽,客戶端向服務器端的2055端口發送請求,服務器端接收到請求后便建立連接,然后就可以進行通信了。 服務器端和客戶端的TCP通信程序都分為發送和接收兩部分。服務器端的發送部分采用雙層While循環結構,內部循環監視設定位置的變化,當“輸入設定位置”欄中的位置值發生變化且單擊“發送鍵”時,內部循環將停止并把含有數據發至外部循環和“寫入TCP數據”函數。然后清除“輸入設定位置”欄,內部循環將重新監視設定位置的變化。服務器端的接收部分采用單While循環,“讀取TCP數據”函數一直接收來自客戶端的數據,可實時更新采樣位置數據,并在實時位置采樣圖中顯示。客戶端的通信程序與服務器端的結構相似,這里不再詳細介紹。服務器端和客戶端的LabVIEW程序如圖5所示。 系統運行時,服務器端的TCP偵聽函數進行60 s的監聽,等待有客戶端發送通信請求,如果超過60 s沒有請求,本次監聽結束。若收到接聽請求,與客戶端建立連接,開始進行包含控制信息和電機實時位置信息的數據報雙向傳輸。數據報為字符串格式的格式,包括電機號、位置信息、PID參數設定值和終止字符(“回車鍵”)。數據報的解析過程中,首先檢測 “回車鍵”,以判斷一條數據報是否接收完成;其次查詢各臺電機對應位置角度信息,將字符串格式的位置信息轉化為十進制浮點型數據并記錄;最后查詢對應各臺電機的PID控制器的初始參數,將字符串格式的參數轉化為十進制浮點型數據并輸入到控制器中。系統服務器端監控界面如圖6所示。發出的控制信息“一號30Kp60Ki0.01Kd00.01二號60Kp60Ki0.01Kd00.01”,在客戶端被解析為一號電機設定位置為30°,二號電機設定位置為60°,兩電機控制器初始參數都為60,0.01,0.01。同時,在服務器端的實時位置采樣圖中可以同步顯示出客戶端被控電機的位置變化。 <\\192.168.0.25\$d\8月\8-2\補\補!現代電子技術201313\Image\29t5.tif> 圖5 服務器端和客戶端的通信程序 4 結 語 本設計對兩臺步進電機實現了無距離限制的遠程位置控制,經過多次實驗驗證定位結果精確而且過程快速,成功解決了傳統位置控制系統因過沖現象導致系統不穩定和效率低的問題。此系統的可擴展性很強,只需增加CompactRIO控制器中數字I/O模塊與模擬量輸入模塊就可實現更多點電機的定位控制;而且只要服務器端可兼容多網卡,便可擴展到不同IP的客戶端,實現分布式控制。 <\\192.168.0.25\$d\8月\8-2\補\補!現代電子技術201313\Image\29t6.tif> 圖6 系統通信部分監控界面 參考文獻 [1] 張莉松,胡祐德,徐立新.伺服系統原理與設計[M].北京:北京理工大學出版社,2006. [2] 孟英紅,齊婉玉.用297,298組成的步進電機驅動電路[J].儀器儀表學報,2003,24(4):253?254. [3] 高文化,蘇宏志.模糊自適應PID在數控進給伺服系統的應用[J].制造業自動化,2009,31(7): 35?36. [4] 史步海,張選正.特種電動機調速控制技術及應用[M].廣州:華南理工大學出版社,2010. [5] 劉金琨.先進PID控制Matlab仿真[M].2版.北京:電子工業出版社,2004. [6] 阮奇楨.我和LabVIEW[M].北京:北京航空航天大學出版社,2009. [7] 張東,施奇峰,王云波.基于LabVIEW和TCP的數據采集系統的開發及應用[J].冶金自動化,2011,35(2):38?39. [8] 陳笑秋,徐小華.基于DataSocket技術的網絡化測控系統[J].儀器儀表用戶,2008,15(2):63?65. [9] 陳錫輝,張銀鴻. LabVIEW 8.20程序設計從入門到精通[M].北京:清華大學出版社,2007. [10] 謝喆.基于FPGA的TCP/IP數據通信的設計與應用[D].武漢:武漢科技大學,2011.