2

我即将制作一个 C# 程序,该程序将记录振动并对其进行分析,以找出在某个频率范围内是否有任何振幅增加的趋势。这显然将包括保存和处理大量数据,并且由于我是这种编程的新手,我不知道应该如何完成,并且非常感谢一些提示!我将有几个传感器,所以如果程序可以自动为每个传感器创建一个新数据库。

数据显然是某种向量,在 C# 中可能意味着列表(我将使用采样频率为 60 kHz 的 DAQ 单元收集数据)。要找到频率变化的趋势,当然希望在保存新读数之前读取所有旧数据并与新读数进行比较,但我知道这很快就不可能了。有没有人知道如何实际做到这一点?

提前谢谢了!

阿克塞尔

4

2 回答 2

2

如果这是大型机器,我建议查看 OPC 或 PI。否则你可能只想选择一个数据库:MySQL?SQL 快递?还有什么……?

想想你真正需要多少数据。您是保持每秒 60,000 个测量点,还是对这些读数进行平均并每秒进行一次输入?或者您是否跟踪时间间隔内的最小值/最大值?您是否运行每周/每月/每日批处理清理旧读数?只是一些思考的起点......

我正盯着添加另一条评论,但它太长了,所以这里是:

我知道在 reddit/r/programming(我喜欢阅读)上经常提到 MariaDB。它似乎是一种新的“性感”(我的意思是很多人都在谈论它)技术。这是一个有趣的搜索,显示了许多大公司从 MySQL 转向 MariaDB。所以这将是一个值得考虑的问题。 http://www.reddit.com/r/programming/search?q=mariadb Reddit/r/programming 是一个很好的网站,可以不时查看一下以获取有关技术的想法。

您可能可以使用这些数据库中的任何一个,您总是可以从一个开始,然后再转到其他数据库。就像我说的那样,如果事情开始变得非常繁重,那么您可能会想要研究 OPC 或 Pi。谷歌“Data Historian”或 OPC 或 Pi :) 但是现在,从这些数据库之一开始并开始编程。使用谷歌,尝试查找有关数据历史学家、振动分析...等的论坛。

于 2013-11-09T17:17:22.070 回答
1

根据您的描述,在我看来,您需要更多地考虑解决方案的布局。在您牢牢掌握算法本身之前,您不能考虑存储。

我将尝试为您提供一些有关您可以考虑的存储策略的指南:

  1. 如果您在内存中进行所有计算并且只需要 DB 用于持久性,您可以简单地将它们存储为 BLOB。
  2. 如果向量随时间变化,或者如果计算足够简单,您可以将向量以保留其结构的方式存储在 DB 中,并使用存储过程或支持的脚本语言在 DB 中执行计算。这样您就不需要在数据库和应用程序之间来回拉取和放置数据。当然,这有点困难,因为存储过程编写或维护都不是很有趣。
  3. 你真的需要保留向量本身吗?如果您的算法最终消化它们并处理结果 - 这就是您实际需要存储的全部内容。
于 2013-11-11T08:26:00.993 回答