我是靠谱客的博主 勤奋手套,最近开发中收集的这篇文章主要介绍MATLAB函数step()对单位负反馈系统求阶跃响应函数step()说明代码实例一实例二,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
利用MATLAB绘制单输入LTI系统的阶跃响应,输入开环传递函数。在指定时间区间内绘出阶跃响应曲线,计算出上升时间
t
r
t_{r}
tr 、峰值时间
t
p
t_{p}
tp、超调量
σ
%
sigma%
σ%、调整时间
t
s
t_{s}
ts。
需要安装Control System Toolbox™工具包,基于函数step()实现。
函数step()说明
sys=tf(N,D);
[y,t] = step(sys,Tfinal);
sys需要由前置Control System Toolbox™工具包内函数tf()生成。
N为开环增益G(s)的分子多项式系数向量。
D为开环增益G(s)的分母多项式系数向量。
[y,t]为阶跃响应。Tfinal为指定结束时间,可省略。
代码
function [] = stepres(n,d,tfinal,delta)
sys=tf(n,d);
sys=feedback(sys,1);
if(isstable(sys))%判断是否稳定
[y,t]=step(sys,tfinal);
plot(t,y);grid on
ytr=find(y>=1);
disp('tr=');
disp(t(ytr(1)));%上升时间
[ymax,peak]=max(y);
disp('tp=');
disp(t(peak));%峰值时间
disp('max_overshoot=');
disp(ymax-1); %超调量
s=length(t);
while (y(s)>(1-delta)) && (y(s)<(1+delta))
s=s-1;
end
disp('ts=');
disp(t(s+1));% 调整时间
else
disp('the dynamic system model is not stable')
[y,t]=step(sys,tfinal);
plot(t,y);grid on
end
end
实例一
对于开环传递函数如下的系统
G
(
s
)
=
1.7857
s
(
0.1
s
+
1
)
(
0.5
s
+
1
)
G(s)= frac{1.7857}{s(0.1s+1)(0.5s+1)}
G(s)=s(0.1s+1)(0.5s+1)1.7857
format long
n=1.7857;
d=conv(conv([1 0],[0.1 1]),[0.5 1]);
stepres(n,d,10,0.05);
tr=
1.400000000000000
tp=
2
max_overshoot=
0.220272823945806
ts=
3
实例二
对于开环传递函数如下的系统
G
(
s
)
=
12.5
s
(
0.2
s
+
1
)
(
1
s
+
1
)
G(s)= frac{12.5}{s(0.2s+1)(1s+1)}
G(s)=s(0.2s+1)(1s+1)12.5
format long
n=12.5;
d=conv(conv([1 0],[0.2 1]),[1 1]);
stepres(n,d,20,0.05);
the dynamic system model is not stable
最后
以上就是勤奋手套为你收集整理的MATLAB函数step()对单位负反馈系统求阶跃响应函数step()说明代码实例一实例二的全部内容,希望文章能够帮你解决MATLAB函数step()对单位负反馈系统求阶跃响应函数step()说明代码实例一实例二所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复