Transmission Fault Detection Harness
This example shows how to inject stuck-off and stuck-on clutch faults into a transmission system, iterate through failure scenarios to gather synthetic training data sets, apply the data to a basic fault classifier algorithm, and measure the classifier's accuracy. This example uses Fast Restart mode to iterate through many different scenarios without needing to recompile the model in between iterations. This workflow is useful for tuning and testing different transmission fault sensor configurations and detector algorithms.
The example is a test harness for a 7-speed Lepelletier transmission. A velocity source at the transmission base drives the system at a constant or increasing ramped velocity. A gear command controls the gear state of the transmission system by controlling the pressure applied to each of the six clutches. When you inject a fault into a clutch, the corresponding clutch pressure remains high or low, depending on if it is an unlocked or locked fault, respectively. The Fault Predictor outputs a probability-like score for each clutch fault type and location by sensing the drive ratio and comparing it to training data containing drive ratios and known clutch states.
7-Speed Lepelletier Transmission
The 7-Speed Lepelletier Transmission subsystem receives a Gear command and a Clutch fault injection signal. The Clutch fault injection signal overrides the clutch state commands for any faulted clutches, so that they differ from the expected commands for one or more transmission gears. The clutch state commands send high or low control pressure to the clutches.
This Simulink subsystem implements a basic multi-class classifier to predict fault types and locations. Faults can be stuck-off (unlocked) or stuck-on (locked) and can occur in any of the 6 clutches, resulting in a classification problem with 12 classes. This classifier receives the measured drive ratio, expected drive ratio, and gear commanded clutch states as inputs.
This classifier uses training data derived from a MATLAB function that sweeps through the full-factorial set of all locked/unlocked clutch states. The function simulates the model to collect the measured drive ratios for each state. The function puts the model into Fast Restart mode to collect data for the 64 states without needing to recompile the model in between iterations. The function uses Simscape logging results to exclude scenarios with clutches that have activated control pressures but are slipping, which likely indicates an overconstrained specified clutch state that would result in a severe transmission failure. The training function outputs a matrix containing clutch states and measured drive ratios.
The classifier uses matrix algebra to compare the inputs to the training data and expected clutch states for the transmission gear. Possible clutch faults are tracked as the product of three flags: if the drive ratio differs from the expected drive ratio for the gear command, if the drive ratio matches one or more drive ratios from the training data, and if the clutch states from the training data differ from the commanded clutch state. This product is summed and normalized for all states in the training data. The result is compared to the gear clutch command to determine if the unexpected clutch state is an unlocked or locked clutch.
The Fault Classifier subsystem is configured to discretely execute and update the prediction every 0.1 seconds.
The Prediction update subsystem adds the fault prediction of the current time step to the running prediction from previous time steps. The final running prediction is normalized by the total number of times that the Prediction update subsystem will run in the simulation, which equals the simulation Stop Time / 0.1 seconds.
Simulation Results from Scope
This scope compares the actual and expected drive ratios when clutch A has a locked fault. This example defines the transmission ratio as the output velocity divided by the input velocity.
Results from Multiple Simulations
The plot below shows the confusion matrix of the transmission fault classifier for different test scenarios. To generate the plot, this example injects each fault into the transmission, adjusts scenario conditions, simulates the model, and records the fault class that receives the highest probability-like score from the classifier. These test scenarios vary the transmission base shaft velocity and follower shaft load for each fault class. The model takes advantage of Fast Restart mode to simulate the test cases more quickly. This example makes the load damping coefficient a run-time parameter so it can change the parameter value while the model is in Fast Restart. This basic classifier has varying accuracy for the different faults. Adjusting the sensors and fault predition algorithm used in this model and simulating additional training scenarios may improve the results.