• 沒有找到結果。

第四章 系統架構

4.2 軟體架構

本論文的運算核心,是以 TI 公司所出產高效能之 DSP,所使用的編輯軟體為 TI 公司所開發之 Code Composer(CC)4.12 版。此套軟體從撰寫、編譯、組譯、執

的時間。因其為低階語言,比較接近機械語言,所以占用的記憶體空間會比較少;

但缺點是當程式的架構大時,撰寫程式所須的時間將大為增加,且在規劃與維護 上將會顯得較為吃力。另外其程式碼的移植性相當的低,也就是說若今設計者想 要將原本在 24xx 系列中的程式,移植到 54xx 系列,那麼設計者必需要重新學習 54xx 系列的組合語言指令,因為 24xx 系列與 54xx 系列的程式碼不相容。

C 語言優點是程式較易撰寫,因其為高階語言,較符合人類的思考邏輯。由其 是在程式的架構變大時,更顯得容易維護與理解。另外,C 語言所編寫的程式碼移 植性相當的高,若程式設計者想將 24xx 系列的程式碼運用到 54xx 系列上,只需 更改其中若干的暫存器的位址與一些該注意的相關設定,所以在程式開發的時間 上,可節省相當多。其缺點是程式碼執行效率比較差,也就是說若同樣作一件事 情,若用組合語言來撰寫程式,則程式碼占用的記憶體容量,會比用 C 語言來撰 寫程式的程式碼所占之記憶體容量來得小。以 C 語言撰寫的程式的另一缺點,設 計者難以從中得知,執行該程式所需花費的時間。

基於以上的考量本研究採用 C 作為系統發展的程式語言,系統操控程式依其 功能可區分為兩大類:

一、時域方面:包括信號取樣及擷取控制程式,以及下列電力參數計算與顯示程 式:

(1)視在功率 (2)有效功率 (3)虛功率 (4)功率因數 (5)電壓有效值 (6)電流有效值 (7)電壓波形圖 (8)電流波形圖

二、頻域方面:除了前述信號取樣及擷取程式之外,也包含下列信號,頻譜分析 及諧波與閃爍指標計算程式:

(1)電壓閃爍頻譜及? V 10

(2)電壓諧波頻譜、失真因數及總諧波失真因數 (3)電流諧波頻譜、失真因數及總諧波失真因數 4.2.1 信號擷取

DSP 之 A/D 通道有 16 個,本論文用只用 2 個通道,通道 0 作電壓信號的擷取,

通道 1 作電流信號的擷取。DSP 內部以 8 個通道為一組,以一個 8 對 1 的多工器,

把類比資料送入 A/D 內部轉換,最後將轉換完成之數位資料分送至其內部特定的 暫存器中,如附錄 5 所示[27]。本論文設定的每一週期取樣點為 128 點,所以取

樣時間間隔為 1

60 128× 秒。為了能夠使 2 個通道,均能以每週期 128 點的取樣,又 為了配合 A/D 內部的結構,所以我們必須設一旗標 FLAG,作為擷取通道 0 或通道 1 資料的判斷依據。當 FLAG=0 時將 ADCIN00 的資料送到 Result Reg0 中,再由 DSP 將資料存入儲存電壓信號的暫存器 v[k],k=0~127,共 128 點資料;當 FLAG=1 時 將 ADCIN01 的資料送到 Result Reg 1 中,再由 DSP 將資料存入儲存電流信號的暫 存器 i[k]中,當 FLAG=1 時,令 k=k+1,若 k=128 時即表示已經完成一個週期的取 樣。為使電壓與電流信號取樣間隔同時都能到達 1

60 128× 秒,A/D 取樣的時間間隔 必須變為 1

60 128 2× × 秒。在開始取樣前,必須先預設 FLAG=0 及 k=0。其詳細流程 如圖 4.10。

圖 4.10 一般電力參數量測之電壓及電流信號取樣與擷取 開始

Result Reg0 資料放入 v[k]

Result1 資料 放入 i[k]

設 FLAG=0 k=k+1 ADC 取樣時間間隔設為 1

60 128 2× × 秒

FLAG=0 ? 是

k=128 ?

是 否

結束取樣 ? 是 結束

