利用matlab由开环传递函数求闭环传递函数并求其单位冲击和阶跃响应.docx
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
利用matlab 由开环传递函数求闭环传递函数并求其单位冲击和阶跃响应
并绘制输出阶跃响应曲线和脉冲响应曲线 解:
编程(见:\work\CT_tch\resp_2_20110522)
clear all;
close all;
%%%%%%%%%%%%%%
a0 = [00000.8];
bl = [10];
b2 = [0.3 1 ];
b3 = [0.5 0.7 1];
bO = conv(bl,conv(b2,b3)); % bO:开环传递函数分母多项式系数 %%%%闭环传递函数
aa = a0;
% aa :闭环传递函数分了多项式系数 bb = bO + aO; % bb :闭环传递函数分了多项式系数 disp ('System Closed Loop Transfer Function is :*)
aa
bb
%%%%计算:阶跃响应
t = 0:0.1 :20
y = step (aa, bb, t);
% 阶跃响应
%%%%绘制:阶跃响应
figure(l)
plot(t ,y);
title 。阶跃响
应); xlabelC
时间 /s');
ylabel(1S 值);
grid ; %%%%计算:
figure(2)
yy = impulse (aa, bb, t);
% 标题:脉冲响应
plot(t, yy); titlcC 脉冲响应); xlabelC 时间/s); ylabel(1S 值);
grid; %网格
%%%%绘制:脉冲响应
wt = logspace (-1,1); % 对数空间「0.1, 10)
例:设有一个系统的开环传递函数如下函数, 01 %aO:开环传递函数分子多项式系数 % s % % (0.5 s2 + 0.7s+ 1) %标题:阶跃响应 %横坐标 %纵坐标 % io,!! 脉冲响应
[mag,phase] = bode (a0 ,b0 ,wt); % 计算:Bode111的幅值和相位
[Gm,Pm,Wcg,Wcm] = margin(aO,bO); % 计算:稳定裕度disp ('System Gain Margin and its associated frequency are
Gm %模值稳定裕度
Wcg %幅值穿越频率,剪切频率,1/s
disp ('System Phase Margin and its associated frequency are : Pm %相位稳定裕度
Wcm % ■兀相位穿越频率,1/s
%%%%绘制:Bode图
figure(3)
Subplot (211); %对数幅值■频率图
amp = 20*logl0(mag); % 20*log(mag), dB
semilogx(wt,amp);
title C对数幅值■频率图);
xlabel C频率 / rad*); ylabel f 幅值 / dB);
grid;
subplot (212); %相位-频率图
semilogx(wt,phase);
title C相位-频率图);xlabel ('频率/ rad*); ylabel('相位/ degree*);
grid;
运行该程序可得系统的单位阶跃和脉冲响应曲线如下,
W 15
图1系统的单位阶跃响应曲线
系统的Bode图如F,
图2 系统的脉冲响应曲线
系统怕篦图幅频
系统伯律图相麹
:
-300
•
■
»
、
1
—
10
图3 系统的Bode图