打印

PID控制算法,使用的数值一般是模拟值还是数字值?

[复制链接]
1040|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Nivans|  楼主 | 2016-7-16 19:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问PID算法中采样的值需要转成模拟值吗?比如说我从AD读到的是512,根据基准电压换算过来是2.5V。那么我传进PID控制算法的时候,用的是数字值512还是电压值2.5。

相关帖子

沙发
静海惊天| | 2016-7-17 10:47 | 只看该作者
最好转换,这样AD 和DA 能对应上,如果不转换,那么你AD和DA的码值代表的实际值相同也可以,其实无所谓,关键是在固定的数值模式下,调整好参数。

使用特权

评论回复
板凳
supertankhzt| | 2016-7-20 10:35 | 只看该作者
什么叫模拟值?能保存在RAM里的都是阶级式的数字值,你转成电压值也不会变成模拟量,只是便于人类理解,仅用于参与运算的话,最好是用原始的值,转换过的会一定程度丢失精度,比如不能整除的情况。

使用特权

评论回复
地板
cuya| | 2016-7-20 12:06 | 只看该作者
这其实是 定点 vs 浮点。如果你的 cpu 速度较快或者pid 周期较长, 对于你来说, "模拟值"较好。

定点运算就是用整数运算, 也就是你的 512。优点是高效, 缺点是不直观, 还容易溢出。
浮点运算就是使用 float, double, 也就是你的 2.5V, 优点是直观,不易出错, 不会溢出。缺点是运行效率较低。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

117

主题

692

帖子

5

粉丝