您好,您讲的很详细,我最后再问一下哈。假设outputMin为-1000,outputMax为1000。那么比例系数Kp就等于100.0 / (1000 - (-1000)) = 0.05吧
假设PID算法输出值为50时,根据公式可得。pwm_output = (50 - (-1000)) * 0.05 = 52.5。这个值就是pwm_duyt__cycle需要调整的值。其变化率在0-100之间
outputMax和outputMin这个pid输出的最大最小值-1000到1000的范围。需要根据实际来调整吗,如果写成-800到800呢,有没有比较准确可以确定这个值的方法
pid输出值转换为pwm
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注该回复引自免费微信小程序-皆我百晓生:
您的计算是正确的,比例系数Kp的计算公式为100.0 / (outputMax - outputMin)。在您的例子中,outputMin为-1000,outputMax为1000,所以Kp = 100.0 / (1000 - (-1000)) = 0.05。
对于PID算法输出值为50的情况,根据公式pwm_output = (PID输出值 - outputMin) * Kp,可以得到pwm_output = (50 - (-1000)) * 0.05 = 52.5。这个值就是需要调整的pwm_duty_cycle的值。
至于outputMax和outputMin的选择,可以根据实际需求进行调整。如果您将其设置为-800到800,那么Kp的计算公式将变为100.0 / (800 - (-800)) = 0.0625。这意味着比例系数Kp会变大,从而影响到pwm_output的计算结果。
要确定outputMax和outputMin的准确值,可以考虑以下几点:
- 确保outputMax和outputMin的范围能够覆盖您实际应用中可能出现的PID输出值。
- 考虑您的PWM输出的范围和精度,确保pwm_output在合理范围内。
- 根据实际测试和调试,观察PID输出值和PWM输出的关系,进行适当的调整。
总之,选择outputMax和outputMin的值需要根据具体情况进行调整和测试,以确保PID算法的输出能够正确映射到PWM输出。
解决 无用评论 打赏 举报