| 网站首页 | 新闻 | SOPC | FPGA | DSP | ARM | 嵌入式操作系统 | 下载 | 网上商城 | 芯片价格参考 | 留言 | 论坛 | 网络协议 | 驱动设计 | 购买指南-HowtoBuy | 
您现在的位置: FPGA开发板 FPGA 开发板 SOPC开发板 DSP开发板 视频开发板 -嵌入式控制研究室 >> SOPC >> SOPC应用 >> 文章正文 用户登录 新用户注册
[组图]SOPC-based servo control system for XYZ table          【字体:
SOPC-based servo control system for XYZ table
作者:指導者:龔…    文章来源:电子设计资源网    点击数:    更新时间:2005-12-17

SOPC-based servo control system for XYZ table
南台科技大學/電機工程研究所

指導者:龔應時

戴福裕

 

現今動力主要來源有引擎與馬達,其中馬達是將電能轉換成機械能,在馬達的應用方面是非常廣泛的,從民生家電到產業工機具,皆不可缺少。而馬達在特定的場合,常需要特定的要求,使馬達載具產生變化,如對於機械載具產生變速或定位。為了使馬達可以達成各項載具的要求,產生各種動作,高性能的馬達伺服控制是勢在必行的。

根據馬達供應電源可分為直流與交流,在早期,直流馬達因為控制簡單,一直是產業界主流,只要控制直流馬達的電樞電壓值,就可以達到馬達轉速控制所需的要求。不過也因為直流馬達的碳刷與整流子屬機械元件,當馬達旋轉時會產生火花,造成損壞,因此具有對於環境危險性大增與壽命減短及增加設備維護費用等缺點。

一般交流馬達的種類可分為同步馬達(synchronous motor)、感應馬達(induction motor)、磁阻馬達(reluctance motor)等。交流馬達的定子與轉子僅經由軸承接觸,轉子的旋轉是由定子產生旋轉磁場,其缺點在於必須用更複雜的控制技術(例如:磁場導向控制…等),來達成各種動作。但隨著控制晶片的發達,使交流馬達控制理論所需的運算能力逐漸滿足要求,而成為現今主流。

本作品主要是以Altera FPGA及內含一顆NiosII嵌入式軟核心處理器來研製多軸交流永磁同步馬達伺服控制之系統整合晶片(SOPC),並應用在三軸XYZ平台之伺服控制系統上,架構如圖1所示。在SOPC內主要包括兩個模組,第一個模組在NiosII處理器內以軟體程式實現,其功能包含控制晶片與個人電腦(PC)間之通訊程式、三軸XYZ平台伺服運動之程序控制、運動指令之解碼與運動軌跡之計算;第二個模組在FPGA晶片內以硬體方式實現,其功能主要執行三軸XYZ平台之三顆交流馬達的位置控制,包含六組PI控制器法則計算、三組光學編碼器信號偵測電路、三組電流估測電路、三組向量控制座標轉換電路及三組空間向量脈波寬度調變(SVPWM)信號輸出等,這三顆馬達之位置控制器全部由硬體數位電路實現。這兩個模組分別以軟硬體的方式實現的原因為前者在執行三軸XYZ平台伺服運動之程序控制及運動軌跡規劃時,計算較複雜及需具有彈性,但是取樣的頻率不需要太快(運動軌跡控制約100Hz),因此非常適合以軟體實現;而後者三軸XYZ平台三顆交流馬達之位置伺服控制,計算較簡單較固定,但是執行速度需要較快(SVPWM頻率12kHz,計數器約3~4MHz),因此必須以硬體實現。上述兩個模組間可並行處理,因此將可提高三軸XYZ平台伺服系統之控制特性。本作品所完成之三軸XYZ平台伺服控制晶片,不僅使控制數位化、提高系統性能及穩健性,並且可使產品小型化及降低成本。
 

圖1 以SOPC為基礎之XYZ平台伺服控制系統方塊圖

 

對於本作品的應用是非常廣泛的,由一般工業所需之CNC電腦車床加工、模具及金屬表面處理放電加工機、雕刻機、專業製圖機甚至到高科技的半導體製程技術…等皆為適用。

