利用matlab由开环传递函数求闭环传递函数并求其单位冲击和阶跃响应
例:设有一个系统的开环传递函数如下函数,
并绘制输出阶跃响应曲线和脉冲响应曲线
解:
编程(见:\work\CT_tch\resp_2_20110522)
clear all;
close all;
%%%%%%%%%%%%%%
a0 = [0 0 0 0 0.8 ]; % a0: 开环传递函数分子多项式系数
b1 = [1 0 ] ; % s
b2 = [0.3 1 ] ; %
b3 = [0.5 0.7 1] ; % (0.5 s2 + 0.7s + 1)
b0 = conv(b1,conv(b2,b3)); % b0: 开环传递函数分母多项式系数
%%%% 闭环传递函数
aa = a0 ; % aa:闭环传递函数分子多项式系数
bb = b0 + a0; % bb:闭环传递函数分子多项式系数
disp ('System Closed Loop Transfer Function is :')
aa
bb
%%%% 计算:阶跃响应
t = 0 : 0.1 : 20
y = step (aa, bb, t); % 阶跃响应
%%%% 绘制:阶跃响应
figure(1)
plot(t ,y) ;
title('阶跃响应'); % 标题:阶跃响应
xlabel('时间 /s'); % 横坐标
ylabel('幅值'); % 纵坐标
grid; % Íø¸ñ
%%%% 计算:脉冲响应
figure(2)
yy = impulse (aa, bb, t); % 标题:脉冲响应
plot(t, yy);
title('脉冲响应');
xlabel('时间/s');
ylabel('幅值');
grid; % 网格