ST电机库v5.4.4源代码分析(6): PID以及相关参数

编者:沉尸 ([email protected])

前言:

         本文章探索st电机库自动生成的PID参数的由来,采用的控制板为野火407电机板+BLDC带Hall的电机。

在“Mcboot()”函数中初始化变量“PIDSpeedHandle_M1”

ST电机库v5.4.4源代码分析(6): PID以及相关参数_第1张图片

 将“pPIDSpeed[M1]”指针值(实际指向“PIDSpeedHandle_M1”)作为速度环PID整定的相关参数

ST电机库v5.4.4源代码分析(6): PID以及相关参数_第2张图片

ST电机库v5.4.4源代码分析(6): PID以及相关参数_第3张图片 我们来看代码中速度环整定的调用层次:

 

 所以,是在“中等频率任务”中进行速度整定,中等频率值怎么设定的呢?

ST电机库v5.4.4源代码分析(6): PID以及相关参数_第4张图片

 ST电机库v5.4.4源代码分析(6): PID以及相关参数_第5张图片

 我们看看PI控制的代码

ST电机库v5.4.4源代码分析(6): PID以及相关参数_第6张图片

 ST电机库v5.4.4源代码分析(6): PID以及相关参数_第7张图片

控制很简单,但是有这个限制边界的参数在里面

我们来看“PIDSpeedHandle_M1”是怎么定义的

ST电机库v5.4.4源代码分析(6): PID以及相关参数_第8张图片

 积分环节的数值限制

上面设定值“IQMAX * SP_KIDIV”是因为在程序中计算出的积分项值,它没有除“SP_KIDIV”

最后总输出的限制

 那么IQMAX定义成了什么呢?

ST电机库v5.4.4源代码分析(6): PID以及相关参数_第9张图片

为什么定义成这个值?

我们看到“pmsm_motor_parameters.h”文件中同样还有一个定义值也是“18746”

ST电机库v5.4.4源代码分析(6): PID以及相关参数_第10张图片

 下面是我在代码中的注释,截图下来:

ST电机库v5.4.4源代码分析(6): PID以及相关参数_第11张图片

 速度环PID整定程序中,我还有一点疑问(也许应该被称作改进建议?),记录如下:

ST电机库v5.4.4源代码分析(6): PID以及相关参数_第12张图片

你可能感兴趣的:(ST电机库,机器人,开源软件,stm32)