top of page

Fault Detection and Classification Using Support Vector Machine (SVM) in MATLAB/Simulink

In modern power systems, timely fault detection and accurate classification are critical for ensuring grid stability and system safety. This post explains how Support Vector Machine (SVM), a supervised machine learning algorithm, is applied in MATLAB/Simulink for fault detection and classification in distribution and transmission systems.

What is Support Vector Machine (SVM)?

Support Vector Machine (SVM) is a supervised learning algorithm designed for classification and regression tasks. Given an input dataset and corresponding target dataset (labels), SVM separates classes using an optimal hyperplane.

  • Hyperplane and Decision Boundary: SVM identifies the best separating hyperplane between two or more classes, with the nearest data points called support vectors. These vectors determine the decision boundary.

  • Kernel Functions: SVM supports non-linear data classification using kernel functions such as:

    • Polynomial kernel

    • Radial Basis Function (RBF)

  • Tuning Parameters: By adjusting parameters like C (penalty parameter) and gamma (kernel coefficient), SVM's classification accuracy can be optimized.

Steps for Fault Detection and Classification Using SVM

1. Data Collection

The first step involves generating fault and non-fault data using a MATLAB/Simulink model:

  • Simulate various fault conditions:

    • Single line-to-ground (A-G)

    • Double line-to-ground (A-B-G)

    • Double line fault (A-B)

    • Triple line fault (A-B-C)

    • Triple line-to-ground (A-B-C-G)

  • The simulation setup includes:

    • 11 kV source and step-down transformer (11 kV to 400 V)

    • Load point with fault-injection node

  • Data collected includes:

    • Voltage and current signals

    • Zero-sequence voltage

  • Collected data forms:

    • X Data: Input feature set

    • D Data: Target dataset (labelled fault types)

2. Training the SVM Model

Once data is collected:

  • Use MATLAB's Classification Learner App.

  • Steps:

    • Import X Data and D Data from the workspace.

    • Select the Gaussian SVM option.

    • Perform 5-fold cross-validation.

  • After training:

    • Model achieves approximately 96.67% accuracy.

    • Output includes confusion matrix, ROC curves, scatter plots, and results table.

  • Save the trained SVM model to workspace or as a .mat file for deployment.

3. Deployment in Simulink for Fault Detection

  • Load the trained SVM model into a Simulink environment.

  • Use MATLAB Function block to apply the SVM:

    • Inputs: Voltages (Vab, Vbc, Vca), Currents (Ia, Ib, Ic), Zero-sequence voltage.

    • Output: Predicted fault class.

  • Classification results are used in logic blocks for fault detection and reporting.

Performance Evaluation

  • Run Simulink simulations for various scenarios:

    • No fault

    • A-G fault

    • B-C-G fault

    • A-B-C-G fault

  • System response:

    • Accurately detects and classifies faults.

    • Visualizes changes in voltage/current waveforms and RMS variations.

  • The SVM model consistently demonstrates high reliability in distinguishing fault types based on electrical parameters.

Conclusion

Using Support Vector Machine in MATLAB/Simulink offers an effective solution for automated fault detection and classification in power systems. With proper data preparation and model tuning, SVM delivers high accuracy and reliable performance, making it suitable for real-time grid monitoring applications in both distribution and transmission networks.

Comments


bottom of page