• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

四开关Buck-Boost超级电容控制器-混动汽车中的制动能量回收系统

05/19 14:55
3479
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

src_原理图及PCB.zip

共4个文件

项目简介

超级电容是一种介于传统电容器和可充电电池之间的新型储能装置,它允许大电流充放电,同时具有低内阻的特性,存储电荷的容量较大,一般都是法拉(F)单位 ,但是单体耐压较低,一般就是2.7V左右,所以一般超级电容组都是由多组串联再并联的方式提高容量和耐压使用。由于允许的充电电流可以很大,所以充电时间可以很快。另外一个有点就是**没有记忆效应,一般循环使用寿命可达数万次,**能量转换效率高,大电流下能量转换效率普遍大于90%。

这个项目是以超级电容在混动汽车中的制动能量回收系统为研究点,通过超级电容组以及BuckBoost变换器组成的变换器并联底盘中,通过PowerPath来管理能量流动,实现动能的回收与利用。

实物图

拉载80W测试

栅极驱动波形

项目原理

功率路径流动

项目的功率路径如下图1.1所示

图1.1

在正常行驶过程中,所需功<可提供功率时,超级电容控制板会计算剩余可利用功率,并将这一部分通过BuckBoost变换器将电容组充满,电流路径如图1.1中充电路径(如视频中开头部分的充电,电容组电压上升过程),这样就完成了将剩余动能存储下来的过程

当电容组电容充满后,汽车在处于爬坡/加速过程中,所需功率>电池系统可提供功率时,超级电容控制板将BuckBoost到电源母线的功率路径打开,超级电容组中的能量通过BuckBoost变换器提供给电机,(对应视频中电子负载功率拉高,超级电容电压下降,可调电源端输出功率保持不变),这样就完成了在加速爬坡中,通过额外储能装置给电车进行功率补偿,这一过程实现了能量转换为动能的过程。

第三个功能就是在电车刹车的时候,电动机的反电动势通过母线上的BuckBoost变换器存储进电容组中,实现刹车动能的回收。

BuckBoost变换器

变换器的框架如下图1.3所示;

图1.3

双向同步整流BUCK-BOOST电路拓扑是由同步BUCK电路和同步BOOST电路级联而 成,相对于同步BUCK电路或同步BOOST电路,双向同步整流BUCK-BOOST电路在同一方向上实现了 升降压功能,而不是在一个方向上只能实现升压或降压功能。如图1.2所示 为四开关变换器原理图,在电路两端完全对称的结构

图1.2

本设计中的Q1和Q2、Q3和Q4分别是互补导通的MOS管对。双向同步整流BUCK-BOOST电路根据输入输出电压关系分为降压区、升压区和降压-升压区。在降压区,Q1和Q2互补导通,Q4常关,Q3常通,电路等效于同步BUCK电路。由于MOS管驱动采用自举升压方式,Q4需短暂导通以给Q3的自举电容充电,因此Q4的占空比固定为0.5,Q1的占空比可在0-0.95间变化。在升压区,电路等效于同步BOOST电路,Q1的占空比固定为0.95,Q4的占空比可在0-0.95间变化。当输入输出电压接近时,电路在降压-升压区工作,交替进行降压和升压操作。电路的MOS管开关状态主要有三种,如图1.4所示。

图1.4

通过MCU控制MOS管在上面三个状态中循环切换 实现能量的双向流动。

在本应用中为了方便控制 使用了集成驱动的SC8701作为栅极驱动器

图1.5

这颗芯片可以实现超高的转换效率,和简单的控制逻辑,两颗SC8701可以将电容电压利用到最低3V

折合单体电容0.3V左右的超低电压 实现能量利用最大化。

电压电流检测

电压检测使用ADI公司的精密、低噪声、轨到轨输入输出、CMOS运算放大器AD8605进行三个端口的电压检测,

如图1.7所示。电流检测使用精密检流运放实现。

图1.7

通过以下代码将ADC采样值转换为实际值

gAdcIiSampleValue = (uint16)( gAdcSampleBuf[0] & 0xFFFF ) - gExcursionZeroIin;
gAdcIoSampleValue = (uint16)( gAdcSampleBuf[1] & 0xFFFF ) - gExcursionZeroIout;
gAdcVoSampleValue = (uint16)( gAdcSampleBuf[0] / 0xFFFF );
gAdcViSampleValue = (uint16)( gAdcSampleBuf[1] / 0xFFFF );

gLowFilter_ViFdb.Input = (gAdcViSampleValue * gVoltInStr.Coeff ) + gVoltInStr.Offset;
gLowFilter_VoFdb.Input = (gAdcVoSampleValue * gVoltOutStr.Coeff ) + gVoltOutStr.Offset;
gLowFilter_IiFdb.Input = (gAdcIiSampleValue * gCurrInStr.Coeff ) + gCurrInStr.Offset;
gLowFilter_IoFdb.Input = (gAdcIoSampleValue * gCurrOutStr.Coeff ) + gCurrOutStr.Offset;

