• 沒有找到結果。

題目:切換式電壓轉換電路數位脈波寬度調變 控制器之實現

N/A
N/A
Protected

Academic year: 2022

Share "題目:切換式電壓轉換電路數位脈波寬度調變 控制器之實現 "

Copied!
74
0
0

加載中.... (立即查看全文)

全文

(1)

中 華 大 學 碩 士 論 文

題目:切換式電壓轉換電路數位脈波寬度調變 控制器之實現

Implementation of Digital PWM Controller for Switching Converters

系 所 別:電機工程學系碩士班

學號姓名:M09101040 許佳傑

指導教授:宋 朝 宗 博士

(2)

摘要

本論文主要用以實現及驗證數位脈波寬度調變控制器之積體電 路設計,其中脈波寬度調變技術已廣泛應用於現代電力電子之高效率 切換式直流電壓轉換器,以提昇系統電路之性能,並達到省能與高效 率之目的。本數位控制電路以 PID 控制器之原理為設計基礎,系統的 輸出電壓經過類比數位轉換器而成為控制迴授信號,其與參考電壓之 差值所產生的誤差信號作為數位控制器的輸入;而數位控制器則以 FPGA 作為電路實現的元件,並利用硬體描述語言來完成數位電路系 統之設計,最後,透過 Buck 電壓轉換器之系統電路驗證所設計數位 控制器之功能與性能。以 FPGA 實現之數位控制器設計可作為製作積 體電路元件之基礎,經由 FPGA 的實現可進一步驗證數位控制器的基 本架構、運作原理與工作效能,進而研究及設計針對不同需求與性能 的控制法則,以期使數位脈波寬度調變控制器之積體電路設計更臻於 完善。

(3)

Abstract

In this paper, a digital PWM controller of switching converters for the design of integrated circuits is implemented and verified. In order to upgrade the performance of system circuits, the PWM technology is popularly applied to the high efficient switching converters in modern power electronics. The design of digital control circuits are based on the theory and principles of PID controller. The FPGA components are utilized to implement the digital controller using the VHDL design.

Finally, the Buck converter is used to demonstrate the functions and performance of the designed digital controller. The FPGA-based digital design may be regarded as the foundation of manufacturing the integrated circuits of PWM controller. The main goal of this paper is to study and implement the digital control laws of PWM switching converters for the specific requirements and performance. The implementation and experiments of the digital PWM controllers will contribute to optimize the design of PWM controller integrated circuits.

(4)

誌謝

又到了唱青青校樹,芭樂蓮霧的日子了。

在這研究所的兩年裡,有許多的事是值得回味的,也有很多人是 要感謝的。首先,我要感謝我的指導老師朝宗老師,雖然我給您指導 的時間不多,但是在這期間我學到了很多做學問的道理,這讓我在日 後的學習對我來說是一項寶貴的經驗。另外,我要感謝的人一定少不 了那群每天在實驗室裡一起努力的伙伴,久雄、銘洲、明錕、阿仁、

小阿福,還有阿福,凱鈞,雅玲等等,有你們的陪伴,我覺得研究生 生活真的很棒。除此之外還有一個人,純秀,謝謝妳一路陪我走過來,

在論文完成的最後一個星期,妳真的幫了我不少忙。

再來,我要感謝口試委員廖德誠老師、梁耀文老師、陳俊宏老師,

有你們的指導,我的論文才能更完善。

最後,我要向我爸媽說一聲,爸、媽,謝謝您們,為了我的學業,

您們辛苦了。

(5)

目錄

摘要 ... I ABSTRACT ... II 誌謝 ... III 目錄 ... IV 圖目錄 ... VI 表目錄 ... IX

CHAPTER 1 緒論 ... 1

1.1 研究背景 ... 1

1.2 研究動機與流程 ... 1

1.3 論文架構 ... 3

CHAPTER 2 數位脈波寬度調變控制積體電路之介紹 ... 4

2.1 控制積體電路介紹 ... 4

2.1.1 控制電路架構與特性 ... 5

2.2 輸出電壓取樣電路 ... 7

2.2.1 ADC0820 的特性 ... 8

2.2.2 ADC0820 的工作原理 ... 8

2.3 數位補償器電路 ... 11

2.3.1 查表法(Look-up Table)介紹 ... 12

2.4 數位脈波寬度調變器 ... 13

2.4.1 數位脈波寬度調變器之架構 ... 14

CHAPTER 3 數位控制器之介紹與設計方法 ... 17

3.1 數位控制器介紹 ... 17

3.1.1 Z 轉換 ... 19

(6)

3.2 數位 PID 控制器 ... 21

3.3 數位補償器 ... 23

CHAPTER 4 數位脈波寬度調變控制積體電路之實現 ... 27

4.1 VHDL 硬體描述語言簡介... 29

4.2 A/D 轉換器... 29

4.2.1 VHDL 描述 A/D 轉換器控制信號 ... 32

4.3 數位補償器 ... 33

4.3.1 VHDL 描述數位補償器 ... 35

4.4 數位脈波寬度調變器 ... 38

4.3.1 VHDL 描述數位脈波寬度調變器 ... 39

CHAPTER 5 數位脈波寬度調變控制積體電路之模擬驗證 ... 43

5.1 A/D 轉換器之模擬驗證... 44

5.2 數位補償器之模擬驗證 ... 45

5.3 數位脈波寬度調變器之模擬驗證 ... 45

5.4 數位脈波寬度調變控制積體電路之模擬驗證 ... 46

CHAPTER 6 結論與未來研究方向 ... 61

6.1 結論 ... 61

6.2 未來研究方向 ... 62

參考文獻 ... 63

(7)

圖目錄

圖 1-1 研究流程圖...2

圖 2-1 數位脈波寬度調變控制積體電路與降壓型直流至直流轉 換器[4] ...5

圖 2-2 數位脈波寬度調變控制電路的架構[4]...6

圖 2-3 ADC0820 接腳圖[15] ...8

圖 2-4 ADC0820 讀取模式時序圖[15] ...9

圖 2-5 ADC0820 寫入-讀取模式時序圖(trd > tI)[15] ...10

圖 2-6 ADC0820 寫入-讀取模式時序圖(trd < tI)[15] ...10

圖 2-7 ADC0820 寫入-讀取模式下 Stand-Alone 時序圖[15]...11

圖 2-8 查表法的實現架構[6]...13

圖 2-9 4-bit 數位脈波寬度調變器範例[4] ...15

圖 2-10 2-bit 數位脈波寬度調變器範例波型圖[4] ...16

圖 3-1 單位回授系統方塊圖...18

圖 3-2 控制器方塊圖...18

圖 3-3 離散系統 z 轉換函數...19

圖 3-4 z-平面...20

圖 3-5 電壓調變系統的離散時間轉移函數[4]...23

圖 3-6 控制系統轉換函數示意圖...25

圖 3-7 a=10、b=-11、c=3 之輸出電壓波型...25

圖 3-8 a=20、b=-19、c=1 之輸出電壓波型...26

圖 3-9 a=50、b=-55、c=10 之輸出電壓波型...26

圖 4-1 Altera Quartua II 2.0 發展環境 ...28

