一、數字電源的優(yōu)缺點:
數字電是以MCU或DSP為核心控制器的電源,本方案是采用STM8S003F3P6為核心,輸入10~14V,輸出恒流0.7A限壓37V的boost拓撲車載30瓦LED驅動電源,效率達到90%。
數字電源的優(yōu)點:成本低,可移植性強,可擴展性強。 成本低:本方案采用的是STM8S003F3P6為控制器,STM8S003F3P6是ST公司生產的8位單片機,具有10位5路ADC,3個定時器,集成UART,I2C,SPI協議,最高頻率16MHz。價格在1.2元左右,比一般的模擬控制器還要便宜。 可移植性強:編寫的功能代碼可以以函數庫的形式封裝,方便自己和別人調用。一次編寫,終生調用。 可擴展性強:由于MCU有很多IO口,可以方便的接入保護、通信、顯示、特殊要求等功能。 擴展保護功能:假如想加入一個風扇控制器,模擬電源需要使用NTC熱敏電阻,外加運放滯回比較器。而數字電源僅僅需要外加一個熱敏電阻即可,通過ADC采樣,用查表法來判斷溫度,滯回合一通過程序代碼來實現,而且具有精度高的特點 擴展通信功能:由于單片機內置有UART,I2C,SPI協議,可以通過引出IO口,來實現數控功能。例如電壓電流信號輸出、上位機控制等等。 擴展顯示功能:可以方便的外置數碼管、LED、LCD等顯示設備。 擴展特殊要求功能:有些電源需要特殊的要求,例如鉛蓄電池的充電,要有恒流、恒壓、涓流三個階段。如果采用運放進行控制,硬件電路會很麻煩。如果采用數字電源,再添加入幾行代碼即可完成特殊的要求。
數字電源的缺點:精度低、抗干擾能力弱。 精度低:輸出電壓、電流的精度主要取決于ADC采樣精度和PWM步進的精度。ADC采樣精度一般都不是問題,10bit的ADC就可以達到3.3mV的精度。PWM的精度主要受到時鐘頻率和開關頻率的影響。PWM精度=1/(時鐘頻率/開關頻率)。比如本方案采用的失蹤好難過頻率=16MHz,開關頻率=100kHz。那么PWM精度=1/(16M/100k)=1/160。也就是PWM只能在0~160之間的整數調節(jié)。這個PWM精度問題可以通過抖頻來解決,但是抖頻會產生較大的電壓紋波。 抗干擾能力弱:開關電源產生的電磁干擾較強,可能會影響MCU,導致死機。這個問題可以通過優(yōu)化PCB布線,加入屏蔽等方式來解決。 二、參數計算
輸入電壓:10~14V 恒流電流:0.7A (留余量,保證適應大多數LED,取1A) 限壓電壓:38V (留余量,保證適應大多數LED,取40V) 其余已知參數如下圖:
電感計算:
電感選取37uH,5.2A;線徑使用RMS=4.14A計算。 輸出電容計算:
忽略ESR,電容量需要38uF。 忽略電容量,ESR需要39mR,根據ESR與C的一般關系,C取1670uF。 電容允許RMS電流要大于1.8A。 實際綜合上述情況采用50V,1000uF電解電容。
其他參數計算:
 三、原理圖、PCB、實物圖
原理圖:
PCB:
實物圖:
 四、基本軟件代碼
基本流程圖:
ADC采樣: 初始化ADC:
采集電壓平均值:
采集電流平均值:
定時器初始化:
設置占空比:
串口初始化:
串口調試發(fā)送:
 5.1 PID基本思路:
