劉星橋, 徐迎輝
(江蘇大學(xué) 電氣信息工程學(xué)院,江蘇 鎮(zhèn)江 212013)
?
一種新型多電機(jī)同步控制平臺研制*
劉星橋,徐迎輝
(江蘇大學(xué) 電氣信息工程學(xué)院,江蘇 鎮(zhèn)江212013)
多電機(jī)同步控制廣泛應(yīng)用于工業(yè)生產(chǎn)中,同步控制的性能直接影響產(chǎn)品質(zhì)量的好壞。設(shè)計了由MCU+DSP+CPLD組成的多電機(jī)同步控制平臺。平臺運用C語言編寫了MCU與DSP部分的程序,采用VHDL硬件描述語言來書寫CPLD部分的程序,從而實現(xiàn)了MCU對張力的高速采集,DSP對控制算法的高速運算及DSP對CPLD高速傳輸指令,CPLD對DSP、變頻器及上位機(jī)串口的通信。平臺采用基于RS- 485接口的USS協(xié)議實現(xiàn)與變頻器的通信。對該平臺進(jìn)行了速度響應(yīng)及張力穩(wěn)定為一體的試驗,試驗證明其可以穩(wěn)定控制3臺電機(jī),且控制性能優(yōu)于PLC控制,具有良好的控制性能。
多電機(jī)同步控制; 控制平臺; 微控制單元; 數(shù)字信號處理器; 復(fù)雜可編程邏輯控制器
多電機(jī)同步控制中多采用PLC進(jìn)行控制,PLC多采用結(jié)構(gòu)化程序設(shè)計,程序執(zhí)行時調(diào)用功能塊、組織塊、系統(tǒng)功能塊或功能調(diào)用功能(Function Call, FC)和功能調(diào)用系統(tǒng)(Function Call System, SFC)來完成,程序周期性執(zhí)行,控制周期較長,一般約100ms,直接導(dǎo)致了控制性能的降低,因此縮短控制周期很有必要。近年來多電機(jī)同步控制平臺的研究越來越熱,平臺設(shè)計有幾種主流方式: 第一種是采用單微處理器(MCU或DSP),文獻(xiàn)[1-3]中便采用了單DSP設(shè)計;第二種是采用多處理器,文獻(xiàn)[4]就采用這種結(jié)構(gòu)。由于FPGA可以替代復(fù)雜的邏輯電路,在簡化系統(tǒng)結(jié)構(gòu)、實現(xiàn)控制器小型化等方面發(fā)揮重要作用,因此,基于DSP+FPGA的控制平臺技術(shù)是目前多電機(jī)驅(qū)動伺服領(lǐng)域的研究熱點之一[5-12]。本文設(shè)計了一種采用MCU+DSP+CPLD實現(xiàn)對變頻器的控制,同時根據(jù)USS協(xié)議格式通過RS- 485接口實現(xiàn)對變頻器的通信。通信速率采用19200bit/s,可以實現(xiàn)3臺電機(jī)的同時指令送達(dá),喂送指令周期為10ms,相比于PLC 100ms的指令控制周期,快速性提高了10倍,從而能夠?qū)崿F(xiàn)控制性能要求高的高速控制,減小了因指令喂送過慢而產(chǎn)生的控制誤差;同時該系統(tǒng)還具有成本低廉、靈活方便、可靠性高、應(yīng)用范圍廣等特點。
試驗需要的多電機(jī)系統(tǒng)的總體架構(gòu)圖如圖1所示。由圖1可知: 控制平臺對3臺變頻器周期喂送指令,同時可以將速度張力參數(shù)傳送至上位機(jī),控制平臺采用USS通信協(xié)議通過變頻器自帶的RS- 485接口實現(xiàn)通信,并通過串口觀察數(shù)據(jù)。框架中交流電機(jī)為異步電機(jī),3臺電機(jī)之間通過皮帶連接,交流電機(jī)由MicroMaster vector系列變頻器驅(qū)動,試驗系統(tǒng)中所測張力由皮帶對浮動輥的壓力產(chǎn)生,張力傳感器1測量電機(jī)1、2之間的張力,張力傳感器2測量電機(jī)2、3之間的張力,光電編碼器連接在主電機(jī)軸上,測量主電機(jī)轉(zhuǎn)速。

