基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)

简介: 基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)


💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

💥1 概述

  基于CNN-GRU(convolutional neural networks-gate recurrent unit)神经网络的电力系统短期负荷预测方法。首先使用卷积神经网络(CNN)对负荷及气象数据进行卷积处理,以更好地提取数据新特征,增强输入数据与输出数据间的相关性。然后使用门控循环单元(GRU)实现短期负荷预测。使用某地区的负荷数据结合当地的气象数据,对CNN-GRU-Attention方法进行了测试。结果表明:与单独的CNN网络或GRU网络相比,CNN-GRU-Attention网络对电力系统短期负荷的预测误差更小,预测精度更高。

基于CNN-GRU-Attention混合神经网络的负荷预测方法结合了卷积神经网络(CNN)、门控循环单元(GRU)和注意力机制(Attention)三种网络结构,以提高负荷预测的准确性和效率。以下是这种方法的详细介绍:

1. 数据预处理

首先,需要对负荷数据进行预处理,包括数据清洗、归一化等步骤,以便于神经网络的训练和预测。

2. 卷积神经网络(CNN)

CNN主要用于捕捉时间序列数据中的局部特征。输入负荷数据的多维特征,通过卷积层提取特征。

3. 门控循环单元(GRU)

GRU网络用于捕捉负荷数据的时间依赖性和长期记忆。GRU的门结构有助于网络学习时间序列数据中的模式。

4. 注意力机制(Attention)

注意力机制用于对CNN和GRU提取的特征进行加权融合,以便网络能够自动关注对预测更有用的信息。

5. 混合网络结构

整合CNN、GRU和Attention的特性,形成一个混合神经网络结构。负荷数据首先通过CNN提取特征,然后通过GRU学习时间依赖性,最后应用Attention机制融合特征。

6. 训练与优化

使用预处理后的数据对混合网络进行训练。可以采用均方误差(MSE)或其他适当的损失函数进行优化。

7. 预测

训练好的混合网络可以用于未来时刻的负荷预测。输入新的负荷数据,网络会输出相应的负荷预测值。

8. 评估与调优

对预测结果进行评估,比如计算预测误差、准确率等指标。根据评估结果,对网络进行调优,以提高预测的准确性和稳定性。

这种基于CNN-GRU-Attention混合神经网络的负荷预测方法充分利用了卷积、循环和注意力的特性,能够有效地捕捉时间序列数据的空间和时间特征,从而提高负荷预测的精度和鲁棒性。

一、引言

随着电力系统规模的不断扩大,对电力负荷预测的需求也日益增长。准确的负荷预测对于电力系统规划、调度、运行和控制至关重要。传统负荷预测方法如自回归移动平均模型(ARMA)和指数平滑模型等,往往难以捕捉到时间序列数据中的复杂非线性关系,尤其是当存在大量影响因素时。近年来,深度学习技术的突破性进展为负荷预测提供了新的思路。其中,基于CNN-GRU-Attention的负荷预测方法结合了卷积神经网络(CNN)、门控循环单元(GRU)和注意力机制(Attention)的优势,能够更有效地捕捉时间序列数据的空间和时间特征,提高负荷预测的精度和鲁棒性。

二、模型结构

基于CNN-GRU-Attention的负荷预测模型主要包括以下几个部分:

  1. CNN层:用于提取输入数据的局部特征。在负荷预测中,CNN能够从时间序列数据中提取不同时间窗口的特征,并将其整合到更高层的特征图中。这一步骤有助于增强输入数据与输出数据间的相关性,为后续处理提供更有价值的信息。
  2. GRU层:用于学习时间序列数据的长程依赖关系。GRU是一种特殊的循环神经网络(RNN),通过引入门控机制(如更新门和重置门)来减少梯度消失问题,从而更有效地捕捉时间序列中的长期记忆。在负荷预测中,GRU能够利用历史负荷数据中的时间依赖性,提高预测的准确性。
  3. Attention层:用于识别时间序列数据中的重要信息。在负荷预测中,不同时间步的负荷数据对预测结果的贡献度是不同的。Attention机制能够根据当前时间步的输入,自动学习不同时间步的权重,从而突出重要的信息,抑制无关信息。这一步骤有助于进一步提高预测的精度和解释性。
  4. 全连接层:用于将提取到的特征映射到预测结果。

