何西平
摘要: 為實(shí)現(xiàn)齒輪測(cè)量中心的隨動(dòng)控制功能,設(shè)計(jì)了基FPGA的齒輪測(cè)量中心隨動(dòng)控制器,該控制器通過(guò)增量式PID控制來(lái)對(duì)測(cè)頭反饋的示值進(jìn)行調(diào)節(jié)計(jì)算,使隨動(dòng)軸帶動(dòng)測(cè)頭運(yùn)動(dòng),最終達(dá)到調(diào)整測(cè)頭壓入量的目的;通過(guò)實(shí)驗(yàn)在齒輪測(cè)量中心上對(duì)該控制器進(jìn)行了功能驗(yàn)證,實(shí)驗(yàn)證明該控制器可以有效的對(duì)測(cè)頭壓入量進(jìn)行調(diào)整,可以達(dá)到跟蹤測(cè)量的目的。
Abstract: In order to realize the follow-up control function of gear measurement center, a follow-up controller of gear measurement center based on FPGA is designed. The controller adjusts and calculates the indication fed back by the probe through incremental PID control, so that the follow-up shaft drives the probe to move, and finally achieves the purpose of adjusting the pressing amount of the probe; The function of the controller is verified on the gear measuring center through experiments. The experiments show that the controller can effectively adjust the pressing amount of the probe and achieve the purpose of tracking measurement.
關(guān)鍵詞: 隨動(dòng)控制;FPGA;PID;齒輪測(cè)量
Key words: servo control;FPGA;PID;gear measurement
中圖分類號(hào):TG86? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文章編號(hào):1674-957X(2021)24-0149-03
0? 引言
目前齒輪測(cè)量中心在測(cè)量工件時(shí),需要先知道被測(cè)齒輪的理論輪廓方程,將測(cè)頭測(cè)得的實(shí)際齒面坐標(biāo)與理論值相比較后,計(jì)算出被測(cè)齒輪的誤差[1-2]。而對(duì)于許多齒面輪廓方程未知的齒輪,齒輪測(cè)量中心無(wú)法進(jìn)行測(cè)量;除此之外,對(duì)于被測(cè)齒輪的理論輪廓方程已知,但由于齒面磨損、制造等原因?qū)е慢X面誤差非常大的齒輪,在測(cè)量時(shí)由于超出了測(cè)頭的量程,此時(shí)也無(wú)法進(jìn)行測(cè)量[3]。針對(duì)以上兩種問(wèn)題,本課題提出了測(cè)頭示值的隨動(dòng)控制方法,以FPGA(現(xiàn)場(chǎng)可編程門陣列)開發(fā)板為控制核心,通過(guò)測(cè)頭示值的大小來(lái)調(diào)整隨動(dòng)軸的運(yùn)動(dòng),從而實(shí)現(xiàn)自動(dòng)跟蹤測(cè)量。
1? 系統(tǒng)整體結(jié)構(gòu)
如圖1所示為測(cè)頭示值隨動(dòng)控制的總體控制結(jié)構(gòu)圖,主軸和隨動(dòng)軸接收到下位機(jī)發(fā)送的插補(bǔ)指令后分別進(jìn)行各自的旋轉(zhuǎn)運(yùn)動(dòng)和直線運(yùn)動(dòng),當(dāng)被測(cè)齒輪齒面方程未知或者齒面磨損較大時(shí),會(huì)導(dǎo)致測(cè)頭和齒面接觸量發(fā)生變化,而使測(cè)頭示值變化,因此將測(cè)頭數(shù)據(jù)經(jīng)過(guò)處理后反饋給隨動(dòng)軸控制器,從而對(duì)隨動(dòng)軸的插補(bǔ)指令進(jìn)行補(bǔ)償,來(lái)調(diào)整隨動(dòng)軸的運(yùn)動(dòng)速度,使隨動(dòng)軸和直線軸運(yùn)動(dòng)速度一致,而將測(cè)頭示值保持在設(shè)定范圍內(nèi)[4]。
2? 系統(tǒng)硬件電路設(shè)計(jì)
隨動(dòng)控制系統(tǒng)的整體硬件電路模塊如圖2所示。主要在FPGA中對(duì)隨動(dòng)軸電路進(jìn)行了設(shè)計(jì),包括偏差計(jì)算模塊、PID計(jì)算模塊、測(cè)頭信號(hào)處理模塊以及插補(bǔ)模塊。各模塊的具體設(shè)計(jì)如圖2。
2.1 測(cè)頭信號(hào)處理模塊
測(cè)頭信號(hào)處理模塊主要對(duì)測(cè)頭示值進(jìn)行處理以方便偏差計(jì)算模塊計(jì)算,AD977芯片對(duì)測(cè)頭的模擬量進(jìn)行轉(zhuǎn)換后得到測(cè)頭的數(shù)字量[5-6],所得到的數(shù)字量與AD芯片輸入的電壓關(guān)系如表1所示,可以看出當(dāng)輸入電壓為負(fù)時(shí),輸出數(shù)字量用補(bǔ)碼表示;當(dāng)輸入電壓為正時(shí),輸出數(shù)字量用原碼表示。
為了方便處理,將AD977芯片轉(zhuǎn)換得到的數(shù)字量通過(guò)中位值濾波算法處理后,濾掉采樣中出現(xiàn)的一些奇異值,接著對(duì)AD977芯片轉(zhuǎn)換得到的負(fù)電壓數(shù)字量補(bǔ)碼形式進(jìn)行變換,將補(bǔ)碼轉(zhuǎn)換成原碼。將16位寄存器的最高位做為符號(hào)位,前15位做為實(shí)際數(shù)字量原碼形式,當(dāng)輸入為負(fù)時(shí),最高位置1,否則置0。
2.2 偏差計(jì)算模塊
偏差計(jì)算模塊主要對(duì)輸入的測(cè)頭反饋信號(hào)進(jìn)行偏差計(jì)算,在偏差計(jì)算模塊中設(shè)定測(cè)頭跟蹤范圍為±5um,轉(zhuǎn)換對(duì)應(yīng)的數(shù)字量約為±650,因此當(dāng)測(cè)頭實(shí)際示值超出設(shè)定跟蹤范圍后,偏差計(jì)算模塊的輸出量為實(shí)際示值減去設(shè)定數(shù)字量值,由此可以知道測(cè)頭的實(shí)際狀態(tài)相對(duì)與理想狀態(tài)之間的差距。
偏差計(jì)算模塊的采樣周期即為系統(tǒng)時(shí)鐘周期,每隔一個(gè)時(shí)鐘周期對(duì)指令數(shù)據(jù)和實(shí)際測(cè)頭數(shù)據(jù)進(jìn)行采樣,并求出之間的差值,因此采樣間隔非常小,所得到的偏差結(jié)果也非常準(zhǔn)確。同時(shí)為了避免隨動(dòng)軸的響應(yīng)時(shí)間非常大,出現(xiàn)一直發(fā)送指令數(shù)據(jù),而測(cè)頭沒有響應(yīng)導(dǎo)致出現(xiàn)機(jī)械故障問(wèn)題,在偏差計(jì)算模塊中設(shè)計(jì)了故障提醒信號(hào),當(dāng)偏差計(jì)算模塊中的偏差值超過(guò)20000時(shí),便將故障信號(hào)由高電平變?yōu)榈碗娖?,同時(shí)故障指示燈亮提醒操作者。
2.3 PID計(jì)算模塊
PID計(jì)算模塊采用增量式PID算法控制,以下公式(1)是增量式PID控制的算法數(shù)學(xué)模型[7-8],其中ek、ek-1、ek-2分別為連續(xù)三次采樣的測(cè)頭跟蹤誤差值,uk、dk分別是PID控制器的輸出量和增量,kp、ki、kd分別是比例環(huán)節(jié)、積分環(huán)節(jié)、微分環(huán)節(jié)的系數(shù)。
將偏差計(jì)算模塊的輸出量做為PID模塊的輸入量,并且通過(guò)時(shí)序電路將輸入偏差依此輸入到三個(gè)寄存器中,產(chǎn)生三次連續(xù)采樣的輸入誤差,三個(gè)寄存器中的輸入偏差之間各相差一個(gè)時(shí)鐘周期,在一開始通過(guò)復(fù)位信號(hào)對(duì)三個(gè)偏差寄存器進(jìn)行清零復(fù)位,在設(shè)定好合適的PID參數(shù)后,便可以求出隨動(dòng)控制器的補(bǔ)償輸出量。
由于增量式PID計(jì)算模塊中的各環(huán)節(jié)系數(shù)可能會(huì)取到小數(shù),而在FPGA中不能直接表示小數(shù),只能表示整數(shù),在表示小數(shù)的時(shí)候,需要將小數(shù)用浮點(diǎn)數(shù)或者定點(diǎn)數(shù)進(jìn)行表示。使用浮點(diǎn)數(shù)表示時(shí)設(shè)計(jì)繁瑣并且比較占用FPGA中的數(shù)學(xué)邏輯資源,但表示的小數(shù)相對(duì)精確;相反使用定點(diǎn)數(shù)表示小數(shù)時(shí),設(shè)計(jì)相對(duì)簡(jiǎn)單便捷,但是不能精確的表示小數(shù),在表示小數(shù)時(shí)有一定的誤差??紤]到在對(duì)PID模塊各環(huán)節(jié)系數(shù)進(jìn)行調(diào)參時(shí)具有不確定性,且各系數(shù)的精度誤差對(duì)輸出影響不大,同時(shí)考慮到所使用的FPGA開發(fā)板資源問(wèn)題,在不浪費(fèi)FPGA中數(shù)學(xué)邏輯資源的前提下,采用定點(diǎn)數(shù)來(lái)表示小數(shù)。
2.4 插補(bǔ)模塊
插補(bǔ)模塊采用數(shù)字積分DDA算法進(jìn)行直線插補(bǔ),設(shè)計(jì)的程序思想如圖3流程圖所示,在復(fù)位信號(hào)到來(lái)的時(shí)候,將被積函數(shù)xe、累加次數(shù)以及累加函數(shù)∑Xe全部清零,將PID的輸出量和下位機(jī)的指令數(shù)據(jù)賦值給被積函數(shù),隨著時(shí)鐘上升沿的到來(lái),將被積函數(shù)累加賦值給累加函數(shù),當(dāng)累加次數(shù)等于0時(shí)停止累加,完成一個(gè)位置的直線插補(bǔ)。
在插補(bǔ)模塊中,將PID輸出的控制量補(bǔ)償給下位機(jī)輸出的指令數(shù)據(jù),并將累計(jì)寄存器∑Xe最高位的溢出作為脈沖產(chǎn)生位,由于插補(bǔ)模塊中的被積函數(shù),也就是指令數(shù)據(jù)和PID輸出的補(bǔ)償數(shù)據(jù)疊加后的總和,其大小會(huì)決定插補(bǔ)脈沖的溢出速度,即被積函數(shù)越大,插補(bǔ)輸出的控制量變化率越快,溢出的脈沖數(shù)越塊,從而使插補(bǔ)模塊輸出的脈沖頻率改變,因此通過(guò)調(diào)整PID輸出的控制量大小就可以實(shí)現(xiàn)對(duì)隨動(dòng)軸運(yùn)動(dòng)速度的調(diào)整,通過(guò)PID輸出補(bǔ)償量數(shù)值來(lái)調(diào)整插補(bǔ)模塊被積函數(shù)的大小,隨動(dòng)軸的運(yùn)動(dòng)速度得到調(diào)整,從而達(dá)到隨動(dòng)控制的目的,最終讓測(cè)頭的示值始終保持在目標(biāo)范圍內(nèi)。
3? 實(shí)驗(yàn)驗(yàn)證
完成電路設(shè)計(jì)和仿真驗(yàn)證后,在齒輪測(cè)量中心上進(jìn)行了在線對(duì)比實(shí)驗(yàn),以參數(shù)已知齒輪為工件,如圖4所示,將測(cè)頭調(diào)整至被測(cè)齒輪基圓切線附近的A點(diǎn),由主軸轉(zhuǎn)角P、基圓半徑Rb可以推算出隨動(dòng)軸理論行程L,之間的關(guān)系如公式(2)所示。因此這里在實(shí)驗(yàn)時(shí)主軸轉(zhuǎn)角取0.1弧度,基圓半徑68mm,對(duì)應(yīng)的隨動(dòng)軸位移量L距離為6.8229mm。用這些參數(shù)做為已知理論參數(shù),在上位機(jī)中進(jìn)行置數(shù),而測(cè)頭的實(shí)際位置A點(diǎn)與理論值有偏差,進(jìn)行實(shí)驗(yàn)來(lái)對(duì)比加入隨動(dòng)控制器后的作用影響。
L=Rb×tanθ(2)
在上位機(jī)軟件中置入主動(dòng)軸所要轉(zhuǎn)動(dòng)的角度以及隨動(dòng)軸需要移動(dòng)的行程后,驅(qū)動(dòng)測(cè)量機(jī)運(yùn)行,通過(guò)下位機(jī)將測(cè)頭的示值進(jìn)行采樣導(dǎo)出保存,便可得到整個(gè)運(yùn)行過(guò)程中測(cè)頭示值的變化情況。準(zhǔn)備好實(shí)驗(yàn)后進(jìn)行了兩組對(duì)比實(shí)驗(yàn),如圖5所示,第一組是系統(tǒng)未進(jìn)行隨動(dòng)控制時(shí)測(cè)頭的示值變化,第二組是加入隨動(dòng)控制后測(cè)頭示值變化,圖中的縱坐標(biāo)代表測(cè)頭的壓入量,負(fù)數(shù)代表測(cè)頭速度超前被測(cè)工件的轉(zhuǎn)動(dòng)速度,即隨動(dòng)軸運(yùn)動(dòng)速度快,正數(shù)代表測(cè)頭速度落后于被測(cè)工件的轉(zhuǎn)動(dòng)速度,即隨動(dòng)軸運(yùn)動(dòng)速度過(guò)慢;橫坐標(biāo)代表測(cè)量過(guò)程中采樣的點(diǎn)數(shù),即運(yùn)行過(guò)程中各個(gè)點(diǎn)的測(cè)頭變化情況。
由實(shí)驗(yàn)結(jié)果可知,未加入隨動(dòng)控制時(shí),隨著測(cè)量的進(jìn)行,測(cè)頭示值不斷減小,最終超過(guò)了-120um,即隨動(dòng)軸運(yùn)行速度比主軸運(yùn)動(dòng)速度快,導(dǎo)致測(cè)頭逐漸脫離工件表面,而使得測(cè)量結(jié)果越來(lái)越偏大;而同樣的位置,在加入隨動(dòng)控制后,測(cè)頭示值由0減小到-15um后,逐漸增加,增加到3um后保持穩(wěn)定,表示加入隨動(dòng)控制后對(duì)存在的誤差不斷修正補(bǔ)償,使得測(cè)頭誤差在增大到-15um后逐漸調(diào)節(jié)到了3um左右,測(cè)頭壓入量的變化范圍沒有超過(guò)20um,在測(cè)量過(guò)程中,對(duì)測(cè)頭的壓入量起到明顯的補(bǔ)償作用,最終使得測(cè)頭的壓入量變化非常小,所得到的測(cè)量結(jié)果誤差也相對(duì)非常小。
4? 結(jié)論
本文設(shè)計(jì)的隨動(dòng)控制系統(tǒng)可以通過(guò)測(cè)頭的實(shí)際示值來(lái)調(diào)整測(cè)頭的壓入量,使測(cè)量機(jī)測(cè)量磨損嚴(yán)重或者齒面參數(shù)未知的齒輪時(shí),可以通過(guò)測(cè)頭的實(shí)際數(shù)據(jù)來(lái)實(shí)時(shí)調(diào)整隨動(dòng)軸帶動(dòng)測(cè)頭運(yùn)動(dòng),從而保證測(cè)頭壓入量始終保持在允許范圍內(nèi)。通過(guò)上機(jī)實(shí)驗(yàn)驗(yàn)證發(fā)現(xiàn),當(dāng)被測(cè)齒輪的參數(shù)不準(zhǔn)確時(shí),通過(guò)加入隨動(dòng)控制電路后可以有效的對(duì)隨動(dòng)軸進(jìn)行補(bǔ)償,從而使測(cè)頭示值始終保持在設(shè)定范圍內(nèi),對(duì)解決齒面方程未知齒輪以及齒面大誤差齒輪的測(cè)量問(wèn)題起到重要作用。
參考文獻(xiàn):
[1]王建華,勞奇成,劉波,張君安.CNC齒輪測(cè)量中心的原理、特點(diǎn)及關(guān)鍵技術(shù)[J].工具技術(shù),1996(03):41-43.
[2]勞奇成,尚雅層,王建華,李平.CNC齒輪測(cè)量中心的測(cè)控系統(tǒng)[J].西安工業(yè)學(xué)院學(xué)報(bào),1996(03):28-30.
[3]田遠(yuǎn).基于隨動(dòng)控制的齒輪測(cè)量中心驅(qū)動(dòng)卡的設(shè)計(jì)[D].
2015.
[4]賈振元,衛(wèi)國(guó)強(qiáng),郭東明,劉欣,張?jiān)?測(cè)頭控制跟蹤驅(qū)動(dòng)法在CNC齒輪測(cè)量?jī)x中的應(yīng)用[J].工具技術(shù),1992(02):35-37.
[5]馬盼盼,王建華,杜虎兵,梁雯.基于SoC FPGA的CNC齒輪測(cè)量中心控制器設(shè)計(jì)[J].工具技術(shù),2020,54(01):103-106.
[6]曲立國(guó).基于FPGA的智能PID控制器的研究與開發(fā)[D].安徽理工大學(xué),2008.
[7]章魁.嵌入式智能PID控制器的研究與開發(fā)[D].安徽理工大學(xué),2007.
[8]李垂君.基于FPGA的PID控制器研究與實(shí)現(xiàn)[D].大連理工大學(xué),2008.