王延年,宋功慶
(西安工程大學(xué) 電子信息學(xué)院,陜西 西安 710048)
細(xì)紗卷繞作為成紗的最后一道關(guān)鍵工序,細(xì)紗的產(chǎn)量和質(zhì)量都極大影響著紡織廠的效益[1]。通常紗線在卷繞過程中,錠子無刷直流電機轉(zhuǎn)速波動較大,會出現(xiàn)成紗捻度差異較大,捻度不均勻率高,紗線易斷頭等問題[2]。
針對以上問題,在不升級電錠細(xì)紗機設(shè)備的前提下,近年來一些學(xué)者采取經(jīng)典PID控制算法讓錠子在設(shè)定的轉(zhuǎn)速內(nèi)運行[3-4]。但紗線卷繞過程受細(xì)紗張力波動、電機參數(shù)變化等因素影響[5-6],該算法中PID參數(shù)不能去實時調(diào)整而造成錠子轉(zhuǎn)速波動較大。很多文獻(xiàn)都在研究如何準(zhǔn)確檢測細(xì)紗斷頭[7-8],并沒有深入探討如何減少細(xì)紗斷頭現(xiàn)象。為此,本文將BP神經(jīng)網(wǎng)絡(luò)算法與PID控制器結(jié)合,在錠子無刷直流電機運行的過程中,神經(jīng)網(wǎng)絡(luò)會對錠子反饋的信息進(jìn)行學(xué)習(xí),從而實時調(diào)整PID參數(shù),讓電機盡可能地維持在設(shè)定的轉(zhuǎn)速運行。但神經(jīng)網(wǎng)絡(luò)算法有收斂速度較慢和最優(yōu)初始權(quán)值難以確定等問題,引入搜索空間內(nèi)PSO算法對這些問題進(jìn)行優(yōu)化,克服了BP神經(jīng)網(wǎng)絡(luò)的缺陷。讓錠子運行過程中轉(zhuǎn)速、轉(zhuǎn)矩波動更小,使紗線成紗捻度差異小,紗線斷頭減少[9-10]。
首先計算出系統(tǒng)給定量與反饋量的偏差,再將該偏差進(jìn)行比例、積分、微分等線性運算,最后得到下一時刻系統(tǒng)所需對應(yīng)的控制量[11],增量式的數(shù)字PID控制算法表達(dá)式為
u(k)=u(k-1)+kp[e(k)-e(k-1)]+
kie(k)+kd[e(k)-2e(k-1)+e(k-2)]
(1)
式中:kp、ki、kd分別為PID控制器的比例、積分、微分系數(shù);u(k)為系統(tǒng)控制量;e(k)為系統(tǒng)誤差。
經(jīng)典PID控制算法中3個參數(shù)值kp、ki、kd在系統(tǒng)運行前就已經(jīng)設(shè)定好,不會隨著細(xì)紗張力波動、電機參數(shù)發(fā)生變化而作出相應(yīng)改變,從而導(dǎo)致電機轉(zhuǎn)速有較大的波動。根據(jù)在控制系統(tǒng)中采集到的電機轉(zhuǎn)速、轉(zhuǎn)矩、電流等值,通過BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)對PID的3個參數(shù)實時調(diào)節(jié),以達(dá)到減小電機轉(zhuǎn)速波動的目的,進(jìn)而減少紗線斷頭的次數(shù),則式(1)可描述為
u(k)=f[u(k-1),kp,ki,kd,
e(k),e(k-1),e(k-2)]
(2)
式(2)可利用神經(jīng)網(wǎng)絡(luò)算法進(jìn)行逼近。
搭建3層結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)。輸入層為電機定子三相電流、轉(zhuǎn)速、轉(zhuǎn)矩等給定的樣本值,輸出層3個節(jié)點的輸出值分別對應(yīng)為PID控制器的3個參數(shù)。采用系統(tǒng)設(shè)定的轉(zhuǎn)速值與神經(jīng)網(wǎng)絡(luò)輸出PID的3個參數(shù)對應(yīng)下的電機轉(zhuǎn)速值之間的均方根誤差(root-mean-square error,RMSE),作為評判網(wǎng)絡(luò)預(yù)測性能好壞的指標(biāo)。首先設(shè)置整個網(wǎng)絡(luò)RMSE期望值,接著進(jìn)行RMSE計算,最后進(jìn)行更新權(quán)值、閾值等運算。
輸出層的輸入值ck可表示為
(3)
式中:k=1,2,3;yj為隱含層第j個節(jié)點的輸出值;wjk為隱含層第j個節(jié)點與輸出層第k個節(jié)點之間的連接權(quán)值;bk為輸出層第k個節(jié)點對應(yīng)的閾值。
由于在該錠子無刷直流電機控制系統(tǒng)中kp、ki、kd的值都為正值,所以輸出層的激勵函數(shù)取非負(fù)的Sigmoid函數(shù),表示為
g(x)=1/(1+e-x)
(4)
得到輸出層的輸出值dk為
dk=g(ck)
(5)
取RMSE,可表示為
(6)
式中:r(k)為電機控制系統(tǒng)設(shè)定轉(zhuǎn)速值;y(k)為電機的實際轉(zhuǎn)速值;m為輸入層測試樣本的個數(shù)。
當(dāng)該函數(shù)值大于設(shè)定的RMSE期望值時,神經(jīng)網(wǎng)絡(luò)就通過基于梯度下降法的誤差反向傳播算法進(jìn)行反向傳播[12],并根據(jù)網(wǎng)絡(luò)中傳播誤差的實時值不斷的調(diào)整各個神經(jīng)元和更新相鄰層之間的權(quán)值與閾值[13],更新權(quán)值與閾值,得
(7)
wjk=wjk+ηyjek
(8)
式中:wij為輸入層與隱含層之間的權(quán)值;wjk為隱含層與輸出層之間的權(quán)值;η為學(xué)習(xí)速率。
(9)
bk=bk+ek
(10)
式中:aj為隱含層對應(yīng)節(jié)點的閾值;bk為輸出層對應(yīng)節(jié)點的閾值;ek為神經(jīng)網(wǎng)絡(luò)預(yù)測誤差。
PSO算法中各個粒子均代表極值優(yōu)化問題一個潛在的解,每個粒子依據(jù)自身和群體中其他粒子的歷史最優(yōu)解,不斷調(diào)整自身的位置和移動速度去尋找最優(yōu)解。粒子調(diào)整自身的速度和位置依據(jù)的公式如式(11)和式(12)所示,最終在整個空間中尋找到具有最優(yōu)解的粒子[14]。
(11)
(12)
在BP神經(jīng)網(wǎng)絡(luò)運算過程中,通過隨機函數(shù)產(chǎn)生相鄰層之間的初始權(quán)值,但該初始權(quán)值不是最優(yōu)的,導(dǎo)致網(wǎng)絡(luò)不能精確預(yù)測出電機當(dāng)前時刻所需對應(yīng)的PID參數(shù),從而輸出的PID參數(shù)與實際所需的PID參數(shù)有一定的差距,導(dǎo)致電機轉(zhuǎn)速的波動較大。為了降低錠子無刷直流電機轉(zhuǎn)速波動,采用了PSO算法對神經(jīng)網(wǎng)絡(luò)算法進(jìn)行優(yōu)化,PSO算法能在搜索空間內(nèi)快速的尋找到具有最優(yōu)解的粒子[15-16],PSO算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)算法的流程圖如圖1所示。
圖 1 PSO算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)算法流程Fig.1 Back propagation neural network algorithm flow optimized by PSO algorithm
該算法實現(xiàn)步驟:
1) 確定錠子無刷直流電機神經(jīng)網(wǎng)絡(luò)預(yù)測拓?fù)浣Y(jié)構(gòu)以及神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)規(guī)則,并初始化粒子群,設(shè)定粒子數(shù)目和搜索空間維度。
2) 選用BP神經(jīng)網(wǎng)絡(luò)相鄰層的初始權(quán)值和各層閾值映射為粒子群算法中各個粒子的特征量,群體中粒子的適應(yīng)度函數(shù)選用BP神經(jīng)網(wǎng)絡(luò)的性能函數(shù)均方誤差[15]。
3) 當(dāng)BP神經(jīng)網(wǎng)絡(luò)運算輸出PID控制器的3個參數(shù)時,將這3個參數(shù)作為PSO算法中粒子的適應(yīng)度值,并根據(jù)該適應(yīng)度值不斷更新粒子個體和群體的極值。
4) 隨著各個粒子的不斷迭代進(jìn)化,粒子的適應(yīng)度值不斷減小,當(dāng)適應(yīng)度值變化到設(shè)定精度范圍內(nèi)或迭代次數(shù)與設(shè)定次數(shù)相等時終止迭代,此時將粒子群中具有全局最優(yōu)解粒子的位置向量映射為神經(jīng)網(wǎng)絡(luò)的初始權(quán)值與閾值。
錠子無刷直流電機速度電流雙閉環(huán)控制系統(tǒng)框圖如圖2所示。
圖 2 錠子無刷直流電機雙閉環(huán)控制系統(tǒng)框圖Fig.2 Block diagram of double closed-loop control system for spindle brushless DC motor
圖2中,通過光電編碼器來獲取電機精確的轉(zhuǎn)速及轉(zhuǎn)子位置信息,采樣電路采集電機驅(qū)動電路的母線電壓、電流,定子三相電流、電壓等信息,扭矩傳感器采集電機的實時轉(zhuǎn)矩值[17-18]。將系統(tǒng)轉(zhuǎn)速設(shè)定值與反饋值之間的差值作為PID速度控制器的輸入,速度環(huán)根據(jù)該差值計算出電流環(huán)的給定值,電流環(huán)將該給定值與當(dāng)前電機反饋電流值的差值輸入到電流調(diào)節(jié)器中,經(jīng)過調(diào)節(jié)后將對應(yīng)值傳給PWM發(fā)生器[19-21]。整個控制器在運行的過程中,會根據(jù)實時采集到的速度、電流、轉(zhuǎn)矩等信息傳遞給PSO算法,該算法中各個粒子經(jīng)過多次迭代不斷調(diào)整自身位置等操作,最終尋找出在全局搜索范圍內(nèi)具有最優(yōu)解的粒子,并將該粒子的位置向量映射為神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值,隨后神經(jīng)網(wǎng)絡(luò)算法快速擬合電機的非線性控制函數(shù)曲線從而獲得PID控制器實時最佳的3個參數(shù)值[22-23]。
該平臺由TMS320F28335作為主控芯片的電機控制驅(qū)動平臺和運行PSO_BP神經(jīng)網(wǎng)絡(luò)算法的計算機組成的上位機構(gòu)成[24-25]。
電機控制驅(qū)動平臺,其主要功能為根據(jù)光電編碼器反饋回來的轉(zhuǎn)子位置信號驅(qū)動對應(yīng)開關(guān)管,讓轉(zhuǎn)子持續(xù)轉(zhuǎn)動,接收上位機發(fā)送的PID的3個參數(shù),電機驅(qū)動板將采集到的信號發(fā)送給PSO_BP神經(jīng)網(wǎng)絡(luò)。由于該電機的主控芯片計算能力有限,為了更快速實時地計算出不同時刻的PID的3個參數(shù),采用了計算機作為上位機運行PSO_BP神經(jīng)網(wǎng)絡(luò)算法,并將運算輸出的PID 的3個參數(shù)值傳送給電機控制驅(qū)動平臺,這樣就實現(xiàn)了對不同時刻PID參數(shù)的實時調(diào)節(jié)。
PSO算法中,初始種群數(shù)目選為80,迭代次數(shù)選為120,粒子維數(shù)選為搭建的神經(jīng)網(wǎng)絡(luò)的所有初始權(quán)值與閾值之和為128,慣性權(quán)重初始值Wstart選為0.8,迭代結(jié)束時慣性權(quán)重選為Wend為0.3,學(xué)習(xí)因子c1=c2=2,粒子的速度范圍設(shè)定在[-4,4]之間。隨著粒子的不斷迭代,慣性權(quán)重值不斷減小,起初慣性權(quán)重值減小速度慢,此時PSO算法全局搜索能力強,有利于找到具有全局最優(yōu)解的粒子,當(dāng)找到具有全局最優(yōu)解的粒子時,慣性權(quán)重值減小速度變快,有利于加快PSO算法的收斂速度。
為了驗證無刷直流電機用經(jīng)典PID控制器和PSO_BP控制器控制效果的差異。實驗中用經(jīng)典PID控制器和PSO_BP控制器分別控制無刷直流電機在設(shè)定轉(zhuǎn)速2 700 r/min時運行。圖3為電機在控制系統(tǒng)設(shè)定轉(zhuǎn)速下2種控制器對應(yīng)的啟動狀態(tài)和穩(wěn)定運行狀態(tài)下的轉(zhuǎn)速響應(yīng)曲線。
(a) 電機啟動過程轉(zhuǎn)速響應(yīng)曲線
(b) 電機穩(wěn)定運行轉(zhuǎn)速響應(yīng)曲線圖 3 電機在設(shè)定轉(zhuǎn)速下2種控制器對應(yīng)的轉(zhuǎn)速響應(yīng)曲線Fig.3 The speed response curve of the two controllers under the set speed of the motor
從圖3(a)可知,經(jīng)典PID控制器相較于PSO_BP控制器控制下電機啟動過程轉(zhuǎn)速波動較大,且收斂速度較慢,最大超調(diào)量分別為0.26%和0.11%。從圖3(b)可知,經(jīng)典PID控制器控制下電機轉(zhuǎn)速穩(wěn)定在2 702 r/min,波動范圍為2 698~2 707 r/min,平均轉(zhuǎn)速波動為2.73%,PSO_BP控制器控制下電機轉(zhuǎn)速波動范圍為2 699~2 703 r/min,穩(wěn)定在2 700 r/min運行,平均轉(zhuǎn)速波動為0.65%。圖4為在電機穩(wěn)定運行卷繞細(xì)紗過程中突遇某處紗線張力較大時,2種控制器對應(yīng)的轉(zhuǎn)速響應(yīng)曲線。
圖 4 2種控制器下電機突遇擾動轉(zhuǎn)速響應(yīng)曲線Fig.4 The speed response curve when the motor encounters disturbance under two controllers
從圖4知,電機卷繞細(xì)紗過程中突遇一個擾動,PSO_BP控制器相較于經(jīng)典PID控制器控制下電機響應(yīng)速度更快,且降低的轉(zhuǎn)速值更小,轉(zhuǎn)速分別下降到2 642 r/min、2 620 r/min,電機從受擾動到恢復(fù)到穩(wěn)定轉(zhuǎn)速所用時間分別為0.19 s、0.23 s。圖5為電機在2種控制器下穩(wěn)定運行時的轉(zhuǎn)矩輸出。
圖 5 電機在2種控制器下穩(wěn)定運行時轉(zhuǎn)矩輸出Fig.5 Torque output when the motor runs stably under the control of two controllers
從圖5可知,經(jīng)典PID控制器相較于PSO_BP控制器控制下電機穩(wěn)定運行過程中轉(zhuǎn)矩波動較大,經(jīng)典PID控制器控制下電機轉(zhuǎn)矩波動范圍為0.24~0.35 N·m,PSO_BP控制器控制下電機轉(zhuǎn)矩波動范圍為0.26~0.33 N·m。
為了提高紡織廠細(xì)紗產(chǎn)量和質(zhì)量,從降低電錠細(xì)紗機錠子無刷直流電機轉(zhuǎn)速波動角度入手。通過改進(jìn)神經(jīng)網(wǎng)絡(luò)在線實時整定PID參數(shù),采用PSO算法對神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化,改善了神經(jīng)網(wǎng)絡(luò)在反向傳播過程中的缺陷,最終達(dá)到了讓錠子無刷直流電機在運行過程中轉(zhuǎn)速、轉(zhuǎn)矩波動更小,應(yīng)對突發(fā)擾動響應(yīng)速度更快。減少了細(xì)紗在卷繞過程中的斷頭次數(shù),紗線的捻度更好,可改善細(xì)紗的產(chǎn)量和質(zhì)量。