圖 4-2 Altera Nios 嵌入式系統發展實驗板...28

(8)

圖 4-4 ADC0820 取樣電路方塊圖 ...32

圖 4-5 ADC0820 的 VHDL 描述程式 ...33

圖 4-6 補償器編碼部份之 VHDL ...36

圖 4-7 補償器查表部份之 VHDL ...37

圖 4-9 8-bit 數位脈波寬度調變器方塊圖 ...38

圖 4-10 數位脈波寬度調變器的 duty-ratio 值[4] ...39

圖 4-11 數位脈波寬度調變器 VHDL ...40

圖 4-12 數位脈波寬度調變器 VHDL ...41

圖 4-13 數位脈波寬度調變器 VHDL ...42

圖 5-1 數位脈波寬度調變控制積體電路驗證電路圖 ...46

圖 5-1 QuartusII 2.0 軟體模擬 ADC0820 波型...50

圖 5-2 ADC0820WR/RDY腳與INT腳之波型圖 ...50

圖 5-3 Vref = 3 V,取樣電壓 3 V...51

圖 5-4 Vref = 3 V,取樣電壓 2.9 V...51

圖 5-5 Vref = 3 V,取樣電壓 3.06 V...51

圖 5-6 數位補償器查表運算模擬,輸出信號為 d ...52

圖 5-7 數位脈波寬度調變器輸出模擬圖 ...52

圖 5-9 數位脈波寬度調變控制積體電路操作頻率與寬度調變波 型圖 ...53

圖 5-10 Vref = 2.5 V 之 Cout與 Vgs波型...53

圖 5-11 Vref = 2.5 V 之輸出電壓暫態波型 ...54

圖 5-12 Vref之輸出電壓暫態與 Cout 圖 ...54

圖 5-13 Vref = 2.5 V 之輸出電壓與 Cout 暫態 ...55

圖 5-14 Vout 與 Cout 圖...55

圖 5-15 Vref = 2.5 V 輸出電壓與寬度調變波波型 ...56

(9)

圖 5-16 Vref = 2.7 V 之 Cout與 Vgs波型...56

圖 5-17 Vref = 2.7 V 之輸出電壓暫態波型 ...57

圖 5-18 Vref = 2.7V 之輸出電壓暫態與 Cout 圖...57

圖 5-19 Vref = 2.5 V 之輸出電壓與 Cout 暫態 ...58

圖 5-20 Vref = 2.7 V 輸出電壓與寬度調變波波型 ...58

圖 5-21 Vout 與 Cout 圖...59

圖 5-22 ADC0820 電路 ...59

圖 5-23 控制器電路...60

圖 5-24 buck 電壓轉換電路...60

(10)

表目錄

表 4-1 ADC0820 編碼表...34

表 4-2 a = 10 之查表 ...34

表 4-3 b = -11 之查表...35

表 4-4 c = 3 之查表 ...35

(11)

Chapter 1 緒論

1.1 研究背景

近年來,隨著功率半導體元件、控制 IC 及計算機等技術的進步,

電力電子技術及其應用領域亦迅速擴張,不僅已成為目前工業界用 電、製造、自動化所必需,更逐漸深入一般人的日常生活中。此背後 所隱含的不僅是電能轉壞技術之變革,更是龐大產值及能源(省能)

之所在。因此,電力電子已成為國內外電力領域發展的重點[1]-[8]。

1.2 研究動機與流程

切換式直流至直流轉換器廣泛被應用在切換式直流供應器以及

(12)

輸入電壓與輸出負載變動的情況下,能夠調整輸出電壓為所設定的位 準,實為一項重要的研究。然而控制分為類比控制系統與數位控制系 統,我們所採用的是數位控制系統,這是因為數位式控制器可以提供 以下幾項優點[13]:

可程式化,一個控制器可以經過修改而再去控制其他的轉換器。

減少類比元件的使用。

系統架積體電路化。

提高靜態與動態系統的特性。

減小對製程參數、溫度參數變化的靈敏度。

降低成本。

設計所需時間較短,有許多現成工具(EDA)可以使用。

本論文的研究流程可以下圖所表示之:

圖 1-1 研究流程圖 硬體驗證 電路合成 波形模擬、數據驗證 硬體描述語言 HDL 描述硬體

定義設計規格

(13)

1.3 論文架構

本論文第二章將介紹數位脈衝寬度調變控制積體電路與切換式 直流至直流轉換器的整個系統架構及其運作方式。第三章為數位脈衝 寬度調變控制積體電路中數位控制器的設計方法與其所運用到的控 制理論。第四章為數位脈衝寬度調變控制積體電路與切換式直流至直 流轉換器的硬體實現,利用硬體描述語言(VHDL)來設計發展數位 脈波寬度調變控制積體電路,並使用自動化數位設計軟體(EDA)來 將其電路實現。第五章為整個數位脈衝寬度調變控制積體電路與切換 式直流至直流轉換器電路的模擬與驗證。第六章為結論與未來研究方 向。

(14)

Chapter 2

數位脈波寬度調變控制積體電路之 介紹

2.1 控制積體電路介紹

在本論文中,我們將介紹一個數位脈波寬度調變控制積體電路來 控制一個切換式降壓型直流至直流轉換器電路。控制電路中包含了三 個主要元件:類比至數位轉換器(A/D Converter)、數位補償器(Digital Compensator ) 、 數 位 脈 波 寬 度 調 變 器 ( Digital Pulse-Width Modulator)。整個控制積體電路再加上直流至直流轉換器的方塊圖 如圖 2-1 所示。

(15)

圖 2-1 數位脈波寬度調變控制積體電路與降壓型直流至直流轉換器,節錄自[4]

2.1.1 控制電路架構與特性

由圖 2-1 知,數位脈波寬度調變控制積體電路與切換式降壓型直 流至直流轉換器形成了一個閉迴路回授(closed-loop feedback)的系 統,而控制積體電路的主要功能就是調整直流至直流轉換器的輸出電 壓(Vo)。當切換式降壓型直流至直流轉換器的輸出電壓因為輸入電 壓(Vg)或負載電流(IL)的變動而改變時,此時,控制積體電路所 送出的訊號(Cout)便會對轉換器做調整的動作,使得轉換器的輸出 電壓又能夠穩定地保持在我們所要的參考電壓(Vref)設定。整個數 位脈波寬度調變控制積體電路的內部架構如圖 2-2 所示。

(16)

圖 2-2 數位脈波寬度調變控制電路的架構,節錄自[4]

當電路開始啟動時,切換式降壓型直流至直流轉換器會將輸入電 壓(Vg)降壓而輸出(Vo)。其輸出電壓與輸入電壓的關係式如式

(2-1)。

g

o

DV

V

= (2-1)

D 為責任週期(duty ratio),其值為 0 < D < 1。首先,控制積體 電路中的類比至數位轉換器(A/D)會對轉直流至直流轉換器的輸出 電壓做取樣而得到一個取樣電壓(Vsense),一般的情況下,Vsense = Vo。 接著類比至數位轉換器會將取樣電壓會與送至類比至數位轉換器的 參考電壓(Vref)做比較,其比較後的差值即為誤差信號(e[n])。這 個誤差訊號被送至數位補償器做運算,其運算的結果為信號(d[n]),