在交流伺服系統整合設計的實現,以往我們是採用一塊德州儀器所生產的243DSK發展板與ALTERA FPGA做溝通以完成系統整合的設計,如此的設計是結合微處理器與FPGA的架構,但是此種設計卻是採用雙晶片的架構,若是要再加上網路控制便要再另外加入網路控制晶片與網路連結座,將造成系統模組體積龐大與成本昂貴的缺點,然而現在採用NiosII發展板來設計電路,不但是體積縮小、成本降低此外不但控制系統得以以更加穩定而且系統模組設計亦可簡單化,再加上NiosII發展板硬體電路功能強大如網路控制晶片與外掛的記憶體模組,因此以NiosII發展板來設計SOPC硬體時的確是方便許多,同時也較以往設計電路來得快速。

另外在SOPC Builder 環境下,我們可以快速的選取已建立的NiosII處理器硬體開發套件來完成所需要的NiosII處理器,在NiosII處理器內我們可以撰寫硬體電路不易做到的複雜運算邏輯,並且我們可藉由周邊電路或PC端的輸入來輕易的修改或讀取處理器內部運算參數。此外藉由外部硬體電路規劃,我們可以將ㄧ些固定模式的邏輯運算、或需要高速運算的邏輯以硬體電路實現,並且在 QuartusII 環境下我們可以快速的實現和驗證我們的硬體電路設計。藉由NiosII嵌入式處理器高速的運算性能、及Stratix晶片的大容量邏輯閘我們可以輕易且快速的將我們的設計做實現。

三軸XYZ平台系統晶片整合功能
三軸XYZ平台系統整合晶片之內部結構如圖2所示。此SOPC內主要包括兩個模組,第一個模組在NiosII處理器內以軟體程式實現,其功能包含控制晶片與個人電腦(PC)間之通訊程式、三軸XYZ馬達運動之程序控制、運動軌跡計算;第二個模組在FPGA晶片內以硬體方式實現,其功能主要執行三軸XYZ平台之三顆交流馬達的位置控制,包含六組PI控制器法則計算、三組光學編碼器信號(QEP)偵測電路、三組電流估測電路及三組空間向量脈波寬度調變(SVPWM)信號輸出等,這三顆馬達之位置控制器全部由硬體數位電路實現。因此,此晶片可接收遠端PC之控制命令,經由模組1以NiosII Processor處理程序控制及軌跡規劃後,送出三軸馬達之位置控制角度;接著再經由模組2之三軸(XYZ軸)位置迴路控制電路計算後送出各軸PWM信號以驅動功率晶體來精確控制三軸馬達移動至目標位置。整體而言,SOPC之使用可使控制器小型化,NiosII Processor使用可使系統發展更彈性,因此可提三軸XYZ平台伺服控制之性能及降低成本。

圖2 三軸XYZ平台伺服控制器系統整合晶片之內部結構
 

 
系統架構說明
本實驗系統如圖1所示,組成如下:
● 三軸XYZ伺服平台: 此機構有三個運動軸,各軸由永磁式交流同步伺服馬達帶動滾珠導螺桿作線性運動,各軸運動最大行程為300mm。交流同步馬達功率為200W,具Hall Sensor 感測磁極位置及增量式光學編碼器(每轉2500脈波)感測轉子或磁極位置,馬達瞬間最大電流限制約10A,額定轉速2500rpm。滾珠導螺桿之導程為5mm/pitch。

● 三組交流馬達換流器: 如圖1所示,每組驅動器分別驅動XYZ平台之交流伺服馬達。驅動器之功率晶體採用TOSHIBA公司生產的IGBT;而光電晶體(Photo-IC)採用TOSHIBA公司生產之TLP250。換流器可接收FPGA晶片送出之PWM訊號以驅動交流馬達運轉。

● FPGA 晶片: FPGA晶片將參考採用ALTERA公司生產之產品- Altera StratixII EP2S60F672C5ES,此顆晶片具有24,176ALM、最大可用492 I/O腳位、36 DSP blocks、總共 2,544192 bits of on chip memory及一顆NiosII嵌入式微處理器,其具有32位元可規劃CPU核心、16Mbytes of flash memory 、 1Mbytes of static memory 、 16Mbytes of SDRAM。因此相當適合發展如三軸XYZ平台伺服運動控制晶片。
 
系統細部說明
A. 永磁同步馬達數學模型:
永磁馬達等效電路如圖3所示,其中電壓方程式的參考座標定於同步旋轉座標上。
 

圖3 馬達d-q軸模式

 

依照圖3 可以將d-q軸電壓整理成下式



再經由上式整理得


