宰文姣,王 博,何 可
(四川師范大學,成都610101)
無刷直流電機(以下簡稱BLDCM)作為典型的運動執行機構,具有運行效率高、調速性能好、無勵磁損耗、可靠性高、維護方便、體積小、便于控制等優點,被廣泛應用于航模、醫療器械、數控機床、家用電器、電動車、電子產品、武器控制系統等諸多領域[1]。
在實際工業應用中為提高控制性能,通常應用PID技術對BLDCM進行位置、速度、功率的閉環調控。PID控制中的最優參數P,I,D隨負載、應用環境的不同而變化。現有研究在分析BLDCM的數學模型時,結合了各種控制算法,利用MATLAB工具進行仿真,獲取良好的PID控制器。文獻[2]采用數字式增量PID算法和PWM控制技術,提高了無刷直流電機轉速控制精度;文獻[3]在MATLAB/Simulink中搭建了軸向磁通雙凸極永磁電機模型,采用了速度模糊PID控制進行仿真,結果表明模糊PID控制無論在響應速度、超調量還是在穩定誤差等方面均優于PID控制;文獻[4]采用離散PID控制和滯環電流跟蹤型PWM控制,為實際電機控制系統的設計和調試提供了新思路;文獻[5]將PID控制、模糊控制和微粒群算法相結合,設計雙閉環直流調速系統優化控制方案,仿真結果表明該方案具有最優的動、靜態性能和抗干擾能力。前述研究中,最佳PID參數是根據現場工程師的經驗初步確定,反復離線修改在線調試,逐步獲取較為滿意的值。顯然這種方式對工程師的要求極高,獲取最佳參數的過程偶然因素占較大成分,并且耗時多。文獻[6]將PSO算法應用于模糊控制器的設計中,可以在線自動調整模糊控制器的量化因子Ke,Kec和比例因子Ku,進而調整PID的3個參數kp,ki和kd,較好地實現系統快速——無超調的動態性能。文獻[7]根據常規PID和神經網絡各自的優勢,設計了適應PID的單神經元同時可以在線學習的智能控制的算法去調整權值,從而簡單地實現PID參數的自適應。文獻[6-7]所提出的方法是根據BLDCM的數學模型設計的,然而,BLDCM具有非線性、強耦合性,數學模型難以確定,因此采用上述方法獲取的PID控制器,應用于實際控制系統中誤差較大。
本文基于可靠、穩定、便捷的原則,PC端用Microsoft Visual Basic6.0為工具編寫了BLDCM在線監測、調試、控制上位機系統,將DSP作為下位機控制系統,通過上、下位機聯合控制從而實現BLDCM的在線調試,在線及時獲取最佳PID參數。該方法操作簡單,可以實現工業現場和遠距離的BLDCM運行數據檢測與控制,可減小應用于實際控制系統中的誤差。
本文的BLDCM在線調試系統包括PID閉環調速單元、電機工作現場監測與控制單元、上位機遠程監測與控制單元和下位機單元;其中,PID閉環調速單元包括控制器模塊、霍爾元件模塊、測速模塊、PWM模塊及PID調速模塊;電機工作現場監測與控制單元包括鍵盤電路模塊和顯示電路模塊。圖1是設計的系統整體結構圖。

圖1 BLDCM控制系統結構框圖
系統的工作原理:上位機遠程監測與控制單元用于向下位機單元發送命令并用于接收下位機單元反饋回的數據。上位機遠程監測與控制單元包括監測模塊和控制模塊;監測模塊用于刷新實時曲線,先將串口接收回來的數據保存為滑動數組,然后每隔1 s將數組中的數據繪制成曲線再更新數組的內容;控制模塊用于顯示從下位機單元接收回來的轉速和占空比數據,并且將控制指令發送給下位機單元間接控制執行機構。
下位機單元一方面用于接收上位機監測與控制單元的命令經過處理后傳遞給BLDCM;另一方面用于將各種傳感器監測回來的數據經過處理后回傳給上位機遠程監測與控制單元。控制器模塊通過串口協議與上位機遠程監測與控制單元通信,控制器模塊通過鍵盤電路模塊輸入信號,控制器模塊通過顯示電路模塊輸出信號,所述的上位機遠程監測與控制單元(以下簡稱上位機)和下位機單元(以下簡稱下位機)之間通過串口進行通信。
系統主要模塊如圖2所示,包含有電機驅動模塊、TMS320F28335控制模塊、BLDCM模塊(包含驅動)、PWM模塊、測速模塊、PID閉環控制模塊(純軟件算法方式)、通信模塊、人機交互模塊(鍵盤模塊和顯示模塊)。其中,電機驅動模塊采用日本Nidec的24H677H010 BLDCM,該電機為三相六極永磁無刷直流電動機,其定子繞組反電勢為120°的梯形波,采用兩相導通三相六拍運行方式。供電電壓9~12 V,采用12 V開關電源。