這就是數位脈波寬度調變器的輸入,調變器會根據訊號 d[n]的值,而 送出一個頻率固定的脈波信號(Cout),其脈波寬度即是由 d[n]值所 決定的。最後,這個新產生的脈波寬度訊號會再送至切換式降壓型直 流至直流轉換器的開關元件而做切換,使轉換器轉換不同的輸出電

(17)

壓。經由這樣不斷的取樣、比較、補償,所以會使切換式降壓型直流 至直流轉換器的輸出電壓穩定。要設計這樣的電路,我們訂定了一些 基本主要規格如下,

系統操作頻率(取樣頻率):130KHz。

輸入電壓(Vg)= 5 V。

輸出電壓(Vo)= 0 V ~ 5 V。

2.2 輸出電壓取樣電路

由圖 2-1 所示知道,要對切換式直流至直流轉換器做電壓的調 整,第一步就是要對轉換器的輸出電壓取樣。所以說,這算是在整個 控制積體電路中最重要的一個電路。因為如果取樣電壓不準的話,那 接下來的補償就沒意義了。基於這樣的理由,我們就必須要先知道我 們系統的要求再去選擇一顆適合的類比至數位轉換器。

由於我們系統的操作頻率為 130KHz,即切換式直流至直流轉換 器的輸出電壓的頻率亦為 130KHz,所以要對這樣頻率的電壓取樣,

我們就得選擇一顆轉換速度至少達 130KHz,即轉換時間至少要在 7.62 us 以內的類比至數位轉換器,這樣才符合我們的系統操作頻率要 求。因此,我們選擇了 ADC0820 這顆類比至數位轉換器。

(18)

2.2.1 ADC0820 的特性

ADC0820 是一顆 8 位元的 CMOS 類比至數位轉換器,共有 20 隻接腳,其接腳如圖 2-3 所示。ADC0820 的主要特性如下說明:

解析度為:8 Bits。

轉換時間:最大 2.5 us(RD 模式)。

最大 1.5 us(WR-RD 模式)。

最大誤差:±1/2 LSB 至±1LSB。

功率消耗:最大 75 mW。

圖 2-3 ADC0820 接腳圖,節錄自[15]

2.2.2 ADC0820 的工作原理

ADC0820 類比至數位轉換器有兩種操作模式,讀取模式(RD Mode)與寫入-讀取模式(WR-RD Mode)[15]。模式的選擇由第七

(19)

支腳(MODE)來決定,當MODE腳輸入為〝0〞時,執行在 RD 模式,

MODE腳輸入為〝1〞時,執行在 WR-RD 模式。兩種模式將說明如下:

RD 模式

ADC0820 的寫入模式時序如圖 2-4 所示。當 ADC0820 的第七支 腳MODE輸入為〝0〞時,ADC0820 即進入讀取模式。先將第 13 腳(CS) 設為〝0〞,致能 ADC0820。在讀取模式下,一個完整的轉換是當第 8 腳(RD)輸入為〝0〞時開始,一直到輸出有資料送出為止。當轉 換結束後,第 9 支腳(INT)會由 1 變 0 以表示轉換器正在忙碌中或 是可以讀取資料。

圖 2-4 ADC0820 讀取模式時序圖,節錄自[15]

WR-RD 模式

ADC0820 的寫入模式時序如圖 2-4 所示。當 ADC0820 的第七支 腳MODE輸入為〝1〞時,ADC0820 即進入寫入-讀取模式。將第 13 腳(CS)設為〝0〞,致能 ADC0820。ADC0820 的寫入-讀取模式是

(20)

由第 6 腳(WR/RDY)所控制的,然而在此種模式下又有兩種讀取操 作。一種為先等INT腳由 1 變 0 時,再去讀取資料,通常INT會在WR

腳上升後 800 ns 才由 1 變 0,如圖 2-5 所示。如果需要快一點的轉換 時間,另一種做法為不需要等待 800 ns,大約在WR腳上升後 600 ns 就可以直接去讀去資料,如圖 2-6 所示。

圖 2-5 ADC0820 寫入-讀取模式時序圖(trd > tI),節錄自[15]

圖 2-6 ADC0820 寫入-讀取模式時序圖(trd < tI),節錄自[15]

(21)

Stand-Alone 模式

在寫入-讀取模式下使用 Stand-Alone 操作時,CS腳跟RD 腳可以 同時為〝0〞,當WR腳由 1 變 0 時,ADC0820 開始轉換,大約 800 ns 後資料就會送至輸出。Stand-Alone 模式時序圖如 2-7 所示。

圖 2-7 ADC0820 寫入-讀取模式下 Stand-Alone 時序圖,節錄自[15]

2.3 數位補償器電路

數位補償器電路是數位脈波寬度調變控制積體電路中第二個部 份的電路。當類比至數位轉換器取樣到直流至直流轉換器的輸出電壓

(Vout)並與 Vref比較得到一個誤差信號(error signal)值 e[n]後,A/D 轉換器會把這誤差值送到此補償器。

補償器其實是一個控制理論的一種實現,本論文的補償器所要實 現的控制理論是根據 PID 控制器[13]的觀念所設計,其所實現的關係

(22)

式如下列式子所表示之:

] 2 [ ] 1 [ ] [ ] [ ] 1

