您好,您讲的很详细,我最后再问一下哈。假设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输出。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 鼠标右键,撤销删除 复制 移动,要怎样删除
- ¥15 使用MATLAB进行余弦相似度计算加速
- ¥15 服务器安装php5.6版本
- ¥15 我想用51单片机和数码管做一个从0开始的计数表 我写了一串代码 但是放到单片机里面数码管只闪烁一下然后熄灭
- ¥20 系统工程中,状态空间模型中状态方程的应用。请猛男来完整讲一下下面所有问题
- ¥15 我想在WPF的Model Code中获取ViewModel Code中的一个参数
- ¥15 arcgis处理土地利用道路 建筑 林地分类
- ¥20 使用visual studio 工具用C++语音,调用openslsx库读取excel文件的sheet问题
- ¥100 寻会做云闪付tn转h5支付链接的技术
- ¥15 DockerSwarm跨节点无法访问问题