圖2 硬件電路框圖
系統控制部分選用的核心器件是TI公司的TMS320F28335,相較于以往的定點DSP,其精度更高,功耗更小,性能更好,成本更低,外設集成度高,數據及存儲量大,A/D轉換更精確快速[8]。
DSP及其相關外圍電路構成了控制部分;外圍電路包括:電平轉換電路、時鐘電路、復位電路及存儲器。由于 TMS320F28335具有片上Flash,OTPROM及SARAM存儲器,故外圍電路無需考慮存儲器接口問題。本設計中電壓等級的變換采用AMS1117系列穩壓器;通過在晶振管腳間接入無源晶振啟動芯片自帶的內部振蕩器為TMS320F28335提供時鐘;采用上電復位方式,選用IMP809S型電源監控芯片來實現系統的可靠復位;DSP有JTAG硬件測試仿真接口,它可以與外界進行數據交換[9]。
BLDCM中的轉子位置傳感器用來檢測轉子當前位置,然后將檢測結果傳送給邏輯控制電路,產生相應的觸發脈沖,控制驅動電路中功率開關器件的通、斷,繼而BLDCM中的逆變器控制電機定子各相繞組的導通順序和時間,產生相應的電樞磁場,與轉子永磁體在氣隙內形成的氣隙磁場合成,從而驅動電機轉動[10]。
TMS320F28335內部含6組共12個EPWM(增強型脈寬調制模塊)和6個HRPWM(高分辨率脈寬調制模塊),每個完整的EPWM通道由兩個PWM輸出組成,即EPWMA和EPWMB,完整的EPWM模塊控制和狀態寄存器裝置由這幾個子模塊構成:計數比較子模塊,動作限定子模塊,死區產生子模塊,錯誤聯防子模塊,事件觸發子模塊,PWM斬波子模塊。本系統中只需將一路PWM輸出端口與BLDCM驅動器的PWM端口相連即可進行調速。
電機轉速的測量方式主要有3種:脈沖數字測速、霍爾元件測速和集成電路測速,本文選用槽型光耦模塊,測速原理屬于數字脈沖式,其內部電路圖如圖3所示,本系統選用的是寬電壓LM393比較器,驅動能力強,電流超過15mA,可工作于3.3 V或5 V電壓環境下,有遮擋時輸出高電平,無遮擋時輸出低電平。由于采用物理遮光計數,因此穩定可靠。在應用時將傳感器模塊的D0輸出口接到TMS320F28335的外部中斷口,然后在程序中檢測計數即可完成BLDCM的測速。

圖3 槽型光耦模塊電路圖
上位機和下位機之間通過串口進行通信SCI,TMS320F28335內部有3路獨立的SCI,在TMS320F28335中對SCI的配置主要針對以下寄存器:SCICCR(停止位、是否回環、校驗方式、數據位),SCICTL1(發送接收使能),SCICTL2(中斷使能),SCIHBAUD,SCILBAUD(波特率)等。對SCI異步串口通信的實現,主要分為發送和接收兩大塊,程序中發送為主動,接收在中斷中完成。每當檢測到有數據,就暫時關閉接收中斷,然后開始連續接收3個字節,之后重新打開接收中斷,并對之前接收到的數據(幀)進行分析處理。
將DSP的SCI與PC機進行串口通信,實時將當前BLDCM轉速傳給PC機,然后在PC機上顯示最近1 min內的轉速曲線,并計算最大速度、平均速度等。同時PC機可以下達如起停、加減速、設定速度等命令控制電機運行狀態。
人機交互在硬件部分主要由鍵盤電路和顯示電路兩部分組成。
由于本系統的人機交互模塊采用層級式菜單控制,要求顯示設備的刷新速度快,故選用Nokia5110液晶顯示屏,內部使用PCD8544驅動,Nokia5110模塊自帶PCB,帶背光控制。
鍵盤電路的設計主要是將鍵盤設置成簡單的左軟件、中軟件、右軟件的形式,然后分別連接到TMS320F28335的外部中斷,同時每當按下任意一個鍵時,更新顯示設備的內容,亦重新設定各個按鍵的功能。顯然,這樣會增加更多的軟件處理,但是由于這些都是當有按鍵按下時才進入中斷函數里面處理的,因此本質上為PID等計算工作爭取了大量的時間。況且本設計使用的顯示設備為Nokia5110,刷新速度比傳統的LCD1602,LCD12864等快得多。加之這種設計總共只有3個按鍵,簡單精致。
系統的軟件設計包括兩部分:上位機遠程監測與控制(簡稱上位機)部分的程序設計和下位機(DSP)部分的程序設計。
DSP方面程序設計主函數只是做向PC機傳送實時速度數據的工作,其余工作全在中斷中完成,圖4即為中斷函數流程圖。

