• 沒有找到結果。

現場可規劃邏輯閘陣列(FPGA)

第四章 實作結果

4.1 現場可規劃邏輯閘陣列(FPGA)

現場可規劃邏輯閘陣列(Field Programmable Gate Array,FPGA)是一種可規劃邏輯陣 列 IC,它提供了「邏輯閘陣列」(Gate Array,GA)元件的特性與「可程式陣列邏輯」

(Programmable Array Logic,PAL)元件的規劃彈性,具有以下幾個特點:一、使用者可 以規劃任意邏輯電路;二、FPGA 元件可以重複使用燒錄;三、可以快速合成使用者的 電路;四、具有完善的軟體可以配合使用。

利用 FPGA 來實現控制系統有著不少優勢在,除了有較高的運算時脈外,其平行運 算的能力也相當高。除此之外,利用FPGA 實現的控制器,其行為亦非常接近等效之類 比控制器,而且不但能保留其優點,如無計算上的延遲(No Calculation Delay)、更高的 頻寬(Higher Bandwidth)等;更能將其缺點排除,如參數漂移(Parameter Drifting)、較低的 積分層級(Poor Level of Integration) [17]。除此之外,FPGA 與其類似功能之 CPLD 做比 較亦存在不少優點,在編程上FPGA 比 CPLD 具有更大的靈活性,且 FPGA 非常適合複 雜邏輯結構,這些優勢也讓FPGA 更適合使用在控制系統上。

FPGA 元件內部主要包含了三大部分,數萬個標準的可程式邏輯單元(Configurable Logic Blocks,CLBs),排列形成N×N的電路矩陣;每個邏輯單元均連接至縱向網路及 橫向網路,外部在圍繞一圈輸入輸出單元,如圖4.1 所示。當電路完成設計後,便可以 把產生之電路架構編譯檔下載至FPGA 中進行連線規劃,成為一顆具有特定功能之 IC。

這樣不但縮短了研發時間,同時又擁有多次燒錄等功能,而且也大大增加設計方法上之 彈性。

接下來將介紹FPGA 的設計流程。首先 FPGA 的設計方法有二種,分別為圖形化流 程(Schematic Flow)以及硬體描述語言編輯(HDL Editor),然而近年來電路設計的規模日

述語言的設計方式成為主流,一般常見的硬體描述語言有VHDL、Verilog 等,而本論文 所使用的為Verilog。

圖4.1. FPGA 元件基本結構。

將所希望設計的電路利用上述方法完成後,接下來則可以做行為模擬(Behavior Simulation)及合成後的函數模擬(Function Simulation),藉此可以了解所設計的電路功能 是否正確。驗證功能正確後,就可以進行時序模擬(Timing Simulation),模擬電路在燒入 FPGA 後,所造成延遲是否符合需求。

本實驗所使用之現場可規劃邏輯閘陣列發展板,型號為 UBD-Spartan3-ST3。其核心 為Xilinx 公司研製,型號為 Spartan-3 XC3S200,並配合 Xilinx ISE 9.2i 之軟體進行電路 之撰寫及模擬。此核心內含 3840 個 4 輸入 LUT(Look-Up Table)及 D 型正反器(D-type Flip-Flop),封裝為 PQFP 208 隻腳位,其中供使用者使用的腳位有 141 隻。此外,還包 含了有12 個 18K-bits 的 Block RAMs,12 個 18 乘 18 的硬體乘法器。實驗板上則提供 4 個指撥開關及LED 介面,4 個七段顯示器及 40MHz 之石英震盪器等[18]。

4.2 實作電路組成與參數量測

GND CLK

SDATA

FPGA XC3S200 Ω

3 18V/110V

圖4.2. 實作電路架構。

首先考慮回授之輸出電壓訊號之實作電路。回授之輸出電壓先經過分壓的過程將輸 出電壓的大小調整在± 5V 之間,原因在於取樣電路所使用晶片 MAX121 其取樣範圍在 5V 之間。經過分壓後之輸出電壓進入一隔離放大器 AD202,其目的在於將輸出電壓 與取樣電路隔離,避免若輸出電壓直接進入取樣電路對其造成損害。MAX121 與 FPGA

±

板則需要四隻腳位進行連結,其控制訊號示意圖如圖4.3 所示。其中 CLK 及 CONVST 是由FPGA 板給至 MAX121 之驅動訊號,利用調整 CLK 的頻率可以得到所需要之取樣 頻率。而SDATA 及 SFRM 則為 MAX121 傳輸給 FPGA 板取樣後之串列訊號。

