趙 興,張 珣
(杭州電子科技大學(xué)電子信息學(xué)院,浙江杭州310018)
無(wú)刷直流電機(jī)(BLDC)以電子換向器代替電刷,具有傳統(tǒng)直流電機(jī)的運(yùn)行效率高和速度易調(diào)等優(yōu)點(diǎn),又克服了電機(jī)電刷換向時(shí)容易產(chǎn)生噪聲、火花和干擾并且影響壽命等致命缺陷,因此在工業(yè)生產(chǎn)和科研工作中應(yīng)用十分廣泛[1]。
目前BLDC 的控制主要集中在有線和點(diǎn)到點(diǎn)的一對(duì)一控制,在電機(jī)數(shù)量較多而且環(huán)境惡劣不適宜布線的情況下,存在很大的不足。針對(duì)這種不足,本研究設(shè)計(jì)了一個(gè)無(wú)線組網(wǎng)控制系統(tǒng),以TI 公司生產(chǎn)的工作在UHF頻段的無(wú)線收發(fā)芯片CC1101作為無(wú)線收發(fā)模塊[2],以微芯公司的低功耗芯片PIC18F45K20和dsPIC33FJ32MC204 作為主控單元[3-4]。系統(tǒng)由3 部分構(gòu)成:PC 上位機(jī)、無(wú)線收發(fā)器、電機(jī)控制器。PC 客戶端發(fā)出控制指令,通過(guò)串口傳送到無(wú)線收發(fā)器,無(wú)線收發(fā)器將控制指令傳送至電機(jī)控制器,用模糊PID算法[5-6]進(jìn)行調(diào)速控制。
該系統(tǒng)采用三層結(jié)構(gòu),總體架構(gòu)如圖1所示。
圖1 BLDC無(wú)線組網(wǎng)控制結(jié)構(gòu)圖
圖1 中,最頂層是在PC 上編寫一個(gè)BLDC 的控制軟件,實(shí)現(xiàn)對(duì)電機(jī)的起/轉(zhuǎn)停、加/減速、設(shè)定速度、轉(zhuǎn)向等控制,另外還可以通過(guò)發(fā)送指令讓電機(jī)上傳即時(shí)的運(yùn)轉(zhuǎn)信息,例如轉(zhuǎn)向和速度,便于人工的監(jiān)控。這些指令都通過(guò)計(jì)算機(jī)RS232串口發(fā)出,但是考慮到實(shí)際應(yīng)用的布線距離和抗干擾等因素,本研究將計(jì)算機(jī)送出的信號(hào)通過(guò)雙向電平轉(zhuǎn)換器將RS232 電平轉(zhuǎn)化為RS485 電平[7],轉(zhuǎn)換好的信號(hào)通過(guò)導(dǎo)線傳至系統(tǒng)的無(wú)線收發(fā)平臺(tái)。
中間層是無(wú)線收發(fā)器,它將通過(guò)RS485 口傳來(lái)的數(shù)據(jù)通過(guò)CC1101 發(fā)送出去,同時(shí)它也可以接收到其他CC1101發(fā)出的信號(hào),并回傳至上位機(jī)顯示和分析。
最底層是BLDC 控制器,通過(guò)SPI 接口集成一個(gè)CC1101模塊,用來(lái)接收上位機(jī)通過(guò)無(wú)線收發(fā)平臺(tái)發(fā)送的控制指令,控制BLDC的運(yùn)轉(zhuǎn)。
電機(jī)轉(zhuǎn)速控制是系統(tǒng)設(shè)計(jì)的關(guān)鍵,常規(guī)的PID 控制算法具有算法簡(jiǎn)單、精度高、可靠性強(qiáng)等優(yōu)點(diǎn)。但其設(shè)計(jì)過(guò)分依賴控制對(duì)象的模型,參數(shù)修改不便,而在無(wú)刷直流電機(jī)這樣一個(gè)多變量、非線性、強(qiáng)耦合的控制環(huán)境中,利用常規(guī)PID 算法設(shè)計(jì)出的控制系統(tǒng)難以取得比較滿意的控制效果。本研究采用能進(jìn)行參數(shù)自整定的模糊PID控制算法進(jìn)行電機(jī)轉(zhuǎn)速控制[8-9],控制框圖如圖2所示。
圖2 模糊PID控制框圖
本研究以電機(jī)系統(tǒng)給定的運(yùn)轉(zhuǎn)速度和實(shí)際檢測(cè)速度的偏差,偏差的變化ec作為模糊控制的輸入,運(yùn)用模糊推理,實(shí)現(xiàn)PID 控制參數(shù)的自整定。根據(jù)以往的專家經(jīng)驗(yàn)和實(shí)際的試驗(yàn),建立關(guān)于KP,KI,KD的模糊控制規(guī)則表,如表1~3所示。
表1 KP 模糊控制規(guī)則表
表2 KI 模糊控制規(guī)則表
表3 KD 模糊控制規(guī)則表
本研究設(shè)定e和ec語(yǔ)言值的模糊子集為{負(fù)大,負(fù)中,負(fù)小,零,正小,正中,正大},依次簡(jiǎn)記為{NB,NM,NS,ZO,PS,PM,PB}。根據(jù)各參數(shù)模糊控制規(guī)則,筆者應(yīng)用PID參數(shù)的模糊矩陣表,查出修正參數(shù),代入下式進(jìn)行計(jì)算:
本研究根據(jù)無(wú)刷直流電機(jī)的狀態(tài)自動(dòng)調(diào)整PID 3個(gè)控制參數(shù),以達(dá)到最優(yōu)控制。
本研究采用微芯公司的8位單片機(jī)PIC18F45K20作為微處理器。該單片機(jī)是高性能的RISC CPU,具有針對(duì)C 編譯器優(yōu)化的架構(gòu),最高16 MIPS 的工作速度;工作電壓范圍1.8 V~3.6 V,并采用nanoWatt XLP的超低功耗管理;另外還集成了各種常用模塊如EU?SART模塊,MSSP模塊。在無(wú)線通信中要求系統(tǒng)能耗低、運(yùn)行速度快,抗干擾能力強(qiáng),在這里PIC18F45K20是個(gè)不錯(cuò)的選擇。由于該系統(tǒng)將來(lái)的應(yīng)用場(chǎng)所是室內(nèi)車間,很容易獲得市電,這里使用AC-DC作為電源。
無(wú)線收發(fā)器硬件電路示意圖如圖3所示。單片機(jī)引腳通過(guò)SPI 端口與CC1101 進(jìn)行通信,通過(guò)EUSART端口進(jìn)行RS485電平轉(zhuǎn)換,轉(zhuǎn)換好的信號(hào)通過(guò)導(dǎo)線送至上位機(jī),在進(jìn)上位機(jī)之前還要通過(guò)一個(gè)RS485 到RS232 的電平轉(zhuǎn)化。由于是市電供電,系統(tǒng)可以一直處于常開(kāi)狀態(tài),CC1101不需要工作在WOR模式。
圖3 無(wú)線收發(fā)器硬件電路示意圖
電機(jī)控制器集成無(wú)線收發(fā)模塊、微處理器單元、BLDC電機(jī)控制電路。這里本研究將電機(jī)控制器做成3塊電路板:一塊控制板、一塊驅(qū)動(dòng)板、一塊CC1101無(wú)線模塊板,將驅(qū)動(dòng)板和無(wú)線模塊板接插在控制板上面,進(jìn)行模塊化設(shè)計(jì)。
本研究選用MICROCHIP公司的16位數(shù)字信號(hào)控制器dsPIC33FJ32MC204 作為控制板的微處理器,這是一款高性能DSC CPU,指令多為單周期指令,支持6通道PWM 輸出,最高40 MIPS 的工作速度,通過(guò)CMOS閃存技術(shù)降低系統(tǒng)功耗。
電機(jī)控制器的硬件電路示意圖如圖4所示。CC1101收到無(wú)線收發(fā)平臺(tái)傳來(lái)的信號(hào),通過(guò)SPI口傳到控制板,微處理器經(jīng)過(guò)運(yùn)算,將該指令傳給電機(jī)驅(qū)動(dòng)板,使電機(jī)根據(jù)指令實(shí)現(xiàn)相對(duì)應(yīng)的動(dòng)作;當(dāng)電機(jī)收到上傳當(dāng)前電機(jī)參數(shù)指令時(shí),控制板就會(huì)對(duì)電機(jī)的霍爾傳感器信號(hào)進(jìn)行分析運(yùn)算并進(jìn)行數(shù)據(jù)回傳。
圖4 電機(jī)控制器硬件示意圖
上位機(jī)和無(wú)線收發(fā)平臺(tái)的通信是簡(jiǎn)單的串口通信,屬于有線傳輸,通信已經(jīng)很成熟,這里著重介紹該系統(tǒng)中無(wú)線數(shù)據(jù)傳輸?shù)耐ㄐ艆f(xié)議。在無(wú)線收發(fā)平臺(tái)眼中,任何一個(gè)電機(jī)控制器都是平等的,在同一時(shí)間,無(wú)線收發(fā)平臺(tái)只能和一個(gè)電機(jī)控制器進(jìn)行點(diǎn)到點(diǎn)的通信即無(wú)線收發(fā)平臺(tái)以廣播的形式發(fā)出無(wú)線信號(hào),只有一個(gè)電機(jī)控制器可以響應(yīng)、接收數(shù)據(jù),實(shí)現(xiàn)對(duì)電機(jī)的控制或者讓電機(jī)上傳當(dāng)前的運(yùn)轉(zhuǎn)狀態(tài)到PC 上位機(jī)。每幀數(shù)據(jù)固定11個(gè)字節(jié)。其中:
同步頭:2 個(gè)字節(jié),是一幀數(shù)據(jù)開(kāi)始的標(biāo)志,可以自由定義。
地址:對(duì)無(wú)線收發(fā)平臺(tái)和電機(jī)控制器進(jìn)行二進(jìn)制編碼,2個(gè)字節(jié)已經(jīng)足夠。
功能碼:CC1101模塊發(fā)出這一幀數(shù)據(jù)的目的,可以為控制指令或者接收到信號(hào)后的應(yīng)答位,1個(gè)字節(jié)。
數(shù)據(jù)位:數(shù)據(jù)位是電機(jī)的狀態(tài)參數(shù),可以為電機(jī)的運(yùn)轉(zhuǎn)方向和轉(zhuǎn)速,4個(gè)字節(jié)。
校驗(yàn)位:對(duì)數(shù)據(jù)前10個(gè)字節(jié)進(jìn)行計(jì)算得出2個(gè)字節(jié)的校驗(yàn)位。該位錯(cuò)誤說(shuō)明數(shù)據(jù)傳送失敗,必須重新傳送,2個(gè)字節(jié)。
無(wú)線收發(fā)平臺(tái)的軟件設(shè)計(jì)就是對(duì)PIC18F45K20微處理器系統(tǒng)進(jìn)行程序設(shè)計(jì)。首先,系統(tǒng)要對(duì)芯片本身、SPI總線、EUSART、CC1101進(jìn)行初始化,使CC1101工作在433 MHz。當(dāng)新平臺(tái)收到上位機(jī)由RS485總線傳來(lái)的數(shù)據(jù)時(shí),就要按照數(shù)據(jù)的要求將數(shù)據(jù)經(jīng)過(guò)CC1101發(fā)射出去,完成數(shù)據(jù)由有線到無(wú)線的轉(zhuǎn)化。當(dāng)CC1101 收到電機(jī)控制器發(fā)射回來(lái)的數(shù)據(jù),確認(rèn)有效后,要將數(shù)據(jù)由無(wú)線轉(zhuǎn)到有線,傳給上位機(jī)顯示。該平臺(tái)的軟件設(shè)計(jì)流程圖如圖5所示。
電機(jī)控制器軟件同無(wú)線收發(fā)平臺(tái)軟件設(shè)計(jì)一樣,首先要對(duì)dsPIC33FJ32MC204 芯片、SPI 總線、USART、CC1101、ADC、PWM 進(jìn)行初始化設(shè)置,同樣使CC1101工作在433 MHz。完成初始化后,當(dāng)電機(jī)控制平臺(tái)收到無(wú)線收發(fā)平臺(tái)發(fā)送過(guò)來(lái)的有效信號(hào),馬上讀取電機(jī)霍爾傳感器上的信息并與接收到的數(shù)據(jù)中的電機(jī)參數(shù)對(duì)比,通過(guò)調(diào)整PWM波的占空比,來(lái)完成電機(jī)運(yùn)行狀態(tài)的改變,直到滿足上位機(jī)的要求;當(dāng)上位機(jī)發(fā)出的信號(hào)是要查看此時(shí)電機(jī)的運(yùn)行數(shù)據(jù),也是讀取霍爾傳感器上的信號(hào),獲得電機(jī)的運(yùn)行參數(shù)并及時(shí)將運(yùn)行參數(shù)傳出去??刂破鞯能浖O(shè)計(jì)流程圖如圖6所示。
圖5 無(wú)線收發(fā)平臺(tái)軟件設(shè)計(jì)流程圖
圖6 電機(jī)控制平臺(tái)軟件設(shè)計(jì)流程
上位機(jī)運(yùn)行主界面如圖7所示。上位機(jī)相當(dāng)于一個(gè)監(jiān)控平臺(tái)[10],使用VC++編寫,主要實(shí)現(xiàn)以下功能:①發(fā)送控制指令,對(duì)電機(jī)進(jìn)行有目的的控制,先在電機(jī)參數(shù)欄設(shè)置好電機(jī)的相關(guān)參數(shù)(例如轉(zhuǎn)向、轉(zhuǎn)速),一鍵確認(rèn)發(fā)送,指令發(fā)出,電機(jī)就會(huì)按要求改變運(yùn)轉(zhuǎn)參數(shù);②顯示電機(jī)當(dāng)前的運(yùn)轉(zhuǎn)參數(shù),當(dāng)監(jiān)控人員需要了解某一個(gè)電機(jī)的運(yùn)轉(zhuǎn)情況,只要發(fā)出讓這個(gè)電機(jī)上傳當(dāng)前參數(shù)的指令,電機(jī)就會(huì)立刻上傳參數(shù)并顯示在對(duì)應(yīng)的顯示界面。
圖7 上位機(jī)運(yùn)行主界面
本研究設(shè)計(jì)了無(wú)刷直流電機(jī)組網(wǎng)控制系統(tǒng),實(shí)現(xiàn)了在PC 上位機(jī)上輸入控制指令,通過(guò)CC1101 無(wú)線數(shù)據(jù)收發(fā)平臺(tái),對(duì)指定的電機(jī)進(jìn)行運(yùn)轉(zhuǎn)控制或者對(duì)當(dāng)前運(yùn)行狀態(tài)進(jìn)行了監(jiān)控,在調(diào)速中使用了模糊PID算法,增加了系統(tǒng)的適用性。
實(shí)測(cè)結(jié)果表明,該方案運(yùn)行穩(wěn)定可靠,抗干擾能力較強(qiáng),數(shù)據(jù)傳輸誤碼率很低。該系統(tǒng)應(yīng)用前景廣闊,可以應(yīng)用于紡織車間等有多臺(tái)電機(jī)工作的地方,可大大節(jié)省生產(chǎn)成本,提高產(chǎn)品競(jìng)爭(zhēng)力。另外該系統(tǒng)中使用的CC1101 數(shù)傳方案也可廣泛用于智能監(jiān)控、車間通訊、無(wú)線報(bào)警等各個(gè)領(lǐng)域。
(References):
[1]張 琛.直流無(wú)刷電動(dòng)機(jī)原理及應(yīng)用[M].北京:機(jī)械工業(yè)出版杜,2007.
[2]陳 偉,施國(guó)梁.基于CC11O1 的車間無(wú)線通信系統(tǒng)設(shè)計(jì)[J].通信技術(shù),2011,44(12):42-44.
[3]普清民,尚重陽(yáng).基于dsPIC 的無(wú)刷直流電機(jī)控制系統(tǒng)的設(shè)計(jì)[J].機(jī)電工程技術(shù),2009,38(4):64-66.
[4]陳永軍,黃聲華,翁惠輝,等.基于dsPIC的無(wú)刷直流電機(jī)的調(diào)速系統(tǒng)方案[J].電機(jī)與控制應(yīng)用,2006,33(8):32-34.
[5]SINTHIPSOMBOON K,HUNSACHAROONRO I,KHE?DARI J,et al.A Hybrid of Fuzzy and Self-tuning PID Con?troller for Servo Electro-hydraulic System[C]//Proceedings of 2011 6th IEEE Conference On Industrial Electronics and Application(ICIEA).Beijing:[s.n.],2011:220-225.
[6]MANN G K I,HU Bao-gang,GOSINE R G.Analysis of di?rect action fuzzy PID controller structures[J].IEEE Trans?actions on system Man and Cybernetics Part B-Cyber?netics,1999,29(3):371-388.
[7]劉鐘宇,王雪峰,欒 蘭.RS485/232 電平轉(zhuǎn)換器研制[J].微處理機(jī),2008,29(3):45-46
[8]王 葳,張永科,劉鵬鵬,等.無(wú)刷直流電機(jī)模PID控制系統(tǒng)研究與仿真[J].計(jì)算機(jī)仿真,2012,29(4):196-199.
[9]李 兵,方 敏,汪洪波.模糊PID液位控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].合肥工業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2006,29(11):1370-1374.
[10]吳影清,劉廷章,袁 文,等.電機(jī)調(diào)速性能在線監(jiān)控平臺(tái)設(shè)計(jì)[J].微電機(jī),2010,43(12):90-93.