标题:
PID运算的输出结果与执行器PWM占空比之间的关联
[打印本页]
作者:
UpByUp
时间:
2018-10-20 00:01
标题:
PID运算的输出结果与执行器PWM占空比之间的关联
本帖最后由 UpByUp 于 2018-10-20 00:04 编辑
PID的运算结果怎样和PWM占空比取得换算,例如用PWM来控温或转速等目标时,
通过PID公式得知的 PID计算函数结果 PID_Calc();,以及PWM输出占空比函数 PWM(Duty);,
其中占空比函数的参数为占空比 Duty, PID的输出结果如何转换为占空比 Duty ?
是直接将PID的输出结果赋值给 Duty ?
作者:
zxjfm
时间:
2018-10-20 08:38
一般PWM的输出参数为整数,他和PID输出值之间会有一个线性关系,也就是缺少一个K 值,还有一种就是这个PWM的控制盒PID的输出值是反的需要用0xFF-输出值
作者:
le51
时间:
2018-10-20 19:58
pid的结果和占空比是两个不同的量值,这之间你需要制定一个线性换算关系,找出你想要的K值。当pid输出某值时,duty换算为某值。以stm32单片机为例:
pid=PID_Calc();
duty =k*pid;
TIM_SetCompare(TIM3,duty);
作者:
UpByUp
时间:
2018-10-22 02:00
le51 发表于 2018-10-20 19:58
pid的结果和占空比是两个不同的量值,这之间你需要制定一个线性换算关系,找出你想要的K值。当pid输出某值 ...
请问一下,k值的选取依据是什么?
需要先已知PID的输出结果范围吗?这个输出范围怎么好确定。
作者:
cjm82
时间:
2018-10-23 10:18
K值取值与实际元件参数和实际应用环境有关,(即PID算法的三个常数系数).要想在整个控制过程中通过计算来实现与PWM占空比精确匹配,需要很大的计算量和大量的调试.这也是PID算法的难点所在.
简单的做法可以尝试将整个控制分成若干小区间,在某个小区间,被控对象的变化基本上PWM占空比与呈现用一个比较简单的函数能够表达的关系.
比如要想某个物体到200度,我可以从室温到150度直接100%功率加热,然后从150度到180度,设置一个K值用来计算PWM的占空比,180度到200度设置另外一个K值.调试的时候只要更改区间长度和与之对应的K值就行.
当然这样做的缺点就是灵活性比较差.
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1