编者:沉尸 ([email protected])
前言:
本文章探索st电机库自动生成的PID参数的由来,采用的控制板为野火407电机板+BLDC带Hall的电机。
在“Mcboot()”函数中初始化变量“PIDSpeedHandle_M1”
将“pPIDSpeed[M1]”指针值(实际指向“PIDSpeedHandle_M1”)作为速度环PID整定的相关参数
我们来看代码中速度环整定的调用层次:
所以,是在“中等频率任务”中进行速度整定,中等频率值怎么设定的呢?
我们看看PI控制的代码
控制很简单,但是有这个限制边界的参数在里面
我们来看“PIDSpeedHandle_M1”是怎么定义的
积分环节的数值限制
上面设定值“IQMAX * SP_KIDIV”是因为在程序中计算出的积分项值,它没有除“SP_KIDIV”
最后总输出的限制
那么IQMAX定义成了什么呢?
为什么定义成这个值?
我们看到“pmsm_motor_parameters.h”文件中同样还有一个定义值也是“18746”
下面是我在代码中的注释,截图下来:
速度环PID整定程序中,我还有一点疑问(也许应该被称作改进建议?),记录如下: