function [pOverShoot,nOverShoot,steadyError,setTime,riseTime] = timeIndex(time,point,type)
%求解阶跃响应时域指标 超调 逆超调 稳态误差 调节时间 上升时间
% type=1调节时间2% type=1调节时间5%
if type == 1
k = 0.02;
elseif type == 2
k = 0.05;
end
pointNum = length(point);
for i = floor(pointNum*9/10):1:pointNum
if (point(i)-point(i-1)) > 0.01
disp('未达到稳态,函数不正确');
break;
else
flag = i;
end
end
if flag == pointNum
steadyState = mean(point(floor(pointNum*9/10):pointNum));
maxState = max(point);
pOverShoot = (maxState-steadyState)/steadyState;
nOverShoot = min(point);
steadyError = steadyState-1;
setPerTime = 0;
for i = 2:1:pointNum
c(1) = 0;
c(i) = (1-k)*point(pointNum)-point(i);
if c(i)*c(i-1)<0
if abs(c(i)) < abs(c(i-1))
setPerTime = i;
else
setPerTime = i-1;
end
end
end
setTime = time(setPerTime);
tenPerTime = 0;
nintyPerTime = 0;
for i = 2:1:pointNum
a(1) = 0; b(1) = 0;
a(i) = 0.1*point(pointNum)-point(i);
b(i) = 0.9*point(pointNum)-point(i);
if a(i)*a(i-1) < 0
if abs(a(i)) < abs(a(i-1))
tenPerTime = i;
else
tenPerTime = i-1;
end
end
if b(i)*b(i-1) < 0
if abs(b(i)) < abs(b(i-1))
nintyPerTime = i;
else
nintyPerTime = i-1;
end
end
if tenPerTime ~= 0 && nintyPerTime ~= 0
break;
end
end
riseTime = time(nintyPerTime)-time(tenPerTime);
end
functionProgram.rar_指标函数_时域指标
版权申诉
183 浏览量
2022-07-15
11:05:47
上传
评论
收藏 1KB RAR 举报
刘良运
- 粉丝: 70
- 资源: 1万+
最新资源
- 下面提供一些C语言的入门示例代码,并附有注释,以帮助理解每个部分的功能 1. Hello World程序 #include
- 下面提供一些C语言的入门示例代码,并附有注释,以帮助理解每个部分的功能 1. Hello World程序 #include
- 下面提供一些C语言的入门示例代码,并附有注释,以帮助理解每个部分的功能 1. Hello World程序 #include
- C语言是一种广泛使用的计算机编程语言,它是许多其他编程语言的基础 以下是一些C语言入门的例子和代码,适合初学者学习和实践
- C语言是一种广泛使用的计算机编程语言,它是许多其他编程语言的基础 以下是一些C语言入门的例子和代码,适合初学者学习和实践
- C语言是一种广泛使用的计算机编程语言,它是许多其他编程语言的基础 以下是一些C语言入门的例子和代码,适合初学者学习和实践
- C语言 入门例子和代码学习
- C语言 入门例子和代码学习
- C语言 入门例子和代码学习
- 怎么用python做一个批卷系统
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