• 沒有找到結果。

本 論 文 我 們 使 用 模 擬 軟 體MATLAB中的Simulink來進行系統模 擬,並同時觀察輸出結果是否穩定及符合我們所設計的要求。

Simulink是一種對動態系統進行模型化、模擬和分析的軟體。它支 援連續、離散或是二者混合使用在線性及非線性系統。Simulink提供了 圖形化的使用者介面(GUI),只要使用時點選和拖曳滑鼠就可以操作及

用,如電源系統的模擬(SimPowerSystems),圖3-8 即為用Simulink建立 的切換式降壓型直流至直流轉換器電路。

圖 3-8 Simulink之切換式降壓型直流至直流轉換器電路

圖3-8中可分成四大區塊,依序為Buck converter、ADC、PID compensator及DPWM,其各區塊之功能介紹如下:

圖3-9為Buck converter之內部架構圖,模擬5V降至2.7V之直流電源 轉換器,我們將量測電感電流、輸出電壓及輸出電流並用Scope功能來 觀察電壓及電流的變化。

圖 3-9 Simulink之Buck converter之內部架構圖

圖3-10為ADC,輸出電壓會與參考電壓相比,產生的誤差值經過取 樣並量化,即可獲得轉換後的數位誤差信號。

圖 3-10 Simulink之ADC

圖3-11為PID compensator區塊,其作用及執行(3-23 )式,d[n-1]是前

差信號,e[n-1]為前一週期的數位誤差信號,e[n-2]為前二週期的數位誤 差信號,在此區塊中我們會代入之前利用 Ziegler-Nichols 調整法算出的 PID 控制器參數,最後這些資料經處理並相加後即可得到新的 d[n]責任 週期命令值,並送至DPWM。

圖 3-11 Simulink之PID compensator區塊圖

圖3-12為DPWM區塊,此區塊是接收來自PID compensator的責任週 期命令值 d[n],並依DPWM解析位元數輸出一相對應之責任週期,進而 控制開關切換。

圖 3-12 Simulink之DPWM區塊圖

圖3-13為由啟動至穩定及改變負載時之模擬圖形,由上而下依序 是電感電流、輸出電壓及輸出電流波形。

由圖 3-13中可以看出由啟動至穩定所需時間約0.002秒。

圖 3-13由啟動至穩定之模擬圖形(電感電流、輸出電壓及輸出電流)

第4章 數位脈波寬度調變控制電壓轉 換電路硬體實現

本章主要在利用硬體去實現整個數位脈波寬度調變控制電路。使用 的硬體描述語言(HDL)為Verilog 硬體描述語言。撰寫程式的工作環境為 使用Xilinx ISE 發展軟體。這是一套由Xilinx 公司所推出用來設計 FPGA/CPLD 或嵌入式系統的發展軟體,其操作畫面如圖4-1 所示。另 外在硬體功能方面亦使用了為希科技公司所推出的系統發展實驗板

(ULINX_MB_XC3S250E_PQ208_V20A),如圖4-2 所示。

圖 4-1 Xilinx發展環境

圖 4-2 Xilinx系統發展實驗板

.1 Verilog 硬體描述語言簡介

Verilog 是一個標準化的硬體描述語言,它被廣泛地使用在積體電

4

次的專用語言,在同一個模組中可以有不同層次的表示法共同存在。所 以設計者可以在同一模組中混合使用邏輯閘層次模型(Gate Level Model)、暫存器轉移層次模型(Register Transfer Level Model)以及行 為模型(Behavioral Model)等三種不同的層次的表示法來描述所設計的 電路。

Verilog 有下列有幾項特色:

法。

路。

數庫。

.2 A/D 轉換器

我們所使用的ADC型號為ADC0820,其參考電壓由第11腳(Vref(-))

與第

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

z 提供多種不同的設計方

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

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

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

z 許多的製造廠商也都有提供Verilog 的函

4

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

V

ref = Vref(+) – Vref(-)

256

V

ref

LSB

=

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

5 0 0.0195

LSB= 256− = mV

當ADC0820 的第一腳(Vin)取樣到5V 電壓時,ADC0820的輸出 資料

