Matlab分析系统的动态性能

如下分析a、b两系统的动态性能,求其动态性能指标

在这里插入图片描述

function index_data = compare_step3_10(str,K1,K2,K3,T)
% 函数功能:画出单位阶跃响应图,并求出动态指标 
% 函数参数:
% str : 系统a或b选择
% K1,K2,K3,T
% 函数返回值:
% index_data = [超调量 峰值时间tp 调节时间ts]
%%%%%%%%%%%系统建模%%%%%%%%%%%%%%%%%%%%
num = [K2];
den = conv([1 0],[T 1]);
G1 = tf([K2],den);%各个子方块系统模型
H1 = tf([K3 0],[1]);
G2 = [K1];

sysa1 = feedback(G1,H1,-1);%反馈
sysa2 = series(G2,sysa1);%串联
sysa = feedback(sysa2,1,-1);%(a)系统的传递函数 

sysb1 = parallel(G2,H1);%并联
sysb2 = series(sysb1,G1);
sysb = feedback(sysb2,1,-1);

t = 0:0.01:3;%设定仿真时间
% figure('name','单位阶跃响应')%创建一个窗口
if(str == 'a')
    step(sysa,t);
    [y,x] = step(sysa,t);%
end
if(str == 'b')
    step(sysb,t);
    [y,x] = step(sysb,t);%
end

%%%%%%%%%%%求解动态指标%%%%%%%%%%%%%%%%%%%%
maxy = max(y);%响应的最大偏移量
yss = y(length(x));%响应的终值
pos = 100*(maxy - yss)/yss;%求超调量
for i = 1:301
    if y(i) == maxy
        n = i;end
end
tp = (n-1)*0.01;%峰值时间
y1 = 1.05*yss;
y2 = 0.95*yss;

i = n;%%%不能i = 0;因为在峰之前有超调量,也就是ts > tp;!!!
while i < 301
    i = i + 1;
    if y(i) >= y2 && y(i) <= y1   
       break;  
    end    
end
ts = (i-1)*0.01;%求调节时间
index_data = [pos tp ts];
hold on;  % 将曲线保持在图形中
grid on;%grid off/on关闭或打开图形网格线
xlabel('t');ylabel('c(t)');title('单位阶跃响应');
% legend('(a)单位阶跃响应','(b)单位阶跃响应') 

1.命令窗口输入:



figure('name','单位阶跃响应')%创建一个窗口

compare_step3_10('a',5,20,1,1)

compare_step3_10('a',5,10,1,1)

compare_step3_10('a',5,5,1,1)

compare_step3_10('a',5,5,5,1)

在这里插入图片描述
输出: [超调量 峰值时间tp 调节时间ts]

ans =
     0     3     3
ans =
    2.0481    0.7100    0.7200
ans =
    9.4815    0.7900    1.0500
ans =
     0     3     3

2.命令窗口输入:

figure('name','单位阶跃响应')%创建一个窗口
compare_step3_10('a',20,5,1,1)
compare_step3_10('a',10,5,1,1)
compare_step3_10('a',5,5,1,1)
compare_step3_10('a',1,5,1,1)

在这里插入图片描述

ans =
   37.2140    0.3300    0.5100
ans =
   22.9653    0.4900    0.7400
ans =
    9.4815    0.7900    1.0500
ans =
     0     3     3

3.命令窗口输入:

figure('name','单位阶跃响应')%创建一个窗口
compare_step3_10('b',20,5,1,1)
compare_step3_10('b',10,5,1,1)
compare_step3_10('b',5,5,1,1)
compare_step3_10('b',1,5,1,1)

在这里插入图片描述

ans =
   42.5673    0.2800    0.4600
ans =
   30.8005    0.3700    0.6400
ans =
   19.4643    0.5100    0.8900
ans =
     0     3     3
  • 8
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值