Mô hình bảo trì dự đoán để xác định dấu hiệu thất bại trước khi nó xảy ra


7

Tình hình

Tôi đang giải quyết một vấn đề trong đó tôi đang sử dụng dữ liệu cảm biến để dự đoán lỗi máy trước khi xảy ra lỗi và tôi cần một số lời khuyên về phương pháp nào cần khám phá.

Cụ thể, tôi muốn xác định các dấu hiệu của sự thất bại sắp xảy ra trước khi sự thất bại thực sự xảy ra. Lý tưởng nhất là sẽ có đủ thời gian để chúng ta có thể khắc phục bất cứ điều gì xảy ra trước khi nó gây ra thất bại.

Vấn đề

Khối đường khái niệm mà tôi tham gia là tôi biết rằng tôi có thể phù hợp với các mô hình phân loại khác nhau (hồi quy logistic, cây quyết định, hàng xóm gần nhất, v.v.) để xác định xác suất thất bại cho các tham số cụ thể tại thời điểm đó. Tuy nhiên, tôi không thể tìm ra cách xác định dấu hiệu của một thất bại sắp tới với đủ thời gian để thực sự làm điều gì đó về nó.

Phương pháp có thể

Tôi quen thuộc với Phân tích sinh tồn, nhưng cho rằng tôi không có dữ liệu từ nhiều máy và không phải sau khi sửa chữa máy trở lại 100%, tôi không cảm thấy như vậy là phù hợp nhất thiết phải có.

Tôi cũng đã nghĩ đến việc dành thời gian cho một thất bại xảy ra, chuyển nó trở lại 1 giờ và xem tôi có thể dự đoán chính xác điểm đó như thế nào. Nếu tôi có thể, hãy di chuyển mục tiêu trở lại một giờ nữa và xem tôi có thể tự tin dự đoán được bao nhiêu thời gian. Nhưng tôi không chắc nó có phù hợp để làm việc này không.

Dữ liệu có sẵn

Dữ liệu mà tôi có được ghi lại từ một máy trong khoảng thời gian 1 năm. Có khoảng 60 cảm biến được ghi lại cứ sau hai phút. Các cảm biến này đo các biến số như nhiệt độ của các bộ phận khác nhau tạo nên máy (bao gồm cài đặt bộ điều chỉnh nhiệt độ so với nhiệt độ thực tế), tốc độ mà máy đang chạy, áp suất hơi trong toàn bộ máy, tốc độ quạt, cho dù máy có chạy hay không , Vân vân.

Ngoài các bài đọc cảm biến, tôi đã làm phong phú thêm tập dữ liệu để bao gồm cả lý do máy không chạy (ví dụ: thay đổi ca, bảo trì phòng ngừa, lỗi). Tôi đã bao gồm một ví dụ cô đọng về dữ liệu trông như thế nào ở cuối bài này. Tôi đã thay đổi ví dụ để ghi lại một số giống được ghi lại trong toàn bộ tập dữ liệu. Trong thực tế, khi máy ngừng chạy, nó sẽ ngừng hoạt động trong khoảng từ 2 phút đến 2 ngày, tùy thuộc vào lý do. Ngoài ra, các biến không nhất thiết phải thay đổi khá nhanh như trong ví dụ dưới đây, nhưng tôi muốn cung cấp một số loại.

+-----------------+----------+-------------+------------+------------+-------+-------+-----+--------------------------+------------+
|    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       |
+-----------------+----------+-------------+------------+------------+-------+-------+-----+--------------------------+------------+

1
Những loại máy / ngành công nghiệp bạn đang đối phó?
Fernando

Câu trả lời:


5

Đó là một câu hỏi hay và thú vị.

Tôi có một số câu hỏi:

  • Bạn đã có cái nhìn sâu sắc về tính khả thi của mục tiêu của bạn? (lường trước một số thất bại) Bạn có xác định được biến số gây ra thất bại không?
  • Thời gian điển hình trước khi thất bại là gì?

Tôi nghĩ rằng cách tự nhiên để nghiên cứu một vấn đề như vậy sẽ là sử dụng phân tích sinh tồn. Và được làm quen với nó sẽ được cộng!

