新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 掌握MCU軟件設(shè)計(jì)準(zhǔn)則 實(shí)現(xiàn)直流馬達(dá)控制精準(zhǔn)度提升

掌握MCU軟件設(shè)計(jì)準(zhǔn)則 實(shí)現(xiàn)直流馬達(dá)控制精準(zhǔn)度提升

作者: 時(shí)間:2016-12-02 來源:網(wǎng)絡(luò) 收藏


憑借軟件算法 無刷直流馬達(dá)變速控制性能大增
無刷直流馬達(dá)提供一些傳統(tǒng)有刷換向DC馬達(dá)所沒有的優(yōu)點(diǎn)。電子和傳感器有效的替代電刷角色,提供更長(zhǎng)的壽命,減少維護(hù)操作,并且沒有電刷噪聲。正確整流的無刷直流馬達(dá)的扭矩-速度特性完全相同于如圖1所示的DC馬達(dá),因此,無刷直流馬達(dá)展現(xiàn)出與DC馬達(dá)相同的滿足需求的質(zhì)量,非常適用于變速控制。這個(gè)范例為使用霍爾效應(yīng)傳感器控制馬達(dá)換向的無刷直流馬達(dá),提供簡(jiǎn)單的開放回路控制,無刷直流馬達(dá)的速度使用簡(jiǎn)單的電位器控制。在這種方式下的無刷直流馬達(dá)控制的特點(diǎn),類似于經(jīng)典DC馬達(dá)控制范例。
這個(gè)范例的硬件實(shí)現(xiàn)如圖6所示。馬達(dá)由六個(gè)功率晶體管驅(qū)動(dòng),構(gòu)成三相橋式結(jié)構(gòu)。下部的晶體管Q1-3是N通道功率MOSFET;上部的三個(gè)晶體管是P通道功率MOSFET。這樣就簡(jiǎn)化閘極驅(qū)動(dòng)器管理,此外,互補(bǔ)閘極驅(qū)動(dòng)器的使用使得在預(yù)設(shè)狀態(tài)下,功率晶體管處于關(guān)閉狀態(tài)。



圖6 無刷DC馬達(dá)驅(qū)動(dòng)


霍爾效應(yīng)傳感器有開集電極輸出,需要上拉電阻。檢查馬達(dá)規(guī)格確?;魻栃?yīng)傳感器是適合配置的,開集電極輸出通常是3V兼容的,然而,霍爾效應(yīng)傳感器也需要一個(gè)偏置電源,通常須要超過3V。在大多數(shù)系統(tǒng)中,霍爾效應(yīng)傳感器能夠關(guān)閉馬達(dá)電源電壓,或者閘極驅(qū)動(dòng)器電源電壓。
使用斷點(diǎn)調(diào)變軟件可能會(huì)將馬達(dá)和MOSFET置于不良狀態(tài)。當(dāng)MCU遇到一個(gè)斷點(diǎn)時(shí),引腳被及時(shí)的有效凍結(jié),而且可以留下PWM輸出處于啟動(dòng)狀態(tài)。這里推薦的流程是在進(jìn)行單步調(diào)變或者使用斷點(diǎn)之前,一直斷開馬達(dá)電源連接。BLDC馬達(dá)在跨越繞組時(shí),將會(huì)滿電壓失速。BLDC馬達(dá)失速電流僅僅與繞組的內(nèi)阻相關(guān),這很可能損壞功率MOSFET。
PORT_Init()函數(shù)對(duì)交叉開關(guān)器和輸出引腳分配進(jìn)行設(shè)置。額外的控制引腳為3-相控制而設(shè)置為推挽式輸出,為讀取霍爾傳感器而設(shè)置為輸入。
可程序設(shè)計(jì)計(jì)數(shù)器數(shù)組時(shí)基采用160ns,啟動(dòng)計(jì)數(shù)器。然而,模塊0模式SFR沒有初始化為8位PWM。在霍爾效應(yīng)位置被確定之前,沒有馬達(dá)驅(qū)動(dòng)被?用。
main()函數(shù)首先初始化相關(guān)資源,設(shè)置start標(biāo)志位。主回路首先使用hallPosition()函數(shù)檢測(cè)霍爾效應(yīng)傳感器的位置。如果start標(biāo)志位被設(shè)置或者霍爾位置已經(jīng)改變,馬達(dá)透過調(diào)用commutate()函數(shù)進(jìn)行換向。接下來,速度輸入被讀取,速度設(shè)置被寫入PWM輸出。
hallPosition()函數(shù)在錯(cuò)誤狀態(tài)時(shí)返回0,這發(fā)生在霍爾效應(yīng)輸入全為高或全為低時(shí)。如果錯(cuò)誤發(fā)生,主回路經(jīng)過調(diào)用coast()函數(shù)使所有輸出無效;起始位也在錯(cuò)誤條件發(fā)生時(shí)置位,而迫使換向發(fā)生在下一個(gè)合法的霍爾位置讀數(shù)時(shí)。
readHalls()函數(shù)在霍爾效應(yīng)輸入端口引腳上讀取,并且去除霍爾效應(yīng)編碼抖動(dòng),該函數(shù)等待三個(gè)連續(xù)的相同讀數(shù)。當(dāng)霍爾編碼正在改變時(shí),這種方式降低錯(cuò)誤讀數(shù)的可能性。
hallPosition()首先透過上面描述的readHalls()函數(shù)讀取霍爾效應(yīng)編碼?;魻柧幋a模式被儲(chǔ)存在常量數(shù)組hallPattern[]中。為了匹配霍爾效應(yīng)編碼,一個(gè)帶有后遞減的單行for回路被用于尋找對(duì)應(yīng)的索引。hallPosition()函數(shù)如果發(fā)現(xiàn)一個(gè)匹配的模式,則返回1-6中的一個(gè)值;如果沒有發(fā)現(xiàn)匹配,hallPosition()函數(shù)返回0值。
commutate()函數(shù)用來在啟動(dòng)時(shí)初始化輸出,當(dāng)霍爾位置改變時(shí)改變輸出狀態(tài),并且在檢測(cè)到霍爾錯(cuò)誤后重新啟動(dòng)馬達(dá)。commutate()函數(shù)首先禁止PWM和上部的晶體管,然后,它才使用從hallPosition()函數(shù)中獲得的索引。
對(duì)于霍爾效應(yīng)模式或者整流模式來說,沒有統(tǒng)一的標(biāo)準(zhǔn)。請(qǐng)參閱你所使用之特定馬達(dá)制造商所提供的數(shù)據(jù)手冊(cè),依據(jù)制造商的資料手冊(cè)仔細(xì)查核兩種模式。同時(shí),也請(qǐng)檢查霍爾效應(yīng)模式和整流模式之間的通信,必要時(shí)請(qǐng)改變兩種模式之間的位移。

上一頁(yè) 1 2 3 下一頁(yè)

評(píng)論


技術(shù)專區(qū)

關(guān)閉