否 k=0,FLAG=0

設 FLAG=1 ADC 轉換

4.2.2 電力參數計算

以電壓信號暫存器 v[N]、電流信號暫存器 i[N]的資料,可直接計算出電壓有 效值、電流有效值。圖 4.11 是以(3.1)式及(3.2)式理論為基礎的程式流程。圖中 v[k]為電壓信號的暫存器,i[k]為電流信號的暫存器,N=128。開始計算電壓有效 值Vrms及電流有效值Irms前,須預設 k=0、V =0 、x I =0。至於視在功率、實功率、x 虛功率、功率因數,可依(3.3)式至(3.6)式由 v[N]、i[N]、Vrms、Irms間接計算而 得。

開始

2

x x

V =V +v[k]

2

x x

I =I +i[k]

k=128 ? 否

x rms

V = V

N

x rms

I = I N 是 k=0,V =0 ,x I =0 x

k=k+1

4.2.3 諧波計算

以電壓信號暫存器 v[N]、電流信號暫存器 i[N]的資料,依(3.23)式至(3.26) 式可計算出電壓總諧波失真因數與電流總諧波失真因數。過程中 FFT 後,會把時 域資料 v[N]、i[N]轉變為頻域資料 V[N]、I[N],流程如圖 4.12,其中 k=0~127。

預設暫存器 Vh=0 及 Ih=0 ,此THD 及V THD 是用來儲存電壓、電流總諧波失真因I 數。另外,預設 n=2。

圖 4.12 電壓及電流總諧波失真因數計算流程

n 2 1

Vh=(V ) +Vh V

n 2 1

Ih=(I ) +Ih I 開始

將 v[k]及 i[k]

代入 FFT 演算

n=65 ?

THD = Vh V

THD = Ih I

結束

否 是

n=n+1

n=2, Vh=0 , Ih=0 , THD =0 ,V THD =0 I

4.2.4 閃爍計算

欲以(3.29)式及(3.30)式的方法求得 128 週期的電壓有效值,除引用電壓信 號暫存器 v[N]外,尚須再引入另外 2 個暫存器陣列。將單數週期的電壓資料存放 在 v[N],將雙數週期的電壓資料存放在 vp[N],將每一週期電壓有效值存放在 vc[N],其中 N=128,在程式執行前先預設 k=0,x=0,vk=0,Vave=0,圖 4.13 為 128 週期電壓有效值取樣與應用(3.27)計算? V 的詳細流程。 10

最後將整個系統的軟、硬體架構組織起來之後,其操作流程如圖 4.14。

設定 ADC 取樣時間為 1

60 128× 秒 開始

k=128 ?

vc[x]= 1 vc[x]

N 否

v[k]=Result Reg0

k=0,x=x+1

A

vc[x]=v[k] +vc[x] 2

k=k+1

k=0,x=0,vk=0,Vave=0

A/D 轉換

圖 4.13 電壓閃爍演算流程(續) A

x/2 取餘=0 ?

設定 ADC 取樣時間為 1

60 128× 秒

vp[x]=vp[k] -v[x]2

k=128 ?

設定 ADC 取樣時間為 1

60 128× 秒

v[x]=v[k]-vp[x]2

k=128 ?

否 否

B

是 是

C

A/D 轉換 A/D 轉換

vp[k]=Result Reg0 v[k]=Result Reg0

vc[x]=vp[k]+vc[x]

k=k+1

vc[x]=v[k]+vc[x]

k=k+1

B

vc[x]= 1 vc[x]+vc[0]

N

x=128 ? C

vk=vc[k]+vk 是

k=127 ? 否

Vave= vk N 是 k=0,x=x+1

k=0 k=k+1

vk=0

圖 4.13 電壓閃爍演算流程(續) D

vc[k]=vc[k]-Vave

k=128 ? 否

將 vc[N]作 FFT 演算 計算可得? V 10

結束 是 k=k+1

圖 4.14 系統運作流程 信號取樣與電力參 數、諧波、閃爍計算

LCD 輸出資訊

重新量測

結束量測 設定電流範圍

(鍵盤輸入)

否 選擇要觀看的電力參

數(鍵盤輸入) 開始量測

相關文件