基于PSoC4的空間矢量脈寬調制方案
基于PSoC4的設計實例
我們使用TCPWM模塊來實現SVPWM。TCPWM模塊提供了電機控制常用的中央對齊、邊沿對齊PWM,并可實現嚴格的同步功能。支持靈活的死區控制,并可與ADC同步。TCPWM包括四個16位的周期長度用戶可編程的計數器,這些計數器之間可以進行功能同步。每個模塊包含一個捕獲寄存器、一個周期寄存器以及一些比較寄存器。每個模塊都支持互補的可編程的死區,還支持一個關斷輸入信號來強迫輸出信號進入預先設定的狀態。
如圖5所示,從PSoC Creator中拖放三個TCPWM模塊,配置TCPWM的工作模式為中央對齊,帶死區的雙路互補輸出模式。三對PWM輸出可分別作為U、V和W相橋臂驅動信號(如PWM_U_Upper, PWM_U_Lower)。同時在任一TCPWM模塊的UN事件輸出(下溢信號,用來指示計數器向下計數達到“0”)觸發PWM中斷(PWM_MainLoop_ISR),用于進行FOC計算并更新占空比。

圖5:三相PWM原理圖。
“PWM_UPDATE”信號可在UN事件時觸發TCPWM的Switch事件,周期和比較寄存器上的值會自動與緩存周期和比較器寄存器的值更換。利用此特性,我們可以在TC事件之前更新緩存寄存器,然后用同一信號觸發不同PWM的Switch事件,由此保證各路PWM更新的嚴格實時同步。
圖中的控制寄存器(PWM_Ctrl_Reg)還可以同時使能或禁止六路PWM輸出。PSoC靈活的可編程特性可輕松實現了三對嚴格同步的互補對稱PWM及其更新邏輯,這樣可以使工程師將更多的時間專注于算法層面,提供產品的競爭力。
主控程序首先會初始化和配置PSoC4的內部資源,然后進入主循環。主循環主要檢測用戶的起停命令,決定電機的運動狀態;并完成一定的調試輸出功能。FOC主算法全部在PWM中斷中完成,主要完成坐標變換,SVPWM輸出及更新占空比等操作。中斷程序會人工生成一個周期性變化的角度,用于電機開環運行。圖6顯示了主控程序流程圖。

圖6:程序流程圖。
實驗結果
在PSoC Creator環境下編譯工程,并連接PSoC4開發板,三相全橋驅動板與PMSM電機,通電后電機可正常運行,圖7電機相電流波形。從測試結果可以看出,電流波形平滑,正弦度很好。

圖7相電流波形圖。
小結
上述實例介紹了如何在PSoC4 平臺上實現空間矢量脈寬調制。PSoC4針對電機控制做出了富有特色的優化。憑借片內豐富的資源及高度的靈活性,用戶可以輕松設計出高度集成化、低成本、性能優越的PMSM矢量控制系統,提高產品的核心競爭力。
評論