圖4 中斷程序流程圖
在圖4中,外部中斷3,4,5分別對應3個現場獨立按鍵,外部中斷5是串口接收中斷。當通過按鍵或者上位機對系統下達命令時,如果系統判斷為有效的功能碼,則按相應功能驅動電機動作,同時切換液晶顯示器畫面。外部中斷6專門用于測量電機實時轉速,每當碼盤被遮擋一次,脈沖計數器自增一次,然后當定時器中預設的定時值(本設計為0.5 s)到時,將脈沖計數器中的值取出,然后脈沖計數器清零,準備下個定時時間的計數。最后根據取出的值按相應的轉換關系求出電機實時轉速。
每隔時間t將計數器中的值m取出計算BLDCM當前轉速。假設碼盤的精度為,則轉換到轉速:

本設計采用Visual Basic6.0(以下簡稱VB6.0)繪制上位機界面及編寫程序,采用VB6.0內置的菜單編輯器制作菜單欄,用Toolbar工具制作軟件工具欄,同時配合使用PhotoShop繪制工具欄圖標及界面。
上位機由VB6.0編寫發送接收函數實現對應功能碼的發送及實時數據的接收,通過添加Microsoft Comm Control 6.0控件使上位機與下位機進行通信。上位機軟件設計界面如圖5所示,主要由控制臺和運行狀況兩部分組成。控制臺主要是軟件的總體配置及對界面的操作;界面右部顯示電機實時轉速曲線和對PID參數進行在線調試。

圖5 上位機界面圖(截圖)
控制模塊功能實現:控制模塊的主要作用是顯示從DSP接收回來的轉速和占空比數據,并且將控制指令發送給DSP間接控制執行機構。分析此次要實現的功能,決定以3個字節為一數據幀,具體控制指令碼如表1所示。當按下相應按鈕時,上位機將對應的命令碼從串口發送出去。

表1 控制指令碼
需要說明,在下達轉速命令中,0×HH和0×LL由輸入的期望轉速分別取高8位和低8位然后分兩個字節發送出去,然后在DSP中將數據重新合成出來。比如輸入期望轉速nexpext為2 000 r/min,高8位和低8位分別為hh和ll,則:

然后DSP接收后重新合成:
nexpext=hh*256+II=2 000(r/min)
監測模塊功能實現:監測模塊界面主要工作為刷新實時曲線,先將串口接收到的數據保存為滑動數組,然后每隔1 s將數組中的數據繪制成曲線然后更新數組的內容。這個過程主要依賴于Picture-Box的自由繪圖功能,只需打開PictureBox的AutoRedraw屬性,然后利用Line函數根據滑動數組的內容繪制一段一段的直線段即可。
PID參數調整:電機起動以后,以某一轉速運行,具體實時轉速值可在界面(圖5)左上部的速度框中看到,同時在界面右部轉速曲線上可以看到最近1 min內的轉速變化趨勢。如果處理過程中有PID環節的參與,也可以通過實時曲線觀測系統的調節過程并鑒別當前參數的優劣。在圖6(圖5右上部)中進行PID的參數調整,調試時,一般先從P參數開始,得到比較好的穩定性。在文本框中輸入目標值,點擊旁邊的“測試”,然后軟件將設定的P參數通過串口發送給執行系統,執行系統收到此參數值后按程序執行并將此參數值回發給PC端,在軟件的第二個文本框顯示出來。點擊“復位”,會將系統的PID 3個參數設為默認值(在調試階段均為0,在最終運行階段為之前調試過程的最優結果)。

圖6 PID參數調整
數據變換與傳輸:由于PID參數一般為浮點數,不能直接送串口發送,因此可以將浮點數變換成整數發送,DSP接收數據后再重新變換成浮點數。將參數值先擴大1 000倍,即將浮點數變為整數,然后按照高8位和低8位的方式發送。將接收到的字節依次存入rx[3],接收到數據后,按照(rx[0]*256+rx[1])/1000將整數變換成浮點數。另外,數據幀需要一個標志字節來區分當前接收到的是哪一項參數。數據的具體變換及傳輸過程如圖7所示。

