我正在从事机器控制项目。我们可以在运行期间测量电动机的电流。下面是来自成功执行操作的两个电机的样本数据。红色迹线显示来自一个电动机的电流,蓝色迹线显示来自另一电动机的电流。我想尝试提出一种算法来识别机器行为问题。问题可能是电动机电流过高,电动机电流接近于零,操作结束时电流增加,时间序列比正常时间短,一般而言,以下情况都不像典型操作。谁能建议一个好的算法来实现这一目标?我唯一熟悉的是神经网络。我已将实际数据的Excel文件放入电机电流下
我正在从事机器控制项目。我们可以在运行期间测量电动机的电流。下面是来自成功执行操作的两个电机的样本数据。红色迹线显示来自一个电动机的电流,蓝色迹线显示来自另一电动机的电流。我想尝试提出一种算法来识别机器行为问题。问题可能是电动机电流过高,电动机电流接近于零,操作结束时电流增加,时间序列比正常时间短,一般而言,以下情况都不像典型操作。谁能建议一个好的算法来实现这一目标?我唯一熟悉的是神经网络。我已将实际数据的Excel文件放入电机电流下
Answers:
我建议您使用此链接处理时间序列分类:http : //www.r-bloggers.com/time-series-analysis-and-mining-with-r/。
隐马尔可夫模型
对时间序列数据建模的最佳方法之一是隐马尔可夫模型(HMM)。您可以为您的已知非问题状态创建单个模型,也可以为每个已知问题状态创建单独的模型,或者,如果您有足够的数据,则可以为所有已知问题状态创建一个复合模型。一个很好的开源库是Matlab的隐马尔可夫模型工具箱。
http://www.cs.ubc.ca/~murphyk/Software/HMM/hmm.html
卡尔曼滤波
涉及更多的另一种方法是卡尔曼滤波器。如果您的数据有很多杂音,则此方法特别有用。一个很好的开源库是Matlab的Kalman过滤器工具箱。
http://www.cs.ubc.ca/~murphyk/Software/Kalman/kalman.html
贝叶斯模型
这两种方法都被认为是贝叶斯模型。一个很好的开源库是用于Matlab的Bayes Net Toolbox。
希望这对您有用。