摘要:為了實現以直流無刷電機為動力系統的小型離心機的控制系統設計,在Altera-EP2C8Q208中嵌入NiosII軟核處理器,充分利用NiosII強大的高速處理能力和FPGA強大的并行功能,建立了基于FPGA/SOPC的軟硬件協調設計的離心機控制系統。文中詳細介紹了系統整體結構以及FPGA內部各功能模塊的設計思路和具體實現。整個控制系統集成度高,實時性強,響應速度快,具有很好的靈活性和擴展性。
關鍵詞:SOPC技術;直流無刷電機;NiosII軟核處理器;
中圖分類號:TP273 文獻標識碼:A
Design of control system of miniature centrifuge
based on FPGA/SOPC
YUANLIANG1,XUXIN1
(1.Sany heavy equipment co.ltd liaoning shenyang2. Chinese People’s Liberation Army 93115 unit ,liaoning,shenyang)
Abstract: A design based on FPGA/SOPC hardware/software co-design was introduced to realize control system of the miniature centrifuge drived by BLDC,in which NiosII soft core processor was embedded in Altera-EP2C8Q208. This system made full use of NiosII’s powerfull control function and FPGA’s parallel function. The system structure,design principle and realizing method of each functional module were described in detail. The centrifuge control system has high integration,strong real-time,quick responsiveness, great flexibility and expansibility.
Key words: SOPC; BLDC; NiosII soft core
引言
直流無刷電機具有調速性能好、控制方法靈活多變、效率高、啟動轉矩大、無換向火花、壽命長等優點,已廣泛應用在家電用品、汽車、醫療設備等方面和領域。目前小型離心機領域多采用直流無刷電機驅動離心轉盤。本文亦選用直流無刷電機為控制對象。
在直流無刷電機控制領域,單片機、DSP等純軟件方案受限于C語言串行執行思想,在速度、電流等數據采集方面存在響應速度慢,實時性差等問題,而且硬件電路復雜,應用靈活性不足;在FPGA上定制32位高速NiosII軟核微處理器和其他邏輯功能模塊的SOPC系統將微處理器的優點和PLD強大的并行功能結合在一起,利用軟硬件協調設計,速度、電流反饋等實時性強的功能模塊以及電機換相、PWM等邏輯功能模塊通過高靈活性的FPGA硬件實現,而電機控制算法、數字濾波、串口通信等應用程序則在NiosII的控制下完成,用C語言軟件實現。整個系統在集成度、實時性、靈活性等方面都具有獨特的優勢。
1.系統構成
1.1系統控制電路構成
基于FPGA的離心機控制系統硬件電路結構圖如圖1所示,離心機通過上位機完成指令輸入,包括啟動、停止、轉速、運轉時間等指令,同時監測電機的運行狀況,實現人機交互功能; FPGA根據輸入的指令完成控制運算,并發出六路PWM信號,信號經隔離后輸入到直流無刷電機功率橋電路的驅動部分,驅動電機運轉;電流信號由電流傳感器檢測得到,信號經過調理放大電路處理后,完成A/D轉換;電機的速度以及位置測量通過檢測電機的霍爾信號,經FPGA內部計算得到;以上各部分均在嵌入NiosII軟核的FPGA的控制下協調工作。
圖1控制系統硬件電路結構圖
1.2系統設計任務劃分
SOPC系統開發分為基于QuartusII、SOPC Builder的數字硬件開發和基于NiosII IDE的軟件開發,為方便軟硬件協調設計,必須在設計前對系統設計任務進行功能劃分。
圖2控制系統設計任務劃分圖
本文控制系統需要實現的設計任務如圖2所示:①根據霍爾信號,控制電機換相并求得電機轉速;②控制A/D采樣,獲取電流采樣值;③利用PWM控制技術,控制電機轉速;④實現電機PID控制算法,對電機轉速和電流進行調節;⑤實現上位機與控制器的通訊,設定離心機運轉指令。
FPGA具有強大的邏輯實現能力和并行功能, Nios II軟核則擁有完全的32位指令集、數據總線和地址空間,具有超過150DMIPS的性能。基于以上特點,本文對任務①至任務③使用VHDL硬件描述語言編寫,在QuartusII中實現綜合,而任務④、⑤涉及到PI控制算法、濾波算法、串口通信等,則在SOPC Builder中完成NiosII系統集成,并在NiosII IDE中用C語言完成程序編寫。
2 離心機控制系統具體實現
2.1 基于QuartusII/SOPC Builder數字硬件實現
本文設計的FPGA頂層硬件系統如圖3所示,主要包括SOPC Builder配置的NiosII軟核系統模塊和VHDL語言描述的邏輯功能模塊,包括速度反饋模塊、電流反饋模塊、PWM調制模塊以及電機換相邏輯模塊等。從圖中可看出,速度、電流等數據采集可并行執行,NiosII軟核可隨時獲取反饋數據,比起單片機、DSP等受限于C語言串行執行思想的純軟件控制方案,無論在實時性,還是響應速度都具有明顯優勢。下面詳細介紹各模塊的具體實現。
NiosII軟核系統模塊。
SOPC Builder是一個自動化的SOPC硬件系統開發工具,為SOPC設計提供標準化的圖形環境,該工具允許用戶配置NiosII嵌入式處理器和外圍設備及接口,并自動使用Avalon總線將它們互連起來。如圖4所示,本文選用經濟型NiosII CPU,CPU時鐘為100M,由外部50M晶振經FPGA內部鎖相環倍頻獲得,保證了CPU擁有足夠的執行速度。外圍設備選用片內ROM模塊、定時器模塊、UART通信模塊以及通用I/O模塊,其中定時器time_0用于運轉時間控制,計時結束產生中斷,由pio_7端口發出制動信號;uart_0則用于上位機與FPGA的串口通信,其硬件配置也是通過SOPC Builder配置向導完成,配置選項包括波特率、數據位、停止位、奇偶校驗位、流控制等。NiosII定制完成后在QuartusII中完成系統綜合(見圖3)。
圖4 NiosII系統模塊構建圖
1)PWM調制模塊
pwme模塊為 PWM調制模塊,產生PWM斬波信號,NiosII模塊的pio_2端口輸出PI運算結果,即PWM調制值,并保存在比較寄存器ctrl[11..0]中;為產生PWM信號,需要一個合適的定時器來重復與PWM周期相同的計數周期,比較寄存器的值不斷地與定時器的值進行比較.當兩個值匹配時,相關的輸出就發生跳變(從低到高或從高到低),對于每一個定時器周期,根據其比較寄存器中不同的調制值,該過程重復進行,從而在相關的輸出引腳上就產生了PWM信號。仿真波形見圖5,波形圖中CONVST信號為圖3中pwme模塊的harfp輸出,此信號用于電流采樣,下面將提到。
圖5 PWM模塊仿真波形
2)電機換相邏輯模塊
elec_change模塊實現無刷電機換相邏輯控制,輸出六路PWM控制信號,其中dir為轉向信號,由NiosII模塊的pio_3端口輸出,dir為‘1’則正向,為‘0’則改變換相邏輯,電機反向;brake為制動信號,由pio_7端口輸出,為‘0’時,功率橋上橋壁關斷,下橋臂開通,這種短接制動模式制動迅速。仿真波形圖如圖6所示。
圖6 換相邏輯模塊仿真波形圖
3)速度反饋模塊
cesu模塊實現速度反饋,采用霍爾信號周期法測速,flag為速度反饋標志,NiosII模塊的pio_0端口檢測到下降沿即產生中斷,由pio_1端口讀取速度反饋值。
高精度、高實時性的的轉速測量是實現高精度速度控制的前提。傳統霍爾周期測速法存在測速精度與快速性相互制約的問題,為消除霍爾信號本身的誤差影響,往往采用測整數周霍爾信號周期的方法,電機旋轉一周僅能反饋一個數據,大大延長了速度反饋時間。針對這一矛盾,本文采取了一種改進的霍爾周期測速法,具體做法如下[3]:以電機旋轉一周輸出的三路霍爾信號為測量對象(本文電機極對數為3),首先邏輯變換為一路信號flag(如圖7所示)。
圖7 霍爾信號邏輯變換仿真
由圖5可知,電機轉動一周輸出三個霍爾周期,經邏輯變換變為18個flag周期信號,然后用計數模塊依次測量每個flag周期對應的基準時鐘(clk)個數n, 測得數據依次存放在一個可以存放18個數據的FIFO寄存器中,18個數據相加就可以得到電機旋轉一周所對應的基準時鐘個數N,即電機旋轉一周的周期;之后每測得一個flag周期n,只需要將FIFO寄存器中最早的那個數據丟棄,再將這個新的數據n補充到寄存器隊伍尾部,從而實現了每一個flag周期,就可以輸出一次測量值N,而測量對象依然是電機旋轉一周的霍爾信號,保證了測量精度的前提下,速度反饋時間約為電機轉一周時間的十八分之一。這就解決了測速精度和速度反饋時間之間的矛盾。
4)電流反饋模塊
ad7472ctrl模塊為模數轉換器AD7472采樣控制模塊,實現電流值反饋。AD7472有兩個重要引腳CONVST和BUSY引腳[7],CONVST引腳檢測到下降沿信號就啟動AD轉換,同時BUSY引腳拉高,當BUSY引腳信號顯示為低電平時,表示一次轉換結束,因此可以通過控制CONVST引腳來控制電流采樣時間和采樣周期,通過檢測BUSY引腳信號來讀取電流AD轉換值。由圖1可知,本文采用MOSFET管驅動直流無刷電機,通常功率管開關瞬間會產生尖峰電流,其中含有豐富諧波分量,為避開尖峰電流對采樣精度的影響,電流采樣頻率通常選擇與功率管開關頻率,即PWM信號頻率同步,并且采樣點應避開開關時刻,本文采用的方法是在PWM導通期間的中點時刻采樣,即采樣平均電流,這樣便很好地避開了開關噪聲的影響,保證了采樣的準確度。采樣時序圖如圖8所示,采樣控制信號CONVST波形仿真見圖5。
圖8A/D采樣控制時序圖
圖3 FPGA頂層硬件系統圖2.2基于NiosII IDE的軟件實現
2.2.1整體控制策略
整體程序控制過程如圖9所示:上電啟動,系統從上位機讀取速度指令與運轉時間指令,離心機開始運轉,測速模塊與電流采集模塊分別完成速度反饋與電流反饋,NiosII軟核CPU讀取指令值與反饋值,并在CPU 的控制下完成速度、電流雙閉環控制,運算結束后輸出PWM調制值,將該值給定PWM調制模塊,并最終產生六路功率管控制信號。 由圖3并結合控制過程可知,NiosII軟核最核心的任務是完成雙閉環PI控制算法,并完成串口通信。
圖9 程序整體結構框圖
2.2.2PI控制算法
由于本系統電流環、速度環均采用PI調節器,轉速超調不可避免,為避免過大超調引起系統振蕩,本文電流環采用普通PI控制,而速度環則采用積分分離PI控制算法,可以既保證速度控制精度又可避免振蕩產生。
積分分離增量式PI具體算法如下:
(1)
(2)
為第k次采樣時刻給定值與反饋值的偏差值。
根據實際情況,人為確定一個量X>0;
當||>X時,β=0,只采用比例控制,迅速消除
偏差,避免超調。
當||≤X時,β=1,重新引入積分,消除靜態誤差,保證系統控制精度。
積分分離PI算法程序框圖,如圖10所示:
圖10 積分分離算法程序框圖
2.2.3串口通信
SOPC Builder提供UART的IP核,用戶可根據需要按照配置向導對UART進行配置,本文波特率選用115200bps,奇偶校驗位無,數據位8位,停止位1位。
UART核提供了一個簡單的寄存器映像的Avalon從端口,它允許Avalon主外設NiosII簡單的通過讀和寫控制寄存器以及數據寄存器與該核實現通信。以數據接收為例,當一個新的字符通過rxd端口接收完畢時,它將被傳送到rxdata寄存器中,且status寄存器rrdy位被設置為1;當control寄存器irrdy位置1時,便產生一個允許接收字符準備好中斷IRQ,因此可在中斷處理程序中通過檢測rrdy位狀態來讀取rxdata中的數據,中斷程序框圖如圖11所示。
圖11 串口中斷程序框圖
中斷程序的C語言編程如下:
static void uart_IRQ(void* context, alt_u32 id)
{
volatile char* status_ptr =(volatile char*)context;
*status_ptr=IORD_ALTERA_AVALON_UART_STATUS(UART_0_BASE);
if((IORD_ALTERA_AVALON_UART_STATUS(UART_0_BASE)(0x80)) ==0x80) –判斷rrdy位是否為1
{
data=IORD_ALTERA_AVALON_UART_RXDATA(UART_0_BASE);
}
IOWR_ALTERA_AVALON_UART_STATUS(UART_0_BASE, 0x0);
}
3實驗結果與分析
離心機系統相關參數如表一所示,電機單相繞組電阻R(Ω)、電感L(mH)、力矩系數KT(Nm/A)、系統轉動慣量J(Kg·m2)。此外,本文設計的為中低速離心機,最高轉速5000rpm。
表一 系統相關參數表
RLKTJ
1.80.540.0423.2×10-5
控制系統硬件電路板如圖12所示。
系統人機交互界面采用LabVIEW編寫,通過上位機輸入啟動、速度、運轉時間等指令,并采集速度曲線,如圖13所示。
圖12 控制系統硬件電路板
圖13 離心機人機交互界面
4結束語
本文以直流無刷電機為控制對象,提出了基于FPGA/SOPC技術軟硬件協調設計的小型離心機控制系統設計方案。方案設計優點是:將FPGA硬件設計的高靈活性、強大的并行能力和邏輯設計能力與NiosII軟核處理器強大的控制能力完美結合在一起,在實時性、執行速度、擴展性、可移植性等方面均具有獨特優勢和良好的發展空間。目前離心機系統運轉平穩可靠。
參考文獻:
[1] 李蘭英.NiosII嵌入式軟核SOPC設計原理及應用.北京:北京航空航天大學出版社,2006.
[2] 張琛.直流無刷電動機原理及應用.北京:機械工業出版社,2004.
[3] 徐春劍,吳一輝,等,基于FPGA的高精度霍爾測速方法研究及實現,儀表技術與傳感器.
[4] 魏然,金明河,等,基于Nios軟核處理器的直流無刷電機控制系統設計,電氣傳動,2005,35(8):19-21.
[5] 梁盼,陶寶泉,等.H.264視頻解碼IP核的設計與實現,電子設計應用,2009年第10期.
[6] 武俊峰,安靜,等,姿控飛輪控制系統設計及轉速過零分析,光學精密工程,2009,17(4):801-806.
[7] 吳劍峰,基于USB2_0的CCD數據采集系統[學位論文],杭州:浙江大學,2006:17-20.
作者簡介:
袁亮,2006年7月畢業于鞍山科技大學機械設計制造及自動化學院,同年7月就職于凌源鋼鐵集團有限公司,做設備技術支持工作,2010年6月就職于三一重型裝備有限公司研究本院。