圖7 數據變換及傳輸流程圖
拓展功能實現:作為上位機軟件,除了對現場運行情況了如指掌以外,還應有對歷史情況進行分析總結的依據,因此本上位機可以將實時轉速的曲線保存為BMP圖片文件,也可以將滑動數組的數據保存為TXT文本文件,方便分析總結。同時在工具欄中配有圖標按鈕,方便易用。在運行過程中也可對曲線暫停繪制或重新繪制,便于處理突發情況。
例如現在需要通過PID環節將電機轉速穩定到1 200 r/min,當前的Kp,Ti,Td值均為0,即PID環節暫時沒有發揮實質性的作用。圖8是實物圖。它由8個部分組成,分別是:電機本體及驅動、現場鍵盤、紅外測速編碼器、Nokia5110液晶顯示器、XDS100仿真器、TMS320F28335主控芯片、SCI串口通信接口、DSP開發板。電機型號是Nidec的24H677H010 BLDCM。SCI串口通信接口接到PC端,BLDCM接上12 V的電源,即可開始進行調試。圖9是電機調試圖。根據系統要實現的目的進行調試,過程如下:

圖8 實物圖

圖9 電機調試圖
首先調節比例參數Kp,假定Kp=0.05,得到實時轉速曲線如圖10所示,再改變Kp的值進行測試。假定Kp=0.2,明顯發現轉速值已經出現劇烈的振蕩,靜態穩定性很差。比較這兩次的結果,改變Kp的值,令Kp=0.1,此結果相對較好,得到了比較快速的響應速度和較好的穩定性。因此Kp參數確定為Kp=0.1。

圖10 K p參數對電機轉速的影響示意圖
然后對微分參數Td進行調整。跟比例參數的調試方法類似,首先估計一個值,如Td=0.05,分別將Td的值增加和減小然后分別測試(如Td=0.001和Td=0.08),達到如圖11所示的實時曲線圖。從圖11來看,當Td的值太大時,調節速度明顯變快,但動態穩定性很差;反之當Td的值偏小時,其調節速度變得很慢。因此Td參數確定為Td=0.05。

圖11 T d參數對電機轉速的影響示意圖
最后對積分參數Ti進行調整。需要注意的是Ti的值應該很小。因為Ti為積分參數,積分在程序執行時相當于累加,而累加的存在可能會使調整量變得很大,因此積分參數相對其他參數相對很小。調試方法如法炮制,先后將Ti的值改成Ti=0和Ti=0.002點擊測試,達到如圖12所示的3條實時曲線圖。由圖12可以看出,當Ti的值太大或很小時,圖像出現超調,并且當Ti偏大時,電機開始有微弱的振蕩。最終Ti參數確定為Ti=0.001。

圖12 T i參數對電機轉速的影響示意圖
本文設計的無刷直流電機在線調試系統,具有強大的計算優勢和豐富的片上資源的DSP控制器,通過SCI與由VB6.0編寫的上位機系統進行通信,可實現對PID參數的在線調試,獲取最佳PID參數。基于便捷、穩定、可靠的原則,上下位機聯合控制實現BLDCM在線調試,實驗結果顯示調試效果良好。具體有益效果如下:1)BLDCM在線PID參數調試方
法操作簡便,可以實現工業現場和遠距離的BLDCM運行數據檢測與控制;2)BLDCM運行的相關參數可以在上位機上用曲線的形式顯示出來;3)因為運用了DSP作為控制器,控制反應速度更快,更容易實現及時調控;4)BLDCM運行歷史數據可以保存在電腦上,方便在故障情況下調出數據,分析解決問題。
[1]夏長亮,方紅偉.永磁無刷直流電機及其控制[J].電工技術學報,2012,27(3):25-34.
[2]吳強,韓震宇,李程.基于增量式PID算法的無刷直流電機PWM調速研究[J].機電工程技術,2013(3):63-65.
[3]張家禎,張廣明,梅磊,等.基于模糊PID控制的軸向磁通雙凸極電機調速系統[J].微特電機,2014,42(10):55-58,62.
[4]殷云華,鄭賓,鄭浩鑫.一種基于Matlab的無刷直流電機控制系統建模仿真方法[J].系統仿真學報,2008,20(2):293-298.
[5]王云良,王繼水,王敏其.無刷直流電機自適應模糊優化控制[J].電機與控制應用,2014(11):14-17,22.
[6]張煥琪.基于微粒群算法優化的模糊PID的無刷直流電機調速控制系統的研究[D].濟南:山東大學,2011.
[7]張昊.無刷直流電機智能調速控制系統仿真研究[D].大慶:東北石油大學,2013.
[8]張琛.直流無刷電動機原理及應用[M]:北京:北京航空航天大學出版社,2004:229-340.
[9]趙世廉.TMS320X240X DSP原理及應用開發指南[M].北京:北京航空航天大學出版社,2007:48-58.
[10]王艷,王毓順,王惠,等.基于DSP的無刷直流電機控制系統的設計[J].工業控制計算機,2015(10):135-136,152.