Manufacturing Quality Control
# Manufacturing Quality Control
## Introduction & Motivation
Implementing statistical quality control through ML enables real-time monitoring and process adjustment for consistent product quality. ML models detect quality anomalies and suggest corrective actions.
Motivation: Monitor and control manufacturing quality.
Applications: SPC, anomaly detection, process adjustment, quality improvement.
---
## Core Concepts & Theory
### Statistical Process Control
Variation monitoring.
### Control Charts
Trend visualization.
### Six Sigma
Quality metrics.
### Capability Indices
Process capability.
---
## Mathematical Formulation
Control Limits:
$$ ext{UCL} = \mu + 3\sigma$$
$$ ext{LCL} = \mu - 3\sigma$$
Process Capability:
$$C_p = \frac{USL - LSL}{6\sigma}$$
Defects Per Million:
$$ ext{DPMO} = \frac{ ext{defects}}{1,000,000}$$
---
## Advanced Theory & Extensions
### EWMA Control
Exponential weighting.
### Multivariate SPC
Multiple variables.
### Pattern Detection
Special causes.
---
## Computational Considerations
Time Series: O(T·D) complexity.
Control Model: O(D²) network.
Detection: O(D) per sample.
---
## Practical Implementation Strategies
### Sensor Integration
Real-time data.
### Feature Extraction
Control statistics.
### Alert Generation
Anomaly flags.
---
## Benchmark Datasets & Evaluation
Manufacturing Data: Historical records.
Quality Standards: Industry specs.
Case Studies: Examples.
---
## Key Challenges & Limitations
### Noise
Measurement error.
### Seasonal Effects
Regular patterns.
### Concept Drift
Changing processes.
---
## Hyperparameter Tuning
Control limits: 2-4 sigma.
Moving average: 5-20 samples.
Smoothing: 0.1-0.3 rate.
---
## Real-World Applications & Case Studies
Automotive: Part dimensions.
Electronics: Component values.
Food Processing: Consistency.
---
## Integration with Other Methods
QC ML + data collection; + alarms; + corrective actions.
---
## Summary & Key Takeaways
ML enables comprehensive quality control.
Principles:
1. Monitoring: Real-time observation.
2. Control Limits: Specification enforcement.
3. Anomaly Detection: Outlier identification.
4. Root Cause: Problem diagnosis.
5. Correction: Process adjustment.
---
## Appendix: Practical Labs
### Lab 1: Control Chart Data
import numpy as np
def generate_control_chart_data(n_samples=100, mean=100, std=5):
"""Generate sample measurements"""
data = np.random.normal(mean, std, n_samples)
ucl = mean + 3 * std
lcl = mean - 3 * std
return data, ucl, lcl
data, ucl, lcl = generate_control_chart_data()
assert len(data) == 100, "Data generation failed"
assert ucl > 100 > lcl, "Control limits failed"
print(f"✓ Control chart data generated: {data.shape}")
print(f"✓ UCL: {ucl:.1f}, LCL: {lcl:.1f}")### Lab 2: Capability Analysis
import numpy as np
def calculate_process_capability(data, usl, lsl):
"""Calculate process capability index"""
mean = np.mean(data)
std = np.std(data)
Cp = (usl - lsl) / (6 * std)
Cpk = min((usl - mean) / (3 * std), (mean - lsl) / (3 * std))
return Cp, Cpk
data = np.random.normal(100, 5, 100)
usl, lsl = 115, 85
Cp, Cpk = calculate_process_capability(data, usl, lsl)
assert Cp > 0 and Cpk > 0, "Capability calculation failed"
print(f"✓ Cp: {Cp:.2f}, Cpk: {Cpk:.2f}")### Lab 3: Anomaly Detection
import numpy as np
def detect_anomalies(data, threshold=3):
"""Detect anomalous measurements"""
mean = np.mean(data)
std = np.std(data)
z_scores = np.abs((data - mean) / (std + 1e-6))
anomalies = np.where(z_scores > threshold)[0]
return anomalies
data = np.random.normal(100, 5, 100)
data[10] = 150 # Insert anomaly
anomalies = detect_anomalies(data)
assert len(anomalies) > 0, "Anomaly detection failed"
print(f"✓ Anomalies detected at indices: {anomalies}")### Lab 4: Quality Metrics
import numpy as np
class QualityMonitor:
def __init__(self, usl, lsl):
self.usl = usl
self.lsl = lsl
def calculate_dpmo(self, defects, samples):
"""Calculate defects per million opportunities"""
dpmo = (defects / samples) * 1000000
return dpmo
def calculate_sigma_level(self, dpmo):
"""Estimate sigma level from DPMO"""
if dpmo <= 3.4:
return 6.0
elif dpmo <= 233:
return 5.0
else:
return 4.0
monitor = QualityMonitor(usl=115, lsl=85)
dpmo = monitor.calculate_dpmo(5, 1000)
sigma = monitor.calculate_sigma_level(dpmo)
assert dpmo >= 0, "DPMO calculation failed"
print(f"✓ DPMO: {dpmo:.1f}, Sigma Level: {sigma:.1f}")---