[

n

=

d n

+

ae n

+

be n

+

ce n

d

(2-2)

其中,d[n]代表的是補償器目前的責任週期(duty ratio)輸出值,

e[n]則是代表 A/D 轉換器目前的誤差信號(error signal)輸出值。其 餘 d[n-1]、e[n-i]則為該信號前 i 次週期的值。a、b、c 為常數[4]。

由上式可知,要設計一個補償器需要使用到數個加法器與乘法 器,然而對於一個積體電路設計者而言,加法器與乘法器的使用是非 常佔用晶片面積且又有速度上的考量,所以勢必要改用另一種設計的 方式。

2.3.1 查表法(Look-up Table)介紹

查表法(look-up table)[4],顧名思義就是利用查表的方式來代 替許多複雜的演算。簡單來說,查表法是一張儲存資料的表,通常是 設計者事先將計算好的數值結果存在記憶體中,這樣的方式可以用簡 單明瞭的架構來完成乘法的動作。

我 們 以 本 論 文 中 所 提 到 之 控 制 理 論 的 式 子 來 說 明 。 回 顧 式

(2-2),我們可以發現 a•e[n]、b•e[n-1]、c•e[n-2]這三個是簡單 的乘法運算,由於 A/D 轉換器所輸出的 e 值為很小的有限值,加上 a、

b、c 是常數,所以我們可以把它們的乘積事先運算出結果,然後再 儲存成係數為 a、b、c 的三張查表。此時,A/D 轉換器所輸出的誤差 信號 e[n]或 e[n-i]就可以當作是此張查表的位址。當每一個 e[n]值與

(23)

其前 i 次週期的 e[n-i]值被送到補償器時,補償器的相對應 a、b、c 三張表之位址的內容就會馬上被查出來,因此就不需要再經過乘法的 運算,不但提高了效率也因為沒有使用到乘法器而大大的降低晶片面 積。圖 2-8 即顯示了式(2-2)利用查表法實現的架構。

圖 2-8 查表法的實現架構,節錄自[6]

2.4 數位脈波寬度調變器

在整個系統中,數位脈波寬度條變器所提供的功能其實就是一個 數位至類比的轉換器(D/A Converter)。因為它所輸出的是一個頻率 固定寬度可依據 d[n]值而調變的信號(Cout)。這個信號將輸出至切 換式直流至直流轉換器的開關元件,利用不同的寬度調變,開關元件 也會也不同時間的導通與截止,如此一來就可以調整我們所要的輸出 電壓。

由於 Cout 可以調整直流至直流轉換器的輸出電壓,因此數位脈

(24)

波寬度調變器的解析度就格外顯得重要。假如數位脈波寬度調變器的 解析度不夠高時,直流至直流轉換器的輸出電壓便會振盪。這是因為 數位脈波寬度調變器所調整的輸出電壓增量值沒有落在相對應於前 端 A/D 轉換器參考電壓(Vref)的輸出電壓改變量(o)的範圍內,

因此就會造成輸出電壓值的振盪。解決的方式就是對應於 d[n]值最小 位元(Least significant bit, LSB)的 Vo增量值必須小於o。即如以 下條件式子所示:

resolution(DPWM)> resolution(A/D) (2-3)

即 DPWM 所能調整的電壓變化量必須小於 A/D C 的電壓取樣量。

2.4.1 數位脈波寬度調變器之架構

一個高解析度、高頻率的數位脈波寬度調變器的架構可以由快速 計數器和數位比較器所建構成。假設要設計一個 8-bit 且操作在 fs切 換頻率的數位脈波寬度調變器時,我們所需要的計時頻率為 2nfs。例 如,要完成一個 8-bit 且操作頻率為 1 MHz 的數位脈波寬度調變器 時,需要 256 MHz 的計數頻率。

假設要設計一個 n-bit 的數位脈波寬度調變器時[4],我們可以選 擇使用一個 nc-bit 的計數器(nc < n),則其他 nd = n–nc bit 可以用 nd

個 D 型正反器串成鏈所構成。以下舉例設計一個 4-bit 的數位脈波寬 度調變器,其電路方塊如圖 2-9 所示。

(25)

圖 2-9 4-bit 數位脈波寬度調變器範例,節錄自[4],d[m:n],m 表較高位元,n 表 較低位元

圖 2-9 的數位脈波寬度調變器包括了一個 2nd×1 多工器、四個 D 型正反器(2nd=2= 4)、2-bit 計數器(nc=2)、兩個 2-bit 比較器、兩 個 AND 閘及一個 RS 正反器。

補償器的輸出(d[n])分成兩部份輸入至數位脈波寬度調變器,

較高的 2-bit(d[3:2])輸入至比較器,較低的 2-bit(d[1:0])輸入至多 工器的選擇端。當電路啟動時,數位脈波寬度調變器的輸出(Cout)

先被 RS 正反器設為〝1〞。此時,D 型正反器開始計數,每當 Q3 由 0 變 1 時,同時啟動 2-bit 計數器開始計數,而計數器的輸出送至當 2-bit 比較器去與 d[3:2]作比較,當兩數相同時,比較器輸出一個信號 至 RS 正反器 R 端的 AND 閘。而多工器亦會輸出信號至 RS 正反器 R 端的 AND 閘,假如這兩者信號皆為〝1〞時,RS 的 R 端就會被設定

(26)

為〝1〞。此時,RS 正反器處為設定狀態,Cout 被清除為〝0〞。所 以當 d[3:0]不同時,Cout 就會不同寬度的調變。圖 2-10 為以上假設 範例的輸出波型圖。

圖 2-10 2-bit 數位脈波寬度調變器範例波型圖,節錄自[4]

(27)

Chapter 3

數位控制器之介紹與設計方法

本章一開始先說明數位控制的觀念,並接著介紹設計數位控制器 的一些數學基礎及設計的方法[13]。進而設計出本論文電路中所需要 的數位控制器。

3.1 數位控制器介紹

一般來說,數位控制器可以利用電腦、微處理器、數位訊號處理 器(DSP)等來實現,與類比的控制器想比較,可以從數位控制器上 得到較好的效能,而使用數位控制器另外的好處,就是數位控制器的 程式是比較容易修改的,而類比的控制器如果要更改設計的話,就得 需要對元件做修改,這是比較困難的事。

圖 3-1 是使用數位控制器的單元回授系統方塊圖。我們可以將一 般數位控制器的 Z-轉移函數寫成(3-1)式的形式[13]。

(28)

n n m m

z a z

a a

z b z

b Z b

D

+

⋅⋅

+ +

+

⋅⋅

+

= + 1

1 0

1 1

) 0

( (3-1)

其中 n 和 m 為正整數,若輸出並未搶先在輸入之前發生,則轉 移函數 D(Z)稱為實際可實現。此表示 D(Z)的級數展開不能有任何 z 的正冪次。在(3-1)式的 D(Z)項中,若

b

0 0,則

a

0 0。若 D(Z)表 示為

n n m m

z a z

a a

z b z

b Z b

D

+ + ⋅⋅+ +

⋅⋅

+

= + 1

1 0

1 1

) 0

