对时间序列电机数据进行分类的最佳算法

机器算法验证 时间序列
2022-03-21 15:32:45

我正在做一个机器控制项目。我们可以在运行过程中测量电机的电流。成功执行操作的两个电机的示例数据如下。红色迹线显示来自一个电机的电流,蓝色迹线显示来自另一个电机的电流。我想尝试提出一种算法来识别机器行为问题。问题可能是电机电流过高,电机电流接近于零,运行结束时电流增加,时间序列比正常时间短,一般情况下看起来不像下面的典型操作。任何人都可以提出一个好的算法来实现这一点吗?我唯一熟悉的是神经网络。我在电机电流处放置了一个实际数据的 Excel 文件

电机电流 - 良好运行 电机电流 - 运行结束时卡住

3个回答

我的方法是为数据形成一个 ARIMA 模型,然后采用各种“变化点检测方案”,以便对意外的“事物”提供早期预警。这些计划将包括

  1. 检测脉冲/电平偏移/本地时间趋势的存在/开始,即误差平均值随时间的变化
  2. 检测参数随时间变化的存在/开始
  3. 检测残差方差随时间变化的存在/开始

如果您希望实际发布您的系列之一,我们实际上可以向您展示这种分析,它可以“推出”事情正在发生变化或已经发生重大变化的想法。

我建议您使用这个处理时间序列分类的链接:http ://www.r-bloggers.com/time-series-analysis-and-mining-with-r/ 。

隐马尔可夫模型

对时间序列数据建模的最佳方法之一是隐马尔可夫模型 (HMM)。您可以为已知的非问题状态制作单个模型,为每个已知问题状态制作单独的模型,或者,如果您有足够的数据,则可以制作所有已知问题状态的单个复合模型。一个很好的开源库是 Matlab 的 Hidden Markov Model Toolbox。

http://www.cs.ubc.ca/~murphyk/Software/HMM/hmm.html

卡尔曼滤波器

另一种涉及更多的方法是卡尔曼滤波器。如果您的数据有很多噪音,这种方法特别有用。一个好的开源库是 Matlab 的 Kalman Filter Toolbox。

http://www.cs.ubc.ca/~murphyk/Software/Kalman/kalman.html

贝叶斯模型

这两种方法都被认为是贝叶斯模型。一个好的开源库是用于 Matlab 的 Bayes Net Toolbox。

http://code.google.com/p/bnt

我希望这对你有用。