⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 selfadapt.m

📁 该代码主要是实现自适应功能
💻 M
字号:
function Temp_adapt=selfadapt(Temp_act,Temp_cal,thick_class)
% 一次指数平滑法

% Temp_adapt   value after selfadapts
% Temp_act     value by measurement
% Temp_cal     value calculated by model   

[row col]=size(Temp_act);
n=row;
alpha=0.35;

% 3-sigma外的异常点不参与自适应
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
k_real=Temp_act./Temp_cal;

index=judge3sigma(Temp_cal);
k_real(index)=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% 一次指数平滑法,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
k=1;
Temp_adapt(1,1)=Temp_cal(1,1);
for i=2:n
    k=(1-alpha)*k+alpha*k_real(i-1,1);  %指数平滑
    Temp_adapt(i,1)=Temp_cal(i,1)*k;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%


function index=judge3sigma(value)
% Eliminate the data out of range: abs(cal-mean(act))>3*std
% value  data to be judged
% index  return data index out of 3-sigma
value_std=std(value);
value_mean=mean(value);

index=find(abs(value-value_mean)>2*value_std);


function dataprocess
% 按厚度等级1~20,将数据分割
[data varname]=xlsread('.\data\2050\THICK_CLASS\THICK.xls');
for ii=1:20
    eval(['data_thickcls',num2str(ii),'=data(find(data(:,64)==',num2str(ii),'),:);'])
    fn=['.\data\2050\THICK_CLASS\data_thickcls',num2str(ii)];
    dn=['data_thickcls',num2str(ii)];
    xlswrite(fn,varname,'sheet1','A1')
    eval(['xlswrite(fn,',dn,',',strcat(['''','sheet1','''',',','''','A2','''']),')']);
end



function alpha=optm(Temp_act,Temp_cal)
[row col]=size(Temp_act);
n=row;
% 剔除3-sigma外的异常点,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
k_real=Temp_act./Temp_cal;

% index=judge3sigma(Temp_cal);
% k_real(index)=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% 寻优,找出 alpha 的最优点,用粒子群。
%%%%%%%%%%%%%%%%%%%%%%%%%%%
iflag=0;
for alpha=0.01:0.01:1
    iflag=iflag+1;

    % 指数平滑法,
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%
    k=1;
    Temp_adapt(1,1)=Temp_cal(1,1);
    for i=2:n
        k=(1-alpha)*k+alpha*k_real(i-1,1);  %指数平滑
        Temp_adapt(i,1)=Temp_cal(i,1)*k;
    end
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%

    value_mse(iflag)=sqrt(mse(Temp_act(:,1)-Temp_adapt(:,1)));
end
[C,I] = min(value_mse);
alpha=0.01+(I-1)*0.01;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
assignin('base','value_mse',value_mse)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -