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

📄 tempsimumain.m

📁 vb开发的神经网络
💻 M
📖 第 1 页 / 共 5 页
字号:
    if get(handles.checkboxGrid,'value')
        set(handles.axes1,'XGrid','on','YGrid','on');
    else
        set(handles.axes1,'XGrid','off','YGrid','off');
    end  
           
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    % 单条带钢仿真 结束
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


    % 多条带钢仿真 开始
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
elseif get(handles.btnMultiSimu,'value')==1
    % 判断是否新图显示
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    if get(handles.checkboxFigure,'value')
        hNew=figure('Name',['绘制子图  带钢数: ',get(handles.editStripNo,'String')],...
            'NumberTitle','off');

        axes('parent',hNew);
        set(gcf,'color','w');
    else
        axes(handles.axes1);
    end
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    % 仿真的带钢序号及仿真的带钢数目
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%
    sign=handles.stripListVal1:handles.stripListVal2;
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%


    % 初始化
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Temp_simu=zeros(length(sign),16);
    Temp_act=zeros(length(sign),1);
    Temp_pre=zeros(length(sign),16);
    Temp_deform_inc=zeros(length(sign),7);
    Temp_heat_trans=zeros(length(sign),7);
    Temp_radiat=zeros(length(sign),8);
    Temp_cooling=zeros(length(sign),8);
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%

    if isequal(get(handles.UIMenuModel1,'checked'),'on')

        % 进行现场模型仿真
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        progressbar                                     % 调用自制的进度条
        tt=0;
        for iflag=sign,  
            tt=tt+1;
            pause(0.1)
            [Temp_simu(tt,:),Temp_act(tt,:),Temp_pre(tt,:),...
                Temp_deform_inc(tt,:),Temp_heat_trans(tt,:),...
                Temp_radiat(tt,:),Temp_cooling(tt,:)]=...
                TempSimuCalc(iflag,Mparam,Eparam,data);
            progressbar(tt/length(sign))       % 更新进度条
        end
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        

    elseif isequal(get(handles.UIMenuModel2,'checked'),'on')

        % 切换至差分模型目录
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        path_pwd=handles.PathDefault;
        path=strcat(handles.PathDefault,'\DiffModel');
        cd(path);
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%


        % 进行差分模型仿真
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        progressbar                                     % 调用自制的进度条
        tt=0;
        for iflag=sign,
            tt=tt+1;
            [Temp_simu(tt,:),Temp_act(tt,:),Temp_pre(tt,:),...
                Temp_deform_inc(tt,:),Temp_heat_trans(tt,:),...
                Temp_radiat(tt,:),Temp_cooling(tt,:)]=...
                TempDiffSimul(iflag,data);
            progressbar(tt/length(sign))       % 更新进度条
        end
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        cd(path_pwd);
    end

    % 进行离线自适应
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    if isequal(get(handles.UIMenuSelfAdapt,'Checked'),'on')
        Temp_adapt=selfadapt(Temp_act,Temp_simu(:,16));
        Temp_simu(:,16)=Temp_adapt;
    end
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    
    % 按观测点选择作图显示
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
    str = {'RDT','F1入','F2入','F3入','F4入','F5入',...
        'F6入','F7入','FDT'};
    [s_Temp,v_Temp] = listdlg('name','多条带钢的各轧制点温度','PromptString','选择:',...
        'SelectionMode','single','ListString',str);
    if v_Temp
        switch s_Temp
            case 1
                plot(Temp_simu(:,1),'-*b');
                %                 axis([-inf,inf,min(Temp_simu(:,1))-50,max(Temp_simu(:,1))+50]);
                title('粗轧出口温度','fontweight','bold','fontsize',10);
            case 2
                plot(Temp_simu(:,2),'-*b');
                %                 axis([-inf,inf,min(Temp_simu(:,2))-50,max(Temp_simu(:,2))+50]);
                title('F1入口温度','fontweight','bold','fontsize',10);
            case 3
                plot(Temp_simu(:,4),'-*b');
                %                 axis([-inf,inf,min(Temp_simu(:,4))-50,max(Temp_simu(:,4))+50]);
                title('F2入口温度','fontweight','bold','fontsize',10);
            case 4
                plot(Temp_simu(:,6),'-*b');
                %                 axis([-inf,inf,min(Temp_simu(:,6))-50,max(Temp_simu(:,6))+50]);
                title('F3入口温度','fontweight','bold','fontsize',10);
            case 5
                plot(Temp_simu(:,8),'-*b');
                %                 axis([-inf,inf,min(Temp_simu(:,8))-50,max(Temp_simu(:,8))+50]);
                title('F4入口温度','fontweight','bold','fontsize',10);
            case 6
                plot(Temp_simu(:,10),'-*b');
                %                 axis([-inf,inf,min(Temp_simu(:,10))-50,max(Temp_simu(:,10))+50]);
                title('F5入口温度','fontweight','bold','fontsize',10);
            case 7
                plot(Temp_simu(:,12),'-*b');
                %                 axis([-inf,inf,min(Temp_simu(:,12))-50,max(Temp_simu(:,12))+50]);
                title('F6入口温度','fontweight','bold','fontsize',10);
            case 8
                plot(Temp_simu(:,14),'-*b');
                %                 axis([-inf,inf,min(Temp_simu(:,14))-50,max(Temp_simu(:,14))+50]);
                title('F7入口温度','fontweight','bold','fontsize',10);
            case 9
                plot(Temp_simu(:,16),'.-b'),hold on,plot(Temp_pre(:,16),'.-g'),hold on,plot(Temp_act(:,1),'.-r'),hold off;
                %                 axis([-inf,inf,min(Temp_simu(:,16))-50,max(Temp_simu(:,16))+50]);
                legend('仿真值', '预计算','实际值');
                title('精轧温度仿真比较','fontweight','bold','fontsize',10);
        end
        xlabel('带钢数','FontSize',9);
        ylabel('温度(`C)','FontSize',9);
        if get(handles.checkboxGrid,'value')
            grid on;
        else
            grid off;
        end
        if get(handles.checkboxHold,'value')
            hold on;
        else
            hold off;
        end
    end
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   
    % 多条带钢仿真 结束
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
end

