打印
[C语言]

电机程序问题

[复制链接]
1780|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cklgf|  楼主 | 2013-8-26 10:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在一个电机控制程序中看到这样一句语句,不太理解语句的意思,speed_filter += ((((speed - speed_filter) <<16) >> filter_K) >>16);
其中,filter_K仅进行定义,但没有赋值,其值为0。有同事说这句话起滤波作用,但我不明白其中原理,请大侠指教~~~

相关帖子

沙发
huangxz| | 2013-8-26 13:32 | 只看该作者
这个要看原理,看作者的模型是怎么创建的

使用特权

评论回复
板凳
cklgf|  楼主 | 2013-8-31 09:59 | 只看该作者
huangxz 发表于 2013-8-26 13:32
这个要看原理,看作者的模型是怎么创建的

你说的模型是指什么?
程序里面多个地方出现 类似speed_filter += ((((speed - speed_filter) <<16) >> filter_K) >>16);这样左移后再右移的滤波,但对于这个滤波,我觉得,如果filter_K为零的话,第一次进入,则speed_filter = speed,第二次进入,通过想减后再移位,得出的结果speed_filter 不也一样是等于speed;同理后面的进入。因此我觉得这个语句起不到滤波作用

使用特权

评论回复
地板
acgean| | 2013-8-31 10:22 | 只看该作者
是用来滤波, 但 filter_K =0 就没有滤波作用.

是的, 其实就是为了调试方便, 使用了这个参数. 最终置0取消了滤波算法.

使用特权

评论回复
5
cklgf|  楼主 | 2013-9-2 13:36 | 只看该作者
acgean 发表于 2013-8-31 10:22
是用来滤波, 但 filter_K =0 就没有滤波作用.

是的, 其实就是为了调试方便, 使用了这个参数. 最终置0取消 ...

那我想问问,这是采用什么的原理来进行滤波?filter_K的取值对结果有什么影响?

使用特权

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

本版积分规则

86

主题

137

帖子

1

粉丝