💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
⛳️赠与读者
👨💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。当哲学课上老师问你什么是科学,什么是电的时候,不要觉得这些问题搞笑。哲学是科学之母,哲学就是追究终极问题,寻找那些不言自明只有小孩子会问的但是你却回答不出来的问题。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能让人胸中升起一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它居然给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。
或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎
💥1 概述
1. 研究背景与问题定义
风电功率预测受气象因素、时空相关性及数据非线性影响,传统模型存在超参数敏感性强、局部最优陷阱等问题。SCSO算法通过模拟沙猫低频噪声探测和群体捕猎行为,可高效优化CNN-BiLSTM-Attention模型的超参数组合,提升预测精度。多变量输入单步预测聚焦于利用历史时刻的多维特征(风速、温度等)预测下一时刻功率,避免多步预测的误差累积。

2. 核心算法与模型结构
2.1 SCSO算法原理与优化机制
- 生物行为模拟:
沙猫通过低频噪声(0-2kHz)探测地面/地下猎物,算法将其抽象为:- 全局勘探阶段(|R|>1) :依据灵敏度范围随机搜索,位置更新公式:
其中 R 控制探索与开发的平衡。 - 局部开发阶段(|R|≤1) :围绕最优解攻击猎物,引入轮盘赌法选择随机角度 θθ 更新位置,避免局部最优。
- 全局勘探阶段(|R|>1) :依据灵敏度范围随机搜索,位置更新公式:
- 参数自适应:过渡参数 RR 随迭代动态调整,实现搜索强度平滑切换。
2.2 CNN-BiLSTM-Attention模型结构

- CNN层:
一维卷积核提取局部空间特征(如风速突变模式),ReLU激活函数解决梯度消失:
其中 w 为卷积核权重,b 为偏置。 - BiLSTM层:
双向LSTM捕捉前后向时间依赖,遗忘门/输入门/输出门调控细胞状态:
- Attention机制:
动态分配特征权重,增强关键时间步影响:

2.3 SCSO优化目标与参数选择
优化变量包括:
- CNN卷积核数量/大小
- BiLSTM隐藏层神经元数
- 学习率、Attention权重系数
目标函数为最小化预测误差(RMSE/MAPE)。
3. 多变量输入特征工程
3.1 输入变量选择
| 变量类型 | 具体特征 | 预处理方法 |
|---|---|---|
| 气象变量 | 风速(多高度)、风向(sin/cos)、温湿度 | 高度标准化 |
| 时间序列变量 | 历史功率滞后项(Pt−1,Pt−2) | 滑动均值平滑 |
| 时空交互特征 | 风机坐标与风速的交叉项 | 空间网格编码 |

3.2 特征优化策略
- 重要性筛选:随机森林(RF)评估特征贡献度,剔除冗余变量。
- 动态赋权:特征注意力机制(FA)根据历史状态调整输入权重。
- 数据分解:VMD/CEEMDAN降低序列非平稳性(需扩展至多变量场景)。
4. 单步预测特性与评估指标
-
单步 vs 多步预测:
单步预测仅使用真实历史值(t−1至t−N),避免预测值回传导致的误差累积,滞后性弱于多步预测。
5. 性能验证与对比实验
5.1 SCSO优化效果
- 参数优化对比:
SCSO优化后关键参数收敛至更优解(如BiLSTM神经元数从100→128,卷积核大小从3→5)。 - 误差降低:
较未优化模型,SCSO使RMSE降低15-25%(多风场实测数据验证)。
5.2 主流模型性能对比
| 模型 | RMSE(%) | MAPE(%) | 优势场景 |
|---|---|---|---|
| SVR | 7.92 | 6.13 | 小样本高维数据 |
| LSTM | 7.80 | 6.05 | 简单时序依赖 |
| CNN-BiLSTM(未优化) | 7.55 | 5.77 | 空间特征提取 |
| SCSO-CNN-BiLSTM-Att | 5.38 | 3.83 | 多变量非线性时序 |
注:基准数据来自风电集群预测公开数据集。
6. 创新点与挑战
- 创新性:
- 首次将SCSO应用于Attention权重系数优化,增强关键特征聚焦能力;
- 构建“时空交叉项”输入特征,提升风机集群空间相关性建模精度。
- 挑战与改进方向:
- 数据层面:需融合地形湍流、大气边界层物理模型;
- 算法层面:SCSO参数自适应调整(如Halton序列初始化、Levy飞行增强全局搜索);
- 模型层面:引入二次分解(VMD-CNN-BiLSTM)处理极端波动。
结论
SCSO优化CNN-BiLSTM-Attention模型通过:
- 智能参数搜索:利用沙猫行为机制突破超参数局部最优;
- 多变量动态赋权:Attention机制融合时空特征重要性;
- 单步预测架构:抑制误差累积,提升短期预测可靠性。
实验表明该模型在RMSE/MAPE等指标上显著优于传统方法,为高比例新能源电网调度提供技术支撑。未来可结合物理信息神经网络(PINN)进一步强化模型可解释性。
📚2 运行结果

采用前10个样本的所有特征,去预测下一个样本的发电功率。





部分代码:
layers0 = [ ...
% 输入特征
sequenceInputLayer([numFeatures,1,1],'name','input') %输入层设置
sequenceFoldingLayer('name','fold') %使用序列折叠层对图像序列的时间步长进行独立的卷积运算。
% CNN特征提取
convolution2dLayer([3,1],16,'Stride',[1,1],'name','conv1') %添加卷积层,64,1表示过滤器大小,10过滤器个数,Stride是垂直和水平过滤的步长
batchNormalizationLayer('name','batchnorm1') % BN层,用于加速训练过程,防止梯度消失或梯度爆炸
reluLayer('name','relu1') % ReLU激活层,用于保持输出的非线性性及修正梯度的问题
% 池化层
maxPooling2dLayer([2,1],'Stride',2,'Padding','same','name','maxpool') % 第一层池化层,包括3x3大小的池化窗口,步长为1,same填充方式
% 展开层
sequenceUnfoldingLayer('name','unfold') %独立的卷积运行结束后,要将序列恢复
%平滑层
flattenLayer('name','flatten')
bilstmLayer(25,'Outputmode','last','name','hidden1')
selfAttentionLayer(1,2) %创建一个单头,2个键和查询通道的自注意力层
dropoutLayer(0.1,'name','dropout_1') % Dropout层,以概率为0.2丢弃输入
fullyConnectedLayer(1,'name','fullconnect') % 全连接层设置(影响输出维度)(cell层出来的输出层) %
regressionLayer('Name','output') ];
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。
[1]许亮,任圆圆,李俊芳.基于NGO-CNN-BiLSTM神经网络的动态质子交换膜燃料电池剩余使用寿命预测[J].汽车工程师, 2024(003):000.
[2]王彦快,孟佳东,张玉,等.基于GADF与2D CNN-改进SVM的道岔故障诊断方法研究[J].铁道科学与工程学报, 2024, 21(7).
[3]范高锋,王伟胜,刘纯,等.基于人工神经网络的风电功率预测[J].中国电机工程学报, 2008, 28(34):6.DOI:CNKI:SUN:ZGDC.0.2008-34-020.
[4]徐曼,乔颖,鲁宗相.短期风电功率预测误差综合评价方法[J].电力系统自动化, 2011, 35(12):20-26.
🌈4 Matlab代码、数据
资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取



926

被折叠的 条评论
为什么被折叠?



