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

📄 cal_time_resp.m

📁 其中提到遺傳學的程式碼與應用提供給次淚相向的研究者參考下載
💻 M
字号:
% calculate_time_responses.m
% cal_time_resp.m

    % Rise time calculation
    I1=find(y>0.05*yss); 
    if ~isempty(I1)
        t1=t(I1(1));
    else
        t1=10;
    end;    
    I1=find(y>0.95*yss); 
    if ~isempty(I1)
        t2=t(I1(1));
    else
        t2=80;
    end;    
    rise_time=t2-t1;
    % Overshoot
    ymax=max(y); 
    if ymax<=yss
        ov_shoot=0;
    else
        ov_shoot=(ymax-yss)/yss;
    end;
    ov_shoot;
    % Settling time
    if ov_shoot>1
        set_time=120; % Ocillatory response
    else    
        I1=find(y>=0.98*yss); 
        if ~isempty(I1)
           I1N=length(I1); 
            I2=I1(1):I1(1)+I1N-1; I2=I2';
            I3=I1-I2;
            I4=find(I3>0);
            if ~isempty(I4)
               t1=t(I4(1));
            else
               t1=t(I1(1));
            end;   
        else
            t1=10;
        end;    
        I1=find(y<=1.02*yss); 
        if ~isempty(I1)
            I1N=length(I1); 
            I2=I1(1):I1(1)+I1N-1; I2=I2';
            I3=I1-I2;
            I4=find(I3>0);
            if ~isempty(I4)
               t2=t(I4(1));
            else
               t2=t(I1(1));
            end;   
        else
            t2=80;
        end;    
        set_time=max([t1 t2]);
    end;
% Check ranges
    if rise_time>1 % rise time is in [0 1] sec.
        rise_time=1;
    else
        if rise_time<0
            rise_time=0;
        end;
    end;
    if ov_shoot>=0.2  % Max overshoot is 0.2
        ov_shoot=0.2;
    else
        if ov_shoot<0
            ov_shoot=0;
        end;
    end;
    if set_time>2     % Settling time is in [0 2].
        set_time=2;
    else
        if set_time<0
            set_time=2;
        end;
    end;
    
    %[rise_time set_time ov_shoot]
    %pause

⌨️ 快捷键说明

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