PID算法有模擬型和數字型: 模擬型主要是有RC網絡構成的PID調節(jié)器,就是環(huán)路補償在VFB和COMP接入的RC網絡。 數字型就是模擬型的離散化形式,積分用加法代替,微分用減法代替而成的。 數字型PID分為有位置型和增量型: 位置型:
增量型:
書上說位置型要比增量型運算量大,但是實際上位置型和增量型的復雜程度是一樣的。增量型也不比位置型運算簡便很多。 本方案中的采用增量型PID算法。 由于PID算法存在一些問題,例如積分會飽和,微分作用時間短,輸出會溢出等缺點,本PID采用的改進型的PID算法,主要有變速積分、積分分離、PWM死區(qū)、PWM限幅。 變速積分:變速積分指的是在積分項比較小的時候積分快一些,積分項比較大的時候積分慢一些。有助于防止飽和。 積分分離:其實也是變速積分的一種,在積分項大于一定值時候,停止積分的作用 PWM死區(qū):設定一個不靈敏區(qū)域,就是輸出的精度。死區(qū)越大,精度越低,但是系統(tǒng)越穩(wěn)定。死區(qū)越小,精度越高,但系統(tǒng)月容易震蕩。 PWM限幅:即限制PWM輸出的極大值,防止占空比達到過高。 另外,PID的參數采用浮點型,主要是為了減小誤差,如果采用整型的話,小數點約去誤差較大,尤其是積分環(huán)節(jié)。 5.2 變速積分:
傳統(tǒng)的積分容易發(fā)生飽和,進而產生震蕩,尤其是當積分量比較大的時候。變速積分法的基本思想是在偏差較大時積分慢一些,而在偏差較小時積分快一些,以盡快消除靜差。 下圖書使用matlab顯示變速積分的函數。圖中直線是y=x,沒有使用變速積分。圖中曲線是使用變速積分之后輸出與輸入的關系。

 5.3 恒壓精度
由于數字電路中,PWM是由定時器產生的,系統(tǒng)有一個時鐘頻率16MHz,當開關頻率為100kHz的時候,PWM就一共有160格,也就是PWM的步進為1/160。 模擬電路中就不存在這個問題,模擬電路中的PWM可以任意的步進。 當pwm數值+1,輸出電壓就會增加一定的量。占空比越大,增加一格占空比導致輸出電壓的增加就越大。這個主要用來設定精度,也就是PID死區(qū)。 下圖是采用matlab計算恒壓精度的代碼:
當Vin=10V,圖如下:
當Vin=13V,圖如下:
可見這個PWM恒壓精度比較低,尤其是占空比較大的時候。不過本方案是恒流驅動,對限壓要求不高。 已知ADC電壓采樣精度=3.3/1024*21=0.068V(3.3為基準電壓,1024為10位ADC2的10次方,21為分壓電阻的比例)。 可見PWM造成的輸出電壓精度遠大于電壓采樣造成的輸出電壓精度。設定PID死區(qū)時候,不能設置的過小,否則會一直不停的震蕩。 增加這個精度有幾種方法: 一是改變拓撲,例如BUCK拓撲,PWM在0-100%內,精度都是相同的,而boost和buck-boost在占空比較小時候,精度高,占空比較大時候,精度低。 二是增加PWM的分辨率,也就是增加MCU的主頻,或者減小開關頻率。 三是PWM占空比抖動。PWM在一個非常非常小的范圍內增加或減小進行小幅震蕩,有利于增加輸出電壓精度,但是缺點是引起輸出紋波略微增大。( 舉一個簡單的例子,0.01精度的PWM,實現0.001精度的輸出:假如要實現0.567的占空比,就可以第(1~7)*n周期輸出0.57,第(8~10)*n周期輸出0.56。這樣總的來說就是0.567的占空比了??墒禽敵鰰B加開關頻率*10的低頻紋波。)
5.4 限流精度:
由于LED的伏安特性不是線性的,所以有PWM引起的恒流精度vs PWM的圖像不好畫出。這里只計算由于ADC造成的恒流精度: ADC最小輸入電壓=3.3/1024=3.3mV;3.3mV在采樣電阻上的電流=33mA。也就是說恒流精度最多為33mA。由于PWM分辨率原因,實際的恒流精度達不到這個值,稍微比0.033A大一些。 但是因為PID中具有積分作用,當PWM抖動時候,就可以達到這個精度了。本方案實際上恒流精度是可以達到33mA的。 恒流采用限流方式,把過流轉換為過壓,送往PID進行處理。當檢測到電流超過0.7A時候,把測量的電壓值賦值超過設定值,轉換為電壓超標。進而實現限流。 5.5 PID整定: 網上的整定方法如下圖:


