滚动轴承数据集 故障诊断,预测、分类 最全套数据集
滚动轴承数据集 故障诊断预测、分类 最全套数据集 可做对比实验1.CWRU西储大学轴承数据集2.XJTU西安交通大学数据集3.江南大学数据集4.东南大学数据集好的下面我将详细介绍如何使用这四套滚动轴承数据集进行故障诊断、预测和分类并进行对比实验。我们将使用Python和一些常见的机器学习库如pandas,numpy,scikit-learn,tensorflow等来处理这些数据集。数据集概述CWRU 西储大学轴承数据集包含多种故障类型的数据。提供了不同转速下的轴承振动信号。XJTU 西安交通大学数据集包含不同类型和严重程度的故障。提供了多传感器数据。江南大学数据集包含不同工况下的轴承数据。提供了丰富的故障样本。东南大学数据集包含多种类型的故障和不同的负载条件。提供了详细的实验条件说明。步骤概述数据集准备特征提取数据预处理模型训练模型评估结果对比详细步骤1. 数据集准备确保你的数据集已经按照上述格式准备好并且包含相应的文件目录结构。bearing_datasets/ ├── CWRU/ │ ├── normal.mat │ ├── inner_race_fault.mat │ └── ... ├── XJTU/ │ ├── normal.mat │ ├── ball_fault.mat │ └── ... ├── Jiangnan/ │ ├── normal.csv │ ├── outer_race_fault.csv │ └── ... └── Southeast/ ├── normal.csv ├── inner_race_fault.csv └── ...2. 特征提取从原始振动信号中提取有用的特征。常用的特征包括时域特征、频域特征等。importnumpyasnpimportpandasaspdfromscipy.signalimportwelchfromsklearn.preprocessingimportStandardScaler# Example function to extract featuresdefextract_features(signal,fs):# Time domain featuresmean_absnp.mean(np.abs(signal))std_devnp.std(signal)# Frequency domain features using Welchs methodfreqs,Pxxwelch(signal,fsfs,nperseg256)median_freqnp.median(freqs[Pxxnp.percentile(Pxx,90)])return[mean_abs,std_dev,median_freq]# Example usagedefload_and_extract_features(dataset_path,fs12000):features[]labels[]forfilenameinos.listdir(dataset_path):iffilename.endswith(.mat):datasio.loadmat(os.path.join(dataset_path,filename))signaldata[list(data.keys())[-1]].flatten()labelfilename.split(_)[0]# Assuming label is part of the filenamefeatures.append(extract_features(signal,fs))labels.append(label)eliffilename.endswith(.csv):datapd.read_csv(os.path.join(dataset_path,filename))signaldata.iloc[:,0].values labelfilename.split(_)[0]# Assuming label is part of the filenamefeatures.append(extract_features(signal,fs))labels.append(label)returnnp.array(features),np.array(labels)# Load and extract features from each datasetcwru_features,cwru_labelsload_and_extract_features(bearing_datasets/CWRU)xjtu_features,xjtu_labelsload_and_extract_features(bearing_datasets/XJTU)jiangnan_features,jiangnan_labelsload_and_extract_features(bearing_datasets/Jiangnan)southeast_features,southeast_labelsload_and_extract_features(bearing_datasets/Southeast)3. 数据预处理标准化特征数据并划分训练集和测试集。fromsklearn.model_selectionimporttrain_test_splitfromsklearn.preprocessingimportLabelEncoder# Combine all datasetsall_featuresnp.vstack((cwru_features,xjtu_features,jiangnan_features,southeast_features))all_labelsnp.concatenate((cwru_labels,xjtu_labels,jiangnan_labels,southeast_labels))# Encode labelslabel_encoderLabelEncoder()all_labels_encodedlabel_encoder.fit_transform(all_labels)# Split into training and testing setsX_train,X_test,y_train,y_testtrain_test_split(all_features,all_labels_encoded,test_size0.2,random_state42)# Standardize featuresscalerStandardScaler()X_train_scaledscaler.fit_transform(X_train)X_test_scaledscaler.transform(X_test)4. 模型训练使用随机森林分类器进行训练。fromsklearn.ensembleimportRandomForestClassifierfromsklearn.metricsimportclassification_report,accuracy_score# Initialize and train the modelrf_classifierRandomForestClassifier(n_estimators100,random_state42)rf_classifier.fit(X_train_scaled,y_train)# Predict on test sety_predrf_classifier.predict(X_test_scaled)# Evaluate the modelprint(Random Forest Classifier:)print(classification_report(y_test,y_pred,target_nameslabel_encoder.classes_))print(fAccuracy:{accuracy_score(y_test,y_pred):.4f})5. 模型评估评估每个数据集上的模型性能。defevaluate_dataset(model,X_test,y_test,label_encoder):y_predmodel.predict(X_test)print(Classification Report:)print(classification_report(y_test,y_pred,target_nameslabel_encoder.classes_))print(fAccuracy:{accuracy_score(y_test,y_pred):.4f})# Evaluate on each dataset separatelyprint(\nEvaluating CWRU Dataset:)evaluate_dataset(rf_classifier,cwru_features_scaled,cwru_labels_encoded,label_encoder)print(\nEvaluating XJTU Dataset:)evaluate_dataset(rf_classifier,xjtu_features_scaled,xjtu_labels_encoded,label_encoder)print(\nEvaluating Jiangnan Dataset:)evaluate_dataset(rf_classifier,jiangnan_features_scaled,jiangnan_labels_encoded,label_encoder)print(\nEvaluating Southeast Dataset:)evaluate_dataset(rf_classifier,southeast_features_scaled,southeast_labels_encoded,label_encoder)6. 结果对比通过比较每个数据集上的准确率和其他指标来进行结果对比。importmatplotlib.pyplotasplt# Collect accuracies for comparisonaccuracies{CWRU:accuracy_score(cwru_labels_encoded,rf_classifier.predict(cwru_features_scaled)),XJTU:accuracy_score(xjtu_labels_encoded,rf_classifier.predict(xjtu_features_scaled)),Jiangnan:accuracy_score(jiangnan_labels_encoded,rf_classifier.predict(jiangnan_features_scaled)),Southeast:accuracy_score(southeast_labels_encoded,rf_classifier.predict(southeast_features_scaled))}# Plot accuraciesplt.bar(accuracies.keys(),accuracies.values())plt.title(Model Accuracies on Different Datasets)plt.xlabel(Dataset)plt.ylabel(Accuracy)plt.ylim([0,1])plt.show()完整代码以下是完整的代码示例包含了从数据加载、特征提取、数据预处理、模型训练到结果对比的所有步骤。运行脚本在终端中运行以下命令来执行整个流程python main.py总结以上文档包含了从数据集准备、特征提取、数据预处理、模型训练与评估、可视化结果到结果对比的所有步骤。希望这些详细的信息和代码能够帮助你顺利实施和优化你的滚动轴承故障诊断系统

相关新闻

最新新闻

日新闻

周新闻

月新闻