找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8366|回复: 4
收起左侧

PID运算的输出结果与执行器PWM占空比之间的关联

[复制链接]
ID:141654 发表于 2018-10-20 00:01 | 显示全部楼层 |阅读模式
本帖最后由 UpByUp 于 2018-10-20 00:04 编辑

PID的运算结果怎样和PWM占空比取得换算,例如用PWM来控温或转速等目标时,
通过PID公式得知的 PID计算函数结果  PID_Calc();,以及PWM输出占空比函数 PWM(Duty);,

其中占空比函数的参数为占空比 Duty, PID的输出结果如何转换为占空比 Duty ?


是直接将PID的输出结果赋值给 Duty ?
回复

使用道具 举报

ID:412575 发表于 2018-10-20 08:38 | 显示全部楼层
一般PWM的输出参数为整数,他和PID输出值之间会有一个线性关系,也就是缺少一个K 值,还有一种就是这个PWM的控制盒PID的输出值是反的需要用0xFF-输出值

评分

参与人数 1黑币 +40 收起 理由
admin + 40 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:157238 发表于 2018-10-20 19:58 | 显示全部楼层
pid的结果和占空比是两个不同的量值,这之间你需要制定一个线性换算关系,找出你想要的K值。当pid输出某值时,duty换算为某值。以stm32单片机为例:
pid=PID_Calc();
duty =k*pid;
TIM_SetCompare(TIM3,duty);

评分

参与人数 1黑币 +40 收起 理由
admin + 40 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:141654 发表于 2018-10-22 02:00 | 显示全部楼层
le51 发表于 2018-10-20 19:58
pid的结果和占空比是两个不同的量值,这之间你需要制定一个线性换算关系,找出你想要的K值。当pid输出某值 ...

请问一下,k值的选取依据是什么?
需要先已知PID的输出结果范围吗?这个输出范围怎么好确定。
回复

使用道具 举报

ID:388197 发表于 2018-10-23 10:18 | 显示全部楼层
K值取值与实际元件参数和实际应用环境有关,(即PID算法的三个常数系数).要想在整个控制过程中通过计算来实现与PWM占空比精确匹配,需要很大的计算量和大量的调试.这也是PID算法的难点所在.
简单的做法可以尝试将整个控制分成若干小区间,在某个小区间,被控对象的变化基本上PWM占空比与呈现用一个比较简单的函数能够表达的关系.
比如要想某个物体到200度,我可以从室温到150度直接100%功率加热,然后从150度到180度,设置一个K值用来计算PWM的占空比,180度到200度设置另外一个K值.调试的时候只要更改区间长度和与之对应的K值就行.
当然这样做的缺点就是灵活性比较差.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表