由直軸磁通與交軸電流產生的馬達轉矩,其得知

加入負載後所得的機械動態方程式為


結合以上三式再加上各軸電流控制器,我們可以獲得永磁同步馬達交耦時之控制方塊圖(圖4)。

 

圖4 永磁同步馬達交耦時之控制方塊圖


 其中將d軸電流控制至0,而馬達轉矩即轉速將僅由q軸電流控制,因此我們將控制方塊圖簡化成如圖5所示。
 

圖5 控制方塊簡化圖

 

利用上述永磁同步馬達控制原理,以閉迴路控制法配合永磁同步馬達編碼器回授訊號設計此馬達伺服控制器,使位置控制精確度增加。我們並以上述單軸位置控制為基礎,將系統擴充為三軸伺服運動控制器,如圖6 所示。
 

圖6 三軸伺服控制方塊圖

 

B. 點對點多軸軌跡規劃設計:

多軸位置軌跡規劃,本文採用點對點軌跡設計。點對點軌跡卽是不在意中間的軌跡而只在乎起點與終點的到達。除外,設計上也考慮具有同時啟動與同時到達、及啟動與到達時具有加減速之功能。點對點多軸軌跡設計方塊圖之輸入為各軸之旋轉角度(Δθ1Δθ2Δθ3),各軸最大角速度(W1,W2,W3),加/減速時間Tacc及取樣時間td,而輸出為各軸之位置命令θor 。設計步驟如下:

 

主要參考利用ALTERA公司生產之產品- Altera StratixII EP2S60F672C5ES,建構三軸XYZ平台伺服運動控制晶片。此晶片包含三軸 (XYZ)位置迴路控制電路其中包含有三軸空間向量脈波寬度調變(SVPWM)電路、方波編碼脈波(QEP)估測電路、電流估測電路等。因此,此晶片可同時接收三軸馬達之位置(光編碼器)信號並與命令位置比較,經由晶片內NiosII CPU與PLD兩部份之計算後送出各軸PWM信號以驅動功率晶體來精確控制三軸馬達移動至目標位置。整體而言,FPGA晶片之使用,不僅可使控制器小型化,而且可提三軸XYZ平台伺服控制之性能及降低成本。

藉由我們以Visual Basic語言在PC上發展三軸XYZ平台之人機監控運動軟體經由遠端PC上下達三度空間的座標指令,經由網路傳輸的設定到遠端伺服控制機構,經由 NiosII CPU 中所定義的軌跡運算後我們可以得到空間中的某一點到另一點,每ㄧ軸所需要轉動多少角度以及馬達所需要轉動的位置命令,經由位置和命令的軌跡規劃後再由PI控制器的位置伺服控制運算後算出所應輸出的脈波寬度調變(PWM)命令給脈波寬度調變硬體電路做運算以驅動馬達驅動電路板(DRIVER),再藉由方波編碼脈波處理器(QEP)硬體電路的運算我們可以將馬達控制到所需要的位置,此時我們再將感測到的每ㄧ軸位置傳回CPU中,再經由NiosII CPU轉成三度空間中座標,再由網路傳輸將其傳回遠端電腦人機介面,讓使用可以藉由遠端人機介面觀測是否達到所需的位置。

該功能的實現方法
(A)硬體方面
建構三組電源版,三組馬達驅動電路板,三組ADC轉換電路其中包含三軸馬達驅動板與FPGA晶片之連接介面及電源轉換電路。以上硬體設備為本實驗室所開發,由本次參賽隊員共同參與製作。

(B)軟體方面
首先我們需要撰寫一個可以透過網路傳輸與接收的PC端人機介面,再利用Altera公司所生產之StratixII EP2S60F672C5ES設計一個核心具有網路傳輸功能的CPU和伺服控制所需要周邊硬體線路,用來組成一顆完整的伺服模控制晶片,在伺服模控制晶片硬體電路方面我們需要設計撰寫三組空間向量脈波寬度調變產生電路(SVPWM)來產生驅動交流馬達驅動電路板之訊號、三組QEP處理器電路來量測馬達的位置。在伺服控制晶片CPU軟體計算方面分為2種,第一是設定網路的傳送接收機制,第二依照實現中所使用的三軸XYZ平台所需要的運動控制方程式,依公式撰寫所需要的動作響應,再藉由解空間向量後將空間座摽由網路傳回PC,藉以觀察是否達成要求。

