蘇 潮,吳洪德,陳慶武,邵立偉,黃德皇
(1.中山早稻田科技有限公司,廣東 中山 528400;2.中山市北京理工大學研究院,廣東 中山 528400)
伺服電機驅動行業內,基于永磁同步電機的驅動方案基本都是應用某公司C2000系列微控制器來進行設計[1]。由于市場的因素,該公司C2000系列單片機經常一片難求,或者單價被提升到難以接受的水平,為了產品的穩定生產,必須尋求能穩定供貨的單片機進行替代。另外,由于該公司提供了很多現成的電機控制相關的庫函數以快速實現功能,雖然在提高產品開發效率上提供了便利,但是也使整個業界產生了技術依賴,對于技術創新和產品升級可能會造成制約。某國際著名芯片設計公司近年來推出32位的M系列微控制器內核,性能優越,各大芯片制造公司紛紛推出基于M內核的32位單片機。其中,以ST公司推出的STM32系列單片機為典型代表,其內部外設資源豐富,主頻超100 MHz,有些型號還集成了硬件浮點運算單元,性價比較C2000系列單片機高出很多。本文介紹基于STM32單片機的伺服驅動方案,包含控制算法、硬件設計方案和軟件設計方案。
FOC(Field Oriented Control)為磁場定向控制,在行業內又稱為矢量控制[2]。如圖1所示,FOC是一種電機控制方法,通過幾種數學和物理上的等效變換和逆變換使被控對象變得簡單,控制過程也變得清晰明了。FOC的核心是SVPWM、CLARKE變換、PARK變換及逆變換[3]。具體的數學和物理原理推導過程本文不作詳細描述。
圖1 基于PMSM的伺服系統模型
如圖2所示,SVPWM模型的輸入量是兩相坐標系下的電壓信號Uα和Uβ、直流母線電壓Udc、PWM信號周期Ts;輸出量是三相對應的3組PWM信號[4]。如圖3所示,具體分解為3個步驟:第一步,從4個輸入量生成3個中間計算量和扇區號;第二步,生成當前所在扇區的2個基本矢量的作用時間;第三步,根據當前扇區號和PWM周期Ts生成3個PWM信號的高電平時間。
圖2 SVPWM模型的輸入輸出
圖3 SVPWM步驟分解
如圖4所示,PARK逆變換模型的輸入是Uq、Ud、電角度θ,輸出是Uα、Uβ。輸入與輸出的關系如式(1)所示。
圖4 PARK逆變換模型
如圖5所示,PARK變換模型的輸入是Iα、Iβ、電角度θ,輸出是Iq、Id。輸入與輸出的關系如式(2)所示。
圖5 PARK變換模型
如圖6所示,CLARKE變換的輸入是三相電流Ia、Ib、Ic,輸出是兩相電流Iα、Iβ[5]。輸入與輸出的關系如式(3)所示。
圖6 CLARKE變換模型
本系統的硬件設計方案如圖7所示,包含模擬信號采集電路、編碼器信號接口電路、功率電路、通訊電路和STM32核心電路。電流的采樣方式為三電阻串聯下管[6],因為該方式要求在三相全橋的下管充分開通的時刻進行電流采樣,所以采樣時刻必須能由程序設定,采樣花費的時間必須盡量短。因此,為了能又快又準地測量三相電流,需要用到STM32單片機的雙ADC同步模式。因為只有2個ADC模塊,硬件電路設計時需要注意,在規劃U、V、W三相電流時,U相電流信號接入STM32單片機ADC1的其中一個通道管腳,V相接ADC1和ADC2共有的一個管腳,W相接ADC2其中一個管腳。這樣每個電流采樣周期就可以根據FOC算出來的扇區選擇其中兩相電流進行采樣。三相全橋電路共有3對互補PWM信號,均由定時器1對應外設輸出。
圖7 硬件設計
本系統的功率驅動電路采用經典的三相全橋逆變電路[7],圖8所示為三相全橋逆變電路中的一相及其驅動電路。
圖8 三相全橋逆變器及其驅動部分電路
對于電流采樣,采用三電阻串聯方式。如圖9所示,3個電阻分別串聯下管與地之間,在下管開通的時間內,上管是完全關閉的,相電流全部流過電阻,此時根據測量到的電阻電壓值和電阻值便能依據歐姆定律計算出電流值。這里需要引起注意的是,在下管開通和關閉的時刻會產生電流閃變現象,電流采樣時刻需要盡可能避開下管開關時刻。此時刻需具備可調節性,另外采樣花費的時間必須盡量短。因此,為了能又快又準地測量三相電流,需要用到STM32單片機的雙ADC同步模式,此模式下2個ADC同時工作,在一個ADC采樣周期內完成兩相電流的采集。硬件電路設計時需要注意,在規劃U、V、W三相電流時,U相電流信號接入STM32單片機ADC1的其中一個通道管腳,V相接ADC1和ADC2共有的一個管腳,W相接ADC2其中一個管腳。這樣每個電流采樣周期就可以根據FOC算出來的扇區選擇其中兩相電流進行同時采樣,如何計算出扇區此文不做詳細介紹,第三相的電流由基爾霍夫定律計算得出。
圖9 電流采樣電路
電流流過采樣電阻得到的電壓信號是交流信號,有正負性,信號電壓值也非常小,因此需要對此信號進行放大和整形。如圖10所示,方案采用運放構建同相放大器,用3.3 V單電源供電。交流相電流流經采樣電阻R0而產生交流微電壓信號,此信號的變化會引起運放同相輸入端的電壓產生相應的變化,再經過放大便可得到0~3.3 V之間的信號。
圖10 電流采樣放大電路
具體變換計算如下:
通過合理搭配電阻,可以得到最終理想的公式如下:
如圖11所示,本方案的對外通訊接口是工業以太網EtherCAT,主要配合上位機實現周期同步位置模式控制。作為EtherCAT總線的從站,采用Microchip公司的LAN9252控制芯片。選用1片STM32單片機來對LAN9252進行配置并承擔主控與通訊之間的數據交換,為了實現數據高速傳輸,LAN9252與STM32單片機之間用16位數據總線進行通訊。
圖11 外部通訊電路
軟件設計核心流程如圖12所示。首先,配置好定時器1,定時器1的作用非常關鍵,既作為PWM信號發生器,又作為ADC的觸發源[8]。ADC用到的雙規則同步模式和注入同步模式由定時器1的兩路比較器分別觸發。ADC的雙規則同步模式觸發之后啟動ADC的DMA模式,進行電壓等非三相電流的模擬量采樣。完成采樣后啟動中斷,中斷程序執行讀取編碼器數據操作。ADC的注入同步模式被觸發之后,啟動DMA對三相電流進行采樣,DMA完成采樣后觸發ADC中斷。此中斷為微秒級、周期性、高優先級的中斷,中斷響應程序為核心控制內容,關鍵的核心算法如坐標變換、電流環控制、SVPWM控制都在此中斷響應程序中完成。系統還定義了1個毫秒級的中斷,用以實現位置環和速度環的控制。
圖12 系統程序流程
電流環的給定是Iq值和Id值(通常為0),與PARK變換后的檢測值進行比較,然后進行PI運算得到Uq和Ud值[9]。
速度環的給定是速度值與根據編碼器數據經過M/T法得到的速度檢測值進行比較,然后進行PI運算得到Iq給定值。
位置環的給定是位置值,與根據編碼器數據進行比較,然后進行P運算得到速度給定值。如果需要提高系統的響應速度,可以增加位置前饋控制[10]。如式(6)所示。
位置前饋控制的過程實際是把位置給定量的變化率作為速度給定量的補償量。實際運行效果如圖13所示。
圖13 位置環運行曲線
本文的設計方案在算法上通過Matlab仿真得到了驗證。該方案最后通過制作PCB電路板,并連接電機、編碼器、上位機來進行實際測試驗證。實驗結果表明,系統的各項功能和性能指標均符合產品設計規格要求,驗證了以STM32系列單片機為代表的M系列ARM內核單片機作為伺服電機驅動核心主控的可行性,該方案解決了高性能伺服驅動器的核心控制芯片可選品牌和型號少的問題,也為伺服驅動領域在性能提升、成本降低等方向提供了參考。