參數的影響:

PID整定之前的準備: 首先調節(jié)恒壓37V,限流0.7A。允許誤差0.4V,接入LED: 輸出電壓和PWM數值通過串口發(fā)送出來,接收到之后,通過Excel表格畫圖,畫出近似的波形。 PWM=160時候為占空比100%,設定PWM最大值為128,即80% 5.6 調節(jié)Kp 首先采樣周期設置為最小。增大Kp,是環(huán)路震蕩,再逐步減小Kp,直到不震蕩為止。 環(huán)路震蕩測試方法: 方法1:觀察示波器的GS波形是否發(fā)抖。發(fā)抖則為震蕩。 方法2:觀察定時器PWM設置數值是否發(fā)生周期性的大幅變化。如果出現大幅變換,則震蕩。如果小幅變化或者不變化,則基本穩(wěn)定
由于調節(jié)Kp時候,存在穩(wěn)態(tài)誤差,輸出電壓可能達不到LED的開啟電壓,所以調節(jié)Kp時候,采用200歐姆電阻進行代替測試。
Kp=5,Ki=Kd=0; 輸出電壓為15V且存在穩(wěn)態(tài)誤差,環(huán)路震蕩嚴重(GS波形有嚴重抖動),輸出占空比在10~15之間跳變。 GS波形圖:
 PWM數值圖:

經過不斷調整,當Kp=0.5時候,震蕩最小。這時候加入積分環(huán)節(jié)。 5.7 調節(jié)Ki Ki的調節(jié)是在Kp的基礎上,從小往大慢慢加,當達到正常輸出,就OK 了。Ki不能太大,太大容易引起震蕩。 經測試,Kp=0.5,Ki=0.01為最理想階段。
PID參數:Kp=0.5,Ki=0.01,Kd=0;接入LED恒流階段測試: GS波形和恒流電流

輸出PWM占空比數據:

輸出PWM在103~105之間變動,這個是由于PID的積分作用,把誤差進行累加產生的。 5.8 積分系數對PWM的影響:
如果增大積分系數,當積分系數過大,系統(tǒng)變得不穩(wěn)定,震蕩次數增多。 減小積分系數,啟動速度會變慢。
以下是測試積分系數對PWM的影響。
積分系數過大效果:Kp=0.5,Ki=0.05,Kd=0;不穩(wěn)定

積分系數過大效果:Kp=0.5,Ki=0.2,Kd=0;不穩(wěn)定

積分系數過大效果:Kp=0.5,Ki=1,Kd=0;此時,由于積分作用過大,環(huán)路嚴重震蕩。

積分系數過小效果:Kp=0.5,Ki=0.001,Kd=0,從開機到穩(wěn)定的PWM數值。啟動速度慢
 5.9 比例系數進一步整定: 由于原先的Kp是在沒有積分作用下整定的,驅動不了LED,在加入LED之后,需要重新整定Kp。 以下是接入LED之后,Kp測試數據,與不接入LED有所不同: Kp=0.5;Ki=0.01;Kd=0;輸出波動非常大。

Kp=0.1;Ki=0.01;Kd=0;輸出波動5格。

Kp=0.05;Ki=0.01;Kd=0;輸出波動2格。

Kp=0.01;Ki=0.01;Kd=0;輸出波動1格。

