2016年国赛高教杯数学建模C题电池剩余放电时间预测解题全过程文档及程序
2016年国赛高教杯数学建模
C题 电池剩余放电时间预测
铅酸电池作为电源被广泛用于工业、军事、日常生活中。在铅酸电池以恒定电流强度放电过程中,电压随放电时间单调下降,直到额定的最低保护电压(Um,本题中为9V)。从充满电开始放电,电压随时间变化的关系称为放电曲线。电池在当前负荷下还能供电多长时间(即以当前电流强度放电到Um的剩余放电时间)是使用中必须回答的问题。电池通过较长时间使用或放置,充满电后的荷电状态会发生衰减。
问题1 附件1是同一生产批次电池出厂时以不同电流强度放电测试的完整放电曲线的采样数据。请根据附件1用初等函数表示各放电曲线,并分别给出各放电曲线的平均相对误差(MRE,定义见附件1)。如果在新电池使用中,分别以30A、40A、50A、60A和70A电流强度放电,测得电压都为9.8伏时,根据你获得的模型,电池的剩余放电时间分别是多少?
问题2 试建立以20A到100A之间任一恒定电流强度放电时的放电曲线的数学模型,并用MRE评估模型的精度。用表格和图形给出电流强度为55A时的放电曲线。
问题3 附件2是同一电池在不同衰减状态下以同一电流强度从充满电开始放电的记录数据。试预测附件2中电池衰减状态3的剩余放电时间。
整体求解过程概述(摘要)
本文针对铅酸电池在9个不同电流强度下的放电数据,以MATLAB数据拟合为突破口,得到了放电曲线的指数函数模型,并利用模型反函数降低了模型求解难度,通过调整坐标系、模型因变量与自变量对应关系计算出9.8伏降至Um的时间,并在此方法上拓展延伸建立了任意电流对应的放电分段函数模型,通过MRE检验了所建立模型的合理性.
针对问题一:首先根据9组采样数据,对各个电流下的放电曲线使用指数函数进行拟合,得到相应的模型,该模型拟合效果好但是不利于计算,于是对放电曲线关于y=x对称的图像进行拟合,得到了放电曲线反函数的多项式函数模型,将解方程转化为计算函数值,降低了模型计算难度,并计算出9条放电曲线的MRE(见表5),在进一步分析放电曲线的过程中发现9条放电曲线前期均呈现初期上下波动,后期趋于平缓的走势,针对这种情况,本文将函数进行数据处理,利用图像的拐点将前段波动较大的奇异点剔除,拟合出了更为平滑的放电曲线模型,并利用倒叙法求解,即将时间值进行前后颠倒,将电压与放电时间的关系转化为电压与剩余放电时间的关系,并用MRE进行了评价,根据该优化后的模型计算出了30A、40A、50A、60A和70A电流强度下电压由9.8伏降至Um需要的时间依次为592.7240分、415.6200分、322.4720分、284.8840分、254.2160分.
针对问题二:由于附录一只给出了九组离散数据,而第二问是一个连续性的问题,所以使用插值的方法,对问题一中建立的指数函数模型的参数进行插值处理,由于放电曲线在初始阶段波动较大,用函数整体拟合效果不佳,所以本文采取了分段建模的方法, 利用拐点将放电曲线分割为波动阶段和稳定阶段.稳定阶段采用模型参数插值法得到任意电流的稳定阶段模型,初始波动阶段利用单调性、凹凸性、极值点、拐点等数据进行拟合得到相应的模型.并利用该分段模型,计算出20A时的MRE为2.0153%与第一问的结果相近,最后将55A的放电曲线用表格和图形给出(详见表13、图8). ,
针对问题三:电压以0.005V为间隔给出相应的衰减时间,需要建立的模型应以电压为自变量,以时间为因变量,这与第一问中模型以时间为自变量,以电压为因变量恰好相反,于是在第一问模型的基础上去寻找放电曲线反函数模型来解决第三问,由于在第一问中已经使用模型的反函数模型进行求解,且对放电曲线反函数曲线拟合效果较好的是二次多项式函数,所以第三问本文用二次多项式来拟合衰减状态3,补全了时间(表14).
本文使用凹凸性、拐点等高等数学知识建立的指数函数模型、分段函数模型拟合程度较好,适用的问题范围广,易于理解,在计算模型方面,采用了反函数、调整坐标系等方法简单有效.
模型假设:
假设一:同一批次电池性能相同;
假设二:同一电压值对应多个放电时间,取这些时间的平均值为该电压的放电时间;
假设三:在100A数据中,可以将一个间隔电绝对压差值大于0.005V的数据拆分成两个间隔进行处理;
假设四:低电压阶段放电趋于稳定;
假设五:放电初始阶段波动点均可视为奇异点.
问题分析:
问题的分析
问题一:该题首先要求根据给定的9组采样数据,用初等函数表示各组在不同电流强度下的放电曲线,本文首先尝试对各个电流下的放电曲线使用指数函数进行MATLAB拟合,得到相应的模型,该模型拟合效果好但不利于求解,于是对放电曲线关于y=x对
称的反函数图像进行拟合,得到放电曲线的多项式函数模型,基于此模型计算出九条放电曲线的MRE,MRE越接近零,说明拟合效果较好,模型可以较为真实的刻画实际现象.在进一步分析放电曲线的过程中,发现9条放电曲线前期均呈现初期上下波动,后期趋于平缓的走势,针对这种情况,本文将函数进行数据处理,将前段波动较大的数据奇异点去除,利用余下数据拟合出更为平滑的放电曲线.由于放电过程中电压呈现先下降再上升再稳定下降的形态,与高等数学中的曲线单调性、凹凸性比较相似,于是文中利用拐点,对采样数据进行筛选,将奇异点排除,对处理后的数据进行MATLAB拟合,得到MRE误差更小的优化后的放电曲线模型,并使用该优化后的模型分计算出30A、40A、50A、60A和70A电流强度由9.8伏降至Um需要的时间.
问题二:此问要建立20A到100A内任意恒定电流强度放电的放电曲线函数模型,由于附录一只给出了九组数据,这些数据是离散的,而第二问实际是一个连续性的问题,所以必然要使用差值的方法,对问题一中建立的模型进行分析,由于放电曲线在初始阶段波动较大,用函数整体拟合效果不佳,所以在第二问,本文采取了分段建模的方法,对放电曲线进行研究.
由于问题一中已发现放电曲线由波动到稳定的分界点是其拐点,所以此处依然利用拐点将放电曲线进行分割,稳定阶段采用模型参数插值法得到任意电流的稳定阶段模型,前半段利用单调性、凹凸性、极值点、拐点等数据进行拟合得到相应的模型.并利用该分段模型,计算出20A时的MRE与第一问的结果进行比对来评估模型,最后将55A的放电曲线用表格和图形给出.
问题三:通过对问题3的数据分析,发现这里电压以0.005V为间隔给出相应的衰减时间,需要建立的模型是以电压为自变量,以时间为因变量,这与第一问中模型以时间为自变量,以电压为因变量恰好相反,这也启发我们,在第一问模型的基础上去寻找放电曲线反函数模型来解决第三问,由于第一问的模型结构具有指数函数模型特点,即:U(t)=a1ea2x+a3ea4x,且在第一问中已经使用模型的反函数模型用于求解,并且对放电曲线反函数曲线拟合效果最好的是二次多项式函数,所以第三问本文就尝试用二次多项式来拟合衰减状态3,补全时间.
模型的建立与求解整体论文缩略图
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可
部分程序代码(未放全):
clc
clear
hold on
x20=0:2:3764;
z20=load('shuju20.txt');
plot(x20,z20,'y')
x30=0:2:2454;
z30=load('shuju30.txt');
plot(x30,z30,'m')
x40=0:2:1724;
z40=load('shuju40.txt');
plot(x40,z40,'c')
x50=0:2:1308;
z50=load('shuju50.txt');
plot(x50,z50,'r')
x60=0:2:1044;
z60=load('shuju60.txt');
plot(x60,z60,'g')
x70=0:2:862;
z70=load('shuju70.txt');
plot(x70,z70,'b')
x80=0:2:730;
z80=load('shuju80.txt');
plot(x80,z80,'r')
x90=0:2:620;
z90=load('shuju90.txt');
plot(x90,z90,'k')
x100=0:2:538;
z100=load('shuju100.txt');
plot(x100,z100)
x=0:2:581*2-1
z1=load('A55.txt')
z1=z1'
plot(x,z1)
clc
clear
x20=0:2:3764;
%时间作为因变量
z20=load('shuju20.txt')'; %剩余电压作为自变量
x30=0:2:2454;
z30=load('shuju30.txt')';
x40=0:2:1724;
z40=load('shuju40.txt')';
x50=0:2:1308;
z50=load('shuju50.txt')';
x60=0:2:1044;
z60=load('shuju60.txt')';
x70=0:2:862;
z70=load('shuju70.txt')';
x80=0:2:730;
z80=load('shuju80.txt')';
x90=0:2:620;
z90=load('shuju90.txt')';
x100=0:2:538;
z100=load('shuju100.txt')';
cftool