本實驗在NiosII處理器裡面的控制中斷頻率設置為1KHz,此為控制器裡最基本以及重要的工作頻率,以下是使用NiosII CPU經大量複雜數學運算後,所量測到的中斷時間,由下圖可知NiosII CPU在經過大量複雜的加減乘除數學運算後,仍可精準達到實驗所要求的1KHz中斷頻率,以致控制頻率不會亂掉。 (1:表示進入中斷 0:表示離開中斷)

 

(A) 下圖為經NiosII CPU計算所得之點對點梯形變速軌跡規劃,藍色線代表命令,綠色線代表回授訊號,其工作頻率透過中斷頻率除頻後得100Hz; 1:加速段、2:等速段、3:減速段。

圖A 梯形軌跡規劃位置命令及回授

 

圖B 梯形軌跡規劃速度及回授


(B) 下圖為經計算所得之半徑5cm圓軌跡規劃位置命令,其工作頻率透過中斷頻率除頻後得50Hz。

 

圖A 圓形軌跡規劃位置命令

 

圖B 圓形軌跡規劃位置命令之sin波形(命令與回授)

 

圖C 圓形軌跡規劃位置命令之sin波形(位置誤差)

 


我們可以經由上面所得到的響應判別,在梯形軌跡規劃的速度響應上,是相當不錯的,而圓形軌跡規劃的位置響應亦可由sin波形位置誤差看出,馬達的位置控制效能也屬優良。

(C) 下圖為使用CPU內模組依點對點軌跡規劃計算出整體所需軌跡,並透過CPU內建構之PI Controller、速度及位置估測模組,利用XYZ Table所繪出之ALTERA公司標誌,其工作頻率計由100Hz、50Hz、25Hz所合成。


(D) 以下為NiosII CPU所計算之3D圓形軌跡位置命令,其工作頻率設為50Hzm。
 



(E) Nios處理器在本實驗過程中,是為相當重要的角色,在程式設計過程中Nios處理器提供了強大的Debug能力,這是作為IC設計所不可欠缺的一項重要功能,Nios處理器在本實驗中主要是作為控制器的設計,我們利用了Nios處理器設計了控制器所需的多組PI控制器、速度與位置估測模組、3D圓形軌跡規劃、點對點軌跡規劃、梯形變速軌跡規劃以及設計一組中斷程式1KHz,並依此中斷頻率做除頻,而得到各種不同所需之工作頻率。

以SOPC為基礎之三軸XYZ平台伺服控制系統如圖1所示,而其已建構完成之實驗系統如圖7、圖8、圖9所示。此系統主要組成如下:

1. 三軸XYZ平台:有三個運動軸,各軸由永磁式交流同步伺服馬達帶動滾珠導螺桿作線性運 動,如圖7。
2. FPGA發展板:乃系統核心,將參考採用ALTERA公司生產之產品- Altera StratixII EP2S60F672C5ES,以發展三軸XYZ平台控制晶片。
3. 三組交流馬達換流器:可接收控制晶片輸出之PWM信號,轉換成不同大小之電壓以控制交 流馬達運轉。
4. 個人電腦:發展人機介面監控軟體。
 

圖7 三軸XYZ伺服平台



圖8 以SOPC為基礎之三軸XYZ平台伺服控制之實驗系統


控制晶片硬體設計方塊圖
圖2中三軸XYZ平台伺服器系統整合晶片之內部電路,如圖9所示。圖9包括兩個模組,模組1在NiosII處理器內以軟體程式實現,其功能包含控制晶片與個人電腦(PC)間之通訊程式、三軸XYZ平台運動之程序控制、運動軌跡計算;模組2在FPGA晶片內以硬體方式實現,其功能主要執行三軸XYZ平台之三軸伺服控制器。模組2詳細之電路圖如圖9所示,主要包括六組PI控制器法則計算、三組光學編碼器信號(QEP)偵測電路、三組電流估測電路及三組空間向量脈波寬度調變(SVPWM)信號輸出等,其各自之電路圖如圖11~圖13所示。

圖9 三軸XYZ平台系統整合晶片內部硬體電路

 

圖10 三軸XYZ平台系統整合晶片內部第2模組-三軸位置伺服控制電路

 

(A) 比例積分(PI)控制器

圖11 PI控制器電路方塊圖

 

(B) 方波編碼脈波(QEP)處理電路

圖12 QEP估測電路方塊圖

 

