新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 掌握MCU軟件設計準則 實現(xiàn)直流馬達控制精準度提升

掌握MCU軟件設計準則 實現(xiàn)直流馬達控制精準度提升

作者: 時間:2016-12-02 來源:網(wǎng)絡 收藏
300瓦以下的小功率馬達適合以MCU做為控制方案,在各家MCU硬件規(guī)格差異化日漸縮小之下,軟件演算設計就顯得相形重要,若能掌握MCU控制各種直流馬達的軟件設計原則,將能大幅提升馬達控制的精準度。
運作在300瓦(W)以下的小功率馬達被廣泛應用于各類應用,例如汽車系統(tǒng)、打印機、復印機、碎紙機、玩具、工廠自動化、測試設備、機器人技術、航空航天與軍工等。最流行的小功率馬達類型是直流(DC)馬達、無刷直流馬達(BLDC)和步進馬達。馬達的產(chǎn)量大致與功率大小成反比,量產(chǎn)的小功率馬達數(shù)量遠遠高于大功率馬達數(shù)量。
專用于馬達控制的數(shù)字信號處理器(DSP)設計主要在滿足大型脫機式馬達的需求。脫機馬達通常為交流(AC)感應或無刷直流馬達,運行在110-480VAC和1/4-100馬力(HP)。專用于馬達控制的DSP,對于小功率馬達控制系統(tǒng)來說,成本太高。
本文提供使用微控制器(MCU)控制各類馬達的軟件范例。雖然這些范例相對簡單,但其針對各類馬達提供有效的解決方案。一個傳統(tǒng)的馬達控制系統(tǒng)通常要求額外特性并具有更高的復雜度。這些軟件范例能夠做為開發(fā)更復雜馬達驅動系統(tǒng)的基礎。
借助軟件演算 DC有刷馬達功耗下降
DC馬達在小功率馬達中是最常見和最便宜的。在本文中,DC馬達主要指的是有刷換向永磁直流馬達。
DC馬達的特性使其成為變速系統(tǒng)中最簡單易使用的馬達。DC馬達的轉矩-速度特性如圖1所示,DC馬達的非負載速度與馬達電源電壓成線性關系。驅動穩(wěn)定扭矩負載、線性負載或指數(shù)負載的DC馬達的電壓-速度特性也是連續(xù)的、正斜率的和可預測的,因此,在大多數(shù)情況下,使用開放回路控制系統(tǒng)是可行的。簡單地改變通過馬達的電壓,任何人都能夠控制馬達的速度。脈寬調變(PWM)能夠用于改變馬達供電電壓,加載到馬達的平均電壓與PWM工作周期比成正比例關系(這里忽略馬達電感和不連續(xù)運行導致的次要影響)。


圖1 DC馬達特性


這里提供一個以MCU控制DC馬達的簡單例子。在這個范例中,使用模擬數(shù)字轉換器(ADC)讀取電位器的位置信息,并使用PCA 8位PWM模式輸出對應的PWM信號(圖2)。


圖2 DC馬達驅動電路


單個N通道功率金屬氧化物半導體場效晶體管(MOSFET)Q1用于驅動DC馬達。功率MOSFET應當根據(jù)特定的馬達電壓和電流需求進行選擇。飛輪二極管的D1跨接到DC馬達。當MOSFET關閉時,電流通過馬達自感繼續(xù)流動,MOSFET漏極電壓將上升到超過馬達電源電壓的一個二極管壓降,然后,電流經(jīng)由飛輪二極管繼續(xù)流動。
大多數(shù)低壓馬達驅動電路利用蕭特基功率整流器實現(xiàn)飛輪二極管,蕭特基整流器具有較低的正向電壓和極短的反向恢復時間。這兩者在馬達驅動應用中都是非常重要的參數(shù)因子。
功率MOSFET由反向閘極驅動器驅動。F300的端口引腳默認配置為輸入引腳,并且啟用弱的100k上拉電阻。在端口被配置而且交叉開關器和周邊啟用之前,端口引腳一直保持高電平。當復位接腳保持低電平時,端口接腳也會被配置為弱上拉啟用的輸入接腳。透過使用反向驅動器,功率晶體管在預設狀態(tài)下處于關閉狀態(tài)。如果使用非反相器驅動,10k下拉電阻應當端口引腳和接地。
為使用3伏特(V)微控制器,閘極驅動器應當具有3V相容的輸入電平臨界值。如果馬達電壓在5-15V之間,閘極驅動器能夠直接切斷馬達電源電壓。如果馬達電壓超過15V,分開的閘極驅動器電源電壓是需要的,通常為5V或者12V。當采用低于10V的閘極驅動器電源電壓時,應當使用邏輯電平功率MOSFET。
軟件實現(xiàn)非常簡單。main()函數(shù)初始化頻率、端口和周邊,然后進入while(1)回路。在while(1)中使用avgADC()函數(shù)讀取電位器電壓值,然后輸出這個值到8位PWM。
PORT_Init()函數(shù)配置端口輸入/輸出(I/O)、周邊、?用數(shù)位交叉開關器。在這里,為8位PWM?用端口引腳,為閘極驅動器?用推挽式輸出引腳。
系統(tǒng)頻率SYSCLK被配置運行在24.5MHz最大速率,這允許8位PWM可配置為160奈秒(ns)頻率周期和24kHz頻率。
ADC0_Init()函數(shù)配置ADC為查詢模式。ADC增益設定為1,并且為ADC頻率選擇1MHz保守頻率。重要的是,這里也要初始化電壓參考,配置ADC使用VDD滿量程。
函數(shù)readADC()采用查詢模式讀取電壓值一次,并返回ADC值。函數(shù)avgADC()調用readADC()函數(shù),并且返回六十四個采樣值的平均值。平均化ADC讀數(shù)可以最小化噪聲影響,減少PWM輸出抖動。
當使用PCA 8位PWM模式時,在CEX0輸出0x00值對應到100%的工作周期比;輸出0xFF值對應到0.39%的工作周期比,0%的工作周期比可以透過清除PCA0CPM0 SFR中的ECOM0位來實現(xiàn)。
當使用反向驅動器時,這種關系是相反的。在MOSFET閘極驅動器上,0x00值對應到0%的工作周期比,0xFF值對應到99.6%的工作周期比為了簡單起見,本文中所有使用8位PWM的軟件范例都僅限于使用99.6%PWM。
在一些情況下,100%的工作周期比是可取的,100%工作周期比將有效的消除開關損耗。由于MOSFET從不會關閉,因此在MOSFET上沒有開關損耗,在二極管上也沒有損失,唯一的功率損耗是功率MOSFET中的傳導損耗。如果馬達預計在大部分時間里都處于全速運作,100%的最大工作周期比是合理的。100%的工作周期比,可以經(jīng)由清除PCA0CPM0 SFR中的ECOM0位來實現(xiàn)。

上一頁 1 2 3 下一頁

評論


技術專區(qū)

關閉