Situation
Ich arbeite an einem Problem, bei dem ich Sensordaten verwende, um einen Maschinenausfall vorherzusagen, bevor der Fehler auftritt, und ich benötige einige Ratschläge zu den zu untersuchenden Methoden.
Insbesondere möchte ich Hinweise auf einen bevorstehenden Fehler identifizieren, bevor der Fehler tatsächlich auftritt. Im Idealfall ist dies mit einer ausreichenden Vorlaufzeit möglich, damit wir alles beheben können, was passiert ist, bevor es zu einem Ausfall kommt.
Problem
Die konzeptionelle Hürde, an der ich mich befinde, besteht darin, dass ich weiß, dass ich verschiedene Klassifizierungsmodelle (logistische Regression, Entscheidungsbaum, nächster Nachbar usw.) an die Daten anpassen kann, um die Ausfallwahrscheinlichkeit bei bestimmten Parametern zu diesem Zeitpunkt zu ermitteln. Ich kann jedoch nicht herausfinden, wie ich den Hinweis auf einen bevorstehenden Fehler mit genügend Zeit identifizieren kann, um tatsächlich etwas dagegen zu unternehmen.
Mögliche Ansätze
Ich bin mit der Überlebensanalyse vertraut, aber da ich keine Daten von mehreren Maschinen habe und es nicht so ist, als ob die Maschine nach einer Reparatur wieder zu 100% ist, denke ich nicht, dass dies unbedingt gut passt.
Ich habe auch darüber nachgedacht, mir die Zeit zu nehmen, in der ein Fehler auftritt, ihn um eine Stunde zurückzuschieben und zu sehen, wie genau ich diesen Punkt vorhersagen kann. Wenn ich in der Lage bin, verschieben Sie das Ziel um eine weitere Stunde zurück und sehen Sie, wie viel Vorlaufzeit ich sicher vorhersagen kann. Aber ich bin mir nicht sicher, ob es angebracht ist, dies zu tun.
Verfügbare Daten
Die Daten, die ich habe, werden über einen Zeitraum von 1 Jahr von einem Computer aufgezeichnet. Es gibt ungefähr 60 Sensoren, die alle zwei Minuten aufgezeichnet werden. Diese Sensoren messen Variablen wie die Temperaturen verschiedener Komponenten, aus denen die Maschine besteht (einschließlich Thermostateinstellung im Verhältnis zur tatsächlichen Temperatur), die Geschwindigkeit, mit der die Maschine läuft, den Dampfdruck in der gesamten Maschine, die Lüfterdrehzahl, unabhängig davon, ob die Maschine läuft oder nicht , usw.
Zusätzlich zu den Sensorwerten habe ich den Datensatz um den Grund erweitert, warum die Maschine nicht läuft (z. B. Schichtwechsel, vorbeugende Wartung, Ausfall). Ich habe am Ende dieses Beitrags ein komprimiertes Beispiel hinzugefügt, wie die Daten aussehen. Ich habe das Beispiel geändert, um einen Teil der im gesamten Datensatz erfassten Vielfalt zu erfassen. In der Realität ist die Maschine, wenn sie nicht mehr läuft, je nach Grund zwischen 2 Minuten und 2 Tagen außer Betrieb. Außerdem ändern sich die Variablen nicht unbedingt so schnell wie im folgenden Beispiel, aber ich wollte etwas Abwechslung bieten.
+-----------------+----------+-------------+------------+------------+-------+-------+-----+--------------------------+------------+
| Datetime | CircFan | CircFanAct | EntrySpeed | ExhaustFan | Speed | Temp1 | Run | Reason | TimeBtwRun |
+-----------------+----------+-------------+------------+------------+-------+-------+-----+--------------------------+------------+
| 2009-10-19 0:00 | 100 | 600 | 461 | 40 | 45 | 1126 | 1 | | NA |
| 2009-10-19 0:02 | 100 | 600 | 0 | 39 | 45 | 1120 | 0 | shift change | 0:00 |
| 2009-10-19 0:04 | 100 | 600 | 0 | 39 | 45 | 1118 | 0 | shift change | 0:02 |
| 2009-10-19 0:06 | 95 | 600 | 461 | 39 | 45 | 1119 | 1 | | 0:00 |
| 2009-10-19 0:08 | 95 | 599 | 461 | 40 | 45 | 1120 | 1 | | 0:02 |
| 2009-10-19 0:10 | 95 | 598 | 461 | 40 | 45 | 1120 | 1 | | 0:04 |
| 2009-10-19 0:12 | 95 | 597 | 461 | 40 | 45 | 1130 | 1 | | 0:06 |
| 2009-10-19 0:14 | 100 | 597 | 0 | 40 | 45 | 699 | 0 | failure | 0:00 |
| 2009-10-19 0:16 | 100 | 597 | 0 | 40 | 45 | 659 | 0 | failure | 0:02 |
| 2009-10-19 0:18 | 100 | 597 | 0 | 40 | 45 | 640 | 0 | failure | 0:04 |
| 2009-10-19 0:20 | 100 | 600 | 461 | 40 | 45 | 1145 | 1 | | 0:00 |
| 2009-10-19 0:22 | 100 | 600 | 461 | 40 | 45 | 1144 | 1 | | 0:02 |
| 2009-10-19 0:24 | 80 | 600 | 461 | 40 | 45 | 1138 | 1 | | 0:04 |
| 2009-10-19 0:26 | 80 | 600 | 461 | 41 | 45 | 1133 | 1 | | 0:06 |
| 2009-10-19 0:28 | 80 | 600 | 461 | 41 | 45 | 1134 | 1 | | 0:08 |
| 2009-10-19 0:30 | 100 | 600 | 461 | 41 | 45 | 1134 | 1 | | 0:10 |
| 2009-10-19 0:31 | 100 | 600 | 461 | 41 | 45 | 1133 | 1 | | 0:11 |
| 2009-10-19 0:34 | 100 | 600 | 461 | 40 | 45 | 1140 | 1 | | 0:13 |
| 2009-10-19 0:36 | 100 | 600 | 100 | 40 | 45 | 788 | 0 | preventative maintenance | 0:00 |
| 2009-10-19 0:38 | 100 | 600 | 100 | 40 | 45 | 769 | 0 | preventative maintenance | 0:02 |
+-----------------+----------+-------------+------------+------------+-------+-------+-----+--------------------------+------------+