文章內容
石油管道缺陷檢測爬行器控制系統
DAC 0800D/A轉換器 LM628運動控制器位置控制算法
2003年10月(2)
本系統選用DAC 0800D作為D/A轉換器,其中8位無鎖存高速電流型輸出的。它的輸出電流需經運算放大器LM12轉換為電壓信號,本系統中DAC0800采用雙極性接法,以使電機能做前進或后退運動。當數字輸入為00H時,輸出電壓為-10V,數字輸入為FFH時,輸出電壓為+10V。
本系統選用LM628專用的運動控制處理器進行運動控制。LM628是為使用增量式編碼器作位置反饋的各種直流或無刷直流伺服電動機伺服系統或其他伺服機構而設計的,它能為先進的運動控制提供強大的實時運算能力,為便于與上級主機連接而提供了便利的高級指令集。
LM628實際上是為一個專門用途而設計的單片機,其特點為:32位的位置、速度、加速度寄存器;可編程數字PID濾波器;可編程微分采樣間隔;8位或12位D/A轉換器輸出數據;內部梯形速度圖發生器;速度、目標位置和PID濾波器參數在運動過程中可以改變;可選擇位置或速度控制方式;實時可編程的主計算機中斷;8位并行異步主計算機中斷;與增量式編碼器的接口。
LM628功能為:接受主機的指令和向主機提供狀態和數據;執行梯形速度圖的計算和數字PID濾波,不論是設置為位置控制還是速度控制方式,梯形速度圖發生器計算出需要的梯形速度分布圖;利用增量編碼器反饋實際位置;在運行中進行預定位置(速度圖發生器計算的位置)與實際位置的減法運算,此位置誤差經數字PID濾波器處理后輸出,由外界D/A轉換器的放大,驅動電動機到達預定位置。
LM628采用28引腳雙列直插式封裝,其引腳功能簡述為: 接收從增量編碼器來的標記index亦即零位信號;A、B接收從增量編碼器來的兩個正交信號,當電動機正轉時,A腳信號應超前于B腳信號90°
連接主計算機或主處理器的I/O口,利用
和
可向LM628寫入指令和數據,或從LM628讀出狀態字節和數據;
片選輸入,由主機用來選LM628,進行讀寫操作;
由主機用來讀出LM628的狀態和數據;
由主機用來向LM628寫入指令或數據;
由主機用來選擇LM628的指令口或數據口,當
為低電平時,向指令口寫入指令,或從指令口讀出狀態;當
為高電平時,經數據口寫入或讀出數據;HI通知主計算機中斷條件已具備;DAC0~DAC7DAC輸出口。
復位輸入端。
LM628的主機接口為上級機對其編碼和監控提供便利,而在軟件上主機的編程和監控功能則是通過向LM628下達用戶指令來實現的。這些指令包括初始化、中斷控制、濾波器控制、軌跡控制、數據上報等功能,其中一些指令是單獨的,而另一些指令需要一個支持數據結構,具體列于表1。
表1 LM628的用戶指令集
類型 |
指令 |
說明 |
初始化 |
RESET |
復位 |
PORT8 |
選擇8位輸出 |
|
PORT12 |
選擇12位輸出 |
|
DFH |
定義原點 |
|
中斷 |
SIP |
設定位置 |
LPEI |
誤差中斷 |
|
LPES |
誤差停 |
|
SBPA |
設定斷點,絕對 |
|
SBPR |
設定斷點,絕對 |
|
MSKI |
屏蔽中斷 |
|
RSTI |
復位中斷 |
|
濾波 |
LFIL |
裝入PID濾波器參數 |
UDF |
修改PID濾波器參數 |
|
軌跡 |
LTRJ |
裝入軌跡數據 |
STT |
啟動 |
|
報告 |
RDSTAT |
讀狀態字節 |
RDSIGS |
讀信號寄存器 |
|
RDIP |
讀位置 |
|
RDDP |
讀預定位置 |
|
RDRP |
讀實際位置 |
|
RDDV |
讀預定速度 |
|
RDRV |
讀預定速度 |
|
RDSUM |
讀積分和 |
在圖2中,運動控制處理器LM628用8位并行總線與主計算機(PC104嵌入式工控機)接口,地址線經譯碼后作為LM628的CS輸入;地址的LSB直接驅動PS輸入。LM628的8位DAC輸出接DAC0800D/A轉換器,送LM12線性功率放大器驅動直流電動機。
增量編碼器三個信號A,B和IN接至LM628。兩個正交信號A與B用來跟蹤電動機的絕對位置,它們組成四個邏輯狀態,此邏輯狀態的每一次改變,相應的LM628內位置寄存器增加或減少一個數。這樣,系統分辨率比該編碼器增加或減少一個數。這樣,系統分辨率比該編碼器條紋數高4倍。 信號是每一轉出現一次低電平的脈沖信號,當編碼器三個信號都是低電平時產生index信號送內部專門的寄存器index,用于記錄電動機的絕對位置。
LM628的DAC輸出口可提供鎖存8位并行輸出或雙重12位輸出,這個DAC輸出數據是移位二進制碼(即8位、12位碼的零點分別為80h、800h)。本系統選擇8位輸出,當讀出數據小于零點時,電動機產生的是負轉矩(爬行器后退);而當輸出數據大于零點時,則產生正轉矩(爬行器前進)。
在本系統的位置控制方式中,主計算機確定了加速度、減速度、爬行速度、檢測速度、初始位置、爬行與檢測轉換位置、最后位置等信息,并通過用戶命令傳遞給LM628,LM628則利用這些信息使電動機按圖1的位置-速度圖進行加速、高勻速、減速、低勻速、降速、停止的規律運動。
在LM628中有一個數字PID濾波器用于實現位置控制算法。位置實際值是由聯于電機的主軸上的旋轉編碼器來獲取的,編碼器將爬行器走過的距離轉換為一系列脈沖,再由LM628計數處理,處理后便可知爬行器所處的位置。假定電機輪子的直徑為D,編碼器每轉發出N個脈沖,則每個脈沖對應的距離為 D/N。在預定位置上,對于任何擾動,電動機都產生一個轉矩來保持此位置。此回復轉矩正比于位置偏差加上偏差的積分和微分。LM628給電動機的輸出信號可用離散PID算法表示為
式中:e為位置偏差,e(n)=S(n)-Sg(n);S(n)與Sg(n)分別為實際距離、給定距離;n表示為第n次采樣;n′表示以微分采樣速率進行的采樣;Kp,Ki及Kd系由用戶設定的濾波參數,它們可根據實際情況進行事先整定。
4 結束語
本文介紹了海底石油管道檢測系統的工作過程,并詳細地討論了海底石油管道檢測智能控制器的缺陷精確定位過程、智能控制器的硬件結構、位置控制算法等,經仿真運行和實際試驗運行均表明了本控制器運動控制的正確性和可靠性。