圖1 控制系統(tǒng)結(jié)構(gòu)
設(shè)計的控制平臺以DSP(TMS320F2812)和低成本CPLD(EPM1270T144C5)為核心,需要完成的功能包括:
(1) 主電機(jī)轉(zhuǎn)速的測量;
(2) 控制算法的運算;
(3) 輸出3路基于USS協(xié)議的通信報文;
(4) 采集2路張力信息;
(5) 可以通過上位機(jī)觀察控制效果。
DSP適合完成算法運算,CPLD用于邏輯時序電路,具有高速與并行運行的優(yōu)點。因此,DSP作為主控制單元要求實現(xiàn)功能(2),CPLD的工作量最大要求實現(xiàn)功能(1)、(3)和(5),功能(4)由MCU完成。MCU、CPLD和DSP之間的數(shù)據(jù)交換如下: MCU將采集到的張力值傳送給CPLD,CPLD將包括主電機(jī)速度值、張力F12的值、張力F23的值傳送給DSP,DSP將3臺電機(jī)的控制字發(fā)送給CPLD。控制平臺的內(nèi)部結(jié)構(gòu)如圖2所示。圖2中矩陣鍵盤用于設(shè)定參數(shù)及電機(jī)起停控制,串口轉(zhuǎn)USB電路用于上位機(jī)USB接口通信。A、B、C分別對應(yīng)3路變頻器接口。

圖2 控制平臺內(nèi)部結(jié)構(gòu)圖
3.1系統(tǒng)試驗算法
DSP的功能主要是控制算法的計算及對CPLD傳送控制指令。平臺試驗采用優(yōu)化后的一階自抗擾控制器(Active Disturbance Rejection Controller, ADRC)控制算法。圖3給出了結(jié)構(gòu)優(yōu)化后轉(zhuǎn)速的一階ADRC控制框圖。

圖3 優(yōu)化后轉(zhuǎn)速的一階ADRC控制原理框圖
優(yōu)化后的轉(zhuǎn)速控制器的完整算法為
(1)
式中:ωr1——主電機(jī)速度反饋量;
z1——反饋輸出ωr1的跟蹤信號;
z2——總和擾動w(t)的觀測值;
u——控制量;

β01、β02——ADRC輸出誤差校正增益;
h——采樣周期;
kp——反饋控制律比例系數(shù);
b0——補(bǔ)償因子,試驗中通過整定kp、b0來調(diào)整系統(tǒng)的控制性能;
fal(e,α,δ)——選取的最優(yōu)綜合函數(shù);
δ——濾波因子;
α——非線性因子。


圖4 基于一階ADRC的三電機(jī)同步控制策略
綜合整個系統(tǒng)的完整控制算法為
(2)
(3)
(4)

