MATLAB App Designer基础教程Matlab GUI界面设计基础课程学习笔记(2)——风功率(滑动平均滤波)
在进行了一段时间App Designer学习过后,我将APP设计应用到我的专业上面上来,该文章用来记录我的设计过程。
界面采用简单的控件布局,后续主要采用回调函数对其进行控制。

读取数据后可得出如下结果:

读取数据:value=readtable("Original wind power data.xlsx");%采用readtable读取事先准备好的excel数据。
绘图命令: plot(app.UIAxes_Original1,i,value.Var1,'k-',"LineWidth",0.5);
plot(app.UIAxes_Original2,i,value.Var2,'k-',"LineWidth",0.5);%采用MATLAB基本绘图命令,但在APP Designer中需要先指定坐标轴,这样才能让图像显示在相应的地方。
同时还有鼠标悬浮提示box以及错误、警示、help等提示box——msgbox('这是一个画图APP','关于','Help')。
总体构建还是比较容易的,整体代码为:
choice=questdlg('请问您要退出吗?','提示框','YES','NO','NO');
switch choice
case 'YES'
delete(app.UIFigure);
return
case 'NO'
return
end
%%上述为退出提示框。
%%下面的为实现滑动平均滤波的程序代码。
value = app.Button_window_stable_power.Value;
t=0:1:1439;
Pn=50;%风电场装机容量
%自适应滑动平均,满足国家并网波动限值,此典型日曲线风电场装机容量为50MW
%利用自适应滑动平均得出并网功率
Pwind=readtable("Original wind power data.xlsx");
% plot(app.UIAxes_window3,i,Pwind.Var1);
% plot(app.UIAxes_window4,i,Pwind.Var2);
Pgrid=[];%存放并网功率
w=11;%初始窗口宽度
while(1)
Pgrid=smooth(Pwind.Var1,w);
a=[];%存储一分钟的功率波动
b=[];%存储十分钟的功率波动
j=1;
for i=1:1440-1
a(i)=fluction1min(Pgrid(i),Pgrid(i+1),Pn);
if rem(i,10)==0
b(j)=fluction10min(Pgrid(i-9:i),Pn);
j=j+1;
end
end
if max(a)<(Pn/10) && max(b)<(Pn/3)
break;
else
w=w+1
end
end
% subplot(2,1,1);
plot(app.UIAxes_window3,t,Pwind.Var1,'k-',t,Pgrid,'r-.',"LineWidth",0.5);
%%
%下一组数据滑动窗口处理
W=15;%初始窗口宽度
while(1)
PGrid=smooth(Pwind.Var2,W);
A=[];%存储一分钟的功率波动
B=[];%存储十分钟的功率波动
j=1;
for i=1:1440-1
A(i)=fluction1min(PGrid(i),PGrid(i+1),Pn);
if rem(i,10)==0
B(j)=fluction10min(PGrid(i-9:i),Pn);
j=j+1;
end
end
if max(A)<(Pn/10) && max(B)<(Pn/3)
break;
else
w=w+1
end
end
% subplot(2,1,1);
plot(app.UIAxes_window4,t,Pwind.Var2,'k-',t,PGrid,'r-.',"LineWidth",0.5);
更多推荐
所有评论(0)