馮佩云,陳 沖,馮俊青,段小匯
(1.鹽城工學(xué)院,鹽城 224051;2江蘇大學(xué),鎮(zhèn)江 212013)
在高性能的同步控制領(lǐng)域[1],為了達到最優(yōu)的控制效果,必須使信號傳輸并處理及時,如果數(shù)據(jù)處理較慢,則在此情況下會使系統(tǒng)控制性能變差,而處理速度快的控制器價格很高,這就要求在合適的價位以及高性能的控制效果中權(quán)衡并選用合適的運動控制器。目前,我國運動控制器系列產(chǎn)品起步晚、發(fā)展相對較慢,所供應(yīng)的產(chǎn)品大約有以下幾種[2]:(1)用微處理器(MCU)作為控制器的“大腦”[3]。這種類型的控制器的控制精度不高,但控制器價格較便宜,所以適合于在一些低速控制領(lǐng)域或?qū)\動控制精確性要求較低等場合使用;(2)將專用芯片設(shè)計為“指揮中心”。這類控制器結(jié)構(gòu)簡單、成本較低,是根據(jù)特定的控制要求來設(shè)計相應(yīng)的控制方法,這一基本控制思想決定了它只能針對特定的系統(tǒng)實現(xiàn)特定的控制過程,限制了通過專用芯片設(shè)計的控制器使用廣泛度,自適應(yīng)性較差;(3)設(shè)計出用DSP并在外圍擴展CPLD或FPGA的運動控制器[4-7],這種控制器利用了各個芯片的獨特優(yōu)勢,采用開放式結(jié)構(gòu),便于開發(fā)人員二次開發(fā)等優(yōu)點,在運動控制領(lǐng)域得到了很快的發(fā)展。本文選用第三種設(shè)計思路,設(shè)計了基于單片機、DSP和CPLD共同組成的三核控制器,完成了多電機同步協(xié)調(diào)控制,該控制器具有成本低廉,靈活方便,可靠性高等特點。
本文需要控制的參數(shù)是1個轉(zhuǎn)速與2個張力,整個三電機系統(tǒng)是3輸入3輸出的被控系統(tǒng),在控制過程中,先精確控制主電機的轉(zhuǎn)速,在此基礎(chǔ)上通過張力控制器1有效控制1,2號電機的張力值,以此來控制2號電機的轉(zhuǎn)速,這就使2號電機跟隨1號電機良好的運行,以此類推來控制最后一臺電機的轉(zhuǎn)速,使其跟隨中間電機良好運行,從而達成整個被控目標(biāo)同步協(xié)調(diào)運行。當(dāng)選用經(jīng)典PID控制方案時,調(diào)節(jié)過程完全依靠經(jīng)驗、調(diào)節(jié)時間長,增加了控制的復(fù)雜程度又達不到最優(yōu)的控制效果,本文采用ADRC的控制方案[8],如圖1所示。
圖1 基于一階ADRC的三電機同步控制策略
本文主電機速度環(huán)選用的是一階ADRC,將交流異步電機轉(zhuǎn)動慣量變化和負(fù)載變化以及一系列不確定因素所引起的擾動均視為總擾動,用ESO觀測后輸入到控制器的前端實現(xiàn)補償。TD,ESO,NLSEF和擾動補償4個環(huán)節(jié)共同組成了ADRC[9]。由此推出一階速度ADRC控制器的結(jié)構(gòu)圖,如圖2所示。
圖2 一階速度ADRC的結(jié)構(gòu)圖
三電機同步控制系統(tǒng)主要由控制部分、驅(qū)動部分、反饋檢測部分以及負(fù)載部分組成。
1)控制部分包括一臺PC機和以單片機、DSP和CPLD為控制芯片所組成的三核控制器??刂破骱凸た貦C之間用RS-232通訊,用于實現(xiàn)對現(xiàn)場信號的檢測以及上位機實時值顯示和歷史數(shù)據(jù)曲線的繪制,并對歸檔得到的數(shù)據(jù)進行逐個分析,以驗證所設(shè)計控制器所表現(xiàn)出的各項性能情況,也可以用來作為配置控制器相關(guān)參數(shù)的依據(jù)。控制器中的CPLD與被控對象的3臺變頻器之間采用RS-485通訊,用于將控制器處理好的數(shù)據(jù)傳輸給變頻器,進而再用變頻器來控制電機,以實現(xiàn)3臺電機的同步協(xié)調(diào)運行[10]。
文中所設(shè)計的三核控制器如圖3所示。由圖3可知,顯示部分包括LCD彩屏顯示和數(shù)碼管顯示,彩屏位于控制板上左上角,用以顯示速度和張力的實時數(shù)值以及這3個參數(shù)歷史數(shù)據(jù)的曲線繪制,并具有自動刷屏的功能;數(shù)碼管位于右上方,用于控制過程中顯示速度值和張力值。速度和張力的給定值可以在程序中直接給定,或者可以通過鍵盤設(shè)定張力和速度值,并經(jīng)過74HC138編碼后輸入單片機處理。SN74LVC8T245芯片是用于將從單片機輸出的5 V的信號轉(zhuǎn)換為3.3 V信號輸給CPLD進行2個張力的處理。
圖3 控制器
2)驅(qū)動部分包括3臺西門子MMV變頻器和3臺交流異步電機,3臺變頻器分別驅(qū)動3臺電機。
3)反饋檢測部分包括對速度的檢測和對2個張力的檢測。本文選用圓形的國產(chǎn)YGM-615編碼器,實驗中編碼器輸出的信號時常會帶有毛刺,系統(tǒng)中毛刺的進入會影響每轉(zhuǎn)脈沖數(shù)的計數(shù)值,所以在轉(zhuǎn)速計算之前,必須在編碼器輸出信號后對其濾波,編碼器輸出線經(jīng)330 Ω電阻降壓為3.3 V,接到CPLD的96號引腳完成軟件濾波。
張力傳感器選用上海毅浦自動化設(shè)備有限公司生產(chǎn)的型號為YP-H2的傳感器,將傳感器測出的信號經(jīng)過AD7705進行模數(shù)轉(zhuǎn)換,得到相應(yīng)的數(shù)字信號輸入給單片機,再經(jīng)過SN74LVC8T245芯片,將從單片機輸出的5 V的信號轉(zhuǎn)變?yōu)?.3 V信號輸給CPLD進行2個張力的處理。
4)負(fù)載部分由3臺電機軸分別與3臺減速機和3臺驅(qū)動滾筒同軸連接,3臺驅(qū)動滾筒上分別安裝了磁粉制動器,通過給磁粉制動器加激勵電流來模擬實際工況下的負(fù)載。
三電機控制網(wǎng)絡(luò)采用的是主-從站機制,其中,控制器是由MCU,DSP和CPLD的三核處理器組成,控制器和工控機作為系統(tǒng)主站,3臺西門子MM440作為系統(tǒng)從站。系統(tǒng)整體網(wǎng)絡(luò)結(jié)構(gòu),如圖4所示。
圖4 三電機系統(tǒng)整體網(wǎng)絡(luò)結(jié)構(gòu)圖
本文設(shè)計了一個三核控制器,而這3個控制芯片分別是單片機、DSP和CPLD,利用3個處理芯片的各自優(yōu)勢,它們之間相互協(xié)調(diào)達成最終的控制任務(wù)。下面將針對這3個處理器所承擔(dān)的任務(wù),分別設(shè)計其相應(yīng)的控制程序。
首先,單片機處理器選擇的是STC89C52,主要完成2個張力采集時需要和前端模數(shù)轉(zhuǎn)換芯片進行通信,在張力1采集完成后,需要對張力2進行采集,其過程類似于張力1。下面以張力1為例說明采集的詳細過程:首先AD7705通信端口復(fù)位,并使A/D芯片第一個通道初始化,單片機的P3.5引腳通知模數(shù)轉(zhuǎn)換芯片做好準(zhǔn)備,等AD7705準(zhǔn)備好后,向其通信寄存器寫入一個命令,再從AD7705中讀入一個字節(jié)的張力1轉(zhuǎn)換后的數(shù)字量,將讀入的數(shù)據(jù)放入寄存器中并還原成對應(yīng)的電壓值,再進行張力2的讀入,至此,完成了張力的采集。
DSP作為主處理器處于系統(tǒng)的核心地位,在整個系統(tǒng)中主要作用有反饋信息的獲取、控制信息的發(fā)送和PID或一階ADRC算法的計算,實驗中速度和張力數(shù)值的實時顯示以及速度和張力曲線的繪制,整體的流程圖如圖5所示。
由圖5可知,先進行系統(tǒng)配置寄存器的初始化及中斷的初始化,所用中斷引腳為XINT1,初始化通用I/O口,將I/O口配置為輸入輸出口。由于算法中用到的變量、數(shù)組等存儲單元較多,編程時采用結(jié)構(gòu)體形式存儲數(shù)據(jù),可以使程序閱讀方便、結(jié)構(gòu)清晰,同時在系統(tǒng)上電時要對自抗擾算法的相關(guān)數(shù)據(jù)進行初始化。速度信息采用1個字的信息來表示,2個張力也各是1個字,需要讀取的參數(shù)信息一共6個字節(jié)。DSP數(shù)據(jù)接收口是8位并行數(shù)據(jù)線需要6次才能讀完,每次中斷讀取1個字節(jié)。算法對反饋信息的處理程序都發(fā)生在中斷子程序中,初始化完成后就進入了等待中斷。當(dāng)有中斷來臨讀取并口數(shù)據(jù)線上的數(shù)據(jù),接著判斷電機停轉(zhuǎn)標(biāo)志位,該標(biāo)志位由F12或F23大于900 N時引起,防止皮帶過緊崩斷,若是則在下次中斷執(zhí)行中發(fā)送電機停轉(zhuǎn)指令,否則判斷data_rx_over_flag是否等于“1”,該標(biāo)志位置“1”代表CPLD發(fā)送過來的6個字節(jié)的反饋信息接收完畢,若是“0”則跳出中斷,否則先將data_rx_over_flag清零,接著計算接收到的速度、張力數(shù)據(jù)的實際大小,以便為算法處理提供直觀數(shù)據(jù)。若是電機的轉(zhuǎn)速大于600 r/min則給定電機轉(zhuǎn)速為600 r/min,目的是限制運行速度。計算過實際大小后,接著調(diào)用ADRC算法子程序返回調(diào)節(jié)后的控制量,返回的張力數(shù)據(jù)經(jīng)過計算得到實際值。實驗中獲取的張力信號毛刺很多,濾除這些干擾采用一階滯后濾波,濾波后判斷張力是否過大,F(xiàn)12或F23超出900 N將電機停轉(zhuǎn)標(biāo)志位stop_flag置“1”,下次中斷程序中發(fā)送停轉(zhuǎn)指令,否則將獲取的張力數(shù)據(jù)進行張力的ADRC計算,得到第二、三臺電機的頻率字。3臺電機的頻率控制字都得到后,統(tǒng)一通過SPI接口發(fā)送給CPLD進而發(fā)送給變頻器。程序在執(zhí)行完一個控制運算周期后,緊接著進入下次控制運算流程。
圖5 DSP程序框圖
CPLD主要實現(xiàn)對編碼器輸出信號的濾波處理、控制器和上位機的通信以及控制器輸出信號與3個西門子變頻器的通信。首先編碼器采集主電機速度脈沖序列,在實際工況下,先對編碼器代入的毛刺進行濾波,而單片機傳輸來的數(shù)據(jù)則需要經(jīng)過分揀,編碼器信號和張力信號都要經(jīng)過合并,也就是將16位的數(shù)據(jù)寄存器存儲值合并成32位數(shù)據(jù)進行并行傳輸,數(shù)據(jù)一方面將傳輸?shù)?32模塊發(fā)送到上位機;另外將傳輸?shù)綌?shù)碼管用于張力和速度的顯示。數(shù)據(jù)還需要傳輸給DSP用于算法的處理,這里CPLD給DSP發(fā)出中斷信號,然后進行相關(guān)算法的運算。
為了測試所設(shè)計三電機系統(tǒng)同步控制效果,進行基于ADRC算法與PID控制算法下抗負(fù)載擾動實驗。在負(fù)載實驗中,通過觀察負(fù)載改變時,系統(tǒng)中主電機轉(zhuǎn)速與2個皮帶張力的變化情況。在系統(tǒng)中,設(shè)定主電機轉(zhuǎn)速ωr1給定為300 r/min,張力F12給定為96 N,張力F23給定為72 N,不加負(fù)載的情況下使電機空載起動,在80 s的時刻,加載1.3 A的電流給主電機的磁粉制動器,得到使用PID控制器的各參數(shù)曲線,如圖6所示。使用ADRC控制器的各參數(shù)曲線如圖7所示。
圖6 PID控制
圖7 ADRC控制
由圖6、圖7可知,突然增加負(fù)載時,當(dāng)系統(tǒng)選用PID方案時,則超調(diào)為-15.6%,調(diào)節(jié)時間為7.3 s;當(dāng)系統(tǒng)選用ADRC方案時,則超調(diào)為-6.7%,調(diào)節(jié)時間為0.73 s。由此可知,采用ADRC控制器時,超調(diào)量減少而且調(diào)節(jié)時間也大大縮短,且在突加負(fù)載時,張力F12有負(fù)超調(diào),隨后帶來了系統(tǒng)的振蕩。從而得出采用ADRC方案的抗負(fù)載擾動能力優(yōu)于PID。
[1] 張今朝,劉國海,潘天紅.多電機變頻調(diào)速同步系統(tǒng)的多模型預(yù)測控制[J].控制與決策,2009,24(10):1489-1494.
[2] 於新華.基于DSP+FPGA的多電機同步控制系統(tǒng)研究[D]:北京印刷學(xué)院,2011.
[3] 楊士河,劉景林等,基于DSP的多電機協(xié)同控制系統(tǒng)設(shè)計[J],測控技術(shù),2010,29(6):45-47.
[4] 于凱平,郭宏,吳海洋.采用DSP 和FPGA 多電機速度伺服驅(qū)動控制平臺[J],電機與控制學(xué)報,2011,15(9):39-43.
[5] 聶宜云,孟凡軍,顏肖平.基于DSP_FPGA架構(gòu)的嵌入式運動控制平臺設(shè)計[J],測控技術(shù),2015,34(5):69-71.
[6] 施文美.基于DSP_CPLD控制結(jié)構(gòu)的礦用蓄電池機車設(shè)計[J].儀表技術(shù),2016(8):18-22.
[7] 劉建國.基于DSP+CPLD的全數(shù)字脈沖MIG焊機的研制[D].廣州:華南理工大學(xué),2014.
[8] 韓京清.自抗擾控制器及其應(yīng)用[J].控制與決策,1998,13(1):19-23.
[9] 韓京清.自抗擾控制技術(shù):估計補償不確定因素的控制技術(shù)[M].北京:國防工業(yè)出版社,2008:342-598.
[10] 王宏波.多電機驅(qū)動的帶式輸送機的傳動控制[J].煤礦現(xiàn)代化,2009(5):60-61.