Tutorial: Monte Carlo Simulation of Vehicle Component Failure
Ziel
In dieser Übung erstellen Studierende eine Monte-Carlo-Simulation zur Modellierung der Ausfallzeit von Fahrzeugkomponenten. Dabei werden Wahrscheinlichkeitskonzepte wie bedingte Wahrscheinlichkeit, Additions- und Multiplikationsregeln, statistische Unabhängigkeit sowie Visualisierung durch ein Histogramm vertieft.
Szenario und Anwendungsfall
Szenario
Ein Auto besteht aus kritischen Komponenten: Motor, Sensoren und Steuereinheit. Fällt der Motor oder die Steuereinheit aus, stoppt das Fahrzeug. Der Besitzer möchte die erwartete Betriebsdauer bis zum Ausfall abschätzen, um Wartungsintervalle zu planen.
Anwendungsfall
Die Studierenden simulieren das Ausfallverhalten eines Fahrzeugs mit drei Komponenten:
- Motor: Ausfallzeit folgt einer Poissonverteilung mit Mittelwert 5000 Stunden.
- Sensor: Ausfallzeit folgt einer Normalverteilung mit \(\mu = 6000\) Stunden, \(\sigma = 100\) Stunden.
- Steuereinheit: Ausfallzeit folgt einer Gleichverteilung zwischen 4000 und 8000 Stunden.
- Bedingung: Fällt der Sensor vor dem Motor aus, verkürzt sich die Motor-Ausfallzeit um 1000 Stunden.
- Stopp: Das Fahrzeug stoppt, wenn Motor oder Steuereinheit ausfällt.
Aufgaben
Simulation
- Simuliere Ausfallzeiten für jede Komponente des Fahrzeugs.
- Bestimme die Zeit bis zum Ausfall des Fahrzeugs.
- Wiederhole dies für 10.000 Durchläufe.
- Stelle die Zeit bis zum Ausfall in einem Histogramm dar (Figure 1).
Analyse
Für die weitere Anaylse nehmen wir an, dass wir den Zufallsprozess der Ausfälle nicht kennen. Wir können jedoch die Ausfallereignisse aufzeichnen und analysieren. Wir interessieren uns nur für Ausfälle, die zu einem Stopp des Fahrzeugs vor 5000 Betriebs-Stunden führen.
- Berechne für jede Komponente die Wahrscheinlichkeit, dass sie ausgefallen ist, gegeben das Fahrzeug fällt vor 5000 Stunden aus.
- Gibt es eine Korrelation zwischen allen Zeiten bis zum Ausfall aller Komponenten und des Fahrzeugs? Berechne die Korrelationskoeffizienten und visualisiere die Korrelation in einer Scatterplot-Matrix.
- Wie hoch ist die Bedingte Wahrscheinlichkeit, dass die Steuereinheit den ausgefallen ist, wenn das Fahrzeug vor 4000 Stunden ausgefallen ist.
- Wähle eine Verteilung für die Ausfallzeit des Fahrzeugs fitte diese. Vergleiche die Verteilung mit dem Histogramm und gibt die Parameter der Verteilung an.
- Nutze die gefittete Verteilung, um die Wahrscheinlichkeit zu berechnen, dass das Fahrzeug vor 4000 Stunden ausfällt.
Simulation
Zuerst erstellen wir einen leeren DataFrame, um die Struktur der simulierten Ausfallzeiten zu zeigen:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
42)
np.random.seed(= 10000
n_trials
# Leerer DataFrame für Ausfallzeiten
= ['motor', 'sensor', 'control', 'vehicle_failure']
columns = pd.DataFrame(index=range(n_trials), columns=columns)
df print("Leerer DataFrame (Auszug):")
print(df.head())
Leerer DataFrame (Auszug):
motor sensor control vehicle_failure
0 NaN NaN NaN NaN
1 NaN NaN NaN NaN
2 NaN NaN NaN NaN
3 NaN NaN NaN NaN
4 NaN NaN NaN NaN
Nun simulieren wir die Ausfallzeiten und berechnen die Zeit bis zum Fahrzeugausfall:
for trial in range(n_trials):
# Ausfallzeiten für das Fahrzeug
= np.random.poisson(5000)
motor_time = np.random.normal(6000, 100)
sensor_time = np.random.uniform(4000, 8000)
control_time
# Bedingung: Sensor-Ausfall verkürzt Motorzeit
if sensor_time < motor_time:
-= 1000
motor_time if motor_time < sensor_time:
= sensor_time
motor_time
# Ausfallzeit des Fahrzeugs (Motor oder Steuereinheit)
= min(motor_time, control_time)
vehicle_failure
# Daten in DataFrame speichern
'motor'] = motor_time
df.loc[trial, 'sensor'] = sensor_time
df.loc[trial, 'control'] = control_time
df.loc[trial, 'vehicle_failure'] = vehicle_failure
df.loc[trial,
print("DataFrame mit simulierten Ausfallzeiten (Auszug):")
print(df.head())
'vehicle_failure'], bins=50, density=True, color='skyblue', alpha=0.7)
plt.hist(df['Ausfallzeit des Fahrzeugs (Stunden)')
plt.xlabel('Dichte')
plt.ylabel('Verteilung der Ausfallzeiten (Fahrzeug)')
plt.title( plt.show()
DataFrame mit simulierten Ausfallzeiten (Auszug):
motor sensor control vehicle_failure
0 4974 6064.768854 4624.074562 4624.074562
1 4919 6152.302986 7464.704583 4919
2 5020 5953.052561 4727.299869 4727.299869
3 4928 6054.256004 6099.025727 4928
4 4986 5898.716888 5168.578594 4986