( (3-2)

則實際可實現性的條件為

n

m

圖 3-1 單位回授系統方塊圖

如果控制器的輸入輸出訊號的方塊圖如下圖 3-2,則數位控制器 的輸入訊號 x 與輸出訊號 y 的關係可以表示成(3-3)式。

) (

) ) (

(

X Z

Z Z Y

D

= (3-3)

圖 3-2 控制器方塊圖 r(t)

+ A/D Digital

controller

D/A Gp(s)

-

e(t) u(t) y(t)

D(Z)

X(Z) Y(Z)

(29)

3.1.1 Z 轉換

對於一離散或數位資料的線性系統及線性差分方程式,適合使用 Z 轉換[13]。

考慮一序列 y(k),k=0,1,2,…,其中 y(k)代表一連串的數字 或事件。則 y(k)的 z 轉換定義為

) ( ) (

z y k

Y

= 的 z 轉換=

Z

[

y

(

k

)]

=

= x k

z k y

0

) 1

( (3-4)

其中 z 是具有實部和虛部的複變數。

3.1.2 離散系統的穩定性

對於一個離散系統而言,要判斷該系統是否穩定,我們可以從它 特性方程式的根落在 z-平面上的位置去判定[13]。

現假設有一個離散資料系統,其系統轉換函數如圖 3-3 所示。

圖 3-3 離散系統 z 轉換函數

由圖 3-3 知,該系統的輸出-輸入關係為:

G(Z)

R(z) Y(z) +

-

(30)

) ( 1

) ( )

( ) (

z G

z G z

R z Y

= + (3-5)

令分母為零:

0 ) (

1+

G z

= (3-6)

則(3-6)式即為該系統之特性方程式。

今要判斷該系統是否穩定,我們可以從(3-6)式的根去判斷。

參考一個 z-平面之單位圓,如圖(3-4)所示。假如特性方程式 的所有根值皆落在 z-平面的單位圓之內,則我們可說該系統是為穩 定。

圖 3-4 z-平面 +1 -1

Re z

jIm z

穩定

不穩定

穩定 不穩定

不穩定 不穩定

單位圓

(31)

3.2 數位 PID 控制器

在圖 3-1 中,我們假設受控器(controlled plant)有單一輸入 u(t) 和單一輸出 y(t),控制的目標是設計一個 PID 控制器使輸出 y(t)與預 期輸入值 r(t)相同。PID 控制器產生以 closed-loop error e(t)=r(t)-y(t)為 基礎的輸入訊號 u(t),它的標準格式如下:

+

+

= ( ) ( ) ( )

)

(

e t

dt K d dt t e K t e K t

u

p i d (3-7)

而類比 PID 控制器的轉移函數可以在 S-domain 下表示為:

S S K

K K S E

S S U

D

= p + i + d )

( ) ) (

( (3-8)

其中,Kp為比例增益,Ki為積分增益,Kd為微分增益。

這些參數是根據閉回路系統的一些特性所做的設計,我們可以預 先使用 Matlab simulation 來找出這些參數值。上述的轉移函數能夠被 轉換成數位形成,對積分器做雙線性轉換(bilinear transformation):

1 1 2

1

= +

z z

S T

(3-9)

以及對微分器做反饋差運算(backward difference):

z z

S

=

T

1 1 (3-10)

其中 T > 0 為取樣時間,如此可以獲得以下的表示法:

z z K T z

z K T z K

E z U

d i

p

1 1 1

1 2 )

( )

( +

+ +

= (3-11)

(32)

將(3-9)式左右項相乘做整理可得(3-10)式

) ( )]

1( 2 )

