北京永光高特微電機有限公司
Beijing  YongGuang  Micro-Motor  Manufacturing  Co.,Ltd.
 
新聞詳情

實現無刷直流電動機多種運行模式的控制系統

來源:北京永光高特微電機有限公司作者:李利網址:http://www.fupoqq9.cn瀏覽數:164

1概述

隨著大規模集成芯片及計算機技術的發展,無刷直流電動機的控制從傳統的模擬控制向數字控制、計算機控制、遠程控制及網絡控制方向發展。近年來,發展迅猛的電機專用芯片DSP以其高速的數據處理能力,豐富的片內擴展外設為實現無刷直流電動機的計算機控制提供了必要條件。

   本文介紹的無刷直流電動機控制系統是以PC為上位機、DSP為下位機、無刷直流電動機為控制對象的控制系統。

DSP主要完成對電機的電流環、速度環的閉環控制及電機狀態參數數據采集功能。DSP將采集的數據再通過串口回送

到PC機以供存儲、分析及圖形化顯示。此外通過PC設置各種配置參數,發送各種命令,實現無刷直流電動機的多種運行模式。

2系統的結構和工作原理

   本系統主要由兩部分構成,一部分是由PC機組成的上位機系統,另一部分是由DSP作為主控單元構成的下位機系統。該無刷直流電動機微機控制系統主要實現開環調速、恒流控制運行和速度伺服三種運行模式。

   上位機與下位機通過RS232串行通訊。上位機軟件采用Windows界面風格,以編程語言Borland C++builder(簡稱BCB)設計。通過窗口操作,上位機可給下位機發送命令及設置參數。同時,將下位機反饋回來的各種電機運行參數

圖形化顯示。

   下位機以TMS320F240為核心。TMS320F240接收PC發出的指令信號,根據不同的指令信號來控制無刷直流電動機按相應的模式運轉。該系統采用六個MOSFEI管與六個反向并聯的二極管組成逆變器。通過六路PWM信號來控制

MOSFEI的通斷。采用霍爾傳感器檢測電機轉子位置。TMS320F240的CAP單元捕獲位置傳感器三個HALL片信號,得到當前電機轉子位置信號。DSP根據此信號,利用內部事件管理器EVA的全比較器輸出六路相應開關信號,經過驅動電路后,驅動六路。MOSFET,從而驅動無刷直流電動機。同時DSP根據HALL片的信號,計算得出無刷直流電動

機的轉速,通過串行口傳送到上位機存儲及顯示。電壓、電流檢測電路將電壓、電流等信號經過調理后送人DSP的ADC單元,繼而再通過串行總線送人PC。

   整個系統的結構框圖如圖l所示。

3上位機軟件

   基于windows的上位機軟件采用BCB設計,具有界面友好、操作方便等特點。BCB是基于C++語言的快速應用程序開發工具。

   在上位機軟件開發當中,需要用C++Builder中Victor

    圖1控制系統結構框圖

串口VCL控件來編寫串行通信子程序。該控件完全由C++代碼編寫,用控件一>Active=true打開串口,控件一>Read( )讀,控件一>Write( )寫,可以輕松設置串口號、波特率、奇偶校驗、數據位數、停止位等屬性。采用該控件后,大大簡化了串口軟件的編寫。

   PC機與DSP按一定的協議進行串口通訊,遵循一定的格式進行數據交換。PC機除了向DSP發送開環調速、恒流

控制、速度伺服這三種運行模式的命令之外,還有停機命令。另外,電機速轉通過測電機換向時間而算得,在這種方法下,電機轉速與電機極對數密切相關。系統默認的電機極對數為2,但是從系統的通用性出發,添加了設置電機極對數命令。為了編程方便,將PC機發送的命令組成如下的數據格式(其中xx代表為無效數據,但必須保證最高位為O)

命令字

參數1

參數2

參數3

其中命令字的最高位為1,其余參數的最高位為零。

   設置無刷直流電動機極對數命令的數據格式為:

0x81

極對數

xx

xx

開環調速命令的數據格式為(其中用兩個字節來表示占空比,這里用1—1000來表示,對應著占空比為0.001~1):

恒流控制命令的數據格式為(其中用兩個字節來表示電流,這里用l~1000來表示,對應著電流值的大小為0.01A~10A):

0x82

正反轉

占空比2

占空比1