ωr1、F12、F23——分別為主電機(jī)速度反饋量、1號電機(jī)和2號電機(jī)之間的張力反饋量、2號電機(jī)和3號電機(jī)之間的張力反饋量。
式(2)對應(yīng)圖4中的速度一階ADRC控制器,式(3)對應(yīng)圖4中張力一階ADRC控制器1,式(4)對應(yīng)圖4中張力一階ADRC控制器2。
3.2DSP對CPLD的指令傳輸
DSP與CPLD之間的通信通道的設(shè)計采用DSP的GPIO口來模擬SPI總線時序。該接口用于DSP將計算得到的3臺電機(jī)各自的控制命令字傳送給CPLD,數(shù)據(jù)位數(shù)定義為64位。
3.3DSP總程序流程圖
DSP部分的程序運行流程圖如圖5所示。上電后首先等待一組反饋數(shù)據(jù)接收完畢,其中包括速度、張力信息,反饋數(shù)據(jù)接收完成后,開始計算主電機(jī)ADRC控制器下的轉(zhuǎn)速控制字,接著在張力ADRC控制器下根據(jù)張力的情況,計算得到第2、第3臺電機(jī)的控制字,最后通過SPI接口送數(shù)據(jù)給CPLD,之后等待下組反饋數(shù)據(jù)來臨,進(jìn)入下一計算周期。
在從控制器CPLD的設(shè)計中,采用自頂至下的設(shè)計方法。將CPLD需要完成的功能劃分為若

圖5 DSP總程序流程圖
干個功能獨立的功能模塊,各個模塊可以單獨進(jìn)行測試、驗證,然后在頂層實體中直接調(diào)用。根據(jù)實際的功能需要劃分了如圖6所示的從Module1-11的功能模塊。其中主要功能模塊為Module1、Module5、Module7、Module4、Module6、Module9-11。CPLD主要設(shè)計流程如下:

圖6 CPLD內(nèi)部電路框架圖
(1) 采用VHDL完成設(shè)計輸入;
(2) 綜合和邏輯優(yōu)化;
(3) 布局、布線;
(4) 功能仿真和時序仿真;
(5) 布局優(yōu)化;
(6) 配置到EMP1270T144C5中,硬件調(diào)試。
4.1CPLD接收DSP控制指令設(shè)計(Module7)
CPLD中該模塊用于接收DSP控制運算結(jié)果中變頻器的命令字。由于DSP發(fā)送的控制指令通過SPI接口傳遞,要求CPLD能夠識別DSP對應(yīng)接口上的時序信號,在Dsp_spi_rst線上出現(xiàn)高電平時,CPLD從有限狀態(tài)機(jī)回到初始狀態(tài),開始在Dsp_spi_clk的上升沿讀取數(shù)據(jù),每讀取1次狀態(tài)轉(zhuǎn)移1次,共64個狀態(tài)分別讀取了64個數(shù)據(jù)(低48位為控制字)。該功能模塊定位于圖6中的Module7。
4.2CPLD反饋給DSP數(shù)據(jù)的通道(Module6)
控制平臺的速度、張力參數(shù)的反饋通過DSP與CPLD之間的8位并口數(shù)據(jù)線來完成,2個參數(shù)數(shù)據(jù)獲取都是通過CPLD來完成的。CPLD每10ms將速度、張力參數(shù)整合成6個字節(jié)的數(shù)據(jù),其中速度占2個字節(jié),兩張力各占2個字節(jié),分6次通過CPLD與DSP之間的8位并口數(shù)據(jù)通道傳輸給DSP,每送一個字節(jié)CPLD指定的引腳由interrupt信號線產(chǎn)生一個下降沿觸發(fā)DSP中斷,在中斷中DSP讀取CPLD送來的數(shù)據(jù),分6次中斷完成一組反饋數(shù)據(jù)的接收。該功能模塊定位于圖6中的Module6。
4.3CPLD與變頻器之間的通信(Module9-11)
USS是西門子公司為變頻器開發(fā)的通信協(xié)議。其協(xié)議的通信字符格式為一位起始位、一位停止位、一位偶校驗位和八位數(shù)據(jù)位。數(shù)據(jù)報文最大長度為256個字節(jié),包括3字節(jié)的頭部、一字節(jié)的校驗碼和主數(shù)據(jù)塊,數(shù)據(jù)塊按照字的方式組織,高字節(jié)在前。通信數(shù)據(jù)格式如表1所示。