三、数据预处理

数据预处理是负荷预测模型的关键环节,主要包括以下步骤:

  1. 数据清洗:剔除异常数据和缺失数据。
  2. 特征工程:根据实际情况提取影响负荷的因素,如气温、湿度、节假日等。
  3. 数据归一化:将数据范围缩放到0到1之间,以提高模型的训练效率。
  4. 数据划分:将数据集划分为训练集、验证集和测试集,用于模型训练、参数调整和模型评估。

四、模型训练与评估

  1. 模型训练:采用反向传播算法,通过最小化损失函数(如均方误差MSE)来优化模型参数。训练过程中,可以使用验证集来监控模型的性能,避免过拟合。
  2. 模型评估:训练完成后,使用测试集对模型进行评估,计算预测误差、准确率等指标,以验证模型的预测能力。常用的评估指标包括均方误差(MSE)、均方根误差(RMSE)、平均绝对误差(MAE)、平均绝对百分比误差(MAPE)和R平方值(R²)等。

五、实验结果与分析

使用某地区的负荷数据结合当地的气象数据,对CNN-GRU-Attention方法进行了测试。结果表明:与单独的CNN网络或GRU网络相比,CNN-GRU-Attention网络对电力系统短期负荷的预测误差更小,预测精度更高。这证明了CNN-GRU-Attention混合神经网络在负荷预测中的有效性。

六、结论与展望

基于CNN-GRU-Attention混合神经网络的负荷预测方法充分利用了卷积、循环和注意力的特性,能够有效地捕捉时间序列数据的空间和时间特征,提高负荷预测的精度和鲁棒性。该方法为电力系统负荷预测提供了新的思路和技术支持,具有重要的理论意义和实际应用价值。未来,可以进一步引入更复杂的注意力机制(如自注意力机制和多头注意力机制)和其他深度学习模型(如LSTM),以进一步提升预测精度和性能。同时,考虑更多影响因素(如天气预报、社会经济活动等)也将有助于提高模型的预测准确性。

📚2 运行结果

image.gif 编辑

image.gif 编辑 image.gif 编辑

image.gif 编辑  

image.gif 编辑

image.gif 编辑

image.gif 编辑


To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.

Model: "sequential"

_________________________________________________________________

Layer (type)                Output Shape              Param #  

=================================================================

reshape (Reshape)           (None, 1, 7, 1)           0        

                                                               

conv2d (Conv2D)             (None, 1, 7, 32)          320      

                                                               

max_pooling2d (MaxPooling2D  (None, 1, 7, 32)         0        

)                                                              

                                                               

dropout (Dropout)           (None, 1, 7, 32)          0        

                                                               

reshape_1 (Reshape)         (None, 1, 224)            0        

                                                               

gru (GRU)                   (None, 1, 10)             7080      

                                                               

gru_1 (GRU)                 (None, 1, 20)             1920      

                                                               

attention (Attention)       (None, 50)                2400      

                                                               

dense (Dense)               (None, 10)                510      

                                                               

dense_1 (Dense)             (None, 1)                 11        

                                                               

=================================================================

Total params: 12,241

Trainable params: 12,241

Non-trainable params: 0

_________________________________________________________________

None

Epoch 1/50

2022-11-15 20:40:42.293543: W tensorflow/core/grappler/costs/op_level_cost_estimator.cc:690] Error in PredictCost() for the op: op: "Softmax" attr { key: "T" value { type: DT_FLOAT } } inputs { dtype: DT_FLOAT shape { unknown_rank: true } } device { type: "CPU" vendor: "AuthenticAMD" model: "240" frequency: 3194 num_cores: 16 environment { key: "cpu_instruction_set" value: "SSE, SSE2" } environment { key: "eigen" value: "3.4.90" } l1_cache_size: 32768 l2_cache_size: 524288 l3_cache_size: 16777216 memory_size: 268435456 } outputs { dtype: DT_FLOAT shape { unknown_rank: true } }

