張松松,盧 剛,李聲晉,周 勇
(西北工業大學,陜西西安710072)
無刷直流電動機因其優越的性能引起了人們的足夠重視,在各個領域得到了廣泛應用。對控制要求低的場合一般采用基于霍爾位置傳感器的無刷直流電動機,對控制要求比較高的場合則采用基于旋轉變壓器(以下簡稱旋變)的無刷直流電動機。本文的控制對象是基于旋變式的無刷直流電動機,其控制芯片是TI公司的TMS320F28335。該芯片是32位浮點DSP控制器,其性能較好,有多篇論文對其進行了詳細介紹,不再累述。本文主要是通過研究無刷直流電動機控制器與上位機的數據通訊,在軟件上來實現AD速度指令范圍的調整,研究設計了上位機監控平臺和與之相對應的下位機接口程序,實驗結果驗證了編寫的上位機監控平臺和電機程序符合本文的設計要求。
系統分為硬件和軟件兩部分,硬件是由我們設計研發的基于TMS320F28335控制的無刷直流電動機控制器,軟件部分包括編寫的上位機監控界面程序和與之相對應的下位機程序。限于篇幅,本文不展開介紹硬件設計的原理,著重介紹上位機監控界面的AD速度指令范圍調整功能的實現。
硬件部分是整個實驗的基礎,其硬件框架如圖1所示。

圖1 硬件電路原理框架圖
如圖1所示,無刷直流電動機控制器以DSP控制芯片TMS320F28335為控制核心,通過電路板上的激勵電路給電機激勵信號,旋變檢測到轉子的角位置信息-正余弦信號;正余弦信號經差分電路處理后輸入至旋變信號解算芯片,由其輸出的轉子角位置數字信號經鎖存器輸入到DSP;鎖存器工作時所需要的時鐘控制信號由解算芯片控制,輸入使能是由DSP在程序上實現的。DSP根據轉子的角位置和由外界給定的或者程序中默認的速度指令來控制SPWM信號輸出,SPWM控制信號需經過電流緩沖芯片的電流緩沖輸出到MOS功率管的驅動控制芯片,從而控制電機轉動。DSP在程序上不僅實現了對SPWM控制信號的輸出,同時還通過輸出控制信號到功率模塊驅動控制芯片控制其是否工作,這兩個環節在程序上控制電機是否轉動。當電機旋轉發生故障時,功率模塊驅動控制芯片會通過電流緩沖芯片向DSP發送FAULT故障信號,以確保電機及控制器的安全。因需要電機在不同的轉速下轉動,因此需要外界給定一個可以調節的指令,本文采取的是增加調速旋鈕來手動調節電機轉速,由AD指令調速模塊來實現的。
因RS422信號抗干擾能力比較強,傳輸距離遠,因此與上位機進行SCI數據通訊時控制器輸出的是RS422信號可實現遠程監控。計算機(上位機)串口接收的為RS232信號,因此需要在計算機與控制器之間接RS422-RS232轉換器。除SCI通訊之外,控制器還可以進行SPI通訊和CAN通訊,本文并未涉及。
軟件部分的功能主要是實現AD速度指令范圍調整、旋變零點調整、上位機調速、AD調速、母線電壓監控、電機三相電流監控和旋變信號觀察。軟件框架及操作流程如圖2所示,限于篇幅,本文僅介紹AD速度指令范圍調整功能,交付用戶之前,需將其他程序屏蔽只保留AD調速程序,此部分將在后續的篇幅中介紹,在此不再詳述。

圖2 軟件原理框架及操作流程
上位機與下位機的數據通訊分為上位機向下發送和由下位機向上位機發送兩部分,其原理分別如圖3(a)、圖3(b)所示。上位機與下位機之間的數據通訊是以數據包的形式發送和接收的,因發送的數據類型不同,需要人為定義一個通訊協議。一個數據包括五部分:包頭、指令字符、高8位二進制數據、低8位二進制數據和CRC校驗碼。包頭是接收數據包的標志;指令字符是將發送的16位二進制數據分類,由此部分定義數據通訊協議;CRC校驗碼是為了防止發送數據錯誤。在上位機向下發送時一定要加延時,否則會出現發送紊亂,上位機顯示屏的數據顯示是通過畫圖定時器中斷來畫圖的。下位機向上位機發送時要注意設定的定時器中斷的時間,產生一次定時中斷并不是只發送個數據包,要將中斷時間設置的稍微長一點,以防止卡死在定時器中斷函數中。