表1 USS通信數(shù)據(jù)格式
其中: STX——起始字符,為02Hex;
LGE——報文長度;
ADR——從站地址碼;
BCC——校驗字符,為從STX開始所有字節(jié)的異或和。
USS報文長度分長報文和短報文,短報文LGE=6,長報文=12(十進(jìn)制)。在此選擇短報文即LGE=0x06H,故PKE、IND、和VAL將不出現(xiàn)在報文中。STW表示控制字用于變頻器的起停控制,ZSW(狀態(tài)位)表征變頻器運行的當(dāng)前狀態(tài)。因此,平臺中采用的短報文格式如表2所示。

表2 短報文格式
為縮短DSP的控制指令長度,報文中只有HSW由DSP傳輸給CPLD,其他內(nèi)容由CPLD中特定的功能模塊自動填充。STW受外部按鍵控制,當(dāng)矩陣鍵盤中的起動鍵(自設(shè)定為任意鍵)按下時,電機(jī)開始轉(zhuǎn)動,按下停止鍵電機(jī)停轉(zhuǎn)。這就使得在調(diào)試時出現(xiàn)意外能快速停轉(zhuǎn)電機(jī)。
4.4MCU與CPLD的通信(Module5)
從A/D轉(zhuǎn)換器讀取的是12位的張力數(shù)據(jù),MCU將采集到的張力數(shù)據(jù)整合為16位,系統(tǒng)中張力參數(shù)有2個,分別為F12、F23,MCU將兩張力數(shù)據(jù)整合為32位長度的數(shù)據(jù)以SPI時序發(fā)送出去,經(jīng)過電平轉(zhuǎn)換芯片SN74LVC8T245將電平轉(zhuǎn)換為3.3V之后傳送給CPLD,CPLD內(nèi)部對應(yīng)有SPI時序的接收電路,用以接收張力參數(shù)數(shù)據(jù)。CPLD內(nèi)部綜合生成的接收電路如圖6中Module5所示。
4.5主電機(jī)速度的采集(Module2)
主電機(jī)速度參數(shù)通過光電編碼器采集,型號為YP-H2,試驗中光電編碼器輸出的方波個數(shù)通過CPLD每10ms對光電編碼器輸出的方波個數(shù)計數(shù),獲取滯后小于10ms的速度信息。其功能模塊位于CPLD中的Module2。由于電機(jī)運行對電源的干擾,使得光電編碼器輸出波形帶有波紋或毛刺,在輸入前要對編碼器輸出信號波形整形,由Module1完成整形,整形后的波形輸出給計數(shù)模塊Module2。
4.6上位機(jī)串口電路(Module4)
圖6中的Module4電路用于上位機(jī)監(jiān)測試驗中參數(shù)的接口。其能夠以19200bit/s的速率通過串口轉(zhuǎn)USB接口模塊向PC機(jī)發(fā)送實時采集到的速度和張力信息,以便于試驗觀測與分析。
MCU的功能主要是進(jìn)行高速張力數(shù)據(jù)采集,張力傳感器輸出為模擬信號,數(shù)模轉(zhuǎn)換采用的數(shù)模轉(zhuǎn)換器型號為TL2543。該芯片轉(zhuǎn)換速度快、精度高,轉(zhuǎn)換通道多達(dá)12個。張力模擬信號要經(jīng)過高頻濾波后傳入A/D轉(zhuǎn)換器。TL2543支持SPI時序的數(shù)據(jù)訪問與讀取,故MCU對其進(jìn)行操作采用的是SPI接口時序。MCU的工作流程圖如圖7所示。