壓的取樣,而該轉換器的輸出 電壓

(DB0~DB7)即為〝11111111〞。

由於我們要對直流至直流轉換器做電

規格可為0V~5V,所以符合我們ADC0820 的規格。另外,根據我 們目標所設計的控制積體電路規格,我們重新規劃了ADC0820電壓取樣 的特性圖,如圖4-3 所示。

e

V

o

V

ref

( Δ V

o

)

max q

19.6 V = mV

V

o

Δ

圖 4-3ADC0820電壓取樣的特性圖

表中的Vq 即為ADC0820 的解析度,V = 5 =19.6mV。 256

q

由上表可知,當切換式直流至直流的輸出電壓大於或小於Vref 的值時,

ADC0820 會輸出誤差信號(e[n])值(+16~-16)。

ADC0820我們操作在WR-RD模式下的stand-alone的工作模式,所以 4-4所示。

ADC0820的控制接腳如圖

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

.2.1 Verilog 描述A/D 轉換器控制信號

下為我們使用 erilog 去描述ADC0820 的控制信號,使ADC0820 能正常動作。

,datain,countin,e,wrout);

clk,reset;

4

圖4-5 即為控制ADC0820的Verilog 描述程式,以 V

module adc0820(clk,reset,intin input

input [7:0]datain;

input [7:0]countin;

ways@(negedge reset or posedge count_divact) if(!reset)

if(count_div4 == 2'd3) ount_div4 <= 0;

e

4 + 1;

_act = (count_div4==0) & (~intin);

ways@(negedge reset or posedge clk) if(!reset)

begin

if(adc_act == 1)

dccount <= adccount + 1;

e

egedge reset or posedge clk) egin

if(!reset)

if((adccount>132) && (adccount<288))

end

set or posedge clk) if(!reset)

if(adccount==24) egin

datain > 8'd154) 000;

