找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8753|回复: 11
打印 上一主题 下一主题
收起左侧

PID算法与pwm占空比对应问题

  [复制链接]
跳转到指定楼层
楼主
ID:296794 发表于 2018-8-21 15:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
通过PID算法算出来的结果怎样与pwm的占空比相对应?求解答

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:98526 发表于 2018-8-21 16:21 | 只看该作者
线性对应
回复

使用道具 举报

板凳
ID:89515 发表于 2018-8-21 16:57 | 只看该作者
这个是不需要对应的,只是算出的PID值做极限设定就可以。比如你的PWM值最大是200;那么你的PID值如果大于等于200就是200.如果PID值小于0可以让它等于0;这样PID值最终被限定在0到200间变化。当然你肯定不希望PID值常常超出界限,这样不好控制,所以要确定一下你的PID值达到了哪一个量级,然后PWM也能达到这个量级就更好。

评分

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

查看全部评分

回复

使用道具 举报

地板
ID:388614 发表于 2018-8-21 17:04 | 只看该作者
PID输出范围限定为PWM的范围。
回复

使用道具 举报

5#
ID:346116 发表于 2018-10-1 00:15 | 只看该作者
很多刚开始接触pid的人,都不知道如何利用pid计算后的结果,我见过的教材也没有说,网上的资料也很少详细的介绍。其实pid并没有规定输出域,换句话说pid是个没有单位的东西,既然如此你想怎么用就怎么用,所以它才能应用在不同的领域,控制速度、控制水位、控制温度、控制角度等等。二楼说得已经很好了。我补充一下,现在很多单片机都带有pwm模块,假如pwm模块现在设置的频率是1000Hz,其控制寄存器写入0xffff就是1000Hz,写入0就是0Hz。你把计算出来的pid结果写入pwm模块的控制寄存器就可以了。当然具体的操作还得做些限值处理,计算结果不要超过控制寄存器的值。对于没有pwm模块的单片机,那只能软件模拟了,这个也不难。总体来说基础型的pid是很简单的,简单得不得了,pid控制的难点就在参数的整定。

评分

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

查看全部评分

回复

使用道具 举报

6#
ID:416383 发表于 2018-10-27 17:38 | 只看该作者
问一下PID是什么意思
回复

使用道具 举报

7#
ID:456588 发表于 2019-5-29 21:48 | 只看该作者
51heidzi 发表于 2018-10-27 17:38
问一下PID是什么意思

比例积分微分
回复

使用道具 举报

8#
ID:613834 发表于 2020-9-5 16:16 | 只看该作者
mengzhixinheng 发表于 2018-8-21 16:57
这个是不需要对应的,只是算出的PID值做极限设定就可以。比如你的PWM值最大是200;那么你的PID值如果大于等 ...

您好,请问误差=实际值-设定值,实际值是转速可以测得,那么设定值怎么给?是通过占空比来算出来的吗?
回复

使用道具 举报

9#
ID:89515 发表于 2020-9-5 22:11 来自手机 | 只看该作者
gaoyan 发表于 2020-9-5 16:16
您好,请问误差=实际值-设定值,实际值是转速可以测得,那么设定值怎么给?是通过占空比来算出来的吗?

把PID算法看做黑匣子。你给什么他就出什么。如果你要控制转速,当然要给转速。要控制温度就给温度!你得给啊,你不给,它怎么晓得你要干嘛。要用什么方法控制与算法没什么关系。所以你要设定想要的转速与占空比也没什么关系,占空比变化是你关联算法后算法自动控制的。
回复

使用道具 举报

10#
ID:478514 发表于 2020-9-7 08:03 | 只看该作者

PID输出时范围限定为PWM的范围。
回复

使用道具 举报

11#
ID:816586 发表于 2020-9-7 08:43 | 只看该作者
线性对应
回复

使用道具 举报

12#
ID:833190 发表于 2020-10-27 08:58 | 只看该作者
gaoyan 发表于 2020-9-5 16:16
您好,请问误差=实际值-设定值,实际值是转速可以测得,那么设定值怎么给?是通过占空比来算出来的吗?

负反馈的误差一般是设定值(给定值)减去实际值(反馈值),实际值可以通过传感器测量得到,给定值是你想让他输出多少,比如你说的转速,你想让转速输出多少,给定值就设置多少,然后误差通过PID计算,得到结果作为PWM输入值。最好是PID输出范围控制在PWM输入范围(这个范围与PWM周期以及PWM的具体设置有关)之内。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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