2022-11-15 20:40:43.604200: W tensorflow/core/grappler/costs/op_level_cost_estimator.cc:690] Error in PredictCost() for the op: op: "Softmax" attr { key: "T" value { type: DT_FLOAT } } inputs { dtype: DT_FLOAT shape { unknown_rank: true } } device { type: "CPU" vendor: "AuthenticAMD" model: "240" frequency: 3194 num_cores: 16 environment { key: "cpu_instruction_set" value: "SSE, SSE2" } environment { key: "eigen" value: "3.4.90" } l1_cache_size: 32768 l2_cache_size: 524288 l3_cache_size: 16777216 memory_size: 268435456 } outputs { dtype: DT_FLOAT shape { unknown_rank: true } }

103/103 - 3s - loss: 0.0332 - mse: 0.0332 - val_loss: 0.0068 - val_mse: 0.0068 - 3s/epoch - 29ms/step

Epoch 2/50

103/103 - 0s - loss: 0.0038 - mse: 0.0038 - val_loss: 0.0011 - val_mse: 0.0011 - 380ms/epoch - 4ms/step

Epoch 3/50

103/103 - 0s - loss: 0.0021 - mse: 0.0021 - val_loss: 8.9063e-04 - val_mse: 8.9063e-04 - 380ms/epoch - 4ms/step

Epoch 4/50

103/103 - 0s - loss: 0.0017 - mse: 0.0017 - val_loss: 7.7933e-04 - val_mse: 7.7933e-04 - 390ms/epoch - 4ms/step

Epoch 5/50

103/103 - 0s - loss: 0.0015 - mse: 0.0015 - val_loss: 7.5322e-04 - val_mse: 7.5322e-04 - 380ms/epoch - 4ms/step

Epoch 6/50

103/103 - 0s - loss: 0.0014 - mse: 0.0014 - val_loss: 7.0502e-04 - val_mse: 7.0502e-04 - 370ms/epoch - 4ms/step

Epoch 7/50

103/103 - 0s - loss: 0.0013 - mse: 0.0013 - val_loss: 6.4338e-04 - val_mse: 6.4338e-04 - 380ms/epoch - 4ms/step

Epoch 8/50

103/103 - 0s - loss: 0.0012 - mse: 0.0012 - val_loss: 6.1803e-04 - val_mse: 6.1803e-04 - 370ms/epoch - 4ms/step

Epoch 9/50

103/103 - 0s - loss: 0.0011 - mse: 0.0011 - val_loss: 5.5700e-04 - val_mse: 5.5700e-04 - 380ms/epoch - 4ms/step

Epoch 10/50

103/103 - 0s - loss: 0.0011 - mse: 0.0011 - val_loss: 5.2479e-04 - val_mse: 5.2479e-04 - 370ms/epoch - 4ms/step

Epoch 11/50

103/103 - 0s - loss: 0.0010 - mse: 0.0010 - val_loss: 5.1472e-04 - val_mse: 5.1472e-04 - 407ms/epoch - 4ms/step

Epoch 12/50

103/103 - 0s - loss: 0.0010 - mse: 0.0010 - val_loss: 4.8988e-04 - val_mse: 4.8988e-04 - 404ms/epoch - 4ms/step

Epoch 13/50

103/103 - 0s - loss: 9.7950e-04 - mse: 9.7950e-04 - val_loss: 5.0468e-04 - val_mse: 5.0468e-04 - 390ms/epoch - 4ms/step

Epoch 14/50

103/103 - 0s - loss: 9.5678e-04 - mse: 9.5678e-04 - val_loss: 4.9064e-04 - val_mse: 4.9064e-04 - 448ms/epoch - 4ms/step

