请注意,我不是要代码,而是要洞察力,可能来自已经遇到类似问题的人。
我正在维护在嵌入式系统中实时运行的代码。出于安全原因,必须执行新的检查。
该检查基于某个变量的积分值。积分必须跨越最后的“T_s”秒,即在每个新循环中,我必须删除变量在 T_s 秒前的值并添加当前值。
天真的方法是将最后的 T_s*frequency 浮点值存储在一个数组中。
以 62.5Hz 运行,这会迅速浪费大量宝贵且有限的内存。
有没有已知的方法,以明显的准确性为代价,显着减少这种检查的内存占用?
该值是来自真实系统的测量值,它不是由函数生成的。
我考虑过存储 N 个平均值,每个 M 个点,然后对 N 个平均值进行积分,这会将内存需求减少到 N+M 个数字,可以显着小于 T_s*frequency,但我想知道:
如果已经对此进行了研究并找到了“最佳”点(例如,作为 M 的函数)。我搜索了,但显然我的 google-fu 坏了,因为搜索包括“数值积分”在内的任何内容都不会导致我寻找的内容。
如果有更好的方法
我用 C 标记了这篇文章,因为这是该项目的官方语言,不幸的是,任何不适用于 ANSI-C 的解决方案对我来说都不可行。