% 单条或多条带钢仿真 结束
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


% 仿真结果处理存入‘精轧温度计算’控件的Userdata
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FM.Temp_simu=Temp_simu;
FM.Temp_act=Temp_act;
FM.Temp_pre=Temp_pre;
FM.Temp_deform_inc=Temp_deform_inc;
FM.Temp_heat_trans=Temp_heat_trans;
FM.Temp_radiat=Temp_radiat;
FM.Temp_cooling=Temp_cooling;
assignin('base','FMSimResult',FM);
set(hObject,'Userdata',[]);
set(hObject,'Userdata',FM);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


% '查看结果' 子窗体的控件设置
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 单条带钢查看
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if get(handles.btnMultiSimu,'value')==0
    % '查看结果' 子窗体的控件设置
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Sresult.stripNo=data(sign,1);
    Sresult.stripTime='2005-01-19';
    Sresult.width=data(sign,61);
    Sresult.x_eps=data(sign,7:13);
    Sresult.thick=data(sign,14:21);
    Sresult.x_force=data(sign,44:50);
    Sresult.x_roll_torque=data(sign,37:43);
    Sresult.rf_time=data(sign,4);
    Sresult.water_status=dec2bin(data(sign,60));
    Sresult.xva=data(sign,6);

    Sresult.RDT=data(sign,2);
    Sresult.F1=Temp_simu(2);
    Sresult.F2=Temp_simu(4);
    Sresult.F3=Temp_simu(6);
    Sresult.F4=Temp_simu(8);
    Sresult.F5=Temp_simu(10);
    Sresult.F6=Temp_simu(12);
    Sresult.F7=Temp_simu(14);
    Sresult.FDT=Temp_simu(16);

    assignin('base','Sresult',Sresult);
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    
% 多条带钢查看
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    
elseif get(handles.btnMultiSimu,'value')==1
    Sresult.N=abs(handles.stripListVal2-handles.stripListVal1)+1;
    Sresult.minSimu=min(Temp_simu(:,16));
    Sresult.maxSimu=max(Temp_simu(:,16));
    Sresult.meanSimu=mean(Temp_simu(:,16));
    Sresult.stdSimu=std(Temp_simu(:,16));

    Sresult.minAct=min(Temp_act(:,1));
    Sresult.maxAct=max(Temp_act(:,1));
    Sresult.meanAct=mean(Temp_act(:,1));
    Sresult.stdAct=std(Temp_act(:,1));

    Sresult.maxAbsError=max(abs(Temp_act(:,1)-Temp_simu(:,16)));
    Sresult.maxRelError=100*max(abs(Temp_act(:,1)-Temp_simu(:,16))./Temp_act(:,1));
    Sresult.mse=sqrt(mse(Temp_act(:,1)-Temp_simu(:,16)));
    %     Sresult.mse=sqrt((Temp_act(:,1)-Temp_simu(:,16))'*(Temp_act(:,1)-Temp_simu(:,16))/Sresult.N);
    Sresult.mae=mae(Temp_act(:,1)-Temp_simu(:,16));

    assignin('base','Sresult',Sresult);

    %         Sresult.N=abs(handles.stripListVal2-handles.stripListVal1)+1;
    %     Sresult.minSimu=min(Temp_simu(:,16));
    %     Sresult.maxSimu=max(Temp_simu(:,16));
    %     Sresult.meanSimu=mean(Temp_simu(:,16));
    %     Sresult.stdSimu=std(Temp_simu(:,16));
    %
    %     Sresult.minAct=min(Temp_act(:,16));
    %     Sresult.maxAct=max(Temp_act(:,16));
    %     Sresult.meanAct=mean(Temp_act(:,16));
    %     Sresult.stdAct=std(Temp_act(:,16));
    %
    %     Sresult.maxAbsError=max(abs(Temp_act(:,16)-Temp_simu(:,16)));
    %     Sresult.maxRelError=100*max(abs(Temp_act(:,16)-Temp_simu(:,16))./Temp_act(:,16));
    %     Sresult.mse=mse(Temp_act(:,16)-Temp_simu(:,16));
    %     %     Sresult.mse=sqrt((Temp_act(:,16)-Temp_simu(:,16))'*(Temp_act(:,16)-Temp_simu(:,16))/Sresult.N);
    %     Sresult.mae=mae(Temp_act(:,16)-Temp_simu(:,16));
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    
    
%计算精轧区温度变化  结束
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


% --- Executes on button press in pushbutton7.
function pushbutton7_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton7 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)


% --- Executes on button press in pushbutton8.
function pushbutton8_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton8 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)