CLK SDATA CONVST

SFRM 40μs

圖4.3. ADC MAX121 控制訊號。

至於輸入電壓回授的部份,本實驗之硬體架構中需要一偵測相位之電路,目的在於 得到輸入電壓相位,進一步在FPGA 板中利用查表的方式得到與輸入電壓同相位之正弦 波絕對值sin

( )

ωt 。其中主要是利用一顆光耦合TLP620 來完成所需要之功能,其工作原 理為,輸入電壓由IC 的第一及第二隻腳位輸入並經過一大電阻,使流入 IC 的電流降低。

接著當輸入電壓足以使發光二極體發光時,則會使右邊之BJT 導通,使得 點之電壓 為零。反之當輸入電壓不足以使發光二極體發光時,則會使右邊之BJT 截止,使得 點之電壓為3.3 伏特。TLP620 與 FPGA 板需要三隻腳位進行連結,其中 GND 及 3.3V 是由FPGA 板給至 TLP620,而 則為TLP620 傳輸給 FPGA 板之相位訊號。

vPLL

vPLL

vPLL

利用 FPGA 板得到所需要之開關訊號後,需經由光耦合 TLP250 的隔離,再將開關 訊號傳入升壓型切換式整流器之開關中。TLP250 與 FPGA 板需要二隻腳位進行連結,

其中PWM 及 GND 訊號是由 FPGA 板給至 TLP250。進行隔離的目的在於避免電力轉換 器電源之高壓造成FPGA 板之損壞,此外,亦可以防止電力轉換器在開關切換時所產生 的雜訊干擾。根據圖4.2 所示,由 FPGA 板所產生之開關訊號由第二隻腳位進入 TLP250 中,當開關訊號為高準位時二極體發亮,使得上方之BJT 導通,則第六隻腳位輸出的訊 號則為高準位;當開關訊號為低準位時二極體截止,使得下方之BJT 導通,則第六隻腳 位輸出的訊號則為低準位。最後藉由後方之電路,可將由FPGA 板得到之開關訊號放大 再進入開關中

PCM56P 為用於數位轉類比之功能,利用 PCM56P 則可以將控制器所處理的數位訊 號轉為類比訊號進行觀察,然而 DAC 之功能並非無電流感測架構所必須,其目的僅為 確認數位訊號之正確性。PCM56P 與 FPGA 板需要三隻腳位進行連結,其控制訊號示意 圖如圖4.4 所示,實作上使用了 4 組數位轉類比模組因此需要有 4 組不同時刻的驅動訊 號EN。CLK、EN 及 DATA 均是由 FPGA 板給至 PCM56P。CLK 及 EN 訊號為用於驅 動PCM56P,DATA 則為一串列訊號進入晶片中進行轉換。

CLK EN1 EN2 EN3

EN4 40μs

圖4.4. DAC PCM56P 控制訊號。

實作電路中之電感元件,其內阻值的精確度對於無電流感測架構而言是非常重要 的。因此利用圖4.5 中所示的電路架構對電感內阻進行量測。方法為將電感串聯一大小 為5Ω 的電阻 R ,再以一交流電壓源 加於兩側,電感則可以視為純電感串聯一小電阻

。接著利用功率計可以得到此迴路之電流大小以及交流電源所提供之功率大小。配合 式(4-1)即可以計算出所需要之電感內阻值。

vs

rL

(

R r

) (

2 2 fL

)

2

I

Z V L

s

s = + + π

= (4-1)

vs +

is rL L

R

圖4.5. 電感內阻量測電路。

首先,我們需得到精確的負載電阻 R 大小,考慮利用一電壓源直接串聯此電阻 R , 並利用功率計得到輸入電壓及輸入電流,接著在算出電阻 R 的大小。當輸入電壓頻率為 60Hz 時,利用功率計得到之v =9.723Vi =1.9412A,計算可得R= 008765. Ω。當輸

入 電 壓 頻 率 為 120Hz 時,利用功率計得到之vin =9.717V 、 , 計 算 可 得

A iin =1.94 Ω

= 008765. R

接下來根據式(4-1)計算 。當輸入電壓頻率為 60Hz 時,利用功率計得到之

rL

V

vin =9.704 iin =1.8771A , 計 算 可 得 Z =5.16968 , 代 入 式 (4-1) 可 以 計 算 出

,最後可得到 Ω

=

+rL 5.111245

R rL = 102490. Ω。當輸入電壓頻率為 120Hz 時,利用功

率計得到之vin =9.737Viin =1.8115A,計算可得Z =5.3751,代入式(4-1)可以計算出

