張松松,盧 剛,李聲晉,周 勇
(西北工業(yè)大學(xué),陜西西安710072)
無刷直流電動機(jī)因其優(yōu)越的性能引起了人們的足夠重視,在各個領(lǐng)域得到了廣泛應(yīng)用。對控制要求低的場合一般采用基于霍爾位置傳感器的無刷直流電動機(jī),對控制要求比較高的場合則采用基于旋轉(zhuǎn)變壓器(以下簡稱旋變)的無刷直流電動機(jī)。本文的控制對象是基于旋變式的無刷直流電動機(jī),其控制芯片是TI公司的TMS320F28335。該芯片是32位浮點(diǎn)DSP控制器,其性能較好,有多篇論文對其進(jìn)行了詳細(xì)介紹,不再累述。本文主要是通過研究無刷直流電動機(jī)控制器與上位機(jī)的數(shù)據(jù)通訊,在軟件上來實現(xiàn)AD速度指令范圍的調(diào)整,研究設(shè)計了上位機(jī)監(jiān)控平臺和與之相對應(yīng)的下位機(jī)接口程序,實驗結(jié)果驗證了編寫的上位機(jī)監(jiān)控平臺和電機(jī)程序符合本文的設(shè)計要求。
系統(tǒng)分為硬件和軟件兩部分,硬件是由我們設(shè)計研發(fā)的基于TMS320F28335控制的無刷直流電動機(jī)控制器,軟件部分包括編寫的上位機(jī)監(jiān)控界面程序和與之相對應(yīng)的下位機(jī)程序。限于篇幅,本文不展開介紹硬件設(shè)計的原理,著重介紹上位機(jī)監(jiān)控界面的AD速度指令范圍調(diào)整功能的實現(xiàn)。
硬件部分是整個實驗的基礎(chǔ),其硬件框架如圖1所示。
圖1 硬件電路原理框架圖
如圖1所示,無刷直流電動機(jī)控制器以DSP控制芯片TMS320F28335為控制核心,通過電路板上的激勵電路給電機(jī)激勵信號,旋變檢測到轉(zhuǎn)子的角位置信息-正余弦信號;正余弦信號經(jīng)差分電路處理后輸入至旋變信號解算芯片,由其輸出的轉(zhuǎn)子角位置數(shù)字信號經(jīng)鎖存器輸入到DSP;鎖存器工作時所需要的時鐘控制信號由解算芯片控制,輸入使能是由DSP在程序上實現(xiàn)的。DSP根據(jù)轉(zhuǎn)子的角位置和由外界給定的或者程序中默認(rèn)的速度指令來控制SPWM信號輸出,SPWM控制信號需經(jīng)過電流緩沖芯片的電流緩沖輸出到MOS功率管的驅(qū)動控制芯片,從而控制電機(jī)轉(zhuǎn)動。DSP在程序上不僅實現(xiàn)了對SPWM控制信號的輸出,同時還通過輸出控制信號到功率模塊驅(qū)動控制芯片控制其是否工作,這兩個環(huán)節(jié)在程序上控制電機(jī)是否轉(zhuǎn)動。當(dāng)電機(jī)旋轉(zhuǎn)發(fā)生故障時,功率模塊驅(qū)動控制芯片會通過電流緩沖芯片向DSP發(fā)送FAULT故障信號,以確保電機(jī)及控制器的安全。因需要電機(jī)在不同的轉(zhuǎn)速下轉(zhuǎn)動,因此需要外界給定一個可以調(diào)節(jié)的指令,本文采取的是增加調(diào)速旋鈕來手動調(diào)節(jié)電機(jī)轉(zhuǎn)速,由AD指令調(diào)速模塊來實現(xiàn)的。
因RS422信號抗干擾能力比較強(qiáng),傳輸距離遠(yuǎn),因此與上位機(jī)進(jìn)行SCI數(shù)據(jù)通訊時控制器輸出的是RS422信號可實現(xiàn)遠(yuǎn)程監(jiān)控。計算機(jī)(上位機(jī))串口接收的為RS232信號,因此需要在計算機(jī)與控制器之間接RS422-RS232轉(zhuǎn)換器。除SCI通訊之外,控制器還可以進(jìn)行SPI通訊和CAN通訊,本文并未涉及。
軟件部分的功能主要是實現(xiàn)AD速度指令范圍調(diào)整、旋變零點(diǎn)調(diào)整、上位機(jī)調(diào)速、AD調(diào)速、母線電壓監(jiān)控、電機(jī)三相電流監(jiān)控和旋變信號觀察。軟件框架及操作流程如圖2所示,限于篇幅,本文僅介紹AD速度指令范圍調(diào)整功能,交付用戶之前,需將其他程序屏蔽只保留AD調(diào)速程序,此部分將在后續(xù)的篇幅中介紹,在此不再詳述。
圖2 軟件原理框架及操作流程
上位機(jī)與下位機(jī)的數(shù)據(jù)通訊分為上位機(jī)向下發(fā)送和由下位機(jī)向上位機(jī)發(fā)送兩部分,其原理分別如圖3(a)、圖3(b)所示。上位機(jī)與下位機(jī)之間的數(shù)據(jù)通訊是以數(shù)據(jù)包的形式發(fā)送和接收的,因發(fā)送的數(shù)據(jù)類型不同,需要人為定義一個通訊協(xié)議。一個數(shù)據(jù)包括五部分:包頭、指令字符、高8位二進(jìn)制數(shù)據(jù)、低8位二進(jìn)制數(shù)據(jù)和CRC校驗碼。包頭是接收數(shù)據(jù)包的標(biāo)志;指令字符是將發(fā)送的16位二進(jìn)制數(shù)據(jù)分類,由此部分定義數(shù)據(jù)通訊協(xié)議;CRC校驗碼是為了防止發(fā)送數(shù)據(jù)錯誤。在上位機(jī)向下發(fā)送時一定要加延時,否則會出現(xiàn)發(fā)送紊亂,上位機(jī)顯示屏的數(shù)據(jù)顯示是通過畫圖定時器中斷來畫圖的。下位機(jī)向上位機(jī)發(fā)送時要注意設(shè)定的定時器中斷的時間,產(chǎn)生一次定時中斷并不是只發(fā)送個數(shù)據(jù)包,要將中斷時間設(shè)置的稍微長一點(diǎn),以防止卡死在定時器中斷函數(shù)中。
圖3 上位機(jī)與下位機(jī)的數(shù)據(jù)通訊
在此之前曾用LabVIEW 8.6編寫過上位機(jī)界面程序,但因掌握的技術(shù)不是很成熟,編寫的上位機(jī)界面程序在運(yùn)行時所占內(nèi)存比較大,且在串口通訊部分不是很理想,因此本文的上位機(jī)界面程序采用CVI8.5 編寫。
CVI8.5的串口通訊設(shè)置是通過界面和C語言程序來實現(xiàn)的,程序流程如圖4所示。
圖4 串口通訊設(shè)置程序流程
在串口設(shè)置中,最重要的部分是串口參數(shù)設(shè)置和安裝回調(diào)函數(shù)COM_rec這兩部分。串口參數(shù)設(shè)置需要與下位機(jī)的串口設(shè)置一致;安裝回調(diào)函數(shù)的作用是讓上位機(jī)在接收到數(shù)據(jù)包的包頭后產(chǎn)生中斷,進(jìn)入函數(shù)COM_rec進(jìn)行解包分類處理,其原理如圖5所示。
圖5 回調(diào)函數(shù)COM_rec程序流程
在編寫回調(diào)函數(shù)時要注意存放接收數(shù)據(jù)的數(shù)組COM_data的大小,如果太小則會使上位機(jī)卡死,因此盡量取得大一些。在解包完成后注意將高8位與低8位這兩部分合成,順序不能顛倒。解包完成后需要對其進(jìn)行分類處理,此部分是依照由下位機(jī)向上位機(jī)發(fā)送數(shù)據(jù)的通訊協(xié)議表來編寫,通訊協(xié)議表是根據(jù)需要編寫的,限于篇幅,不予介紹。
用戶通過調(diào)速旋鈕實際上是通過調(diào)整電位計來調(diào)速,即電機(jī)控制中常見的AD指令調(diào)速。AD調(diào)速電路將電位計上的電壓等比例轉(zhuǎn)換到DSP芯片可接受的范圍,DSP通過AD模塊采集電壓,將其轉(zhuǎn)換為AD數(shù)據(jù),因AD調(diào)速電路中使用的元器件因制造工藝問題會有一定的偏差,導(dǎo)致采集的值與理論上計算值有偏差。因此,此部分功能是調(diào)整AD速度指令的范圍,使得速度指令的零點(diǎn)(速度指令為正則正轉(zhuǎn),為負(fù)則反轉(zhuǎn),為零則停轉(zhuǎn))與調(diào)速旋鈕的中點(diǎn)相對應(yīng)。當(dāng)速度指令最大值與最小值的絕對值的差在10以內(nèi),則認(rèn)定速度指令的零點(diǎn)與旋鈕的中點(diǎn)對齊。AD速度指令范圍調(diào)整原理流程如圖6所示。
圖6 AD速度指令范圍調(diào)整程序流程
電機(jī)控制器程序是由C語言編寫,通過SEED-XDS560PLUS程序下載仿真器將程序燒入TMS320F28335控制芯片中。本文主要研究設(shè)計了數(shù)據(jù)上傳和接收程序、AD速度指令范圍調(diào)整程序。數(shù)據(jù)上傳和接收程序原理請見上位機(jī)與下位機(jī)數(shù)據(jù)通訊原理部分,此處不在詳述。除本文所研究的程序之外,完整的電機(jī)控制程序還包括系統(tǒng)配置程序、讀取AD程序、旋變信號解算程序、電機(jī)極對數(shù)選擇程序、SPWM波產(chǎn)生程序和測速程序等,有些程序是在原有程序技術(shù)的基礎(chǔ)上移植過來的,稍有改動,本文不再累述,此處只簡單介紹下位機(jī)AD速度指令范圍調(diào)整程序的原理。
如圖7所示,全局變量speed_zhiling就是要調(diào)整的速度指令,改變其值可以改變SPWM幅值,從而控制輸出正弦波。程序可分為三部分,前面是針對電機(jī)轉(zhuǎn)動的情況下的處理,即將速度緩慢降為零;中間是指令范圍調(diào)整主體部分;后面是調(diào)整結(jié)束處理部分。AD速度指令范圍調(diào)整是在上位機(jī)的配合下完成的,因此整個程序由兩個函數(shù)組成,前兩部分放在一個函數(shù)中,屬于調(diào)整函數(shù);后面的部分單獨(dú)一個函數(shù),屬于結(jié)束處理函數(shù)。在調(diào)試時,旋鈕一定要按圖2所述的操作辦法重復(fù)幾次。由AD模塊讀取的值一定要經(jīng)過數(shù)字濾波處理,否則會出現(xiàn)帶毛刺的波形,造成測試不準(zhǔn)確。
圖7 電機(jī)AD速度指令范圍調(diào)整程序流程
通過SEED-XDS560PLUS程序下載仿真器將程序燒入TMS320F28335控制芯片,斷電之后,斷開與仿真連接器的連接,將其與計算機(jī)相連,給控制器上電,運(yùn)行上位機(jī)。
對不同的旋鈕,AD調(diào)整參數(shù)是不同的。即使是同一個旋鈕在同一位置時讀取的AD值也會有一點(diǎn)偏差,這跟電位計的制造精度有關(guān),但在實驗的允許誤差之內(nèi)。在實驗的過程中調(diào)整的AD速度指令的最大與最小值的絕對值的差值完全可以在10以內(nèi),實驗結(jié)果如圖8所示。
圖8 AD參數(shù)為2 222時調(diào)整的實驗結(jié)果
圖8的實驗結(jié)果表明了本文不僅實現(xiàn)了上位機(jī)與電機(jī)控制器的數(shù)據(jù)通信,同時還完成了AD速度指令范圍調(diào)整功能。
[1] 王建新,楊世風(fēng),隋美麗.LabWindows/CVI測試技術(shù)及工程應(yīng)用[M].北京:化學(xué)工業(yè)出版社,2006.
[2] Texas Instrument Incorporated.TMS320C28X 系列 DSP的 CPU與外設(shè)(上)、(下)[M].張衛(wèi)寧,譯.北京:清華大學(xué)出版社,2004.
[3] 宗波,蔣曉春,王軒.DSP芯片SCI模塊在電力電子控制裝置中的應(yīng)用[J].中國科技信息,2010(3):108-110.
[4] 訾蘭.TMS320F28335 SCI基于 RS-422標(biāo)準(zhǔn)的應(yīng)用[J].導(dǎo)航,2010(2):55-58.