مقدمه
در خطوط تولید صنعتی، توقف ناخواسته ماشینآلات یکی از مهمترین دلایل کاهش بهرهوری و افزایش هزینههاست. مشکل اصلی این است که همیشه گزارشهای توقف یا Event Logها کامل و دقیق نیستند. اما توقف دستگاه معمولاً روی سیگنالهای سنسوری، مخصوصاً جریان برق یا توان مصرفی، اثر مشخصی میگذارد. برای مثال: در حالت کار نرمال، مصرف توان الگوی مشخصی دارد. در زمان توقف، سیگنال ممکن است افت کند، تخت شود یا رفتار متفاوتی نشان دهد. هدف پروژهی Downtime Detective این است که بدون نیاز زیاد به دادههای لیبلخورده، توقفهای احتمالی را از روی سیگنال مصرف انرژی شناسایی کرده و گزارش قابل استفاده برای تیم تولید و نگهداری ارائه دهد.
معماری پیشنهادی و فرمولاسیون
A) Data Ingestion دریافت سیگنال زمانمند جریان یا توان و در صورت نیاز Resample کردن دادهها. B) Cleaning & Preprocessing حذف دادههای گمشده، نویزها و outlierهای واضح، سپس نرمالسازی سیگنال. C) Windowing تقسیم سیگنال به پنجرههای زمانی با طول و گام مشخص برای تحلیل بهتر رفتار ماشین. D) Autoencoder Training آموزش Autoencoder روی دادههای نرمال برای یادگیری الگوی معمول عملکرد دستگاه. E) Scoring & Thresholding محاسبه خطای بازسازی هر پنجره و تشخیص anomaly بر اساس آستانه مشخص. F) Post-processing & Reporting ترکیب anomalyهای نزدیک، حذف نویزهای کوتاه و تولید گزارش downtime شامل مدت توقف، تعداد توقفها و تولید از دسترفته.
پیادهسازی
دیتای مصنوعی میسازیم که شامل «کار نرمال» و چند «توقف» باشد پنجرهسازی میکنیم Autoencoder را آموزش میدهیم threshold را از train استخراج میکنیم anomalyها را به بازه downtime تبدیل میکنیم تولید از دسترفته را برآورد میکنیم نکته: این کد آماده است که بعداً ورودی واقعی CSV هم به آن وصل شود.
class AutoEncoder1D(nn.Module):
def __init__(self, win_size, latent_dim=16, hidden=64):
super().__init__()
self.encoder = nn.Sequential(
nn.Linear(win_size, hidden),
nn.ReLU(),
nn.Linear(hidden, latent_dim)
)
self.decoder = nn.Sequential(
nn.Linear(latent_dim, hidden),
nn.ReLU(),
nn.Linear(hidden, win_size)
)
def forward(self, x):
return self.decoder(self.encoder(x))
نتیجهگیری
Downtime Detective یک راهکار سبک و کاربردی برای تشخیص توقفهای ناخواسته ماشینآلات از روی سیگنال جریان یا توان است. این سیستم با یادگیری رفتار نرمال توسط Autoencoder، بدون نیاز جدی به دادههای لیبلخورده، توقفها و ناهنجاریها را شناسایی میکند. خروجی نهایی میتواند برای تیم نگهداری، تعمیرات و مدیریت تولید استفاده شود و به کاهش Downtime و افزایش OEE کمک کند.