,最後可得到 Ω

=

+rL 5.111245

R rL = 137950. Ω。除了考慮電感的內阻外,實際上輸入側

的導線的電阻值 其重要性亦同於電感內阻rl rL,其大小約為rl = 050. Ω。最後可以得到 Ω。

=

+ l 0.1536~0.1880

L r

r

圖 4.6 及圖 4.7 為實作電路之照片,其中圖 4.6 左邊所示的為 FPGA 實驗板,而右 邊的則為取樣電路。圖4.7 下方所示的為相位偵測電路,上方則為單相升壓型切換式整 流器及其電感和負載電阻。

圖4.6. FPGA 實驗板及取樣電路之實作電路照片。

圖4.7. 單相升壓型切換式整流器及相位偵測電路之實作電路照片。

4.3 FPGA 電路合成

在完成實作硬體電路後,接下來就需要在 FPGA 板中完成無電流感測架構之電路合 成。FPGA 的電路合成又可以簡單分為二大部分,其一為電壓迴路,主要包含了輸出電 壓取樣以及 PI 控制器;其二為產生開關訊號之電路,主要包含了建立一正弦波絕對值 之表sinωt 、電感內阻壓降補償、導通電壓壓降補償以及產生開關訊號。

電壓迴路的目的主要是為了達到輸出電壓穩壓的效果,並且得到一相角訊號θ ,其 執行順序示意圖如圖4.8 所示。其中 S2 到 S7 的步驟為完成 PI 控制器,首先將輸出電壓 經過分壓後,接著取樣為12bit 與參考電壓 相減後得到誤差值,將此誤差值分別 乘上 及 I,在程式中將 及 分別設定為

vo Vo,ref

KP K KP KI KP =003F(63)及 。假設考

10V 的誤差並維持

) 60 ( C

=003 KI

10 =00D0(208)

KP後,左移一位取高位元可得到Vm=000E(14),利用此值可以得到此時的相角大小 為14×π6250=0.00224π rad ,因此可以得到

radV

KP =2.24×104π 。同理可以得到 s

radV

KI =0.71083π ⋅ ,差別僅在於需考慮將誤差維持時累加的過程。

在 S4 時進行累加的過程,將本時刻之相乘結果加上上一時刻之相乘結果。圖中包 含二個限制器,能將誤差訊號限制在一正負範圍之內。最後則是將經由比例積分控制器 轉為相角訊號。在實際合成上,電壓迴路使用12μs完成。

S0 S1 S2 S3 S4 S5 S6 S7 S8

vo

ref

Vo,

KP

KI

⊕ ⊕

D A/D θ

12bit

191 Vm

圖4.8. 電壓迴路之執行順序示意圖。

利用上述電壓迴路所得出之相角訊號後,就需要利用此相角訊號得到電路所需要的 開關訊號。根據第三章中所推導之無電流感測控制之公式可知,需要一正弦波絕對值訊 號sinωt ,此訊號在利用FPGA 實現時,是建立一正弦波絕對值之表。利用查表的方式 並配合輸入電壓相位偵測電路,即可以得到一與輸入電壓同相之正弦波絕對值訊號

ωt

sin 。圖4.9 為由相位偵測電路得到之實作波形,其中 為測量TLP620 第三隻腳位 而得,

vPLL

ωt

sin 則為利用vPLL訊號查表而得的正弦波絕對值訊號。

10ms

vs

vPLL

ωt sin

圖4.9. 相位偵測實作波形。

圖 4.10 為產生開關訊號之執行順序示意圖,其中關鍵的步驟即為查表的過程。在實 現上,FPGA 中建立一 6250 筆之正弦波絕對值,選擇 6250 的主要原因為,根據輸入電

壓可知,正弦波絕對值訊號sinωt 的頻率為120Hz,且考慮在每一次開關切換週期查一 次表,亦即查表的時間間格為20μs。利用上述的數據可以知道在一個正弦波絕對值週 期內的查表次數應為112020μ,為了能在一週期內查完一次表,我們則需要找到一整 數,能整除上述之查表次數。同時考慮表的筆數越大對控制的效果越好的條件下,因此

壓可知,正弦波絕對值訊號sinωt 的頻率為120Hz,且考慮在每一次開關切換週期查一 次表,亦即查表的時間間格為20μs。利用上述的數據可以知道在一個正弦波絕對值週 期內的查表次數應為112020μ,為了能在一週期內查完一次表,我們則需要找到一整 數,能整除上述之查表次數。同時考慮表的筆數越大對控制的效果越好的條件下,因此

相關文件