Epoch 15/50

103/103 - 0s - loss: 9.1728e-04 - mse: 9.1728e-04 - val_loss: 5.0738e-04 - val_mse: 5.0738e-04 - 374ms/epoch - 4ms/step

Epoch 16/50

103/103 - 0s - loss: 9.0497e-04 - mse: 9.0497e-04 - val_loss: 4.8773e-04 - val_mse: 4.8773e-04 - 386ms/epoch - 4ms/step

Epoch 17/50

103/103 - 0s - loss: 8.8163e-04 - mse: 8.8163e-04 - val_loss: 4.8866e-04 - val_mse: 4.8866e-04 - 391ms/epoch - 4ms/step

Epoch 18/50

103/103 - 0s - loss: 8.8587e-04 - mse: 8.8587e-04 - val_loss: 4.9860e-04 - val_mse: 4.9860e-04 - 378ms/epoch - 4ms/step

Epoch 19/50

103/103 - 0s - loss: 8.7227e-04 - mse: 8.7227e-04 - val_loss: 5.0278e-04 - val_mse: 5.0278e-04 - 417ms/epoch - 4ms/step

Epoch 20/50

103/103 - 0s - loss: 8.5672e-04 - mse: 8.5672e-04 - val_loss: 5.1483e-04 - val_mse: 5.1483e-04 - 427ms/epoch - 4ms/step

Epoch 21/50

103/103 - 0s - loss: 8.6189e-04 - mse: 8.6189e-04 - val_loss: 4.9968e-04 - val_mse: 4.9968e-04 - 380ms/epoch - 4ms/step

Epoch 22/50

103/103 - 0s - loss: 8.5941e-04 - mse: 8.5941e-04 - val_loss: 4.9605e-04 - val_mse: 4.9605e-04 - 375ms/epoch - 4ms/step

Epoch 23/50

103/103 - 0s - loss: 8.3976e-04 - mse: 8.3976e-04 - val_loss: 4.9938e-04 - val_mse: 4.9938e-04 - 372ms/epoch - 4ms/step

Epoch 24/50

103/103 - 0s - loss: 8.2392e-04 - mse: 8.2392e-04 - val_loss: 4.8102e-04 - val_mse: 4.8102e-04 - 380ms/epoch - 4ms/step

Epoch 25/50

103/103 - 0s - loss: 8.3040e-04 - mse: 8.3040e-04 - val_loss: 5.3633e-04 - val_mse: 5.3633e-04 - 376ms/epoch - 4ms/step

Epoch 26/50

103/103 - 0s - loss: 8.2367e-04 - mse: 8.2367e-04 - val_loss: 5.1988e-04 - val_mse: 5.1988e-04 - 381ms/epoch - 4ms/step

Epoch 27/50

103/103 - 0s - loss: 8.1775e-04 - mse: 8.1775e-04 - val_loss: 5.0360e-04 - val_mse: 5.0360e-04 - 375ms/epoch - 4ms/step

Epoch 28/50

103/103 - 0s - loss: 8.0505e-04 - mse: 8.0505e-04 - val_loss: 4.6806e-04 - val_mse: 4.6806e-04 - 373ms/epoch - 4ms/step

Epoch 29/50

103/103 - 0s - loss: 8.0057e-04 - mse: 8.0057e-04 - val_loss: 4.7476e-04 - val_mse: 4.7476e-04 - 369ms/epoch - 4ms/step

Epoch 30/50

103/103 - 0s - loss: 8.0176e-04 - mse: 8.0176e-04 - val_loss: 4.7907e-04 - val_mse: 4.7907e-04 - 370ms/epoch - 4ms/step

Epoch 31/50

103/103 - 0s - loss: 7.9466e-04 - mse: 7.9466e-04 - val_loss: 4.8413e-04 - val_mse: 4.8413e-04 - 380ms/epoch - 4ms/step

Epoch 32/50

