標題: dcdc buck閉環數控型穩壓電源仿真+單片機程序及實驗報告 [打印本頁]
作者: wsn515 時間: 2017-10-30 17:40
標題: dcdc buck閉環數控型穩壓電源仿真+單片機程序及實驗報告
電子信息系統綜合設計實驗報告
專業:電子信息
班級:電子141班
學號:14072001784
姓名:劉成成
一、實驗目的
設計并制作一臺數控型DCDC穩壓電源。
二、實驗要求
1、輸出電壓范圍 :0.5v~4.5v。可以通過按鍵實現電壓調整
2、必須使用PID閉環控制算法
3、發揮部分: PID控制的三個系數,可以通過遺傳算法來確定。
三、實驗內容
1、原理框圖
0.png (8.83 KB, 下載次數: 79)
下載附件
2017-10-30 21:22 上傳
2、實驗原理 PID( Proportional Integral Derivative)控制是 最早發展起來的控制策略之一,由于其算法 簡單、魯棒性好和可靠性高,被廣泛應用于 工業過程控制,尤其適用于可建立精確數學 模型的確定性控制系統。
如圖一,
圖一
該實驗使用PID算法,通過按鍵控制單片機PWM波形的占空比。PWM波形通過74HC595驅動電路之后進入BOOST電路控制輸出電壓。
即,通過改變占空比來改變輸出電壓。
該實驗實現的結果為,設計了五個按鍵,每個按鍵按下之后會輸出不同的電壓值,輸出電壓值在依次為1,、2、3、4、5V。
如圖二為BOOST電路部分,實現升壓功能。
圖二
圖三為驅動電路部分,有了驅動電路,才能讓PWM波形在BOOST電路上工作。
圖三
圖四為單片機部分
圖四
圖五為AD轉換部分
圖五
圖六為顯示部分:
圖六
總的原理框圖如圖七:
圖七
3、程序如下:(見附件)
該實驗最后基本實現了實驗要求,圖為按下輸出電壓為2V相應的按鍵后的示波器和數碼管顯示的狀態。示波器黃線為PWM波形,藍線為電壓波形。數碼管顯示為1.9V,誤差為0.1V。
通過本次設計,對穩壓電源和PID算法原理有了一定的理解。初步掌握了Proteus程序的基本用法。并且在進行模擬仿真的時候,對Proteus運用很陌生,在網上大量搜索之后完成了仿真設計,總體來說還需要不斷地練習。
buck型DCDC穩壓電源的51單片機源程序如下:
- #include"reg52.h"
- #include"iic.h"
- #include"math.h"
- #include"intrins.h"
- #include<absacc.h>
- //#define unsigend char uchar
- unsigned
- char code shu[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x7f};
- char code sho[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x7f};
- sbit SHCP=P2^2;
- sbit DS=P2^3;
- sbit STCP=P2^4;
- sbit P11=P3^5;
- sbit P12=P3^7;
- sbit pwm=P2^7;
-
- sbit CS = P1^2;
- sbit CLK = P1^3;
- sbit DIO = P1^4;
-
- sbit button1=P3^0;
- sbit button2=P3^1;
- sbit button3=P3^2;
- sbit button4=P3^3;
- sbit button5=P3^4;
- unsigned char j,k,m,n,i,a,l;
- unsigned int b;
-
- int pwm_add=0;
- int PWM_control=0;
-
- float voltage_get=0;
- float voltage_set=0;
-
- float voltage_kp=0.01;
- float voltage_ki=0.12;
- float voltage_output=0;
- float voltage_error=0;
- float voltage_error_last=0;
-
- void timer_init();
- void display();
- unsigned char Get_ADC(bit ch);
-
- void main()
- {
-
- float x1=0.5,x2=1.5,x3=2,x4=2.5,x5=3;
- timer_init();
-
-
-
- while(1)
- {
- if(button1==0) {voltage_set=1;}
- if(button2==0) {voltage_set=2;}
- if(button3==0) {voltage_set=3; }
- if(button4==0) {voltage_set=4;}
- if(button5==0) {voltage_set=5;}
-
-
- a=Get_ADC();
- b=a*9;
- m=b%1000/100;
- n=b%100/10;
- //l=b%1000/100/10
- display();
- }
-
- }
- void delay(unsigned char t) //?óê±3ìDò
- {
- while(t--);
- }
- void timer_irq() interrupt 1
- {
- pwm_add++;
- if (pwm_add==PWM_control) {pwm=0;}
- else if (pwm_add>=50) {pwm=1;pwm_add=0;}
-
- }
-
- void timer1_irq() interrupt 3
- {
- TH1=(65536-50000)>>8;
- TL1= 65536-50000;
-
- voltage_get=(Get_ADC(0)/10.2);
- // voltage_get=17;
- voltage_error=voltage_set-voltage_get;
-
- voltage_output+=voltage_kp*(voltage_error-voltage_error_last)
- +voltage_ki*voltage_error;
-
- voltage_error_last=voltage_error;
-
- if (voltage_output>49) voltage_output=49;
- else if(voltage_output<1) voltage_output=1;
-
- PWM_control=(int)voltage_output;
-
-
- }
-
- void timer_init()
- {
- TMOD=0X12;
- TH0=TL0=256-200;
- TH1=(65536-50000)>>8;
- TL1= 65536-50000;
- EA=1;ET0=1;ET1=1;TR0=1;TR1=1;
- }
-
-
- unsigned char Get_ADC(bit ch)
- {
- unsigned char i,dat1 = 0,dat2 = 0;
- CS = 0; CLK = 0;
- DIO = 1; _nop_(); _nop_();
- CLK = 1; _nop_(); _nop_();
- CLK = 0; DIO = 1; _nop_(); _nop_();
- CLK = 1; _nop_(); _nop_();
- CLK = 0; DIO = ch; _nop_(); _nop_();
- CLK = 1; _nop_(); _nop_();
- CLK = 0; DIO = 1; _nop_(); _nop_();
- for(i = 0; i < 8; i++)
- {
- CLK = 1; _nop_(); _nop_();
- CLK = 0; _nop_(); _nop_();
- dat1 = (dat1 << 1)|DIO;
- }
- for(i = 0; i < 8; i++)
- {
- dat2 = dat2|((unsigned char)DIO<<i);
- CLK = 1; _nop_(); _nop_();
- CLK = 0; _nop_(); _nop_();
- }
- CS = 1;
- return dat1;
- }
- void display()
- {
-
-
-
- j=0x01;
- for(i=0;i<8;i++)
- {
- if((sho[m]&j)==0)
- {
- DS=0;
- }
- else
- {
- DS=1;
- }
- SHCP=1;
- SHCP=0;
- j<<=1;
- }
- P12=0;
- P11=1;
- STCP=0;
- STCP=1;
-
- delay(200);
-
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
0.png (43.04 KB, 下載次數: 63)
下載附件
2017-10-30 21:25 上傳
所有資料51hei提供下載:
穩壓電源.zip
(468.82 KB, 下載次數: 292)
2017-10-30 17:40 上傳
點擊文件名下載附件
閉環算法
下載積分: 黑幣 -5
作者: 小小狼 時間: 2018-4-17 09:43
看了很有幫助
作者: wdliming 時間: 2018-12-23 14:41
謝謝分享~~!。
作者: zyx123 時間: 2019-2-26 11:00
謝謝分享。。。
作者: nzyhgw 時間: 2020-4-24 10:40
感謝分享,很好的資料
作者: 林村雜工 時間: 2020-4-27 15:08
東西下載來看看,學習學習
作者: 天下倒數第一 時間: 2021-4-30 10:11
真的謝謝,你的文章剛好提供了思路
作者: 天下倒數第一 時間: 2021-4-30 20:33
??標題是BUCK,內容用的是BOOST電路,說的是輸出12345V,實際仿真圖里是其他的....
作者: lsx116 時間: 2021-6-29 16:11
代碼都不備注新手怎么看
作者: 紫色的云 時間: 2021-6-29 16:32
參考參考,謝謝樓主的分享
作者: lsx116 時間: 2021-6-29 16:45
下載后測試輸出電壓誤差大的一逼 選2V 的時候電壓從1.5-2.0在跳
作者: ZHAOBAO511 時間: 2023-10-10 18:05
我的壓根就沒電壓
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
日韩亚洲视频在线
|
欧美一级黄色免费看
|
成人免费在线
|
91一区二区在线观看
|
国产一区二区在线播放
|
午夜网|
天天玩夜夜操
|
欧美久久一级特黄毛片
|
国产粉嫩尤物极品99综合精品
|
性高湖久久久久久久久aaaaa
|
国产在线一区二区
|
日韩中文字幕在线观看视频
|
在线观看视频一区二区三区
|
亚洲国产一区二区三区在线观看
|
色妞av|
日韩免费av|
一级黄色生活视频
|
日韩av免费在线电影
|
91精品久久久久久久
|
在线观看亚洲
|
精品久久久久久久久久久
|
av中文在线播放
|
日本一二三区在线观看
|
国产在线看片
|
av香蕉|
2020天天操|
日本激情一区二区
|
大学生a级毛片免费视频
|
一级大片免费
|
亚洲男人天堂av
|
伊人国产精品
|
免费的av|
在线a视频网站
|
美女黄色在线观看
|
精品1区
|
亚洲激情一区二区三区
|
欧美国产视频
|
黄片毛片免费观看
|
99久久精品一区二区毛片吞精
|
日日摸夜夜添夜夜添特色大片
|
中文天堂在线一区
|