Matlab时序数据稳态状态判别及获取稳定工况数据
来源:网络收集 点击: 时间:2024-08-31首先读入样本时序数据表格到MATLAB矩阵表格中保存。
程序如下:
xyb=xlsread(样本数据.xlsx);
在工作区可以看到数据是否保存到了xyb矩阵。

然后计算样本数据的行数。
使用size函数,程序如下:
n=size(xyb,1)
1的含义为行数,改为2就是计算列数。
在工作区或命令窗口可以看到计算结果。

接下来以样本数据的第一列为例进行稳态分析。首先将第一列赋值到wy矩阵。
程序如下:
wy=xyb(:,1);
运行结果如下图所示。

然后设定参数值λ,根据数据情况来确定,每次取10个数进行稳态分析 ,计算这10个数的平均值,计算这10个数的标准差,如果标准差小于λ*平均值则这组数据是稳态数据,继续执行保存,将新样本中稳态数据赋值给wt数组。
程序如下:
c=0;
d=0;
r=0.03; %设定参数值λ,根据数据情况来确定
for i=1:n
if mod(i,10)==0 %每次取10个数进行稳态分析
c=c+1; %取样次数累计
wymean(c,:)=mean(wy(i-9:i,:)); %计算这10个数的平均值
sd(c,:) = std(wy(i-9:i,:)); %计算这10个数的标准差
if sd(c,:)r*wymean(c,:) %如果标准差小于λ*平均值则这组数据是稳态数据,继续执行保存
d=d+1; %稳态窗口累计
s=d*10;
wt(s-9:s,:)=xyb(i-9:i,:); %将新样本中稳态数据赋值给wt数组
end
end
end
运行结果如下图所示。

再将稳态数据wt写入到稳态数据表格。
使用xlswrite函数,程序如下:
xlswrite(稳态数据.xlsx,wt);
运行结果如下图所示。

完整的程序代码及截图如下所示:
%************对时序参数样本数据进行稳态状态的判别,得到稳定状态下的运行数据。**************
%**********以第一列因变量为例采用滑动窗口法进行稳态检测****************
%**********数据窗口长度选择为10,若窗口内数据的波动情况较大,则处于非稳态,否则处于稳态。依次向后移动窗口**********************
xyb=xlsread(样本数据.xlsx); %读入样本数据
n=size(xyb,1); % 求样本数据的行数
wy=xyb(:,1); % 以样本数据的第一列为例进行稳态分析
c=0;
d=0;
r=0.03; %设定参数值λ,根据数据情况来确定
for i=1:n
if mod(i,10)==0 %每次取10个数进行稳态分析
c=c+1; %取样次数累计
wymean(c,:)=mean(wy(i-9:i,:)); %计算这10个数的平均值
sd(c,:) = std(wy(i-9:i,:)); %计算这10个数的标准差
if sd(c,:)r*wymean(c,:) %如果标准差小于λ*平均值则这组数据是稳态数据,继续执行保存
d=d+1; %稳态窗口累计
s=d*10;
wt(s-9:s,:)=xyb(i-9:i,:); %将样本中稳态数据赋值给wt数组
end
end
end
xlswrite(稳态数据.xlsx,wt); % 将稳态数据wt写入到稳态数据表格
%**************************************************

设定参数值λ,根据数据情况来确定
滑动窗口大小如10个数据,根据数据情况来确定
MATLAB数据稳态判别获取稳定数据滑动窗口法版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_1175354.html