MATLAB曲线拟合---基于二阶EKF的锂离子电池SOC估计的建模与仿真

给出一些点,进行曲线拟合

以SOC与EMF的拟合为例---运用MATLAB拟合工具箱内的ploymial算法

一.步骤

1.把点输入到MATLAB工作区

(1)保存.mat文件之后,使用前先导入load('game_calculate_k.mat')【未验证】

(2)直接在命令行窗口输入数据,定义X与Y

X=0:10:100
Y=[2.534 3.22 3.262 3.2965 3.304 3.306 3.312 3.339 3.342 3.343 3.366]

2.生成散点图

在命令行执行窗口输入

plot(X,Y,'O')%'是字母o'

运行之后即可出现散点图

3.拟合工具箱进行(参数)拟合

在APP中找到curve fitting tool和直接在命令行中输入cftool,都是可以打开的

4.选择对应数据

拟合工具箱左侧可以选择对应数据

有X/Y/Z三个数据选项,意思是说,拟合工具箱可以用来处理一个变量或者两个变量的拟合问题

如果是多维的拟合,我们可以用粒子群算法

我们最常用的算法有两种:Custom Equation(用户自定义函数拟合)和ploymial(多项式拟合)

在使用Custom Equation进行函数拟合时,若曲线与点出现过大偏差,可以尝试调试初值

5.进行八阶多项式拟合

可以选择多项式的次数

在选择模型时,并不是越复杂越好,在牺牲一部分精确度的代价下,模型是越简单越好

Center and scale可以选项,表示对数据进行一个标准化

区间的意思是,p的值有95%的概率落在区间内

6.如果函数是线性的,那么需要关注的是SSE和R-SQUARE(R^2)

如果函数是非线性的,需要关注的只有SSE

如何理解线性(如何区分函数是线性还是非线性)

这里的线性指的是对参数的线性,

例如y(x)=ax+bx^2,他是一个线性函数,a和b是我们要预测的参数且都为一次

再如y(x)=acx+bx^2,此时就不再满足线性,y(x)=e^(ax+bx),同样也是线性函数

7.生成相应代码

在文件选项中Generate Code,可以用来生成代码

可以在代码对应的地方进行修改(例如修改图注

8.在命令行窗口生成拟合曲线

在代码窗口修改完图注名称之后,运行,即可生成相应单独图像

9.保存图像

直接在窗口复制图床即可,在ctrl+v到word中

10.一些解释

多项式的拟合公式为:

二.可以对未来趋势进行预测 predict

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值