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

📄 kstats.m

📁 离散控制系统设计的MATLAB 代码
💻 M
字号:
function [Mo,kp,kr,ks,ess] = kstats(k,y,ref)%KSTATS [Mo,kp,kr,ks,ess] = kstats(t,y,ref)%       Takes a discrete time vector k and a corresponding %       step-response vector y and returns time-domain %       performance measures.%Inputs: k - discrete time vector %        y - step response corresponding to k%        ref - reference level at steady-state%Outputs: Mo - percent overshoot%         kp - time to peak%         kr - rise time (10% - 90%)%         ks - settling time (2%)%         ess - percent steady-state Error%%If the reference level, 'ref', is not specified, 1.0 is assumed.%%%%%%%%%%%%%%%%%%% kstats.m %%%%%%%%%%%%%%%%%%%%%   Discrete-Time Control Problems using        %%       MATLAB and the Control System Toolbox   %%   by J.H. Chow, D.K. Frederick, & N.W. Chbat  %%         Brooks/Cole Publishing Company        %%                September 2002                 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if nargin < 3  ref = 1;  disp('reference value set = 1.0')end%[maxy,ikp] = max(y);kp = k(ikp);Mo = max(100*(maxy - ref)/ref,0);%i10 = min(find(y>=0.1*ref));i90 = min(find(y>=0.9*ref));if i10 > 0 & i90 < length(y)  delk = k(2)-k(1);  k10 = k(i10) - delk*(y(i10)-0.10*ref)...                /(y(i10)-y(i10-1));  k90 = k(i90) - delk*(y(i90)-0.90*ref)...                /(y(i90)-y(i90-1));  kr  = k90 - k10;else  kr = 9.9999;end%is = max(find(abs(y - ref*ones(size(y)))/ref>0.02));if is < length(y)  ks = k(is + 1);else  ks = max(k);end%ess = abs(100*(y(length(y)) - ref)/ref);%%%%%%%%%%

⌨️ 快捷键说明

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