Những gì tôi sẽ làm (mặc dù tôi không nhận thức được tất cả tính cụ thể của vấn đề của bạn):

  • Tính thời gian biến lãi của bạn (y) và sự xuất hiện của biến sự kiện (delta): trong bước này bạn có thể:

    • coi thời gian thất bại là sự kiện
    • coi thời gian bảo trì phòng ngừa là kiểm duyệt biến
    • bỏ qua thời gian thay đổi để tính toán thời gian thất bại và kiểm duyệt
  • Phù hợp với mô hình Cox trên dữ liệu này:

    • Lưu ý: bạn có thời gian thay đổi đồng biến (có tại địa chỉ này một họa tiết về cách xử lý các biến số phụ thuộc thời gian trong mô hình Cox: https://cran.r-project.org/web/packages/survival/vignettes/timedep.pdf )
    • Bước này có thể không dễ dàng (tôi không biết tôi không phải là chuyên gia về đồng biến phụ thuộc thời gian). Chẳng hạn, tôi nghĩ bạn có thể gặp rắc rối vì bạn có thể có quá nhiều điểm thay đổi trong dữ liệu của mình (thời điểm một trong những thay đổi đồng biến)
  • Sau đó, để sử dụng mô hình của bạn (và xem liệu bạn có thể dự đoán rằng một lỗi sẽ xảy ra trong tương lai (đủ thời gian trước đó)), bạn nên sử dụng mô hình Cox của mình:

    • Mô hình Cox sẽ cho bạn ước tính tỷ lệ nguy hiểm. Vì vậy, điều đơn giản nhất bạn có thể làm để sử dụng mô hình của mình là tính toán dự đoán trực tuyến khi máy của bạn đang chạy và quyết định dừng máy khi tỷ lệ nguy hiểm vượt quá ngưỡng)

Mặc dù cách tự nhiên để nghiên cứu vấn đề của bạn là sử dụng phân tích sinh tồn, bạn có thể sử dụng các phương pháp phân loại, đặc biệt nếu thời gian trước khi thất bại là ngắn (cách này bạn đang phân tích dữ liệu trong quá khứ và bạn sẽ không bị làm phiền bởi kiểm duyệt). Trong trường hợp này, tôi nghĩ cách tiếp cận tổng thể sẽ khá giống nhau.

Hãy cho chúng tôi một số thông tin phản hồi về vấn đề của bạn!


1
câu trả lời hay (+1) nhưng câu hỏi về OP không nên được đưa vào câu trả lời. Tốt hơn là hỏi họ trong các bình luận cho OP.
DeltaIV

2

Tôi làm việc trên các vấn đề tương tự.

Tôi đề nghị mô hình hóa điều này như một nhiệm vụ phân loại: Dán nhãn dữ liệu là ... hệ thống / lần khi hệ thống đóng trước khi xảy ra lỗi ... hệ thống / lần khi hệ thống khỏe

Sau đó, bạn cần phải phù hợp với một mô hình để làm phân loại này. Có lẽ bạn cần tổng hợp dữ liệu trước trong các khoảng thời gian.


Cảm ơn vì sự trả lời. Tôi nhận ra câu hỏi này đòi hỏi một mô hình phân loại, nhưng điều không rõ ràng là điều gì cần xác định là biến mục tiêu như để xác định dấu hiệu của sự thất bại trước khi nó xảy ra. Tôi muốn có thể nói với ai đó khi có vẻ như máy của họ sẽ thất bại với thời gian dẫn đủ để có thể thực sự làm điều gì đó về nó. Gửi một cảnh báo 2 phút trước khi một cái gì đó xảy ra không phải là rất hữu ích.
CurtLH

Ok, sau đó tôi đề nghị: tổng hợp dữ liệu hàng ngày. Dán nhãn 3 ngày trước khi thất bại là 1, xóa 3 ngày trước đó (vì chúng có thể quá giống nhau) và những ngày trước đó được gắn nhãn là 0. Sau đó, bạn thực hiện phân loại. Nếu mô hình của bạn dự đoán 1 bạn biết rằng một thất bại sẽ xảy ra trong vòng 3 ngày tới. Đây chỉ là một ví dụ đơn giản. Tất nhiên bạn có thể dán nhãn ngày khác nhau, vì vậy nó hoạt động cho trường hợp kinh doanh của bạn.
Tobi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.