原创matlab递归神经网络RNN实现桨距控制控制风力发电机组研究数据分析报告论文附代码数据Word格式文档下载.docx
- 文档编号:17105738
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:10
- 大小:452.92KB
原创matlab递归神经网络RNN实现桨距控制控制风力发电机组研究数据分析报告论文附代码数据Word格式文档下载.docx
《原创matlab递归神经网络RNN实现桨距控制控制风力发电机组研究数据分析报告论文附代码数据Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《原创matlab递归神经网络RNN实现桨距控制控制风力发电机组研究数据分析报告论文附代码数据Word格式文档下载.docx(10页珍藏版)》请在冰豆网上搜索。
matlab实现
%%RNN
clc;
clear;
closeall;
setup;
dbstopiferror
[X,T]=simpleseries_dataset;
net=layrecnet(1:
2,10);
[Xs,Xi,Ai,Ts]=preparets(net,X,T);
net=train(net,Xs,Ts,Xi,Ai);
view(net)
Y=net(Xs,Xi,Ai);
perf=perform(net,Y,Ts)
numFeatures=12;
numHiddenUnits=100;
numClasses=9;
layers=[...
sequenceInputLayer(numFeatures)
lstmLayer(numHiddenUnits,'
OutputMode'
'
last'
)
fullyConnectedLayer(numClasses)
softmaxLayer
classificationLayer];
sequence'
numHiddenUnits=125;
numResponses=1;
fullyConnectedLayer(numResponses)
regressionLayer];
inputSize=[28281];
filterSize=5;
numFilters=20;
numHiddenUnits=200;
numClasses=10;
sequenceInputLayer(inputSize,'
Name'
input'
sequenceFoldingLayer('
fold'
convolution2dLayer(filterSize,numFilters,'
conv'
batchNormalizationLayer('
bn'
reluLayer('
relu'
sequenceUnfoldingLayer('
unfold'
flattenLayer('
flatten'
lstm'
fullyConnectedLayer(numClasses,'
fc'
softmaxLayer('
softmax'
classificationLayer('
classification'
)];
lgraph=layerGraph(layers);
lgraph=connectLayers(lgraph,'
fold/miniBatchSize'
unfold/miniBatchSize'
);
numHiddenUnits1=125;
numHiddenUnits2=100;
lstmLayer(numHiddenUnits1,'
dropoutLayer(0.2)
lstmLayer(numHiddenUnits2,'
sequenceLengths=cellfun(@(X)size(X,2),XTrain);
[sequenceLengthsSorted,idx]=sort(sequenceLengths);
XTrain=XTrain(idx);
mu=mean([XTrain{:
}],2);
sigma=std([XTrain{:
}],0,2);
XTrain=cellfun(@(X)(X-mu)./sigma,XTrain,'
UniformOutput'
false);
digitDatasetPath=fullfile(matlabroot,'
toolbox'
nnet'
...
'
nndemos'
nndatasets'
DigitDataset'
imds=imageDatastore(digitDatasetPath,...
IncludeSubfolders'
true,...
LabelSource'
foldernames'
numTrainingFiles=750;
[imdsTrain,imdsTest]=splitEachLabel(imds,numTrainingFiles,'
randomize'
imageInputLayer([28281])
convolution2dLayer(5,20)
reluLayer
maxPooling2dLayer(2,'
Stride'
2)
fullyConnectedLayer(10)
options=trainingOptions('
sgdm'
MaxEpochs'
20,...
InitialLearnRate'
1e-4,...
Verbose'
false,...
Plots'
training-progress'
net=trainNetwork(imdsTrain,layers,options);
YPred=classify(net,imdsTest);
YTest=imdsTest.Labels;
accuracy=sum(YPred==YTest)/numel(YTest)
%
useGPU=true;
dataType='
single'
;
backward=true;
input=InputLayer(struct('
batchSize'
5,'
useGPU'
useGPU,'
dataType'
dataType,'
backward'
backward,'
reverse'
true));
embedd1=EmbeddingLayer(struct('
hidden_dim'
512,'
input_dim'
input.vocabSize,'
backward));
rec1=RecurrentLayer(struct('
rec2=RecurrentLayer(struct('
loss=SoftmaxLayer(struct('
%train
MaxIter=10000;
history_cost=zeros(1,MaxIter);
fori=1:
MaxIter
tic;
target=input.fprop(struct('
false,'
fprop'
loss.fprop(rec2.fprop(rec1.fprop(embedd1.fprop(target,size(target,2)),size(target,2)),size(target,2)),size(target,2));
history_cost(1,i)=gather(loss.getCost(target));
display(history_cost(1,i));
embedd1.bprop(rec1.bprop(rec2.bprop(loss.bprop(target))));
loss.update(@SGD);
rec2.update(@SGD);
rec1.update(@SGD);
embedd1.update(@SGD);
toc;
end
模拟结果
传统的比例积分(PI)型控制器由于其简单的控制结构,易于设计和低廉的成本而在工业中广泛使用。
然而,如果受控设备是高度非线性的或者期望的轨迹随着更高的频率变化,则PI型控制器可能不具有令人满意的性能。
对于变速风力涡轮机,通常采用机械致动器来改变叶片的桨距角以控制功率系数。
动态性能测试
图(a)显示了轴速;
可以观察到系统跟踪额定发电机速度下的最大功率。
图6(b)显示了最大功率跟踪控制的验证。
图风速剖面的模拟结果:
(a)风廓线速度跟踪,(b)最大功率跟踪控制信号,(c)功率跟踪误差和(d)功率系数Cp。
效率性能测试
图显示了效率性能。
考虑到中高速范围内的转换器损耗几乎为80%。
模拟效率性能:
结论
本文介绍了用于变速风能系统的驱动PMSG系统的设计。
速度控制器设定发电机扭矩指令,这是通过电流控制回路实现的。
所提出的系统已经在实时应用中实现,具有商用PMSG和模拟风力涡轮机行为的直流驱动器。
仿真结果表明该系统具有良好的性能。
动态性能不仅在稳态而且在快速输入时显示出转速的准确估计,而传统的PI控制器不能确定各种风速的不确定性模型。
本研究成功实现了模糊滑模速度和RNN桨距控制器,用于控制WECS。
即使参数不确定,该技术也可以保持系统稳定性并达到所需的性能。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 原创 matlab 递归 神经网络 RNN 实现 控制 风力 发电 机组 研究 数据 分析 报告 论文 代码
![提示](https://static.bdocx.com/images/bang_tan.gif)
链接地址:https://www.bdocx.com/doc/17105738.html