
专业版
带电压闭环的BUCK电路
4.6k
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
克隆工程添加到专辑
0
0
分享
侵权投诉
知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。


评论