速度伺服命令的數據格式為(其中用兩個字節來表示設定轉速,最高可設定轉速為127×127=16129,但事實上,可

以設定的最高轉速取決于無刷直流電動機本身):

0x83

正反轉

電流2

電流1

停機命令的數據格式為:

0x84

正反轉

轉速2

轉速1

例如,微機向DSP發送正轉速度伺服命令,其中給定速度為6 000 r/min,則微機向DSP發送的數據為0x84、0x01、

0x2f、0Mf。其中0x84代表速度伺服命令,0x01代表正轉,0x2f與0xlf共同代表轉速0x2f*127+0xlf=6000 r/min。

0x85

xx

xx

xx

需要注意的是,PC機不能連續地向DSP發送數據,因為PC機與DSP對串行通信的處理方法不同。PC由于有一個進程專門處理串行通信,且有很大的系統緩沖區,速度也很快,因而可以連續地處理數據。但是DSP則不同,它只有一個字節的硬件緩沖區,而且速度較PC來說較慢,如果波特率太高,就算DSP只接收數據,而不做其它任何處理,也有可能處理不過來。因此,PC機向DSP發送數據時,要在相鄰發送兩個數據之間加上延時,以便DSP及時地進行處理。在c++Builder中,可以用sleep()函數來實現延時,如sleep(10)則表示延時10ms。

   同時,DSP向PC反饋的電機參數有電壓、電流、轉速,每隔10ms,DSP通過串口向PC機發送這些參數。PC將存儲并處理這些參數,并將某些參數圖形化顯示。圖2為進行速度閉環時的軟件界面。

 圖2速度閉環的軟件界面

   圖2中的曲線為某航空飛舵機用稀土永磁無刷直流電動機速度閉環時所實測的轉速曲線,電機的額定電壓為28 V(DC),額定轉速為7 500 r/min。從圖上可以看出,速度穩定在6 000 r/min左右,實現了速度伺服功能。同時從圖上可以直觀地看到當時的電源電壓值為28 V,流過無刷直流電動機的電流值為0.33 A。

4下位機軟件    

   本系統的下位機軟件采用模塊化設計,包含如下幾個子程序:串口中斷接收上位機發送的命令模塊、定時中斷發送電機參數模塊、轉速測量中斷子程序模塊、電流環模塊、速度環模塊。電流環及速度環均采用傳統的PI控制算法。同時定義一個數組Command[4]用于存儲上位機的命令,定義一個標志變量ComChange—Flag用于指示命令是否發生變化,變量:Duty用于確定PWM占空比的大小,電機的極對數用變量p表示,給定速度用VRef表示,給定電流用IRef表示。為了確定轉速閉環的時間間隔,用SpeedTimeCounter變量記錄定時器1周期中斷的次數。定時器1的周期為50μs,在定時器1周期中斷子程序中,每發生一次中斷,SpeedqTimeCounter加1。但在轉速閉環子程序中,一旦發現SpeedTimeCounter大于某一數值N,則進行轉速閉環,同時SpeedTimeCounter清零。通過改變N的大小,即可

控制轉速閉環的時間周期。

   首先,DSP進行系統初始化,用于設置看門狗、時鐘及存儲器分配。然后進行外設初始化,設定產生PWM頻率為20kHz,也即周期為50μs。最后進入程序的主體部分,即功能掃描。Command[O]的值通過串口接收中斷而獲得。根據不同的Command[0]值,進入不同分支。以Command[0]等于0x84的值為例:此時進人速度伺服功能分支,主要完成元刷直流電動機的電流轉速雙閉環控制。從Command數組中提取給定速度VRef。如果速度閉環周期時間到,則調用速度環子程序,給出內環電流環的參考電流值。然后調用電流閉環子程序,給出PWM波形的占空比信號Duty。最后檢查Coln-ChangeFlag是否為1,若不是,則一直進行轉速電流雙閉環程序。否則,則開始新一輪的功能掃描。整個程序的流程圖如圖3所示。

圖3下位機軟件程序流程圖

聯系方式
 
 
 工作時間
周一至周五 :8:00-17:00
 聯系方式
于海騰:010-83971821
姜宇:010-83510840
周圍:010-61402950
免费人成A大片在线观看| 99久久精品免费看国产| 一本久道久久综合丁香五月| 欧洲熟妇色XXXX欧美老妇多毛| 中文字幕精品无码亚洲资源网| 亚洲精品偷拍区偷拍无码| 精品国产一区二区三区久久狼|