( 2 ) 1 [( 2

) 1 ( )

( E z

T K K z

K T K T

z T K K K T

z zU z

U = + p + i + d + − p + id + d

(3-12) 我們定義:

T K K K T

K = p + i + d

0 2 (3-13)

d i

p

K

K T K T

K

2

1 = + 2 (3-14)

K

d

K T

1

2 = (3-15)

把(3-10)式改寫成(3-14)式:

) 1 (

) 1 (

) ( )

1 ( )

( 0 1 2

K

2

E z

z z E z K z E K k z U z

U

= + + + (3-16)

接著,我們將上式做反 Z-轉換,得到以下的差分方程式:

) 2 ( )

1 ( )

( )

1 ( )

(

k

=

u k

+

K

0

e k

+

K

1

e k

+

K

2

e k

u

(3-17)

(3-17)式可以用另一種型式,如(3-18)表示:

+

+ +

= 1 0 1 1 2 2 )

(

k u

k

K ek K e

k

K e

k

u

(3-18) 當 Kp,Ki,Kd被設計決定後,K0,K1,K2便可決定。

由式(3-18)可看出,數位控制器是以乘積來表示,因而必須用 到乘法器。由於 PID 控制器中的 K0,K1,K2為已知的固定係數,所 以可以建立一個查表法將乘法的動作簡化為查表、加法,如此可以大

(33)

幅提高運算速度。

3.3 數位補償器

對於我們所設計的數位脈波寬度調變器中所含的數位補償器,它 其實就是一個基本的 PID 控制器。它的型式如下列式子所表示:

] 2 [ ] 1 [ ] [ ] 1 [ ]

[

n

=

d n

+

ae n

+

be n

+

ce n

d

(3-19)

只要係數 a、b、c 求出來,就可以用查表的方式來實現該補償器。

首先我們先考慮由數位脈波寬度調變控制積體電路與切換式直 流至直流轉換器所組成的一個離散時間閉迴路系統,如圖 3-5 所示。

圖 3-5 電壓調變系統的離散時間轉移函數,節錄自[4]

其中 PID 補償器是由(3-19)式取 Z 轉換而得到的。

(34)

2 1

1 ( ) ( ) ( )

) ( )

(

z

=

D z z

+

aE z

+

bE z z

+

cE z z

D

(3-20)

把同信號移至同邊:

) )(

( ) 1 )(

(

z

z

1 =

E z a

+

bz

1 +

cz

2

D

(3-21)

z z

c bz az z

z

c bz az z

cz bz a z E

z

D 1

1 1 )

( )

( 2

2 2 1

2 1

− +

= +

− +

= +

− +

= + (3-22)

又因為其他的值皆為已知:

3 2

10 14 .

59 ×

LC

=

T

s

, =1.636 RC

Ts

V

g =5

V

,所以整個切換式降壓型直流至 直流轉換器的轉移函數為:

5768 . 0 364 . 0

2957 . 0

] 636 . 1 10 14 . 59 1 [ ) 636 . 1 2 (

5 10 14 . ) 59

(

2

3 2

3

= −

× +

+

×

= ×

z z

z z z

Gvd

(3-23)

根據圖 3-3,我們可以求得該系統的特徵方程式如下所示:

) 0 5768 . 0 364 . 0 ( 255 2 ) 1 (

2957 . 0 )

1 ( 2

2

− =

×

×

×

×

×

+ + +

z z

z z V

z bz az

q

(3-24)

經整理可得下列 z 之多項式:

0 015 . 0 ) 5768 . 0 015 . 0 ( ) 213 . 0 015 . 0 ( 36 .

1 3 2

4

z

+

a

z

+

b

+

z

+

c

=

z

(3-25)

根據(3-6)式,我們假設此系統的根皆落在 z-平面的單位圓內,

因此該系統是為穩定。

由於只要落在 z-平面單位圓內皆穩定,所以我們可以假設多組的 特性方程式解的根,再代回去得到原始之 z 多項式,利用係數比較法

(35)

而求得不同的 a、b 及 c 值。對於不同的 a、b 及 c 值,我們可以利用 Matlab simulation[14]來觀看各值對該系統的穩定有何差異,進而求出 較佳的 a、b 及 c。

圖(3-6)為我們數位脈波寬度調變控制積體電路加上切換式降 壓型直流至直流轉換器的控制系統轉換函數示意圖。圖(3-7)至圖

(3-9)則為不同 a、b 及 c 值所產生的輸出電壓差異。

圖 3-6 控制系統轉換函數示意圖

圖 3-7 a=10、b=-11、c=3 之輸出電壓波型

(36)

圖 3-8 a=20、b=-19、c=1 之輸出電壓波型

圖 3-9 a=50、b=-55、c=10 之輸出電壓波型

因此由以上各圖,我們發現當 a=20、b=-19、c=1 時的特性曲線 最好。該設定值輸出電壓的最大超越值(overshoot)為最小。

(37)

Chapter 4

數位脈波寬度調變控制積體電路之 實現

本章主要的內容,在利用硬體去實現整個數位脈波寬度調變控制 積體電路以及切換式降壓型直流至直流轉換器。實現的過程中,硬體 描述語言(Hardware-Description Language, HDL)是以 VHDL 硬體描 述語言(Very High Speed Integrated Circuit Hardware Description Language)為主,撰寫程式的工作環境為使用Quartus II 2.0 發展軟 體。這是一套由 Altera 公司所推出用來設計 FPGA/CPLD 或嵌入式系 統的發展軟體,其操作畫面如圖 4-1 所示。另外在硬體功能方面亦使 用了該公司所推出的嵌入式系統發展實驗板(Nios embedded system Development Board),如圖 4-2 所示。

而本章將先簡介 VHDL 硬體描述語言,再將數位脈波寬度調變 控制積體電路的功能分成 A/D 轉換器、數位補償器及數位脈波寬度

(38)

調變器三個部份分節做說明。

圖 4-1 Altera Quartua II 2.0 發展環境

圖 4-2 Altera Nios 嵌入式系統發展實驗板

(39)

4.1 VHDL 硬體描述語言簡介

VHDL 是一種硬體描述語言,它的語法與 C 語言相近,易學易 用,而且能夠允許在同一個模組中有不同層次的表示法共同存在。所 以設計者可以在同一模組中混合使用:邏輯閘層次模型(Gate Level Model)、暫存器轉移層次模型(Register Transfer Level Model)以及 行為模型(Behavioral Model)等三種不同的層次的表示法來描述所 設計的電路[9]。

VHDL 有下列有幾項特性與特定:

提供多種不同的設計方法。

不同的製程特性也不用考量。

可以用來設計各式各樣的數位電路。

一般的邏輯合成工具普遍支援 VHDL。

許多的製造廠商也都有提供 VHDL 的函數庫。

4.2 A/D 轉換器

在前面第二章已經討論過 A/D 轉換器的介紹與工作原理,我們所 使用的 A/D 轉換器型號為 ADC0820。

參考 ADC0820 的接腳圖(圖 2-3),ADC0820 的參考電壓由第

(40)

11 腳(Vref(-))與第 12 腳(Vref(+))所決定。所以參考電壓如可以由 下列式子表示之:

) ( )

(+

= ref ref

ref

V V

V

(4-1)

因此,ADC0820 的每一位元的解析度計算公式如下列所表示之:

1 256

V

ref

LSB

= (4-2)

由上面公式知道,當我們輸入 Vref(+)=5V、Vref(-)=0V 時,這時候 ADC0820 每位元(bit)之解析度即為

mV LSB

0.0195

256 0

1 5 =

= (4-3)

如此一來,當 ADC0820 的第一腳(Vin)取樣到 5V 電壓時,ADC0820 的輸出資料(DB0~DB7)即為〝11111111〞。

由於我們要對直流至直流轉換器做電壓的取樣,而該轉換器的輸 出電壓規格可為 0V~5V,所以符合我們 ADC0820 的規格。

另外,根據我們目標所設計的控制積體電路規格,我們希望把直 流至直流轉換器的輸出電壓控制在目標電壓誤差±5%內。所以根據這 規格,我們重新規劃了一張 ADC0820 的特性圖,如圖 4-3 所示。

(41)

圖 4-3 ADC0820 電壓取樣特性,節錄自[4]

表中的 Vq即為 ADC0820 的解析度,原本 Vq應該為 19.5

mV

2565 =

但是因為式子(2-3)的條件限制,這裡的 Vq,我們給它設成原來的兩 倍,即 39 mV。此值亦等於輸出電壓的變化量Vo。另外表中的參考 電壓(Vref)指的是我們所希望調整輸出電壓的參考值。由上表可知,

當切換式直流至直流的輸出電壓大於或小於 Vref的 Vq倍數的值時,

ADC0820 會輸出誤差信號(e[n])值(+4~-4)。但是 ADC0820 並不 是就真的輸出+4~-4 的誤差信號值,這些數值是經過編碼器所編碼出 來的,所以完整的 ADC0820 電壓取樣、比較、編碼及輸出誤差信號 e[n]的電路方塊如圖 4-4 所示。

V

ref

V

q

=39mV

V

o

V

o

e

+4

+3

+2

+1

0

-1

-2

-3

-4

(42)

圖 4-4 ADC0820 取樣電路方塊圖

其中 ADC00820 的控制接腳WR/RDY、INT為接到 Altera 的實驗 板上,由板子所控制。

由圖 4-4 可知,ADC0820 是操作在 WR-RD 模式下的 stand-alone 的工作模式。

4.2.1 VHDL 描述 A/D 轉換器控制信號

底下我們說明將如何使用 VHDL 去描述 ADC0820 的控制信號,

使 ADC0820 能正常動作。clk_s 為整個系統操作的頻率。圖 4-5 即為 ADC0820 的 VHDL 描述程式。

A/D Converter

0820 Altera Nios

嵌入式系統 發展實驗板

DB0~DB7

WR/RDY INT

5 V

Vcc MODE

Vref(+)

CS

RD

GND Vref(-)

Vin

編碼器

(43)

圖 4-5 ADC0820 的 VHDL 描述程式

4.3 數位補償器

我們利用查表法來實現數位脈波寬度調變器中的補償器。

在 3-3 章節中,我們已經求得了三組 a、b 及 c 的值,現在我們就 利用這些值來建立一個查表。在建立這些表之前,我們必須先對前級 電路,也就是 ADC0820 的輸出信號做重新編碼的動作。因為 ADC0820 所送出的差值信號(Vref –Vout)是一 8-bit 的二進位碼。但是我們所需 求的誤差信號(e[n])其值為+4~-4,所以需要 4-bit 的二進位碼重新 表示,其中代表負數的二進位值,我們以 2 補數法表示之。其編碼後 的結果如表(4-1)所示:

wr <= not clk_s;

end process;

cs_out <= '0';

process(clk_s) begin

if rising_edge(clk_s)then db_out <= db_in;

else

db_out <= db_out;

end if;

end process;

(44)

Vref - Vout e[n]

+4 00000111 或 00001000 0 1 0 0 +3 00000101 或 00000110 0 0 1 1 +2 00000011 或 00000100 0 0 1 0 +1 00000001 或 00000010 0 0 0 1 0 00000000 0 0 0 0

Vout - Vref e[n]

0 00000000 或 00000001 0 0 0 0 -1 00000010 或 00000011 1 1 1 1 -2 00000100 或 00000101 1 1 1 0 -3 00000110 或 00000111 1 1 0 1 -4 00001000 或 00001001 1 1 0 0

表 4-1 ADC0820 編碼表

有了這個編碼表,我們就可一一建立查表內的各個數值。

假設我們取 a=10、b=-11、c=3 為例建立此查表。其中負數的值 皆使用 2 補數的做法。表(4-2)到表(4-4)即為所建立的查表。

e[n] a= 10 a•e[n]

+4 10 +40 = 00101000 +3 10 +30 = 00011110 +2 10 +20 = 00010100 +1 10 +10 = 00001010 0 10 +00 = 00000000 -1 10 -10 = 11110110 -2 10 -20 = 11101100 -3 10 -30 = 11100010 -4 10 -40 = 11011000

表 4-2 a = 10 之查表

(45)

e[n] b = -11 b•e[n]

+4 -11 -44 = 11010100 +3 -11 -33 = 11011111 +2 -11 -22 = 11101010 +1 -11 -11 = 11110101 0 -11 +00 = 00000000 -1 -11 +11 = 00001011 -2 -11 +22 = 00010110 -3 -11 +33 = 00100001 -4 -11 +44 = 00101100

表 4-3 b = -11 之查表

e[n] c = 3 c•e[n]

+4 3 +12 = 00001100 +3 3 +09 = 00001001 +2 3 +06 = 00000110 +1 3 +03 = 00000011 0 3 +00 = 00000000 -1 3 -03 = 11111101 -2 3 -06 = 11111010 -3 3 -09 = 11110111 -4 3 -12 = 11110100

表 4-4 c = 3 之查表

4.3.1 VHDL 描述數位補償器

底下我們說明將如何使用 VHDL 去描述數位補償器的實現方 式,使數位補償器能夠無誤的運算出 Duty Ratio(d[n])值。圖 4-6

(46)

圖 4-6 補償器編碼部份之 VHDL process(db_out)

begin

if (v_ref >= db_out)then d_er_l <= v_ref - db_out;

else

d_er_h <= db_out - v_ref;

end if;

end process;

process(d_er_l) begin

if (v_ref >= db_out)then

if(d_er_l >= "00000111")then en <= "0100";

else

case d_er_l is

when "00000111" => en <= "0100";-- +4 when "00000110" => en <= "0011";-- +3 when "00000101" => en <= "0011";-- +3 when "00000100" => en <= "0010";-- +2 when "00000011" => en <= "0010";-- +2 when "00000010" => en <= "0001";-- +1 when "00000001" => en <= "0001";-- +1 when "00000000" => en <= "0000";-- 0 when others => null;

end case;

end if;

else

…..

(47)

圖 4-7 補償器查表部份之 VHDL addr_dena <= dena;

addr_denb <= denb;

addr_denc <= denc;

process(addr_dena,addr_denb,addr_denc)--setup table begin

case addr_dena is

when "0100" => aen <= "00101000";

when "0011" => aen <= "00011110";

when "0010" => aen <= "00010100";

when "0001" => aen <= "00001010";

when "0000" => aen <= "00000000";

when "1111" => aen <= "11110110";

when "1110" => aen <= "11101100";

when "1101" => aen <= "11100010";

when "1100" => aen <= "11011000";

when others => null;

end case;

case addr_denb is

when "0100" => ben <= "00101100";

when "0011" => ben <= "00100001";

when "0010" => ben <= "00010110";

when "0001" => ben <= "00001011";

when "0000" => ben <= "00000000";

when "1111" => ben <= "11110101";

when "1110" => ben <= "11101010";

when "1101" => ben <= "11011111";

when "1100" => ben <= "11110100";

when others => null;

end case;

end process;

(48)

4.4 數位脈波寬度調變器

我們要設計一個 8-bit 解析度、操作頻率為 130KHz 的數位脈波 寬度調變器。

本論文的數位脈波寬度調變器,共使用了 16 個 D-type 正反器、

一個 4-bit 計數器、兩個 4-bit 比較器、一個 16×1 的多工器、兩個 AND 閘及一個 RS-type 正反器。其電路方塊圖如圖 4-8 所示[4]:

圖 4-9 8-bit 數位脈波寬度調變器方塊圖

由圖可知,16 個 D-type 正反器與一個 4-bit 計數器讓這個數位脈 波寬度調變器可以提供

256 1 16

1 16

1 × = 的解析度。

另外,為避免數位脈波寬度調變器輸出的脈波寬度為 0 %或為 100 %,當遇到 d[n]值的運算結果為 0(00000000)或 255(11111111)

時,我們必須修正 d[n]值,使得數位脈波寬度的調變正確。修正的方 16×1 多工器

16 個 D-type 正反器 4-bit

計數器

4-bit 比較器

4-bit 比較器

R-S 正反器

•••

d[7:0] d[7:4]

d[3:0]

Cout

(49)

式為當 d[n]輸出為小於等於 5(duty-ratio 為 2 %以下)的值的時候,

我們不輸出該值的 d[n]值給數位脈波寬度調變器,而是另外直接輸入 d_al[n] = 5 給數位脈波寬度調變器。同理,當 d[n]輸出為大於等於 251

(duty-ratio 為 98 %以上)的值的時候,我們直接輸入 d_ah[n] = 251 給數位脈波寬度調變器。經修正後的數位脈波寬度調變器的輸入輸出 關係如圖 4-10 所示。

圖 4-10 數位脈波寬度調變器的 duty-ratio 值,節錄自[4]

4.3.1 VHDL 描述數位脈波寬度調變器

接下來我們將說明如何使用 VHDL 去描述一個數位脈波寬度調 變器的功能。如圖 4-11、圖 4-12 及圖 4-13 所示。

(50)

圖 4-11 數位脈波寬度調變器 VHDL

process(clk) begin

if rising_edge (clk) then

Q15 <= not(Q0 or Q1 or Q2 or Q3 or Q4 or Q5 or Q6 or Q7 or Q8 or Q9 or Q10 or Q11 or Q12 or Q13 or Q14 or Q15)or(Q14 and (not(Q1 or Q2 or Q3 or Q4 or Q5 or Q6 or Q7 or Q8 or Q9 or Q10 or Q11 or Q12 or Q13

or Q0 or Q15)));

Q14 <= Q13 and (not(Q1 or Q2 or Q3 or Q4 or Q5 or Q6 or Q7 or Q8 or Q9 or Q10 or Q11 or Q12 or Q0 or Q14 or Q15));

Q13 <= Q12 and (not(Q1 or Q2 or Q3 or Q4 or Q5 or Q6 or Q7 or Q8 or Q9 or Q10 or Q11 or Q0 or Q13 or Q14 or Q15));

Q12 <= Q11 and (not(Q1 or Q2 or Q3 or Q4 or Q5 or Q6 or Q7 or Q8 or Q9 or Q10 or Q0 or Q12 or Q13 or Q14 or Q15));

Q11 <= Q10 and (not(Q1 or Q2 or Q3 or Q4 or Q5 or Q6 or Q7 or Q8 or Q9 or Q0 or Q11 or Q12 or Q13 or Q14 or Q15));

Q10 <= Q9 and (not(Q1 or Q2 or Q3 or Q4 or Q5 or Q6 or Q7 or Q8 or Q0 or Q10 or Q11 or Q12 or Q13 or Q14 or Q15));

Q9 <= Q8 and (not(Q1 or Q2 or Q3 or Q4 or Q5 or Q6 or Q7 or Q0 or Q9 or Q10 or Q11 or Q12 or Q13 or Q14 or Q15));

Q8 <= Q7 and (not(Q1 or Q2 or Q3 or Q4 or Q5 or Q6 or Q0 or Q8 or Q9 or Q10 or Q11 or Q12 or Q13 or Q14 or Q15));

Q7 <= Q6 and (not(Q1 or Q2 or Q3 or Q4 or Q5 or Q0 or Q7 or Q8 or Q9 or Q10 or Q11 or Q12 or Q13 or Q14 or Q15));

………..

(51)

圖 4-12 數位脈波寬度調變器 VHDL process(Q15,clk_s)

begin

if rising_edge(Q15)then b1(0 to 3) <= d(4 to 7);

if(count = "1111")then count <= "0000";

else count <= count + '1';

end if;

end if;

if(count = b1)then comout1 <= '1';

else comout1 <= '0';

end if;

if(count = "0000")then comout2 <= '1';

else comout2 <= '0';

end if;

if (d(3 to 0)="0000")then muxout <= Q15;

elsif(d(3 to 0)="0001")then muxout <= Q0;

elsif(d(3 to 0)="0010")then muxout <= Q1;

elsif(d(3 to 0)="0011")then muxout <= Q2;

elsif(d(3 to 0)="0100")then muxout <= Q3;

elsif(d(3 to 0)="0101")then muxout <= Q4;

elsif(d(3 to 0)="0110")then muxout <= Q5;

elsif(d(3 to 0)="0111")then muxout <= Q6;

elsif(d(3 to 0)="1000")then muxout <= Q7;

elsif(d(3 to 0)="1001")then muxout <= Q8;

elsif(d(3 to 0)="1010")then muxout <= Q9;

elsif(d(3 to 0)="1011")then muxout <= Q10;

elsif(d(3 to 0)="1100")then muxout <= Q11;

elsif(d(3 to 0)="1101")then muxout <= Q12;

elsif(d(3 to 0)="1110")then muxout <= Q13;

elsif(d(3 to 0)="1111")then muxout <= Q14;

end if;

(52)

圖 4-13 數位脈波寬度調變器 VHDL if (d <= "00000101")then --duty ratio < 2%

s <= comout2 and Q15;

r <= comout1 and Q4;

if(r = '0')then

if(s = '1')then cout <= '1';

else cout <= cout;

end if;

else

cout <= '0';

end if;

elsif (d >= "11111011" )then --duty ratio > 98%

s <= comout2 and Q15;

r <= comout1 and Q10;

if(r = '0')then

if(s = '1')then cout <= '1';

else cout <= cout;

end if;

else

cout <= '0';

end if;

else --2%< duty ratio < 98%

s <= comout2 and Q15;

r <= comout1 and muxout;

if(r = '0')then

if(s = '1')then cout <= '1';

else cout <= cout;

end if;

else cout <= '0';

end if;

end if;

end process;

coutb <= not cout;

(53)

Chapter 5

數位脈波寬度調變控制積體電路之 模擬驗證

本章主要的內容,在於驗證與模擬所有設計的電路功能是否完全 正常,並配合應用在切換式降壓型直流至直流轉換器上,觀察所設計 電路實際運作的情況。最後列出電路設計完成晶片化的相關資訊。

驗證的過程依照數位脈波寬度調變控制積體電路的主要架構分 成三個部份先分別做驗證,最後再驗證整個的電路系統。驗證的方式 為利用軟體工具本身的波型模擬(waveform simulation)和示波器去 觀察。

(54)

5.1 A/D 轉換器之模擬驗證

根據我們的數位脈波寬度調變控制積體電路的設計,負責輸出電 壓取樣的電路 A/D 轉換器,其功能如下所示:

取樣電壓頻率(clk_s):130 KHz。

取樣電壓(Vsence)範圍:0 V ~ 5V。

A/D 本身參考電壓(Vref(+) – Vref(-))值:5 V。

A/D 解析度(Vq)= 39 mV。

A/D 取樣參考電壓(Vref)值:0 V ~ 5 V,8-bit 指撥開關可調。

以下就從實際波型觀察 A/D 轉換器是否正常,並說明各模擬波型 圖的意義。

圖 5-2 模擬 ADC0820 在 Vref = 2.5V 的條件下,各電壓輸入後,

ADC0820 所輸出的 e[n]值。

圖 5-3 為利用示波器觀察 ADC0820 的WR/RDY腳與INT腳的實際 波型圖。由圖可知,ADC0820 操作在 stand-alone 的模式。

圖 5-4 至圖 5-6 為 ADC0820 在 Vref = 3 V,取樣電壓分別為 3 V、

2.9 V、3.07 V 之實際資料轉換的波型圖。

(55)

5.2 數位補償器之模擬驗證

根據我們所設計的數位補償器,我們的補償器共有 3 個表,每個 表皆儲存 9 個值。每當一個週期(clk_s)輸入時,e[n]所代表的位址,

便會取出該位址的值,最後再做加總的運算。

圖 5-7 即為利用 Quartus II 2.0 來模擬數位補償器的運算數值過 程。

5.3 數位脈波寬度調變器之模擬驗證

在這個章節裡,我們將模擬與驗證數位脈波寬度調變器的功能是 否符合我們所設計的規格。

另外,由於數位脈波寬度調變器的輸出 duty ratio(d)大小是由 數位補償器所控制,所以在我們模擬數位脈波寬度調變器的同時,我 們亦同時將數位補償器一起加入模擬,藉由補償器的輸出 d 值而直接 驗證數位脈波寬度調變器功能的準確性。

如圖 5-7 所示,我們利用 Quartus II 2.0 軟體來模擬與驗證數位脈 波寬度調變控制器的 Cout輸出情形。

(56)

5.4 數位脈波寬度調變控制積體電路之 模擬驗證

在這個章節裡,我們把電壓取樣電路、數位補償器,數位脈波寬 度調變器所組成的數位脈波寬度調變控制積體電路做系統整合的驗 證,並加上一個切換式降壓型直流至直流轉換器來實際控制該轉換器 能夠降壓至我們所設定出來的值。

我們所應用的切換式降壓型直流至直流轉換器,其輸入電壓為 5 V,輸出電壓依照脈波寬度的調變可從 0V 至 5V。另外,因為我們的 切換式降壓型直流至直流轉換器所使用的切換開關為一顆 IRF620,

所以當我們要把調變寬度的脈波輸入至轉換器的切換開關時,必須要 加一個驅動器。我們所使用的驅動器為一顆光耦合器 6N136。整個驗 證的電路如圖 5-1 所示。

圖 5-1 數位脈波寬度調變控制積體電路驗證電路圖

Digital controller

Vref(8-bits)

參考文獻

相關文件

可程式控制器 (Programmable Logic Controller) 簡稱 PLC,是一種具有微處理機功能的數位電子 設備

具備 (凌陽格式 ) 串列 SRAM 介面. 7 通道10位元電壓類比/數位轉換器 (ADC) 單通道聲音類比/數位轉換器

Then they work in groups of four to design a questionnaire on diets and eating habits based on the information they have collected from the internet and in Part A, and with

If the best number of degrees of freedom for pure error can be specified, we might use some standard optimality criterion to obtain an optimal design for the given model, and

Type case as pattern matching on values Type safe dynamic value (existential types).. How can we

Keywords: Computer game applications; CCNA Certification Training; digital content design; game-based Learning;

This thesis makes use of analog-to-digital converter and FPGA to carry out the IF signal capture system that can be applied to a Digital Video Broadcasting - Terrestrial (DVB-T)

The purpose of this research lies in building the virtual reality learning system for surveying practice of digital terrain model (DTM) based on triangular