基于PSoC3芯片的無位置傳感器BLDC電機(jī)控制
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要
本文介紹基于新一代可編程片上系統(tǒng)芯片PSoC3(CY8C3866AXI-040)的無位置傳感器無刷電機(jī)(BLDC)控制方案 。PSoC3 片內(nèi)豐富的資源減少了BLDC無傳感器控制對(duì)外部器件的依賴。借助于片內(nèi)模擬多路選擇器,一個(gè)比較器模塊就能采樣三路反電勢(shì)信號(hào)。而比較器的時(shí)鐘同步功能可以在PWM高電平時(shí)刻對(duì)反電勢(shì)信號(hào)進(jìn)行采樣,并將之與母線電壓做比較以獲取反電勢(shì)過零點(diǎn)。此外,該芯片在處理電機(jī)控制的同時(shí)還可以處理電容感應(yīng)按鍵掃描以及與上位機(jī)通訊等任務(wù)。
Keyword: BLDC sensor-less control, Programmable system on chip
關(guān)鍵詞:無刷直流電機(jī) 無位置傳感器 可編程片上系統(tǒng)
引言
相比傳統(tǒng)的有刷直流電機(jī)而言,無刷直流電機(jī)(BLDC)用電控制裝置取代了電刷和換向器,提高了電機(jī)的可靠性,減小了電機(jī)的噪音,并且方便了電機(jī)的維護(hù),正在許多領(lǐng)域獲得廣泛應(yīng)用。無刷直流電機(jī)的換相是借助于安裝在電機(jī)定子上的位置傳感器(光學(xué),磁性等元件)實(shí)現(xiàn)的。常用的三相六狀態(tài)120度控制方式保證在任何時(shí)刻有兩項(xiàng)繞組導(dǎo)通,另外一項(xiàng)繞組不導(dǎo)通。當(dāng)轉(zhuǎn)子轉(zhuǎn)到一定位置時(shí),位置傳感器輸出信號(hào)發(fā)生變化提示控制器進(jìn)行換相。 其換相邏輯如圖1所示:
圖1 帶霍爾傳感器的無刷直流電機(jī)換相狀態(tài)圖
然而,位置傳感器的使用帶來一些缺點(diǎn):增加電機(jī)的成本和體積,增加了內(nèi)部連線降低了系統(tǒng)的抗干擾性, 在特定場(chǎng)合(高溫,強(qiáng)震動(dòng),高腐蝕性)容易實(shí)效等。因而,近些年來,隨著控制芯片的性能的日益強(qiáng)大,無傳感器的BLDC電機(jī)控制逐漸成為研究熱點(diǎn)。
無傳感器的轉(zhuǎn)子位置檢測(cè)
無刷直流電機(jī)的無位置傳感器控制的關(guān)鍵技術(shù)在于轉(zhuǎn)子位置信息的獲取及估算方法。無位置傳感器檢測(cè)方法主要包括反電動(dòng)勢(shì)過零點(diǎn)檢測(cè)法、反電動(dòng)勢(shì)三次諧波積分檢測(cè)法、續(xù)流二極管檢測(cè)法、反電動(dòng)勢(shì)積分法、磁鏈估計(jì)法、擴(kuò)展卡爾曼濾波法等。本文所采用的位置檢測(cè)方法為經(jīng)典的反電勢(shì)過零點(diǎn)檢測(cè)法。其原理如下:
圖2 無刷電機(jī)驅(qū)動(dòng)電路拓?fù)?br />圖2為典型的三相星型連接的無刷電機(jī)驅(qū)動(dòng)電路拓?fù)?。Va, Vb,Vc為三相端電壓,Vn為中性點(diǎn)電壓。假定C相為非通電相,則根據(jù)電機(jī)方程有:
(1)
其中E為反電勢(shì),I為相電流,L為電感。
A相電流與B相電流大小相等,流向相反。
基于式(8), 采樣端電壓可以推算出Ec的過零點(diǎn)。而種算法又有如下的細(xì)分算法:
1) 直接應(yīng)用式(8),同時(shí)用ADC去采樣三相電壓。
2)在PWM 輸出信號(hào)為OFF時(shí)采樣非通電相電壓,將之與零電壓比較。
因?yàn)樵诖藭r(shí),由式(8)得到:
忽略二極管和功率管的保護(hù)壓降,Vc的過零點(diǎn)就是Ec的過零點(diǎn)。
3) 在PWM 輸出信號(hào)為OFF時(shí)采樣非通電相電壓,將之與母線電壓的一半比較。
在此時(shí),
由式(8)得到:
所以,忽略二極管和功率管的保護(hù)壓降, Ec的過零點(diǎn)就是Vc與母線電壓一半比較翻轉(zhuǎn)的點(diǎn)。
綜合上述算法,1)的算法簡(jiǎn)單明了,但對(duì)ADC模塊的要求較高,要求同時(shí)采多路電壓。并且需要ADC的采樣與PWM同步以消除PWM斬波所帶來的噪聲。2)的算法在低速時(shí)比較有優(yōu)勢(shì),因?yàn)榈退贂r(shí)反電勢(shì)信號(hào)比較弱,這種算法的采樣區(qū)域恰為非通電相端電壓過零區(qū)域,無需對(duì)端電壓信號(hào)做縮小處理。但當(dāng)PWM 的占空比比較高時(shí),由于可供采樣的時(shí)間點(diǎn)太短,容易造成采樣失敗,所以不太適合全速全載運(yùn)行的情形。 而3)種算法則具有較寬的調(diào)速范圍。 本文的實(shí)現(xiàn)方法就是采用了第三種方法,在PWM為ON的時(shí)候去比較非通電相電壓與半母線電壓。
PSoC3 芯片介紹
PSoC 是世界獨(dú)一無二的可編程嵌入式片上系統(tǒng)。它是在一片芯片上集成了可編程模擬和數(shù)字外設(shè)功能、內(nèi)存和一個(gè)微控制器。賽普拉斯的可擴(kuò)展PSoC 平臺(tái)可根據(jù)設(shè)計(jì)需要進(jìn)行調(diào)整,因此不必頻繁地更改設(shè)計(jì)來適應(yīng)不同的微控制器體系架構(gòu)。
PSoC1是第一代PSoC芯片,它的特點(diǎn)是借助經(jīng)過成本優(yōu)化的8位M8C CPU子系統(tǒng),獲得優(yōu)異性能、可編程性和靈活性。易用的設(shè)計(jì)軟件無需編寫很多代碼或根本不需要編寫代碼,從而縮短了創(chuàng)建嵌入式解決方案的時(shí)間。
PSoC3在PSoC1的基礎(chǔ)上,賽普拉斯新推出地一款新架構(gòu),高集成化芯片。它增加了新設(shè)計(jì)的高精度、可編程模擬模塊,單循環(huán)、通道式8位8051內(nèi)核和可配置的高性能數(shù)字系統(tǒng)。由于具有一個(gè)高性能8位8051RISC內(nèi)核(提供高達(dá)67MHz和33MIPS),PSoC3體系架構(gòu)可以比標(biāo)準(zhǔn)8051運(yùn)行速度快10倍之多。同時(shí),片內(nèi)還配置了直接內(nèi)存訪問接口(DMA),加速了數(shù)據(jù)在片內(nèi)不同外設(shè)/內(nèi)存之間的傳輸,減少了CPU的開銷。
CY8C3866AXI-040 是PSoC3 芯片家族中的一員,它的系統(tǒng)架構(gòu)如圖5所示:
圖5 CY8C3866AXI-040的系統(tǒng)架構(gòu)
圖的左邊部分為系統(tǒng)資源,包括CPU,DMA, 中斷控制器,內(nèi)存,電源管理器,內(nèi)置的I2C/USB等通訊模塊以及調(diào)試接口。中間部分為片上數(shù)字系統(tǒng)和模擬系統(tǒng)。數(shù)字系統(tǒng)包括24個(gè)可編程的通用數(shù)字模塊(UDB)和固化的計(jì)數(shù)器,PWM發(fā)生器等。而模擬系統(tǒng)包括ADC模塊,DAC模塊,比較器,運(yùn)算放大器以及通用的可編程模擬模塊。右邊部分為IO 的端口。IO口可以通過接口連接到任意的數(shù)字/模塊單元上。
在本設(shè)計(jì)中,重點(diǎn)用到的模塊包括:比較器,UDB模塊,DAC模塊等。
電機(jī)反電勢(shì)過零點(diǎn)的監(jiān)測(cè)
利用CY8C3866AXI-040的片上資源,無刷電機(jī)的過零點(diǎn)監(jiān)測(cè)無需借助任何外部芯片。監(jiān)測(cè)的原理前面闡述過,即在PWM 輸出信號(hào)為OFF時(shí)采樣非通電相電壓,將之與母線電壓的一半比較。 此方案中PWM調(diào)制模式為對(duì)上側(cè)開關(guān)管進(jìn)行PWM調(diào)制,對(duì)下側(cè)橋臂采取恒通的方式進(jìn)行驅(qū)動(dòng)。電機(jī)為24V,30W的低壓無刷電機(jī)。
圖6為檢測(cè)反電勢(shì)過零所配置的片內(nèi)資源框圖:
圖6 反電勢(shì)過零點(diǎn)檢測(cè)框圖
A、B、C代表三相端電壓輸入。Half Vbus 為半母線電壓。 片內(nèi)的模擬信號(hào)選擇器(Analog Mux)會(huì)根據(jù)換相狀態(tài)動(dòng)態(tài)的切換所要采樣的非通電相。片內(nèi)的比較器具有時(shí)鐘同步觸發(fā)的功能。該功能使得比較器可以在時(shí)鐘信號(hào)的上升沿采用輸入端信號(hào)并作比較操作。該設(shè)計(jì)中的時(shí)鐘信號(hào)來自于數(shù)字模塊中的PWM模塊的輸出。 這樣,比較器可以在PWM為高電平的時(shí)刻將端電壓與半母線電壓作比較。比較器的翻轉(zhuǎn)時(shí)刻即是反電勢(shì)過零點(diǎn)。而比較器的輸出翻轉(zhuǎn)時(shí),可以觸發(fā)中斷,通知CPU作相應(yīng)的處理。 此實(shí)現(xiàn)方法原理簡(jiǎn)單,無需外部多路選擇器/鎖存器/比較器。
另外,片上的比較器還具有滯回比較的功能。即比較器輸出器自上而下翻轉(zhuǎn)與自上而下翻轉(zhuǎn)的電壓并不完全一致,而是有一個(gè)10mV左右的滯回電壓。此功能可以避免比較器輸出受毛刺影響而被誤觸發(fā),特別適用于夾帶許多噪音的反電勢(shì)信號(hào)過零檢測(cè)應(yīng)用。 圖7就是實(shí)驗(yàn)波形: 黃色波形為一相的端電壓波形,綠色部分為比較器輸出的方波波形。
圖7 反電勢(shì)過零點(diǎn)檢測(cè)實(shí)驗(yàn)波形
圖8為反電勢(shì)監(jiān)測(cè)部分的在PSoC Creator IDE中的原理圖設(shè)計(jì)。PSoC Creator 是賽普拉斯半導(dǎo)體為PSoC3 芯片打造的開發(fā)環(huán)境。 PSoC Creator 提供了原理圖開發(fā)界面,用戶可以將片上的模塊以原理圖的方式進(jìn)行互聯(lián)。
圖8 Creator中反電勢(shì)過零點(diǎn)檢測(cè)的原理圖設(shè)計(jì)
BLDC的換相狀態(tài)機(jī)
在圖1中,三相六狀態(tài)的無刷直流電機(jī)的換相過程通常由查表或者狀態(tài)機(jī)來實(shí)現(xiàn)。在通常的MCU平臺(tái)中,這部分的工作由軟件來完成。而在CY8C3866AXI-040片內(nèi),換相邏輯切換是由硬件來來完成的。 這都?xì)w功于其內(nèi)部數(shù)字系統(tǒng)中的UDB模塊。
UDB模塊的架構(gòu)如圖9所示:
圖9 UDB模塊的內(nèi)部架構(gòu)
一個(gè)UDB模塊由2個(gè)小型的12C4 的PLD模塊,一個(gè)時(shí)鐘和狀態(tài)控制單元,一個(gè)微型數(shù)據(jù)處理器(Datapath)組成。UDB模塊可以動(dòng)態(tài)配置成為計(jì)數(shù)器,SPI,UART, 查找表,PWM發(fā)生器等數(shù)字器件。而UDB模塊相互之間可以互聯(lián)成為更為復(fù)雜的數(shù)字系統(tǒng)。CY8C3866AXI-040片上有24個(gè)UDB模塊。
圖10為無刷電機(jī)換相狀態(tài)的片內(nèi)實(shí)現(xiàn):
圖10 Creator中換相狀態(tài)控制的原理圖設(shè)計(jì)
PWM_1 為UDB模塊配置而成的8 位PWM發(fā)生器。Sector_1 為控制寄存器,控制字包含了無刷電機(jī)六個(gè)狀態(tài)信息。LUT_1 為一個(gè)4*6的狀態(tài)表。它的輸入端為控制字和PWM輸出,輸出端為6路驅(qū)動(dòng)信號(hào)。狀態(tài)表中的配置如圖11所示:
圖11 LUT中換相真值表的配置
此表實(shí)現(xiàn)的功能就是根據(jù)控制字(即電機(jī)位置扇區(qū)信息),將PWM調(diào)制信號(hào)按調(diào)制模式分配到6個(gè)驅(qū)動(dòng)管腳上上。 這個(gè)功能減少了CPU的開銷。特別地,如改變電機(jī)的PWM調(diào)制模式,舉個(gè)例子,將單管PWM模式改為雙管PWM模式,那么只要改變這個(gè)狀態(tài)表的配置就可以了。
對(duì)電機(jī)速度的計(jì)算,也可以通過由UDB配置的計(jì)數(shù)器來實(shí)現(xiàn)。計(jì)數(shù)器的捕獲輸入信號(hào)即來自于Sector_1控制寄存器的控制字。每當(dāng)電機(jī)換相循環(huán)完成一次,即電機(jī)旋轉(zhuǎn)一個(gè)電氣周期,計(jì)數(shù)器的值就置入緩沖區(qū)而當(dāng)前值被重值。
過流保護(hù)
電機(jī)的過流保護(hù)可以保護(hù)電路板及電機(jī)免于大電流造成的發(fā)熱和損壞。過流保護(hù)的功能要求快速、準(zhǔn)確、靈活。CY8C3866AXI-040片內(nèi)的模擬模塊可以很好的實(shí)現(xiàn)這個(gè)功能。圖12為PSoC Creator中過流保護(hù)電流的設(shè)計(jì):
圖12 Creator中過流保護(hù)電路的原理圖設(shè)計(jì)
CurrIn為采樣電阻上采樣的電流信號(hào),PGA_OC為增益可調(diào)的放大器,它將流過采樣電阻上的電流信號(hào)進(jìn)行放大。 VDAC8_OC 為8位的數(shù)模轉(zhuǎn)換信號(hào),它將用戶設(shè)置的最大電流閾值轉(zhuǎn)換為模擬電壓信號(hào)。Comp_OC為比較器。比較器的輸出連到PWM模塊的Kill端。這樣,如果實(shí)際電流大于所設(shè)定的閾值時(shí),比較器信號(hào)發(fā)生翻轉(zhuǎn),PWM輸出即被關(guān)斷,實(shí)現(xiàn)了硬件保護(hù)功能。
PWM被關(guān)斷的模式也可以靈活的配置:
圖13 PWM模塊中Kill信號(hào)的模式配置
Disabled: Kill信號(hào)不起作用
Asynchronous : 當(dāng)Kill信號(hào)有效時(shí),保持關(guān)斷
Single Cycle: Kill信號(hào)只在當(dāng)前PWM周期有效
Latched: Kill信號(hào)一經(jīng)觸發(fā),即使Kill信號(hào)恢復(fù),模塊也一直保持關(guān)斷
Min-Time: Kill信號(hào)有效后,用戶可以設(shè)置模塊被關(guān)斷的時(shí)間周期
速度閉環(huán)調(diào)節(jié)
速度閉環(huán)設(shè)計(jì)可以保證電機(jī)速度在負(fù)載,電壓等發(fā)生變化時(shí),保持速度穩(wěn)定。最經(jīng)典的控制方法為PID控制,其公式如下:
其中 為速度誤差, 為積分系數(shù), 為比例系數(shù)。
這種為絕對(duì)式PID控制,每次計(jì)算都把往次的結(jié)果累加起來,這增加了CPU的負(fù)擔(dān)。 而相對(duì)式PID則是一種改進(jìn)的方法:
這種方法只計(jì)算輸出量的增量,對(duì)于積分環(huán)節(jié),也只計(jì)算本次的誤差,無需累加計(jì)算。這種算法時(shí)候與基于微控制器的數(shù)字控制系統(tǒng)。
用戶界面
本設(shè)計(jì)提供了多樣的用戶界面,以方面對(duì)電機(jī)控制參數(shù)的修改,并了解電機(jī)的狀態(tài)信息。
一種用戶界面是基于LCD面板和電容觸摸按鍵的,LCD面板為顯示接口,電容觸摸按鍵則是用戶輸入接口。電容觸摸按鍵是利用電容感應(yīng)技術(shù),通過檢測(cè)手指與按鈕之間的電容來實(shí)現(xiàn)按鍵和旋鈕功能。如圖14所示,BT1和BT2是兩個(gè)電容觸摸按鍵,另外還有一個(gè)滑條可以動(dòng)態(tài)改變參數(shù):
圖14 電容感應(yīng)滑條和按鍵
此用戶界面的狀態(tài)機(jī)如下:
圖15 用戶界面的狀態(tài)機(jī)
電機(jī)的旋轉(zhuǎn)方向、最大電流、PID參數(shù)都可以借助上述用戶界面來設(shè)置。CY8C3866AXI-040 片內(nèi)的Capsense模塊以及LCD模塊能很方便的完成按鍵掃描已經(jīng)數(shù)據(jù)顯示。
另外,本設(shè)計(jì)還允許用戶通過UART接口由GUI來實(shí)現(xiàn)對(duì)電機(jī)的監(jiān)控,這里就不做贅述。
結(jié)語
基于PSoC3(CY8C3866AXI-040)的無位置傳感器BLDC電機(jī)控制利用片內(nèi)豐富的資源減少了BLDC無傳感器控制對(duì)外部器件的依賴。片內(nèi)模擬多路選擇器和比較器可以實(shí)現(xiàn)在PWM高電平時(shí)刻對(duì)反電勢(shì)信號(hào)進(jìn)行采樣。換相狀態(tài)機(jī)和過流保護(hù)功能完全可由片內(nèi)硬件模塊完成。此外,該芯片在處理電機(jī)控制的同時(shí)還具備強(qiáng)大的用戶界面接口功能。