第四章 實作結果
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×10−4π 。同理可以得到 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μ,為了能在一週期內查完一次表,我們則需要找到一整 數,能整除上述之查表次數。同時考慮表的筆數越大對控制的效果越好的條件下,因此 選擇了6250 筆。圖 4.10 中之常數 15 即為6250 20 ⎟=15
⎜ ⎠
÷⎝⎛1120 μ⎞ 之結果。
vin
( )
15 sin constsin
o
s V
Vˆ
⊗
o L s
LV r V ω
ˆ
o F
V 3V +
+
+ −
+
⊗ − −
圖4.10. 產生開關訊號之執行順序示意圖。
根據第三章所推導之控制訊號公式,需要對同一個表進行兩次查表的動作,分別得 到與輸入電壓同相位之正弦波絕對值訊號sinωt ,在S14 時完成;以及與輸入電壓有相 位差θ 之正弦波絕對值訊號sin
(
ωt−θ)
,在S13 時完成。並再個別乘上一常數即可以得 到我們所求之控制訊號,最後即可以得到所希望之開關訊號。在實際合成中,產生開關 訊號的迴路使用了8μs完成。若再加上電壓迴路所需的12μs,則剛好為一個開關切換週 期20μs。本實作合成的電路,根據不同的簡化架構所使用 FPGA 的資源比例如下表 4.1 所 示。根據文獻[18],Spartan-3 XC3S200 FPGA 中可以供使用的 4 輸入 LUT(Look-Up Table) 及D 型正反器(D-type Flip-Flop)皆分別有 3840 個。Block RAM 主要是由建立之正弦波 絕對值表所使用。一組乘法器的使用,僅用於圖4.10 步驟 S15 中。
表4.1 各種架構下之 FPGA 使用率 D-type Flip-Flops 3840 927
(24%)