发作品签到
专业版

带电压闭环的BUCK电路

工程标签

3.8k
0
0
0

简介

开关电源DCDC降压电路,带电压反馈网络 输入范围DC12-80V,输出可调

简介:开关电源DCDC降压电路,带电压反馈网络 输入范围DC12-80V,输出可调

开源协议

Public Domain

创建时间:2023-05-18 21:47:36更新时间:2023-09-20 10:09:42

描述

工作条件:输入电压要大于28V,也可以更改使能引脚外的电阻实现调整。

实际电路:要更改输入输出电容的值,最好往大的取,电感也要采用比较大的值,以减少电压纹波。

电路构成:实用EG3112作为驱动芯片,采用LM358作为采样电路的运放。

代码部分只给出PID部分,其他需要可以联系

PID模块代码:

//定义PID变量结构体
struct _pid{
    float SetSpeed;           //定义设定值
    float ActualSpeed;        //定义实际值
    float err;                //定义偏差值
    float err_last;           //定义上一个偏差值
    float Kp,Ki,Kd;           //定义比例、积分、微分系数
    float voltage;            //定义电压值(控制执行器的变量)
    float integral;           //定义积分值
}pid;
 
//初始化变量
void PID_Init(float Kp,float Ki,float Kd,float speed)
{
    pid.SetSpeed=speed;       //设定值
    pid.ActualSpeed=0.0;    //采样值
    pid.err=0.0;            //误差
    pid.err_last=0.0;       //上一次误差
    pid.voltage=0.0;        //输出值
    pid.integral=0.0;       //累计积分值
    pid.Kp=Kp;
    pid.Ki=Ki;
    pid.Kd=Kd;
}
 
//位置式PID算法
 
int PID_realize(float ActualSpeed)
{
pid.ActualSpeed=ActualSpeed;         //传入实际值
    pid.err=pid.SetSpeed-pid.ActualSpeed;//计算误差
    pid.integral+=pid.err;               //积分值
    pid.voltage=pid.Kp*pid.err+pid.Ki*pid.integral+pid.Kd*(pid.err-pid.err_last);
    pid.err_last=pid.err;                //给上一次误差赋值
    return pid.voltage; 
  }

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
1
位置式PID.cpp
85
2
UCC27211.jpg
93
3
buck.jpg
127
4
课设——BUCK电路.zip
244
克隆工程
添加到专辑
0
0
分享
侵权投诉

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航