找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7624|回復: 5
打印 上一主題 下一主題
收起左側(cè)

基于PID閉環(huán)控制算法的串聯(lián)型開關穩(wěn)壓電源的設計,附有電路仿真圖以及相關程序

  [復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:219294 發(fā)表于 2017-7-13 08:49 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
基于PID閉環(huán)控制算法的串聯(lián)型開關穩(wěn)壓電源的設計,附有電路仿真圖以及相關程序


電源整機架構(gòu)如圖1所示。

   

圖1  電源整機架構(gòu)


開關電源整機電路圖:

    整機電路圖


整機仿真效果圖:

仿真效果圖(proteus仿真工程文件可到51hei附件中下載)



單片機源程序如下:
  1. #include "Include.h"

  2. sbit K1=P0^0;//使目標電壓增0.2
  3. sbit K2=P0^1;//使目標電壓減0.2

  4. float Target=2.0;//目標電壓

  5. void main()
  6. {
  7.         float Voltage;//當前電壓
  8.         int Pwm;//用來更新PWM
  9.         float Voltage_1;//用來存儲PID函數(shù)返回后的增量
  10.         LCD1602_Drv_Init();
  11.         PWM_Init();
  12.         IncPIDInit();
  13.         PWM_Output(200);
  14.         while(1)
  15.         {
  16.                 Voltage=AD1674_LvBo();//對開關電源輸出端進行電壓采集,濾波,并且將結(jié)果賦給當前電壓Voltage
  17.                 Voltage_1=IncPIDCalc(Voltage,Target);//由PID增量式控制算法返回增量并且賦給Voltage_1
  18.                 Pwm+=Voltage_1;//控制PWM的脈寬輸出,調(diào)整輸出電壓
  19.                 PWM_Output(Pwm);//輸出占空比
  20.                 if(K1==0)
  21.                 {
  22.                         delay(10);
  23.                         if(K1==0)//按鍵k1真的按下
  24.                         {
  25.                                 Target+=0.2;//步進電壓為0.2v,每按一次k1目標電壓的增加0.2v
  26.                                 if(Target>=5.0)Target=5.0;//目標電壓最大只能是5v
  27.                         }
  28.                         while(K1==0);//如果K1一直處于按下的狀態(tài),則程序什么也不做,呈現(xiàn)延時狀態(tài)
  29.                 }
  30.                 if(K2==0)
  31.                 {
  32.                         delay(10);
  33.                         if(K2==0)//K2真的按下
  34.                         {
  35.                                 Target-=0.2;//每按一次k2目標電壓就減少0.2v
  36.                                 if(Target>=5.0)Target=5.0;//
  37. ……………………

  38. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
基于PID閉環(huán)控制算法的串聯(lián)型開關穩(wěn)壓電源的設計,附有電路仿真圖以及相關程序.zip (798.63 KB, 下載次數(shù): 248)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏11 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:749490 發(fā)表于 2020-5-11 22:15 | 只看該作者
看起來不錯,下載來膜拜下
回復

使用道具 舉報

板凳
ID:60656 發(fā)表于 2020-5-26 21:17 | 只看該作者
支持樓主 精華
回復

使用道具 舉報

地板
ID:620337 發(fā)表于 2020-12-1 08:35 | 只看該作者
關鍵是調(diào)整率問題,,,如果輸入電壓比較穩(wěn)定倒是無所謂,否則輸出肯定會飄,因為單片機的PWM輸出精度有限,,,如果精度高了,那么PWM頻率又會變慢,需要的電感會很大很大
回復

使用道具 舉報

5#
ID:229010 發(fā)表于 2020-12-30 14:25 | 只看該作者
正好需要學習pid
回復

使用道具 舉報

6#
ID:462629 發(fā)表于 2021-12-28 09:59 | 只看該作者
這個有做成實物的嗎?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表