(C) 空間向量脈波寬度調變(SVPWM)電路

圖13 SVPWM產生電路方塊圖

 


控制晶片軟體設計流程



圖14 NiosII 三軸伺服應用控制流程圖
 

 
設計法則
Step1: 建構馬達驅動器IP模組,於QuartusII環境下,以VHDL語言設計3組AC Servo motor 驅動器,其中包含磁場導向控制模組、QEP估測電路、線性光學尺位置估測電路、電流估測電路、ADC晶片驅動電路、SVPWM產生電路…等。

Step2: 以SOPC Builder建構一Nios處理器做為驗證馬達驅動器之正確性,首先於SOPC Builder內共規劃了一個NiosII processor、記憶體單元flash與sdram、Avalon Tri-State Bridge、system ID Peripheral、jtag uart、timer、Avalon PIO..等,並將Reset Address規劃在flash,Exception Address 規劃在sdram,最後再規劃一PLL供給CPU及sdram CLOCK,然後由Nios IDE內撰寫程式並由pio所得之馬達驅動器數值,輸出數值於MatLab軟體繪出波形圖作其數值驗證。

Step3: 三軸伺服控制系統硬體建構,其中包含3組Power、3組馬達驅動板、3組馬達所需之DC電源、FPGA發展板與周邊電路連接電路(其中包含ADC電路、線性光學尺訊號接收電路、Limit Switch訊號接收電路)..等。

Step4: 馬達控制器設計,於NiosII IDE設計一組頻率為1KHz之中斷程式,並撰寫多支副程式:梯形軌跡規劃、圓形軌跡規劃、PI控制器、速度估測器、位置估測器..等,首先於主程式計算所需軌跡,然後由中斷1KHz時間執行PI控制器、速度、位置估測器及運動軌跡程序控制程式。

Step5: 整合三軸伺服控制系統,將原先所規劃之CPU擴充為三軸伺服控制系統所需之Nios處理器,由新規劃好之CPU結合三軸馬達驅動器及位置估測電路,再將先前所撰寫好之運動軌跡程式,經由Nios處理器輸出至馬達驅動器,由馬達驅動器電路將所得到之命令值經計算後,得到所需之PWM訊號,再經由FPGA發展板與周邊電路的連結,將PWM訊號送至馬達驅動板,以驅動AC Servo Motor。

Step6: 驗證程式、整體系統之正確性及效能,將先前所規劃之程式及控制系統實際運用於XYZ Table 並由Nios處理器抓取馬達位置及速度回授訊號,再由Nios處理器輸出所下之命令值及所抓取之回授值做一比較,其中藉由修正控制器之控制法則參數的修正,直到控制效能趨於良好。

本作品係透過複雜的演算法來建構一個三軸交流永磁同步馬達伺服控制系統,作為一個具三度空間之運動控制,而在運動控制中我們利用NiosII CPU轉換三度空間之座標,並透過網路機制達到遠端控制及監控功能,同時在設計過程中,我們也利用Nios強大的功能,得以快速修改系統運算參數及驗證其正確性,使其設計時間大幅降低。

 
總結
經由參加此次比賽,雖然我對Nios的涉獵還不是很深,但也確實比以前有更深的了解,使用Nios可以讓我們輕鬆的規劃自己所需要的系統,裡面包括可規劃多個嵌入式處理器、on-chip和off-chip記憶體、高速I/O port、網路功能..等,利用這些工具我們可以很容易的在短時間內開發屬於自己且是多功能的IC,而透過SOPC Builder 我們也可以隨時輕易的變更CPU的硬體,做多元化的發展,在NiosII IDE的部分,也希望使用Nios的同好能善加利用其Debug功能,這會縮短相當多的軟體開發時間,重要的是透過ALTERA公司不斷的開發及更新Nios套件及功能,例如透過Custom Instruction的部份,我們可以將硬體運算速度提升,這可以有效的將我們的系統效能做提升,未來也希望在各地使用Nios的同好,不論是在業界或者是學界,大家都能夠多做交流,一方面可以快速提升所有使用者的能力,一方面也可以共同推廣Nios的優點,以增進SOPC技術方面的發展。
文章录入:fengfeiyi    责任编辑:fengfeiyi 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    利用帶有整合設計軟體的FPGA…
    使用SoPC Builder提升系統性…
    何謂SOPC(System on Program…
    Altera公司建立全球第一个SO…
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)