增加SOC优化函数过程中,出现程序跑飞现象
2024-01-08 08:02:58
在源代码基础上,增加SOC优化函数,之前采用的安时积分进行SOC数值的计算,基于两个方面提出SOC优化函数。
1.安时积分:采用的实在大电流情况下,电流采集不准确,具有一定的误差的情况下,SOC能够进行一定的校准。
2.SOC需要手动校准问题,在出厂的时候,会对soc进行手动校准一次,用户在使用产品之后,就无法在对SOC进行校准
基于以上两方面的原因,提出SOC优化函数。在之前的计算SOC函数中,调用优化函数。
但是,优化函数一旦调用,控制板就会出现死机,通讯异常等问题。接下来就针对这个函数进行调试。在IAR调试过程中,发现跑到某个位置,数组变量不能赋值,只要给数组变量赋值,程序就跑飞,数组P_x[9]和P_x_half[9]不能赋值。
分析原因:在SOC优化函数中,定义了大量float型的数组,同时这些数组又进行了大量的递归调用,就造成了栈溢出的问题。
解决方法:只需要把函数中用到的变量转变成全局变量,这样就是造成栈溢出。由于函数局部变量存在在栈区,造成数据溢出。
文章来源:https://blog.csdn.net/weixin_48867130/article/details/135438464
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!