(常州大學(xué) 機(jī)械工程學(xué)院,江蘇 常州 213164)
電梯平衡鏈?zhǔn)怯脕砥胶怆娞蒉I廂和配重側(cè)兩端重量差的,從而達(dá)到電梯平穩(wěn)運(yùn)行的目的[1]。由于電梯補(bǔ)償鏈表面包裹了一層PVC復(fù)合材料,不能直接利用普通電焊錨鏈的長度計(jì)算公式將長度算出來。現(xiàn)有的測長機(jī)構(gòu)是類似于線纜計(jì)米器之類的裝置,不適用于平衡鏈這種鏈環(huán)與鏈環(huán)之間凹凸不平的設(shè)備,測量誤差偏大[2]。為提高測量精度,本文設(shè)計(jì)了一種以STM32F103RCT6為主控制單元,以觸摸屏為上位機(jī),并基于模糊控制算法的自動(dòng)測長控制系統(tǒng),大大提高測量效率的同時(shí),減小了測量誤差。該方案設(shè)計(jì)可以給企業(yè)帶來巨大的經(jīng)濟(jì)效益。
整個(gè)測長設(shè)備如圖1所示:主要包括壓緊機(jī)構(gòu),牽引機(jī)構(gòu)以及測長機(jī)構(gòu)三個(gè)部分組成。壓緊機(jī)構(gòu)包括2個(gè)大壓緊輪和三個(gè)小壓緊輪,通過氣缸下降給鏈條足夠的壓力。。牽引機(jī)拉動(dòng)鏈條,通過摩擦力帶動(dòng)下同步帶運(yùn)動(dòng),由于鏈環(huán)與鏈環(huán)之間凹凸不平,摩擦力會(huì)產(chǎn)生波動(dòng),這時(shí)會(huì)發(fā)生打滑或者卡死的情況。當(dāng)摩擦力變小時(shí),滑塊會(huì)沿著導(dǎo)軌向前運(yùn)動(dòng),前直線位移傳感器會(huì)檢測到電壓信號(hào),反饋給單片機(jī),增大電機(jī)轉(zhuǎn)速,使滑塊回到原來位置。同理,當(dāng)摩擦力變大時(shí),滑塊會(huì)向后移動(dòng),后位移傳感器會(huì)有電壓信號(hào),反饋給單片機(jī),減小電機(jī)轉(zhuǎn)速。這就可以進(jìn)行自動(dòng)補(bǔ)償由于摩擦力波動(dòng)而產(chǎn)生的測量誤差。通過伺服電機(jī)驅(qū)動(dòng)主計(jì)量輪,讀取編碼器旋轉(zhuǎn)角度,即可測得鏈條長度。
1.鏈條;2.大壓緊輪;3.小壓緊輪;4.活動(dòng)塊;5.上同步帶;6.光軸;7.氣壓缸;8.伺服電機(jī);9.三相牽引機(jī);10.線性位移傳感;11.主計(jì)量輪;12.編碼器;13.下同步帶;14.滑塊;15.直線導(dǎo)軌;16.從動(dòng)輪圖1 測長機(jī)構(gòu)示意圖
控制系統(tǒng)總體框圖如圖2所示。包括單片機(jī)最小系統(tǒng)電路,傳感器信號(hào)接受電路,伺服驅(qū)動(dòng)電路,編碼器信號(hào)接收電路,氣壓缸驅(qū)動(dòng)電路,以及觸摸屏與單片機(jī)通信電路等。
圖2 控制系統(tǒng)硬件原理圖
主控制器為基于Cortex-M3 為核心的STM32F103RCT6,主頻最高可以達(dá)到72 MHz[3],片內(nèi)存儲(chǔ)空間為256 Kb。單片機(jī)最小系統(tǒng)包括:電源,晶振以及復(fù)位三個(gè)模塊??刂瓢逋獠拷尤胼斎腚娫?2 V給電磁閥通電來控制氣缸伸縮運(yùn)動(dòng),從而進(jìn)行壓緊或抬起壓緊機(jī)構(gòu)。同時(shí)通過降壓芯片7805以及l(fā)m1117-3.3來輸出3.3 V電壓給單片機(jī)供電。為節(jié)約 I /O 端口資源,下載方式采用SWD模式,在高速模式下比JTAG模式更加可靠。觸摸屏通過MAX3232和STM32F103RCT6的串口1即 PA9,PA10兩引腳相連,用來控制整個(gè)測量設(shè)備的運(yùn)動(dòng)以及進(jìn)行數(shù)據(jù)監(jiān)測。因?yàn)槲灰苽鞲衅鞯妮敵鲭妷悍秶鸀?~10 V,所以需要進(jìn)行降壓,通過電阻分壓的方式得到0~3.3 V的電壓。當(dāng)滑塊靠近外移傳感器時(shí),輸出電壓會(huì)減小,遠(yuǎn)離時(shí)輸出電壓會(huì)增大。STM32自帶的ADC功能會(huì)讀取電壓值,進(jìn)行判定。為了防止輸入輸出信號(hào)干擾,每個(gè)端口輸出都采用了光耦隔離的方式。光耦是以光為媒介把輸入端信號(hào)耦合到輸出端,實(shí)現(xiàn)電-光-電的轉(zhuǎn)換,輸入輸出完全絕緣,抗干擾能力強(qiáng),效率高。
該方案驅(qū)動(dòng)器型號(hào)為安川SGDV-5R5A01A系列,有位置、速度和轉(zhuǎn)矩三種控制方式[4]。位置方式是通過數(shù)字量方式控制,而速度和轉(zhuǎn)矩方式通過模擬電壓控制。為了獲得良好的控制性能,伺服控制器一般會(huì)設(shè)計(jì)成一個(gè)具有電流環(huán)、速度環(huán)、位置環(huán)三閉環(huán)回路的復(fù)合控制系統(tǒng)[5]。本設(shè)計(jì)方案采用速度方式,可以把位置環(huán)移動(dòng)到控制器上,減少驅(qū)動(dòng)器工作量,提高效率。通過TIM4通道一調(diào)節(jié)占空比,經(jīng)過光耦TLP350轉(zhuǎn)換后驅(qū)動(dòng)場效應(yīng)管,根據(jù)占空比大小來改變MOS管導(dǎo)通時(shí)間,從而實(shí)現(xiàn)電源輸出的改變。圖中電感起到濾波和儲(chǔ)能的作用,二極管起到穩(wěn)壓的作用。二極管反接可以防止電流電壓的突變,起到保護(hù)場效應(yīng)管的作用。具體電路圖如圖3所示。這樣可以得到0~12 V的模擬電壓,符合伺服驅(qū)動(dòng)器輸入電壓范圍要求。將V-REF端子與伺服驅(qū)動(dòng)器CN1的針號(hào)5相連,針號(hào)6接地即可實(shí)現(xiàn)電機(jī)的旋轉(zhuǎn)。
圖3 調(diào)壓電路原理圖
光電編碼器主要有兩種:絕對型和增量型。增量型編碼器在旋轉(zhuǎn)過程中每轉(zhuǎn)過單位角度就會(huì)發(fā)出一個(gè)脈沖信號(hào),并且A、B相位相差正負(fù)90°,根據(jù)信號(hào)先后判斷電機(jī)是正轉(zhuǎn)還是反轉(zhuǎn)。本設(shè)計(jì)所用編碼器為增量型E6B2-CWZ6C,NPN集電極輸出,每轉(zhuǎn)一圈發(fā)送2 000個(gè)脈沖。如圖4所示:將A、B相信號(hào)經(jīng)過光耦HCPL2630隔離后分別接入STM32的TIM3通道一和通道二。STM32的通用定時(shí)器三自帶編碼器計(jì)數(shù)模式,編碼器輸入信號(hào)TI1,TI2經(jīng)過輸入濾波,邊沿檢測產(chǎn)生TI1FP1,TI2FP2接到編碼器模塊,將他們都設(shè)置成上升捕獲模式,并在中斷中讀取,便可進(jìn)行計(jì)數(shù)。
圖4 編碼器信號(hào)接收原理圖
單片機(jī)與觸摸屏通訊接口電路如圖5所示。因?yàn)閱纹瑱C(jī)的輸出電平和RS-232不一樣,因此需要芯片進(jìn)行電平轉(zhuǎn)換。相比于傳統(tǒng)的MAX232,選擇了功耗更小的MAX3232芯片,該芯片采用專有低壓差發(fā)送器輸出級(jí),能夠?qū)崿F(xiàn)真正的RS-232性能,外接4個(gè)0.1 μF的電容用于倍壓和儲(chǔ)能。將開發(fā)板DB9公頭和觸摸屏RS232公頭的2 、3口交叉連接,5直連,便可實(shí)現(xiàn)通訊功能。
圖5 通訊接口電路
由于交流伺服系統(tǒng)存在參數(shù)時(shí)變、負(fù)載擾動(dòng)以及伺服電動(dòng)機(jī)自身和被控對象的嚴(yán)重非線性、強(qiáng)耦合性等不確定因素,難以用傳統(tǒng)的基于對象的模型控制方法來進(jìn)行控制[6]。模糊控制以不依賴于被控對象的數(shù)學(xué)模型而被廣泛的應(yīng)用于工業(yè)生產(chǎn)中,具有較強(qiáng)的魯棒性。它是一種基于語言規(guī)則與模糊推理建立在模糊集合上的控制理論[7]。將其用于伺服系統(tǒng)中可以很好的解決非線性、時(shí)變、耦合等等問題。因此設(shè)計(jì)了一個(gè)基于模糊控制的閉環(huán)控制系統(tǒng)。包括模糊控制器的設(shè)計(jì)以及想關(guān)規(guī)則的制定。
模糊控制器的設(shè)計(jì)包括模糊化、建立模糊規(guī)則、清晰化等步驟。為此設(shè)計(jì)了一個(gè)雙輸入、單輸出的二維模糊控制器,模糊控制系統(tǒng)框圖如圖6所示。
圖6 模糊控制器系統(tǒng)框圖
模糊化:將精確的輸入變量轉(zhuǎn)化為模糊矢量。
模糊推理:包括數(shù)據(jù)庫和規(guī)則庫,提供數(shù)據(jù),制定模糊規(guī)則并輸出模糊量。
解模糊:將模糊量經(jīng)過運(yùn)算后再次轉(zhuǎn)變成精確量用于控制被控對象。
以位移誤差e和誤差的變化率△e作為輸入,以控制伺服電機(jī)轉(zhuǎn)速大小的模擬電壓u為輸出變量,語言變量對應(yīng)為E、EC、以及U,用“正大”(PB)“正中”(PM),“正小”(PS),“零”(O),“負(fù)小”(NS),“負(fù)中”(NM),“負(fù)大”(NB)七個(gè)語言變量來對這幾個(gè)變量進(jìn)行描述。
E選取7個(gè)語言值:{PB,PM,PS,O,NS,NM,NB};EC選取5個(gè)語言值:{PB,PS,O,NS,NB};U選取7個(gè)語言值:{PB,PM,PS,O,NS,NM,NB};根據(jù)經(jīng)驗(yàn)和反復(fù)試驗(yàn)選擇輸入變量與輸出變量的論域如下:
E的論域X={-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6};
EC的論域Y={-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6};
U的論域Z={-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6}。
系統(tǒng)采用靈敏度強(qiáng)的三角形隸屬度函數(shù)來描述語言變量論域上的模糊子集。借助MATLAB/SIMULINK中的模糊邏輯工具箱,得到如圖7所示的輸出隸屬度函數(shù)圖像。
圖7 輸出U的隸屬度函數(shù)圖像
模糊控制規(guī)則是模糊控制器設(shè)計(jì)的核心[8],在模糊邏輯工具箱中進(jìn)行模糊控制規(guī)則的設(shè)計(jì)[9],系統(tǒng)所建立的是雙輸入單輸出的模糊控制器,采用的模糊條件語句為:
if E and EC then U
在大量實(shí)驗(yàn)和調(diào)節(jié)之后,制定了35條模糊控制語句,并將其繪制成了表格。
建立的模糊控制規(guī)則表1所示。
表1 系統(tǒng)模糊控制規(guī)則表
根據(jù)模糊規(guī)則表推理求出的是輸出控制量的模糊控制集合,不能直接用來控制伺服驅(qū)動(dòng)器,需要將模糊量轉(zhuǎn)化為精確量。根據(jù)隸屬度函數(shù)特性,采用加權(quán)平均法進(jìn)行解模糊,其公式為:
(1)
式中,Z0為應(yīng)用加權(quán)平均法求得的判決結(jié)果,也稱為清晰值;Zi為輸出量模糊集U1中的元素;μU1(zi)為輸出量模糊集U1中各元素的隸屬度函數(shù)。
在MATLAB的模糊邏輯工具箱中,對模糊推理過程進(jìn)行了圖形化處理,從中可以清晰得看出各模糊變量隸屬度函數(shù)對系統(tǒng)輸出量的影響。同時(shí)規(guī)則觀測器可以針對系統(tǒng)輸入量X和Y的不同組合計(jì)算出全部系統(tǒng)輸出的精確量Z,如圖8所示。最終建立本系統(tǒng)的模糊控制查詢表,如表2所示。
表2 模糊控制查詢表
最后將模糊控制查詢表存放于單片機(jī)寄存器中。通過程序編寫,使得控制器根據(jù)輸入的偏差和偏差變化率信號(hào),由查詢表自行計(jì)算出實(shí)際的輸出控制量即輸出電壓大小。
系統(tǒng)程序采用模塊化設(shè)計(jì),包括主程序,傳感器電壓采集子程序,電機(jī)驅(qū)動(dòng)子程序,編碼器計(jì)數(shù)子程序,以及基于MODBUS的觸摸屏與單片機(jī)通訊程序等。具體的控制流程圖如圖8所示。
圖8 程序流程圖
導(dǎo)軌前后各固定一個(gè)直線位移傳感器,通過STM32 ADC1的通道10和11分別讀取經(jīng)分壓后的電壓,并經(jīng)過DMA傳輸,減少CPU負(fù)荷的同時(shí)增加采集速度。傳感器的電壓顯示值和距離成線性關(guān)系。為了數(shù)據(jù)的準(zhǔn)確性,每組讀取100個(gè)數(shù)據(jù)放入數(shù)組中,并取平均值來作為速度調(diào)節(jié)的依據(jù)。DMA的主要配置如下:將DMA1通道1的外設(shè)基地址設(shè)為(uint32_t)(&(ADC1->DR)),內(nèi)存基地址設(shè)置成(u32)&ADC1_ConvertedValue,并開啟循環(huán)模式和中斷。ADC設(shè)置成連續(xù)轉(zhuǎn)換,右對齊,通道個(gè)數(shù)兩個(gè),并使用軟件觸發(fā)的模式。STM32的ADC分辨率為12位,可以求得模數(shù)轉(zhuǎn)換值的取值范圍為0-4096,電壓量程為0~3.3 V,則傳感器的讀取電壓值為模數(shù)轉(zhuǎn)換值除以4096乘上3.3即:
(2)
具體程序流程圖如圖9所示。
圖9 傳感器電壓讀取流程圖
因摩擦力不斷波動(dòng),因此要對伺服電機(jī)的速度實(shí)時(shí)調(diào)節(jié),采取速度控制方式,伺服驅(qū)動(dòng)的速度控制方式為模擬電壓控制,采用PWM方式可以實(shí)現(xiàn)數(shù)字量對模擬電路的控制。根據(jù)電壓采集數(shù)據(jù)集合模糊控制器的規(guī)則自動(dòng)調(diào)節(jié)占空比,將自動(dòng)重裝載器值設(shè)置為249,定時(shí)器預(yù)分頻設(shè)置為11,可以得到24 kHz的PWM波。輸出比較方式設(shè)置成PWM2模式,向下計(jì)數(shù)模式。根據(jù)不同占空比可以獲得不同電壓值來驅(qū)動(dòng)伺服驅(qū)動(dòng)器,繼而可以實(shí)時(shí)調(diào)節(jié)伺服電機(jī)的轉(zhuǎn)速來自動(dòng)補(bǔ)償測量誤差。查閱安川電機(jī)手冊可以發(fā)現(xiàn)速度控制模式下額定電壓為6 V,額定轉(zhuǎn)速為2000 r/min,則電機(jī)瞬時(shí)速如下:
(3)
式中,VREF為伺服驅(qū)動(dòng)電壓,單位V, Vm為電機(jī)轉(zhuǎn)速,單位r/min。
STM32F103通用定時(shí)器自帶編碼器模式,編碼器輸入信號(hào)TI1,TI2經(jīng)過輸入濾波,邊沿檢測產(chǎn)生TI1FP1,TI2FP2接到編碼器模塊,通過配置編碼器的工作模式,即可以對編碼器進(jìn)行正向/反向計(jì)數(shù)。因TIM3_CNT計(jì)數(shù)器是16位的,最高計(jì)數(shù)為65535,而編碼器旋轉(zhuǎn)一圈的脈沖數(shù)為2000,旋轉(zhuǎn)圈數(shù)過多時(shí)會(huì)溢出。故將自動(dòng)重裝載值A(chǔ)RR設(shè)置為2000,并使能中斷進(jìn)行溢出中斷計(jì)數(shù),用j表示溢出的次數(shù),每旋轉(zhuǎn)一圈,j的值加1,計(jì)數(shù)器重新計(jì)數(shù)。最后獲得的總脈沖數(shù)為2000j加上寄存器TIM3->CCR1的值,用S表示。則測量的長度L為:
(4)
式中,d為同步帶外徑,m。
威綸通MT6103iq觸摸屏和STM32之間采用基于MODBUS協(xié)議的RTU模式進(jìn)行數(shù)據(jù)傳輸。觸摸屏為主設(shè)備,STM32為從設(shè)備[10]。使用循環(huán)冗余校驗(yàn)碼CRC16進(jìn)行校驗(yàn)。常用的MODBUS功能碼包括01:讀開關(guān)量狀態(tài),03:讀保持型寄存器,06:寫寄存器。通信過程包括串口配置,報(bào)文接發(fā),報(bào)文處理三個(gè)方面。串口參數(shù)配置如下:波特率9600,數(shù)據(jù)位8位,停止位1位,無奇偶校驗(yàn)位。在進(jìn)行基礎(chǔ)的串口配置之后,還需要開啟串口中斷,在中斷服務(wù)函數(shù)中對接收和發(fā)送的數(shù)據(jù)進(jìn)行檢測和處理。報(bào)文通過8位字符數(shù)組進(jìn)行接發(fā),再根據(jù)功能碼進(jìn)行數(shù)據(jù)處理。
實(shí)驗(yàn)購買的鏈條為包塑性補(bǔ)償鏈,截取20.1米長度來進(jìn)行試驗(yàn)。將是否運(yùn)用模糊控制算法將實(shí)驗(yàn)分成兩組,在不同速度下分別進(jìn)行20次實(shí)驗(yàn)。實(shí)驗(yàn)測量結(jié)果如表3~4所示。
表3 沒有設(shè)計(jì)模糊控制器下的各速度測量值
表4 模糊控制下的各速度測量值
由以上兩表可以看出,當(dāng)沒有設(shè)計(jì)模糊控制器的情況下,測量誤差較大,且速度越大,誤差越大,而在設(shè)計(jì)模糊控制器后誤差明顯減小,且在基本運(yùn)行速度達(dá)到0.6 m/s時(shí)誤差達(dá)到最小值。
控制系統(tǒng)解決了因摩擦力波動(dòng)而造成測量誤差的問題,以STM32為主控制器,線性位移傳感器為探測器,配合模糊控制算法,實(shí)時(shí)調(diào)節(jié)伺服電機(jī)轉(zhuǎn)速。系統(tǒng)高效穩(wěn)定,測量基本速度達(dá)到0.6 m/s。經(jīng)大量實(shí)驗(yàn)后測得平均誤差為0.09%,符合預(yù)期值。