(datain < 8'd122) 0;

e<=(9'd138) + {1'b1,(~datain)} + 1;

圖 4-5 ADC0820控制時序電路Verilog程式

4.3 數位補償器

我們利用查表法來實現數位脈波寬度調變器中的補償器。在3.2.2章 a、b 及c 的值,現在我們就利用這些值來建立 end

end end endmodule

節中,我們已經求得了

一個查表。我們所需求的誤差信號(e[n])其值為+16~-16,其中代表負 數的二進位值,我們以2補數法表示之。我們取a=32、b=-62、c=30建立 此查表。其中負數的值皆使用2補數的做法。表4-1到表4-3即為所建立的 查表。

表 4-1 a=32之查表

表 4-2 b=-62之查表

表 4-3 c=30之查表

4.3.1 Verilog 描述數位補償器

以下為我們使用Verilog 去描述數位補償器的實現方式。由之前建立 之查表,將這些數值帶入硬體描述語言中。圖4-6 即為數位補償器的

Verilog 描述程式。

reg [11:0]lut_mam1[0:32]; //TABLE_1 reg [11:0]lut_mam2[0:32]; //TABLE_2 reg [11:0]lut_mam3[0:32]; //TABLE_3 reg [11:0]ae,be,ce;

dutycom<=d[10:0]+11'b10001010001 ; end

else begin

if((~d[11:0]+1'b1)>11'b10000000000) dutycom<=11'b00001010001;

else

dutycom<=d[10:0]+11'b10001010001 ; end

end

always@(posedge adc_clk or negedge reset) begin

if (~reset) begin e_n1<=0;

e_n2<=0;

else

begin

6'b110110: ce=lut_mam3[6];

圖4-7為PID之輸入與輸出的模擬結果。

圖 4-7 PID輸入與輸出模擬圖

4.4 數位脈波寬度調變器

我們要設計一個數位脈波寬度調變器,其電路方塊如圖4-8所示,其 中包含一個4-bit計數器、二個4-bit比較器、16個D型正反器、16×12的多 工器、二個AND閘及一個RS正反器。

nc

nc

nc

2 :1nd

nc

nd

n

nc

圖 4-8 混合式(Hybrid)DWPM架構圖

由圖可知,此混合式(Hybrid)DWPM中4 bits Delay-line型的DPWM 與一個4-bit 計數型DPWM合成,讓這個數位脈波寬度調變器可以提供 8-bit的解析度。

4.4.1 Verilog 描述數位數位脈波寬度調變器

圖4-9所示,為我們使用Verilog 去描述數位數位脈波寬度調變器的 控制信號及功能。

`include "delayline.v"

`include "counter.v"

module hydpwm(clk, ,reset,duty_dith,pwmout);

counter u1(clk,reset,countout);

delayline delayline1(reset,delayin,delay,q,q15,delayreset);

assign delayin = test;

assign delayreset =0;

//-- SET RS_Flip-Flop at counter=0 ----

always@(negedge reset or countout or duty_dith[6:0] or q15) begin always@(countout or duty_dith_reg[7:4]) begin

if(countout[3:0]>=duty_dith_reg[7:4]) compareout <= 1;

else

//----Counter Check (set=1 one times in switch cycle)

always@(negedge reset or negedge fsw_clk or negedge pwmffsr_s) begin

always@(duty_dith_reg[3:0] or q or delay or compareout) begin

case(duty_dith_reg[3:0])

4'b0000 : pwmffsr_r <= delay[0] & compareout; nor norqbar(pwmqbar,pwmffsr_s,pwm);

nor norq(pwm,pwmffsr_r,pwmqbar);

always@(posedge clk or negedge reset)

output delayelementout;

nor #4 nor1(delayelementout,delayelementin);

endmodule

`include "delayelement.v"

module delaycell(delayin,delayout,delayreset);

input delayin,delayreset;

output delayout;

delayelement delayelement0(delayelementout,delayin);

nor nor1(delayout,delayelementout,delayreset);

endmodule

`include "delaycell.v"

`include "d_ff.v"

module delayline(reset,delayin,delay,q,q15,delayreset);

input reset,delayin,delayreset;

output [14:0]q;

delaycell delaycell01(delay[0],delay[1],delayreset);

delaycell delaycell02(delay[1],delay[2],delayreset);

delaycell delaycell03(delay[2],delay[3],delayreset);

delaycell delaycell05(delay[4],delay[5],delayreset);

delaycell delaycell06(delay[5],delay[6],delayreset);

delaycell delaycell07(delay[6],delay[7],delayreset);

delaycell delaycell08(delay[7],delay[8],delayreset);

delaycell delaycell9(delay[8],delay[9],delayreset);

delaycell delaycell10(delay[9],delay[10],delayreset);

delaycell delaycell11(delay[10],delay[11],delayreset);

delaycell delaycell12(delay[11],delay[12],delayreset);

delaycell delaycell13(delay[12],delay[13],delayreset);

delaycell delaycell14(delay[13],delay[14],delayreset);

delaycell delaycell15(delay[14],delay[15],delayreset);

delaycell delaycell16(delay[15],delay[16],delayreset);

d_ff d1(delay[1],reset,q[1],q[0]);

d_ff d2(delay[2],reset,q[2],q[1]);

d_ff d3(delay[3],reset,q[3],q[2]);

d_ff d4(delay[4],reset,q[4],q[3]);

d_ff d5(delay[5],reset,q[5],q[4]);

d_ff d6(delay[6],reset,q[6],q[5]);

d_ff d7(delay[7],reset,q[7],q[6]);

d_ff d8(delay[8],reset,q[8],q[7]);

d_ff d9(delay[9],reset,q[9],q[8]);

d_ff d10(delay[10],reset,q[10],q[9]);

d_ff d11(delay[11],reset,q[11],q[10]);

d_ff d12(delay[12],reset,q[12],q[11]);

d_ff d13(delay[13],reset,q[13],q[12]);

d_ff d14(delay[14],reset,q[14],q[13]);

d_ff d15(delay[15],reset,q15,q[14]);

always@(posedge delay[16] or negedge reset or posedge q[0]) begin

圖4-10為DPWM之輸入與輸出的模擬結果,我們將duty_dith分別輸入 00111010、00001110、11111100、01000000、00000100時所輸出的脈波 寬度輸出。

圖 4-10 DPWM 輸入與輸出模擬圖

4.5 數位顫抖控制電路

wire[7:0]dith_word,duty_dith;

wire[10:0]dutycom;

always@(posedge fsw_clk or negedge reset) begin

if (~reset) begin

dutycom1<=11'b00000000000;

countout<=0;

end

else if(dutycom!=dutycom1) begin

countout<=0;

dutycom1<=dutycom;

end

else if(fsw_clk)

countout<=countout+1;

end

assign dith_word=mam[dutycom[2:0]];

assign duty_dith=dutycom[10:3]+dith_bit;

always@(countout) case(countout)

3'b000: dith_bit=dith_word[7];

3'b001: dith_bit=dith_word[6];

3'b010: dith_bit=dith_word[5];

3'b011: dith_bit=dith_word[4];

3'b100: dith_bit=dith_word[3];

3'b101: dith_bit=dith_word[2];

3'b110: dith_bit=dith_word[1];

3'b111: dith_bit=dith_word[0];

endcase endmodule

圖 4-11 數位數位顫抖控制電路 Verilog 描述程式

圖4-12為Digital Dither之輸入與輸出的模擬結果。

4.6 低通濾波器 LP(z)之實現

圖 4-14 低通濾波器 LP(z)之輸入與輸出的模擬

4.7 盲時(Dead-time)最佳化實現

藉由3.6.6章節介紹的Dead-time最佳化演算法,我們可以從最小的穩 態責任週期命令D中,尋找最佳的dead-time時間。在程式撰寫方面,我 們可以利用Finite State Machine的概念將演算法加以實現。

4.7.1 Verilog 描述盲時(Dead-time)最佳化電路

圖4-13為我們使用Verilog 去描述盲時(Dead-time)最佳化電路。

module dead_time_opt(adc_clk,reset,D,f,k,td1,td2,CS);

input adc_clk,reset;

input[10:0]D;

input [8:0]f;

output[7:0]td1,td2;

output[5:0]k;

output[2:0]CS;

wire [8:0]f;

wire[10:0]D;

reg[5:0]k;

reg[2:0]CS,NS;

reg[7:0]td1,td2,tdopt;

parameter

T0=3'b000,T1=3'b001,T2=3'b010,T3=3'b011,T4=3'b100,T5=3'b101,T6=3'b110;

always@(posedge adc_clk or negedge reset) //Current State Register begin

if (~reset) begin CS<=T0;

Dold<=11'b11111111111;

end else CS<=NS;

end

always@(D,CS) //Next State Logic case(CS)

always@(posedge adc_clk or negedge reset) //Output Logic begin

T0:

圖 4-15 盲時(Dead-time)最佳化電路 Verilog 描述程式

圖4-16為盲時(Dead-time)最佳化電路之輸入與輸出的模擬結果。

圖 4-16 盲時(Dead-time)最佳化電路之輸入與輸出的模擬波形

4.8 實驗結果

圖4-17為實驗系統示意圖,我們使用FPGA實驗版及設計之外部電路 將ADC、數位PID、DPWM、Digital Dither、Dead-time最佳化電路及Power Stage做系統整合驗證,使用規格如下:

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

輸入電壓(Vi):5V~10V

輸出電壓(Vo): 2.7 V。

圖 4-17 實驗系統接線示意圖

圖4.18為輸出電壓及PWM輸出波形,由示波器可以看出輸出電壓可 以穩壓在2.7V。

圖 4-18 輸出電壓及PWM波形

2.7V

PWM

波形

圖4.19為採用一般電路實現時的dead-time波形,而圖4.20為加入盲 時(Dead-time)最佳化電路所實現之修正dead-time效果,由二圖可以明顯 發現,加入盲時(Dead-time)最佳化電路後可以得到最佳的dead-time,有 效提升系統效率。

圖 4-19一般無Dead-time最佳化之電路

td1≒150ns

td1

td2≒135ns

td2

圖 4-20 使用 dead-time 最佳化之 dead-time 輸出波形 td1

td1≒45ns

td2

td2≒65ns

第5章結論與未來研究方向

4. 利用盲時最佳化電路(Dead-Time Optimizer)尋找最佳 dead-time,使系 統整體效能提升。

整個電路由 MATLAB 及 Verilog 模擬並用 FPGA 進行實驗驗證,實 驗結果證實我們所設計的數位脈波寬度調變控制電路,其功能皆能符合 我們的要求。

5.2 未來方向

本論文中所設計的電路架構為單相位的切換式降壓型直流至直流 轉換器,未來可進一步以多相位並聯之架構來實現,不但能增進系統的 穩定性、降低所需系統頻率且對於負載較大的系統更能發揮其作用。

在設計PID控制器方面,最重要的是相關參數的計算,當採用 Ziegler-Nichols 調整法來計算時,因為其為經驗公式,所得的解並非最 佳解,所以未來在設計PID參數時,可以利用如NCD、類神經網路、基 因演算法、Fuzzy理論..等等方法來搜尋PID參數的最佳解,使系統能夠 有更佳的暫態響應。

數位式電源轉換器主要的優點是容易重新設計,我們可以根據不同 的電源電路規格做調整與轉換,容易的設計出其他不同類型的電壓轉換 器,或更進一步將不同的系統加以整合,所以未來的目標將是以數位控 制技術的優勢來達到更大整合度、更小尺寸、更高效率、更高安全可靠 性、更快瞬時響應、更高靈活性,以及更低的成本。

參考文獻

[1] A. Prodic. D. Maksimovic, and R. W. Erickson "Design and Implementation of a Digital PWM Controller for a High-Frequency Switch DC-DC Power Converters," in Proc. IEEE Conference 2001.

[2] A.Prodic, D.Maksimovic, “Design of a digital PID regulator based on look-up tables for control of high-frequency DC-DC converters,” IEEE

COMPEL, 2002, pp.18-22.

[3] B. J. Patella, A. Prodic, A. Zirger, and D. Maksimovic, "High-frequency digital PWM controller IC for DC–DC converters, " IEEE Trans. Power

Electron., vol. 18, no. 1, pp. 438–446, Jan. 2003.

[4] A. V. Peterchev, S. R. Sanders, "Quantization resolution and limit cycling in digitally controlled PWM converters, " IEEE Trans. on Power

Electronics, Vol.18, No.1, January 2003, pp.301-308.

[5] L. Peng, X. Kong, Y. Kang, and J. Chen, “A novel PWM technique in digital control and its application to an improved DC/DC converter,” in

Proc. IEEE Power Electron. Spec. Conf., 2001.

[6] V. Yousefzadeh, S. Member, D. Maksimovic "Sensorless Optimization of Dead Times in DC–DC Converters With Synchronous Rectifiers"

IEEE Trans. Power Electron., vol. 32, no. 5, pp. 134-139, Apr. 2003.

[7] B. C. Kuo "Automatic Control System" seventh edition,1997.

[8] N. Minorsky, ''Directional Stability of Automatically Steered Bodies,'' J.

Amer. Soc. Naval Engineers, 42(2),pp.280-309, 1922

[9] A. Callender,D.R. Hartree and A.Porter, ''Time-Lag in a Control System,'' Phil.Trans. Roy. Soc. London,235(756),PP.415-444, 1936

[10] J.G. Ziegler and N.B. Nichols, ''Optimum Settings for Automatic Controllers, '' Trans. ASMS, 64, PP.759-768,1942

[11] Angel V. Peterchev, ''Digital Pulse-Width Modulation Control in Power Electronic Circuits: Theory and Applications'', GRADUATE DIVISION

of the UNIVERSITY OF CALIFORNIA, BERKELEY

[12] R. F. Foley, R. C. Kavanagh, " An Area-Efficient Digital Pulse Width Modulation Architecture Suitable for FPGA Implementation" IEEE

Applied Power Electronic Conference,2005,pp.480-484.

[13] Datasheet:ADC0820 8-bit High Speed uP compatible A/D Converter with Track/Hold Function.

[13] Datasheet:ADC0820 8-bit High Speed uP compatible A/D Converter with Track/Hold Function.

相關文件