圖7 MCU程序流程圖
上位機(jī)界面使用VB程序設(shè)計,用以方便程序調(diào)試,實時觀察試驗數(shù)據(jù),能夠?qū)崟r接收的速度、張力以曲線的形式繪制在計算機(jī)界面中,可以實時觀察數(shù)據(jù)的細(xì)節(jié)變化。這與平臺中LCD屏的功能一致,但LCD無法觀察到細(xì)節(jié)數(shù)據(jù)及存儲數(shù)據(jù)。
CPLD總程序仿真圖如圖8所示。仿真中code_in 信號為光電編碼器輸入信號,周期為100μs,MCU的SPI接口傳輸數(shù)據(jù)即張力的數(shù)據(jù)分別為0x0000h和0xffffh,data_out[7..0]表示為反饋給DSP的8位并行數(shù)據(jù)輸出線,依次輸出速度信息、F12的A/D轉(zhuǎn)換值及F23的A/D轉(zhuǎn)換值。從data_out[7..0]中可以看出仿真正確,速度及張力信息分別為0x01h、0x00h、0x00h、0x00h、0xffh、0xffh,前2個字節(jié)是速度信息(10ms內(nèi)計數(shù)得到100個脈沖),其中速度數(shù)據(jù)占一個字長,從高位到低位每4位表示一個十進(jìn)制數(shù),依次表示千、百、十、個位。中間2個字節(jié)為張力F12的信息,最后2個字節(jié)為F23的值,結(jié)合code_in信號分析CPLD反饋DSP數(shù)據(jù)的仿真結(jié)果正確。仿真中模擬DSP的頻率字(STW)指令為0x0000h、0xffffh、0x0000h及0xffffh,分別對應(yīng)電機(jī)1、2、3及4(保留),從Tx_485_1、Tx_485_2、Tx_485_3發(fā)送出去,對比USS協(xié)議格式在仿真圖中觀察輸出結(jié)果,發(fā)現(xiàn)對應(yīng)位置的字符信息與模擬STW一致,因此仿真結(jié)果正確。圖8中MCU_spi_datai,MCU_spi_rst,MCU_spi_clk為MCU的SPI接口線,DSP_spi_datai,DSP_spi_rst,DSP_spi_clk為DSP的SPI接口線。

圖8 CPLD總程序仿真圖
為了測試控制平臺的控制效果,采用基于PLC S7-300的Profibus總線控制的張力穩(wěn)定試驗與該平臺基于USS協(xié)議控制的張力穩(wěn)定試驗進(jìn)行對比。基于PLC的控制周期為100ms,后者則為10ms。試驗中主電機(jī)轉(zhuǎn)速初始速度都設(shè)定在200r/min,張力設(shè)定值分別為F12=150N、F23=100N。圖9與圖10為由試驗數(shù)據(jù)生成的曲線圖,縱坐標(biāo)右側(cè)表示轉(zhuǎn)速,左側(cè)為張力值,橫坐標(biāo)為時間。從圖9、圖10中可以看到主電機(jī)的速度階躍響應(yīng): 圖9中主電機(jī)速度進(jìn)入穩(wěn)態(tài)需要 1.5s,對應(yīng)地,圖10中只需要0.6s,在速度響應(yīng)上該控制平臺比PLC快了2.5倍。在40s的時刻將主電機(jī)速度設(shè)定突變?yōu)?00r/min,用來檢驗轉(zhuǎn)速與張力解耦效果,對比圖9、圖10可以看出PLC控制下的張力曲線此時出現(xiàn)了較大的波動,而平臺控制下的張力曲線未發(fā)生明顯波動,說明后者能夠更快地將張力穩(wěn)定下來。同時不難看出無論是速度還是張力在該平臺控制下穩(wěn)態(tài)誤差更小、性能更優(yōu),因此該平臺有更好的控制效果。

圖9 PLC張力穩(wěn)定試驗結(jié)果

