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