1、 設計任務如下:
設計並製作乙個數控恆流電源,實現以下要求:
1)基本要求
(1)u2=20v,負載不變的條件下,實現i2恆流,恆流電流在1~2a 範圍內步進可調,步進值不大於0.1a,電流控制精度不低於 5%;
(2)設定i1=2a,調整負載改變輸出電壓,使負載兩端電壓從3v~13v範圍內變化時,要求電流i2的變化率不大於1%;
(3)測量並顯示i2,測量精度不低於2%;
(4)設定 i1=1.5a,調整負載改變輸出電壓,使負載兩端電壓為10v,要求變換器2的轉換率不低於90%;
2)發揮部分
(1)具有過壓保護功能,設定i2=2a,當負載上電壓超過閾值15v時,報警停止輸出;
(2)設計變換器1連線到u2,使輸入電壓u1的變化範圍為8~15v,輸出u2保持20v不變,變換器1的轉換效率不低於93%;
(3)在滿足要求的前提下提高效率、減小體積,使系統整機體積不大於10x10x6cm3;
2、分析如下
(1)針對變換器1,實現公升壓到20v電壓,而且需要實現變換器1輸出電壓恆定,故變換器1的方案是boost公升壓電路,同時加入電壓的ad採集,形成電壓反饋,實現穩壓;
(2)針對變壓器2,實現電流恆定,故需要實現電流值恆定,即電流取樣,實現整體輸出電流恆定。
3、電路設計
(1)boost公升壓電路
boost公升壓電路
原理,其實跟降壓型也一樣,還是通過調節占空比,占空比大電壓就大。
(2)buck降壓電路
電路原理,本電路為buck降壓型dcdc變換電路,通過改變pwm占空比改變輸出電壓。在本題運用中,微控制器輸出pwm經過tlp250驅動晶元放大pwm訊號足矣驅動mos,改變輸出電壓,當採集到輸出電壓時,比較輸出電壓與期望電壓,輸出電壓小了就把pwm占空比增大,然後電壓就增大了,繼續不斷的採集比較判斷調節,知道輸出電壓達到期望電壓為止,當然,恆流也如此,電流小就增大占空比反正就減小占空比。但是這個占空比的增減演算法不是簡單的加加減減,本設計採用pid演算法中的pd演算法。
電流取樣方法;電流經過電阻就有電壓,然後知道電壓值和電阻阻值就可以算出電流值,本電路中利用放大器將電壓放大20倍,所以採集出運放輸出的電壓就可以算出電流。
電壓取樣;採用分壓取樣,電壓電阻有這麼個關係: vo/(r2+r3)=vadc/r3;其中vadc為微控制器採集的電壓,
4、軟體設計
包括1602顯示、ad採集、pwm波形生成,驅動mos管工作,實現電路電壓的放大,此外,還有pid調節程式設計,其主函式程式設計如下:
#include "stm32f10x.h"
#include "lcd1602.h"
#include "adc.h"
#include "timer2_interrupt.h"
#include "pwm_output.h"
#include "control.h"
#include "bsp_key.h"
uint32_t qw_v=20000,qw_i=1100;
uint32_t jishu=0;
void pre()
if(adc_convertedvaluelocal[0]>15090)
jishu++;
// get_adc();
if(jishu>5)
display_lcd1602(0, 0, " warning ");
display_lcd1602(1, 0, " pretect ");
display_lcd1602(1, 0, " v a ");
while(1)
tim3->ccr3=0;
int main(void)
uint16_t i=0;
lcd_init();
adc1_init();
tim3_pwm_init();
key_gpio_config();
// tim2_init();
display_lcd1602(0, 0, " a v");
display_lcd1602(1, 0, " a v");
tim3->ccr3=1200;
tim3->ccr4=1200;
while(1)
i++;
get_adc();
tim3->ccr4=c_v(20000,adc_convertedvaluelocal[2]); tim3->ccr3=c_i(qw_i,adc_convertedvaluelocal[1]);
pre();
if(i==20)
i=0;
write_bsg(0,0,qw_i);
write_bsg(1,0,adc_convertedvaluelocal[1]);
write_v(1,9,adc_convertedvaluelocal[0]);
write_v(0,9,adc_convertedvaluelocal[2]);
if( key_scan(gpiob,gpio_pin_15,0) == key_on )
qw_i-=500;
if(qw_i<1000)qw_i=1000;
if( key_scan(gpiob,gpio_pin_14,0) == key_on )
qw_i+=100;
if(qw_i>2000)qw_i=2000;
if( key_scan(gpiob,gpio_pin_13,0) == key_on )
qw_i-=50;
if(qw_i<1000)qw_i=1000;
if( key_scan(gpiob,gpio_pin_12,0) == key_on )
qw_i+=50;
if(qw_i>2000)qw_i=2000;
5、課題難度不大,讀者可自行研究實現,另發現問題可深入互相學習。
精密恆流源設計
這個鏈結是我之前做的恆流源,缺點很明顯,輸出電流不穩定,有明顯的跳動,沒有校準功能。在基本原理不變的情況下,對其進行了大的改動。實現了0 300ma的精密恆流源。圖1 基本原理 q2為n溝道mos管,在正常工作情況下,運放與mos管之間構成深度負反饋,使得輸入控制電壓與vr虛短,近似相等。這可以得到...
恆流源電路
恆流電路有很多場合不僅需要場合輸出阻抗為零的恆流源,也需要輸入阻抗為無限大的恆流源,以下是幾種單極性恆流電路 型別1 特徵 使用運放,高精度 輸出電流 iout vref rs 型別2 特徵 使用併聯穩壓器,簡單且高精度 輸出電流 iout vref rs 檢測電壓 根據vref不同 1.25v或2...
基於STM32的恆流源設計
本設計以stm32f103rct6為主控晶元,利用mos管的恆流區特點,設計恆流源。設計電流範圍為1 300ma。基本原理圖 q2為n溝道mos管,在正常工作情況下,運放與mos管之間構成深度負反饋,使得輸入控制電壓與vr虛短,近似相等。這可以得到負載電流 3.1.電源 電路圖如圖所示 電源由 12...