6.2 校正前单位脉冲响应
>>K=1000;
>>den=[0.0001 0.1010 1 0]; >>G1=tf(k,den);
>>G0=feedback(G1,1); >>t=0:1:100; >>impulse(G0,t); >>grid;
11
由阶跃响应求动态性能参数
要计算出阶跃响应动态性能参数,就编写求解阶跃响应动态性能参数的MATLAB程序,其中调用了函数perf(),perf.m保存在matlab7.0\\work\\文件夹下,其中key=1时,表示选择5%误差带,当key=2时表示选择2%误差带。y,t是对应系统阶跃响应的函数值与其对应的时间。函数返回的是阶跃响应超调量sigma(即σ)、峰值时间tp、调节时间ts。 perf.m编制如下: function [sigma,tp,ts]=perf(key,y,t)
%MATLAB FUNCTION PROGRAM perf.m %
%Count sgma and tp [mp,tf]=max(y); cs=length(t); yss=y(cs);
sigma= (mp-yss)/yss tp=t(tf) %Count ts i=cs+1; n=0;
while n==0, i=i-1; if key==1, if i==1, n=1;
elseif y(i)>1.05*yss, n=1;
12
end;
elseif key==2, if i==1, n=1;
elseif y(i)>1.02*yss, n=1; end; end end; t1=t(i);
cs=length(t); j=cs+1; n=0;
while n==0, j=j-1; if key==1, if j==1, n=1;
elseif y(j)<0.95*yss, n=1; end;
elseif key==2, if j==1, n=1;
elseif y(j)<0.98*yss, n=1; end; end; end; t2=t(j);
if t2 if t1>t2; ts=t1 end elseif t2>tp, if t2 >> global y t; 13 >> s1=tf(1000,[0.0001 0.101 1 1000]); >> sys=feedback(s1,1); >> figure(1); >> step(sys); >> [y,t]=step(sys); >> perf(1,y,t) 结果为:sigma =-2.0943 tp =0.4686 ts =0.4978 ans = -2.0943 6.3 校正前单位斜坡信号 在Simulink 窗口里菜单方式下的单位斜坡响应的动态结构图如下: 校正前单位斜坡响应曲线如图所示: 七、校正后动态性能分析 校正后开环传递函数: G(s)Gc(s)? 16.94s?1000 0.0000002124s^4?0.0003145s^3?0.1031s^2?s14 7.1 校正后单位阶跃响应 程序如下: >> n1=[16.94 1000]; >> d1=conv(conv(conv([1 0],[0.1 1]),[0.001 1]),[0.002124 1]); >> s1=tf(n1,d1); sys=feedback(s1,1); step(sys) 结果为: 7.2 校正后单位冲击响应 程序如下: >> n1=[16.94 1000]; >> d1=conv(conv(conv([1 0],[0.1 1]),[0.001 1]),[0.002124 1]); >> s1=tf(n1,d1); >> sys=feedback(s1,1); >> impulse(sys) 结果为: 15