以下内容适用于c#.net 4.我正在寻找一个c#代码。
(图1)我有不同的值,例如700,712,703和720.dt1例如是30ms,dt2可能是9ms。重要的是dt1到dtn不是恒定的。
(图2)时间轴
(图3)这就是我想要的,恒定时间间隔tc的值约为17ms。 x1到xn是变量包含的值,即:
x(t(x1)) = x1
x(t(x2)) = x2
...
x(t(xn)) = xn
如何实时确定x1到xn?所以让我们说当前时间是dt1 + dt2 + dt3内的某个地方。我不知道什么时候dt3会完成(即使之前的dt介于9ms和30ms之间)并且会有什么价值。我怎么能猜出将先前的变化考虑在内的x4的值?
如何平滑(图1)它们的值 - 例如 - 700 - 708 - 712 - 720,即消除抖动?
答案 0 :(得分:0)
要对此采取措施(以下措辞措辞不当):
- 读取当前X(让我们称之为Xt)
- 使用Xt
执行您需要的任何操作- 存储Xt
- 阅读新X(我们称之为X2)
如果abs(X1-X2)小于某个公差,则丢弃X2并使其= X1
如果X2> X1,丢弃X2的值并使其= X1 + K
如果X2< X1,丢弃X2的值并使其= X1-K
设置Xt = X2
- 转到2
醇>
只是一个非常粗略的“平滑”概念,你忽略了价值,只关心x的“运动”的方向。
答案 1 :(得分:0)
我认为有两个解决方案,因为我理解你的问题