數控恆流源設計

2022-08-24 14:33:13 字數 3205 閱讀 9075

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...