2024年4月27日发(作者:)
MATLAB函数定义
D-3-1: routh()—由特征多项式构造劳斯阵列表
function [rtab,info]=routh(den)
info=[];
vec1=den(1:2:length(den)); nrT=length(vec1);
vec2=den(2:2:length(den)-1);
rtab=[vec1; vec2, zeros(1,nrT-length(vec2))];
for k=1:length(den)-2,
alpha(k)=vec1(1)/vec2(1);
for i=1:length(vec2),
a3(i)=rtab(k,i+1)-alpha(k)*rtab(k+1,i+1);
end
if sum(abs(a3))==0
a3=polyder(vec2);
info=[info,'All elements in row ',...
int2str(k+2) ' are zeros;'];
elseif abs(a3(1))
a3(1)=1e-6;
info=[info,'Replaced first element;'];
end
rtab=[rtab; a3, zeros(1,nrT-length(a3))];
vec1=vec2; vec2=a3;
end
D-3-2: hurwitz()—由特征多项式构造胡尔维茨矩阵function
H=hurwitz(den)
n=length(den)-1;
for i=1:n
i1=floor(i/2);
if i==i1*2
hsub1=den(1:2:n+1);
i1=i1-1;
else
hsub1=den(2:2:n+1);
end
l1=length(hsub1);
H(i,:)=[zeros(1,i1),hsub1,zeros(1,n-i1-l1)];
end
D-3-3: posdef()—判定矩阵的正定性
function [key,sdet]=posdef(A)
[nr,nc]=size(A); sdet=[];
for i=1:nr
sdet=[sdet,det(A(1:i,1:i))];
end
key=1;
if any(sdet<=0)
key=0;
end
D-4-1:stepchar()—计算时域响应的性能指标function
[pos,tr,ts,tp]=stepchar(g0,delta)
[y,t]=step(g0);
[mp,ind]=max(y); dimt=length(t); yss=y(dimt);
pos=100*(mp-yss)/yss;
tp=t(ind);
for i=1:dimt
if y(i)>=1
tr=t(i);
break;
end
end;
发布评论