103/103 - 0s - loss: 7.9054e-04 - mse: 7.9054e-04 - val_loss: 4.9138e-04 - val_mse: 4.9138e-04 - 376ms/epoch - 4ms/step

Epoch 33/50

103/103 - 0s - loss: 7.8007e-04 - mse: 7.8007e-04 - val_loss: 4.9920e-04 - val_mse: 4.9920e-04 - 376ms/epoch - 4ms/step

Epoch 34/50

103/103 - 0s - loss: 7.7809e-04 - mse: 7.7809e-04 - val_loss: 4.8480e-04 - val_mse: 4.8480e-04 - 380ms/epoch - 4ms/step

Epoch 35/50

103/103 - 0s - loss: 7.7086e-04 - mse: 7.7086e-04 - val_loss: 4.6018e-04 - val_mse: 4.6018e-04 - 389ms/epoch - 4ms/step

Epoch 36/50

103/103 - 0s - loss: 7.6884e-04 - mse: 7.6884e-04 - val_loss: 4.5810e-04 - val_mse: 4.5810e-04 - 374ms/epoch - 4ms/step

Epoch 37/50

103/103 - 0s - loss: 7.5240e-04 - mse: 7.5240e-04 - val_loss: 4.6063e-04 - val_mse: 4.6063e-04 - 381ms/epoch - 4ms/step

Epoch 38/50

103/103 - 0s - loss: 7.4910e-04 - mse: 7.4910e-04 - val_loss: 4.5822e-04 - val_mse: 4.5822e-04 - 368ms/epoch - 4ms/step

Epoch 39/50

103/103 - 0s - loss: 7.4235e-04 - mse: 7.4235e-04 - val_loss: 4.4666e-04 - val_mse: 4.4666e-04 - 385ms/epoch - 4ms/step

Epoch 40/50

103/103 - 0s - loss: 7.5361e-04 - mse: 7.5361e-04 - val_loss: 4.4947e-04 - val_mse: 4.4947e-04 - 371ms/epoch - 4ms/step

Epoch 41/50

103/103 - 0s - loss: 7.3891e-04 - mse: 7.3891e-04 - val_loss: 4.5411e-04 - val_mse: 4.5411e-04 - 380ms/epoch - 4ms/step

Epoch 42/50

103/103 - 0s - loss: 7.1854e-04 - mse: 7.1854e-04 - val_loss: 4.3896e-04 - val_mse: 4.3896e-04 - 379ms/epoch - 4ms/step

Epoch 43/50

103/103 - 0s - loss: 7.2564e-04 - mse: 7.2564e-04 - val_loss: 4.3702e-04 - val_mse: 4.3702e-04 - 378ms/epoch - 4ms/step

Epoch 44/50

103/103 - 0s - loss: 7.1769e-04 - mse: 7.1769e-04 - val_loss: 4.7473e-04 - val_mse: 4.7473e-04 - 382ms/epoch - 4ms/step

Epoch 45/50

103/103 - 0s - loss: 7.1356e-04 - mse: 7.1356e-04 - val_loss: 4.4865e-04 - val_mse: 4.4865e-04 - 378ms/epoch - 4ms/step

Epoch 46/50

103/103 - 0s - loss: 7.0446e-04 - mse: 7.0446e-04 - val_loss: 4.2275e-04 - val_mse: 4.2275e-04 - 384ms/epoch - 4ms/step

Epoch 47/50

103/103 - 0s - loss: 6.9736e-04 - mse: 6.9736e-04 - val_loss: 4.2445e-04 - val_mse: 4.2445e-04 - 380ms/epoch - 4ms/step

Epoch 48/50

103/103 - 0s - loss: 6.9928e-04 - mse: 6.9928e-04 - val_loss: 4.1869e-04 - val_mse: 4.1869e-04 - 374ms/epoch - 4ms/step

Epoch 49/50

103/103 - 0s - loss: 6.8223e-04 - mse: 6.8223e-04 - val_loss: 4.1971e-04 - val_mse: 4.1971e-04 - 370ms/epoch - 4ms/step

Epoch 50/50

