tstats.m

来自「ipr函数库与仿真实验程序,都是要用到的库函数。」· M 代码 · 共 54 行

M
54
字号
function [Mo,tp,tr,ts,ess] = tstats(t,y,ref)%       Takes a time vector and a corresponding %       step-response vector and returns time-domain %       performance measures.%Inputs: t - time vector %        y - step response corresponding to t%        ref - reference level at steady-state%Outputs: Mo - percent overshoot%         tp - time to peak%         tr - rise time (10% - 90%)%         ts - settling time (2%)%         ess - percent steady-state Error%%If the reference level, 'ref', is not specified, 1.0 is assumed.%%%%%%%%%%%%%%%%%%% tstats.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,itp] = max(y);tp = t(itp);Mo = 100*(maxy - ref)/ref;i10 = min(find(y>=0.1*ref));i90 = min(find(y>=0.9*ref));if i10 > 0 & i90 < length(y)  delt = t(2)-t(1);  t10 = t(i10) - delt*(y(i10)-0.10*ref)...		/(y(i10)-y(i10-1));  t90 = t(i90) - delt*(y(i90)-0.90*ref)...		/(y(i90)-y(i90-1));  tr  = t90 - t10;else  tr = -9.9999;end%is = max(find(abs(y - ref*ones(size(y)))/ref>0.02));if is < length(y)  ts = t(is + 1);else  ts = -9.9999;end%ess = abs(100*(y(length(y)) - ref)/ref);%%%%%%%%%%

⌨️ 快捷键说明

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