low_filter_calc(&gLowFilter_ViFdb);
low_filter_calc(&gLowFilter_IiFdb);
low_filter_calc(&gLowFilter_VoFdb);
low_filter_calc(&gLowFilter_IoFdb);

gVoltOutStr.Value = gLowFilter_VoFdb.Output;
gCurrOutStr.Value = gLowFilter_IoFdb.Output;
gVoltInStr.Value = gLowFilter_ViFdb.Output;
gCurrInStr.Value = gLowFilter_IiFdb.Output;

获取完电压电流后 再根据PID计算得出的值对电压电流环进行竞争 得出比较值后进行输出,完成电容组的充放电过程

其中?temp_power = mes_power - Set_Power;?这一段就是在计算有多少剩余功率可用,如果结果为正说明所需功率大于可提供功率 需要进行放电。若为负 即为电容功率小于所需功率 可以进行储能

gPSM_STA.bit.RUN? ? = 0;
? ? gPSM_STA.bit.CHARGE = 0;
? ? gPSM_STA.bit.DISCHA = 0;
? ? gPSM_STA.bit.CC? ? ?= 0;
? ? gPSM_STA.bit.CV? ? ?= 0;
? ? gPSM_STA.bit.CW? ? ?= 0;
? ? gPSM_STA.bit.MPPT? ?= 0;
temp_power = mes_power - Set_Power;
? ? m_pwm_cmp = 0;
? /*
? ?*? 输出电压环PID计算
? ?*/
? gPID_VoltOutLoop.Ref = m_vout_ref;
? gPID_VoltOutLoop.Fdb = gVoltOutStr.Value;
? pid_func.calc( &gPID_VoltOutLoop );? // 输出电压环PID计算
? /*
? ?*? 输出电流环PID计算
? ?*/
? gPID_CurrOutLoop.Ref = m_iout_ref;
? gPID_CurrOutLoop.Fdb = gCurrOutStr.Value;
? pid_func.calc( &gPID_CurrOutLoop );? // 电流环PID计算
// m_pwm_cmp += (m_pwm_cmp > 0.3f * DP_PWM_PER) ? 0.0f : 0.01f * DP_PWM_PER;
m_pwm_cmp = fminf( gPID_VoltOutLoop.Output, gPID_CurrOutLoop.Output);// 取两个环路中较小的输出值
gPID_VoltOutLoop.Output = m_pwm_cmp;// 保存本次PWM比较值
gPID_CurrOutLoop.Output = m_pwm_cmp;// 保存本次PWM比较值
? dr_pwm_update( m_pwm_cmp );? ? ? ? ?// 更新PWM
PID进行功率计算输出量
Output_Curren_Measure =Read_VBUS_Current();
Input_Curren_Measure = Read_BATT_Current();
? ? ? Input_Curren_Error = Input_Curren_Target - Input_Curren_Measure;
? ? ? pTerm = (Input_Curren_Error * Input_Curren_kpid[KP]);
? ? ? iTerm += (Input_Curren_Error * Input_Curren_kpid[KI]);
? ? ? iTerm = constrain_float(iTerm, -iTermMax, iTermMax);
? ? ? pidTerm = pTerm + iTerm;
? ? ? pidTerm = constrain_float(pidTerm, -Final_Output_Max, Final_Output_Max);
? ? ? Final_Output = Input_Curren_Target + pidTerm;

以上为本次大赛的项目资料 顺祝各位在比赛中

另附项目文件以及演示视频

参见附件

  • src_原理图及PCB.zip
    下载
  • src_原理图及PCB.zip
    下载
  • BOM.zip
    下载
  • dc-power-master.zip
    下载
DigiKey得捷

DigiKey得捷

DigiKey 总部位于美国明尼苏达州锡夫里弗福尔斯市,是一家获得原厂授权的全球性、全类目电子元器件和自动化产品分销商。我们通过分销来自 2,300 多家优质品牌制造商的 1,020 多万种元器件获得了强大的技术优势。DigiKey 还为工程师、设计师、开发者和采购专业人员提供丰富的数字解决方案、无障碍互动和工具支持,以帮助他们提升工作效率。在中国,客户可以通过电子邮件、电话和客服获得全方位技术支持。如需了解更多信息和获取 DigiKey 广泛的产品,请访问 www.digikey.cn 并关注我们的微信、微博、腾讯视频和 BiliBili 账号。

DigiKey 总部位于美国明尼苏达州锡夫里弗福尔斯市,是一家获得原厂授权的全球性、全类目电子元器件和自动化产品分销商。我们通过分销来自 2,300 多家优质品牌制造商的 1,020 多万种元器件获得了强大的技术优势。DigiKey 还为工程师、设计师、开发者和采购专业人员提供丰富的数字解决方案、无障碍互动和工具支持,以帮助他们提升工作效率。在中国,客户可以通过电子邮件、电话和客服获得全方位技术支持。如需了解更多信息和获取 DigiKey 广泛的产品,请访问 www.digikey.cn 并关注我们的微信、微博、腾讯视频和 BiliBili 账号。收起

查看更多

相关推荐