基于PID閉環(huán)控制算法的串聯(lián)型開關(guān)穩(wěn)壓電源的設(shè)計(jì),附有電路仿真圖以及相關(guān)程序
0.png (45.63 KB, 下載次數(shù): 117)
下載附件
2017-7-13 16:15 上傳
電源整機(jī)架構(gòu)如圖1所示。
1.001.jpg (24.73 KB, 下載次數(shù): 105)
下載附件
2017-7-13 16:19 上傳
圖1 電源整機(jī)架構(gòu)
開關(guān)電源整機(jī)電路圖:
1.002.jpg (64.91 KB, 下載次數(shù): 96)
下載附件
2017-7-13 16:19 上傳
整機(jī)電路圖
整機(jī)仿真效果圖:
1.003.jpg (50.67 KB, 下載次數(shù): 127)
下載附件
2017-7-13 16:19 上傳
仿真效果圖(proteus仿真工程文件可到51hei的附件中下載)
單片機(jī)源程序如下:
- #include "Include.h"
- sbit K1=P0^0;//使目標(biāo)電壓增0.2
- sbit K2=P0^1;//使目標(biāo)電壓減0.2
- float Target=2.0;//目標(biāo)電壓
- void main()
- {
- float Voltage;//當(dāng)前電壓
- int Pwm;//用來更新PWM
- float Voltage_1;//用來存儲(chǔ)PID函數(shù)返回后的增量
- LCD1602_Drv_Init();
- PWM_Init();
- IncPIDInit();
- PWM_Output(200);
- while(1)
- {
- Voltage=AD1674_LvBo();//對(duì)開關(guān)電源輸出端進(jìn)行電壓采集,濾波,并且將結(jié)果賦給當(dāng)前電壓Voltage
- Voltage_1=IncPIDCalc(Voltage,Target);//由PID增量式控制算法返回增量并且賦給Voltage_1
- Pwm+=Voltage_1;//控制PWM的脈寬輸出,調(diào)整輸出電壓
- PWM_Output(Pwm);//輸出占空比
- if(K1==0)
- {
- delay(10);
- if(K1==0)//按鍵k1真的按下
- {
- Target+=0.2;//步進(jìn)電壓為0.2v,每按一次k1目標(biāo)電壓的增加0.2v
- if(Target>=5.0)Target=5.0;//目標(biāo)電壓最大只能是5v
- }
- while(K1==0);//如果K1一直處于按下的狀態(tài),則程序什么也不做,呈現(xiàn)延時(shí)狀態(tài)
- }
- if(K2==0)
- {
- delay(10);
- if(K2==0)//K2真的按下
- {
- Target-=0.2;//每按一次k2目標(biāo)電壓就減少0.2v
- if(Target>=5.0)Target=5.0;//
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
基于PID閉環(huán)控制算法的串聯(lián)型開關(guān)穩(wěn)壓電源的設(shè)計(jì),附有電路仿真圖以及相關(guān)程序.zip
(798.63 KB, 下載次數(shù): 248)
2017-7-13 08:49 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|