目前Microchip 的3.3V 70MIPS dsPIC33EP MC 系列是專門針對motor control所設計的MCU/DSP。以三相馬達控制為例,從基本的BLDC 六步方波到Sensorless FOC (PMSM永磁同步 or AC感應)皆可輕鬆應付。若強調車用及安全功能,5V 且具有ECC (error codes correction)的dsPIC33EV系列則為首選。而PIC32MK MC 系列及SAM E/S7x 300MHz Cortex M7系列則非常適合高階伺服馬達控制應用,如高速高精度的工具機台。以下介紹會以較常見的三相永磁馬達為主。
以控制法則來分,有BLDC六步方波驅動,可以是開迴路或是速度閉環或速度及電流閉環控制。若要輸出弦波有Sensorless FOC (Microchip Application notes AN1078, AN1292) 或開迴路弦波控制(AN1017)。若要輸出弦波電流,且馬達啟動時就有高負載,sensor-less FOC就比較不適合。此情形就必須在馬達加上Hall IC 或編碼器偵測馬達轉子位置,以便在馬達堵轉時也可輸出高扭力,例如e-bike, e-scooter等。一般來說都會使用Hall IC。但根據經驗,我們常遇到弦波控制時,Hall IC輸出容易受馬達動力線或PWM干擾,尤其是Hall 信號線常與motor UVW動力線做成同一條線時此情形更為常見,如圖(一)紅色圈所示,其中的noise會導致MCU多產生一次以上之Capture中斷,如果是以中斷讀取Hall 信號來計算速度,此情況便會造成速度計算突波。
由於是用Hall 信號來預估SVPWM所需角度,速度計算的突波會使角度產生嚴重錯誤,使得FOC在做d-q電流控制時造成錯誤,又造成了馬達相電流突波而使馬達抖動。根據實驗結果,利用Microchip dsPICR DSC在PWM與A/D同步觸發下讀取Hall 輸入信號可大幅避免此問題產生並利用MPLAB X IDE的插件X2C Scope來檢視是否有Hall信號讀取錯誤。圖二顯示馬達角度為一連續變化,而圖三為Hall信號變化,都顯示並無角度錯誤產生。圖四為馬達相電流波形。至於以Hall IC當作轉子位置偵測的 FOC執行時間,Torque control only 為11.2uS, 若再加上speed control loop則共為14uS。 以20KHz PWM的切換頻率來說,分別只佔了22.4%及28%的執行頻寬以(基於70MIPS執行速度)。所以dsPIC還剩餘非常充裕的時間執行其他通訊及house keeping 的工作。
最後一提的是,Microchip Harmony V2.03b 以上已提供sensorless FOC project 可於32-bit 120MIPS PIC32MK1024MCF100 + MCLV-2 demo borad上執行。該project提供完整的source codes包含FOC核心,如d-q軸轉換,PID,SVPWM以及PLL 轉子位置估測器等,並具備雙精準度浮點運算器,可以執行馬達控制的複雜數學運算,減少量化誤差。例如位置控制應用中常會用來抑制震動的數位濾波器,S curve產生函數以及sensorless FOC裡的位置估測器,降低許多定點DSP各個變量normalization的複雜度。
更進一步的電機驅動與支援資訊如下,歡迎下載、閱讀,並與我們經驗豐富的設計團隊聯繫。
Motor Control and Drive Design Center
Application notes
http://www.microchip.com/design-centers/motor-control-and-drive
作者 葛育中 Microchip應用工程師