由以上數據可見,減小Kp,可以增加系統(tǒng)的穩(wěn)定性,輸出波動變小,但是缺點是響應時間變慢。
Kd主要用來改善環(huán)路相應速度,但是缺點太多,暫且設置為0。
綜合考慮,采用Kp=0.05;Ki=0.01;Kd=0;PWM輸出波動2格。雖然這個波動會引起輸出電壓紋波的略微增大,但是它是積分作用的結果,有利于提恒流高精度至ADC采樣精度。 六、波形與效率 效率:
GS波形:

DS波形:

電感兩端波形:
二極管兩端波形:

七、特殊的MOSFET驅動電路
由于單片機輸出高低電平是0-3.3V,而MOSFET的驅動電壓是0-10V,所以單片機到MOSFET需要一個驅動電路。 這個驅動電路不同于傳統(tǒng)模擬芯片的MOSFET驅動,傳統(tǒng)的MOSFET驅動電路一般都是圖騰柱,但是MCU輸出就不能直接接入圖騰柱電路,需要一個特殊的驅動電路。 為什么不能直接采用圖騰柱:因為圖騰柱實際上是一個共集電極放大電路,只有電流放大能力,沒有電壓放大能力,輸出電壓略小于輸入電壓。如果輸入高電平是3.3V,那么即使集電極的供電電壓是12V,圖騰柱的輸出還是3.3V。這就是共集電極放大電路的特點??墒菫槭裁茨M電源就可以使用圖騰柱驅動呢?是因為模擬電源的控制器的輸出本來就是10~20V的電壓,通過圖騰柱輸出之后,還是10~20V。MCU則不同,MCU的輸出是0~3.3V,如果采用圖騰柱,那么輸出還是在0~3.3V。 這里列出3個不同的驅動電路解決方案,各有千秋,各有所長。
方案1: 一個最簡單的思路就是:“MCU輸出->電平轉換->圖騰柱”。電路圖如下圖。 R2、Q1、R1構成共射極放大電路,作用是反相器。MCU輸出首先通過Q1反相,如果MCU輸入 3.3V高電平,則Q1飽和導通,Q1的集電極輸出0.1V飽和導通壓降。如果MCU輸入0V低電平, Q1截止,Q1集電極是R1上拉為12V供電電壓。這樣一個反相器就實現了電平轉換的功能,缺 點是反相的。后級一個圖騰柱跟上去就OK了。優(yōu)點是電路最簡單。缺點是參數不好調試。
方案2: 為了解決上個電路反相和參數不好選擇的缺點,本文使用的驅動電路是下圖所示的電路。 當PWM輸入3.3V高電平,Q2飽和導通,Q2集電極為0V,又導致Q3飽和導通,Q3集電極為Vcc=12V,通過D2、R5驅動MOSFET。當OWN輸入低電平0V,Q2截止,Q3也截止,由于R4、R6的存在,使Q4導通,對MOSFET的G極進行放電。 下圖是原理圖和仿真的波形,可以點開大圖查看。
方案3: 這個方案最復雜,但是性能最好,采用的是共發(fā)射極放大電路,飽和壓降可以做到很小,甚至比圖騰柱效果還要好。缺點就是元件數目多,輸入輸出反相,低電平有電流流過MCU。 R1(1)接入單片機PWM, R(2)2接入單片機供電電壓3.3V, Q4(E)接入MOS驅動供電電壓12V。 R2、R3阻值相同,對3.3V進行分壓,Q2、Q3基極電壓就是3.3/2V。 當PWM是3.3V高電平,Q3導通,Q3集電極電壓=3.3V,導致Q1導通,Q1集電極電壓=0V,對MOSFET進行放電。 當PWM是0V低電平,Q2導通,Q2集電極電壓=0V,導致Q4導通,Q4集電極電壓=12V,對MOSFET進行充電。 電路圖和仿真結果如下圖所示。
上三個圖,各有優(yōu)點和缺點,各有千秋。本方案采用的就是第二個圖。 原理圖和GS波形如下圖所示:
本文轉自21世紀電源網,作者forget。
|