% --- Executes on button press in btnDeform.
function btnDeform_Callback(hObject, eventdata, handles)
% hObject    handle to btnDeform (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

%计算变形温升 开始
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


% 读入已计算的结果
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FM=get(handles.btnFMTempSimu,'userdata');
Temp_deform_inc=FM{1}.Temp_deform_inc;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


% 单条或多条带钢仿真
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% 判断是否新图显示
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if get(handles.checkboxFigure,'value')
    hNewR=figure;
    axes('parent',hNewR);
    set(gcf,'color','w');
else
    axes(handles.axes1);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

if get(handles.btnMultiSimu,'value')==0
    % 单条带钢仿真 开始
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


    %     sign=handles.stripListVal;
    %
    %     if isequal(get(handles.UIMenuModel1,'checked'),'on')
    %         % 进行非差分模型仿真
    %         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %         [Temp_simu,Temp_act,Temp_pre,Temp_deform_inc,Temp_heat_trans,Temp_radiat,...
    %             Temp_cooling]=TempSimuCalc(sign,Mparam,Eparam,data);
    %         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %     elseif isequal(get(handles.UIMenuModel2,'checked'),'on')
    %         path_pwd=handles.PathDefault;
    %         path=strcat(handles.PathDefault,'\DiffModel');
    %         cd(path);
    %         % 进行差分模型仿真
    %         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %         [Temp_simu,Temp_act,Temp_pre,Temp_deform_inc,Temp_heat_trans,Temp_radiat,Temp_cooling]=TempDiffSimul(sign,data);
    %         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %         cd(path_pwd);
    %     end

    bar(Temp_deform_inc(1,:));
    ylabel('温度(`C)','FontSize',9);
    if get(handles.checkboxGrid,'value')
        grid on;
    else

⌨️ 快捷键说明

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