圖10 控制平臺張力穩(wěn)定試驗結(jié)果
設(shè)計了一種基于MCU、DSP和CPLD的多電機(jī)控制平臺。試驗結(jié)果表明,該平臺不僅能夠在控制算法下實現(xiàn)3臺電機(jī)的同步平穩(wěn)運行及皮帶張力的穩(wěn)定,而且能夠較傳統(tǒng)的PLC控制有更好的控制效果。該方案結(jié)構(gòu)簡單、成本低、易于開發(fā),在高速控制中也具有良好的前景。
[1]朱偉興,張建.采用DSP的多電機(jī)同步控制系統(tǒng)[J].電機(jī)與控制應(yīng)用,2012,39(2): 31-35.
[2]楊士河,劉景林,張金萍,等.基于DSP的多電機(jī)協(xié)同控制系統(tǒng)設(shè)計[J].測控技術(shù),2010,29(6): 45- 47.
[3]葛研軍,趙楊,楊均悅.基于雙DSP的多電機(jī)協(xié)同控制系統(tǒng)[J].電機(jī)與控制應(yīng)用,2012,39(2): 21-24.
[4]于凱平,郭宏,吳海洋.采用DSP和FPGA多電機(jī)速度伺服驅(qū)動控制平臺[J].電機(jī)與控制學(xué)報,2011,15(9): 39- 43.
[5]聶宜云,孟凡軍,顏肖平.基于DSP_FPGA架構(gòu)的嵌入式運動控制平臺設(shè)計[J].測控技術(shù),2015,34(5): 69-71.[6]於新華.基于DSP+FPGA的多電機(jī)同步控制系統(tǒng)研究[D].北京: 北京印刷學(xué)院,2011.
[7]賀星,單鵬.基于DSP_FPGA的電機(jī)伺服控制[J].航空計算技術(shù),2012,42(5): 120-123.
[8]吳磊.基于雙DSP和FPGA的無刷直流電機(jī)伺服控制系統(tǒng)的設(shè)計[D].成都: 電子科技大學(xué),2010.
[9]丁金林,張浩,劉國海.基于USS協(xié)議的變頻器計算機(jī)通信設(shè)計[J].自動化與儀表,2004,19(4): 61- 64.
[10]李建勇,王勤,戴先中,等.多電機(jī)同步系統(tǒng)的解耦控制[J].控制工程,2003,10(2): 169-172.
[11]韓京清.從PID技術(shù)到“自抗擾控制”技術(shù)[J].控制工程,2002,3(4): 13-18.
[12]李慧,劉星橋,李景,等.多電機(jī)同步協(xié)調(diào)系統(tǒng)控制策略[J].電機(jī)與控制應(yīng)用,2014,41(3): 6-11.
Development of a Novel Multi-Motor Synchronous Control Platform*
LIUXingqiao,XUYinghui
(School of Electrical and Information Engineering, Jiangsu University, Zhenjiang 212013, China)
Multi-motor synchronous control is widely used in industrial production.The performance of synchronous control directly affects the quality of the product.A multi-motor synchronization control platform composed of MCU、DSP and CPLD was designed. MCU and DSP was programed by using C language in the platform and the part in CPLD was programed by using VHDL language.In the platform,MCU was responsible for the high speed acquisition of tension and DSP was responsible for the high speed operation of the control algorithm, transmiting instructions to the CPLD.The function of CPLD was communicating with DSP and inverter as well upper computer.The platform communicates with inverter by using USS protocol format through the RS- 485 interface.A velocity response experiment combined with tension stability has been carried out by using the platform.The experimental results showed that the platform could stably control 3 motors and was better comparing with PLC in control performance.
multi-motor synchronous control; control platform; microcontroller unit(MCU); digital signal processing(DSP); complex programmable logic device(CPLD)
國家自然科學(xué)基金資助項目(60874014);江蘇高校優(yōu)勢學(xué)科建設(shè)工程資助項目(PAPD,NO.6-2011)
劉星橋(1960—),男,博士,教授,博士生導(dǎo)師,研究方向為多電機(jī)和其他復(fù)雜系統(tǒng)控制理論及應(yīng)用。
徐迎輝(1989—),男,碩士研究生,研究方向為多電機(jī)控制算法。
TM 301.2
A
1673-6540(2016)09- 0008- 06
2016-03-10