103/103 - 0s - loss: 6.7743e-04 - mse: 6.7743e-04 - val_loss: 4.8369e-04 - val_mse: 4.8369e-04 - 383ms/epoch - 4ms/step

2022-11-15 20:41:02.847965: W tensorflow/core/grappler/costs/op_level_cost_estimator.cc:690] Error in PredictCost() for the op: op: "Softmax" attr { key: "T" value { type: DT_FLOAT } } inputs { dtype: DT_FLOAT shape { unknown_rank: true } } device { type: "CPU" vendor: "AuthenticAMD" model: "240" frequency: 3194 num_cores: 16 environment { key: "cpu_instruction_set" value: "SSE, SSE2" } environment { key: "eigen" value: "3.4.90" } l1_cache_size: 32768 l2_cache_size: 524288 l3_cache_size: 16777216 memory_size: 268435456 } outputs { dtype: DT_FLOAT shape { unknown_rank: true } }

Test RMSE: 189.232

Test MAPE: 1.764

Test R2: 0.981

Test MAE: 152.840

Process finished with exit code 0

 

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]张立峰,刘旭.基于CNN-GRU神经网络的短期负荷预测[J].电力科学与工程,2020,36(11):53-57

[2]姚程文,杨苹,刘泽健.基于CNN-GRU混合神经网络的负荷预测方法[J].电网技术,2020,44(9):3416-3423

[3]高翱,李国玉,撖奥洋,周生奇,魏振,张智晟.基于Adam算法优化GRU神经网络的短期负荷预测模型[J].电子设计工程,2022,30(09):180-183+188.DOI:10.14022/j.issn1674-6236.2022.09.038.

[4]姚程文,杨苹,刘泽健.基于CNN-GRU混合神经网络的负荷预测方法[J].电网技术,2020,44资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取【请看主页然后私信】

相关文章
|
27天前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的青少年网络使用情况分析及预测系统
本研究基于Python大数据技术,构建青少年网络行为分析系统,旨在破解现有防沉迷模式下用户画像模糊、预警滞后等难题。通过整合多平台亿级数据,运用机器学习实现精准行为预测与实时干预,推动数字治理向“数据驱动”转型,为家庭、学校及政府提供科学决策支持,助力青少年健康上网。
|
2月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
193 2
|
30天前
|
机器学习/深度学习 数据采集 存储
概率神经网络的分类预测--基于PNN的变压器故障诊断(Matlab代码实现)
概率神经网络的分类预测--基于PNN的变压器故障诊断(Matlab代码实现)
234 0
|
30天前
|
机器学习/深度学习 人工智能 算法
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
109 0
|
1月前
|
机器学习/深度学习 数据采集 边缘计算
基于灰色神经网络的预测方法
基于灰色神经网络的预测方法
100 0
|
1月前
|
传感器 机器学习/深度学习 数据采集
【航空发动机寿命预测】基于SE-ResNet网络的发动机寿命预测,C-MAPSS航空发动机寿命预测研究(Matlab代码实现)
【航空发动机寿命预测】基于SE-ResNet网络的发动机寿命预测,C-MAPSS航空发动机寿命预测研究(Matlab代码实现)
148 0
|
2月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
309 0
|
2月前
|
机器学习/深度学习 并行计算 算法
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
|
2月前
|
机器学习/深度学习 缓存 算法
2025年华为杯A题|通用神经网络处理器下的核内调度问题研究生数学建模|思路、代码、论文|持续更新中....
2025年华为杯A题|通用神经网络处理器下的核内调度问题研究生数学建模|思路、代码、论文|持续更新中....
384 1
|
2月前
|
机器学习/深度学习 传感器 算法
【表面粗糙度】基于粒子群PSO算法优化-BP神经网络的表面粗糙度研究(Matlab代码实现)
【表面粗糙度】基于粒子群PSO算法优化-BP神经网络的表面粗糙度研究(Matlab代码实现)
208 7

热门文章

最新文章

推荐镜像

更多