Matlab求解给定系统稳态误差

对于如图线性系统,应用拉式变换终值定理,可以很容易求出系统给定稳态误差

ess=lim e(t) (t-无穷大)=limsE(s)(s-0)=limS(R(S)-C(S))= limS(R(S)-W(S)*R(S))= limsR(s)(1-Wb(s))

其中Wb(s)= W(S)/(1+H W(S))

在Matlab中,用函数dcgain可求得系统给定稳态误差Dcg=dcgain(num,den)

 

例求系统在典型输入信号1(t),t,0.5t^2下给定稳态误差

num=[77];den=[ conv ( conv ( [ 1 0 ] ,[ 1 3] ) , [1 4 5] ) ];

W(s)=tf(num,den)

 

 

源代码如下:

num1=[7 7];den1=[conv(conv([ 1 0] ,[1 3]) , [1 4 5])];
w=tf(num1,den1);                         %w=W(s)
ww=feedback(w,1,-1);                      %ww=Wb(s)
www=tf(ww.den{1}-ww.num{1} , ww.den{1} );   %www=1- Wb(s)
 
num2=[ 1 0 ];den2=1;
 
w2=tf(num2 ,den2);
wwww=www*w2;                        % s ( ( 1-Wb ( s) )
 
%当输入为1(t)时的给定稳态误差
num3=[1];den3=[1 0];
w3=tf(num3,den3);
dcg1=dcgain(wwww*w3)
 
%当输入为t时的给定稳态误差
num4=[1];den4=[1 0 0];
w4=tf(num4,den4);
dcg2=dcgain(wwww*w4)
 
 
%当输入为1(t)时的给定稳态误差
num5=[1];den5=[1 0 0 0];
w5=tf(num5,den5);
dcg3=dcgain(wwww*w5)


你可能感兴趣的:(Matlab,自动控制原理)