圖3 上位機與下位機的數據通訊
在此之前曾用LabVIEW 8.6編寫過上位機界面程序,但因掌握的技術不是很成熟,編寫的上位機界面程序在運行時所占內存比較大,且在串口通訊部分不是很理想,因此本文的上位機界面程序采用CVI8.5 編寫。
CVI8.5的串口通訊設置是通過界面和C語言程序來實現的,程序流程如圖4所示。

圖4 串口通訊設置程序流程
在串口設置中,最重要的部分是串口參數設置和安裝回調函數COM_rec這兩部分。串口參數設置需要與下位機的串口設置一致;安裝回調函數的作用是讓上位機在接收到數據包的包頭后產生中斷,進入函數COM_rec進行解包分類處理,其原理如圖5所示。

圖5 回調函數COM_rec程序流程
在編寫回調函數時要注意存放接收數據的數組COM_data的大小,如果太小則會使上位機卡死,因此盡量取得大一些。在解包完成后注意將高8位與低8位這兩部分合成,順序不能顛倒。解包完成后需要對其進行分類處理,此部分是依照由下位機向上位機發送數據的通訊協議表來編寫,通訊協議表是根據需要編寫的,限于篇幅,不予介紹。
用戶通過調速旋鈕實際上是通過調整電位計來調速,即電機控制中常見的AD指令調速。AD調速電路將電位計上的電壓等比例轉換到DSP芯片可接受的范圍,DSP通過AD模塊采集電壓,將其轉換為AD數據,因AD調速電路中使用的元器件因制造工藝問題會有一定的偏差,導致采集的值與理論上計算值有偏差。因此,此部分功能是調整AD速度指令的范圍,使得速度指令的零點(速度指令為正則正轉,為負則反轉,為零則停轉)與調速旋鈕的中點相對應。當速度指令最大值與最小值的絕對值的差在10以內,則認定速度指令的零點與旋鈕的中點對齊。AD速度指令范圍調整原理流程如圖6所示。

圖6 AD速度指令范圍調整程序流程
電機控制器程序是由C語言編寫,通過SEED-XDS560PLUS程序下載仿真器將程序燒入TMS320F28335控制芯片中。本文主要研究設計了數據上傳和接收程序、AD速度指令范圍調整程序。數據上傳和接收程序原理請見上位機與下位機數據通訊原理部分,此處不在詳述。除本文所研究的程序之外,完整的電機控制程序還包括系統配置程序、讀取AD程序、旋變信號解算程序、電機極對數選擇程序、SPWM波產生程序和測速程序等,有些程序是在原有程序技術的基礎上移植過來的,稍有改動,本文不再累述,此處只簡單介紹下位機AD速度指令范圍調整程序的原理。
如圖7所示,全局變量speed_zhiling就是要調整的速度指令,改變其值可以改變SPWM幅值,從而控制輸出正弦波。程序可分為三部分,前面是針對電機轉動的情況下的處理,即將速度緩慢降為零;中間是指令范圍調整主體部分;后面是調整結束處理部分。AD速度指令范圍調整是在上位機的配合下完成的,因此整個程序由兩個函數組成,前兩部分放在一個函數中,屬于調整函數;后面的部分單獨一個函數,屬于結束處理函數。在調試時,旋鈕一定要按圖2所述的操作辦法重復幾次。由AD模塊讀取的值一定要經過數字濾波處理,否則會出現帶毛刺的波形,造成測試不準確。

圖7 電機AD速度指令范圍調整程序流程
通過SEED-XDS560PLUS程序下載仿真器將程序燒入TMS320F28335控制芯片,斷電之后,斷開與仿真連接器的連接,將其與計算機相連,給控制器上電,運行上位機。
對不同的旋鈕,AD調整參數是不同的。即使是同一個旋鈕在同一位置時讀取的AD值也會有一點偏差,這跟電位計的制造精度有關,但在實驗的允許誤差之內。在實驗的過程中調整的AD速度指令的最大與最小值的絕對值的差值完全可以在10以內,實驗結果如圖8所示。

圖8 AD參數為2 222時調整的實驗結果
圖8的實驗結果表明了本文不僅實現了上位機與電機控制器的數據通信,同時還完成了AD速度指令范圍調整功能。
[1] 王建新,楊世風,隋美麗.LabWindows/CVI測試技術及工程應用[M].北京:化學工業出版社,2006.
[2] Texas Instrument Incorporated.TMS320C28X 系列 DSP的 CPU與外設(上)、(下)[M].張衛寧,譯.北京:清華大學出版社,2004.
[3] 宗波,蔣曉春,王軒.DSP芯片SCI模塊在電力電子控制裝置中的應用[J].中國科技信息,2010(3):108-110.
[4] 訾蘭.TMS320F28335 SCI基于 RS-422標準的應用[J].導航,2010(2):55-58.