ODrive0.5.5源码分析(8) 温度的计算

作者:沉尸([email protected])

前言:

Odrive中检测的温度有Fet温度和电机温度,它们的计算从源代码中直接看,可能咋一看会有点奇怪!

1)需要搞清楚其计算,实际上只需要参考:

文档:“docs\thermistors.rst”

以及python代码:“tools\odrive\utils.py”

2)源代码的计算方式,仅支持NTC(不支持PTC)这样的温度传感器

3)源代码中通过多项式进行计算获取温度

上面的计算流程都很清晰,但是看到“horner_poly_eval”这个函数的计算过程,估计还是会有点迷惑。

4)我们来看系数是怎么计算获得的

上面的fet温度计算的系数写入了代码,而motor温度的系数却可以通过OdriveTool来设置

        

我们来看python代码

 

现在看“calculate_thermistor_coeffs”: 

 

上面图中,红色注释已经将逻辑描述了出来,最关键的是调用了函数“polyfit”和“poly1d”

 百度这两个函数的用法,然后就理解了源代码中:通过多项式可以计算温度的问题了!

因为polyfit函数是进行曲线拟合的一个函数,至于它拟合的原理,那就是一个数学问题了

因为本文只关注公式的来历,暂不深究有关polyfit的数学理论。

猜你喜欢

转载自blog.csdn.net/danger/article/details/128626793