function [RouthTable,Conclusion] = routh(polequ)
% 输入:
% polequ = 特征方程向量
% 输出:
% RouthTable = 劳斯表
% Conclusion = 系统是否稳定或存在多少个不稳定的根的结论
% 事例:
% [RouthTable,Con] = routh([1 2 3 4 5])
% RouthTable =
% 1 3 5
% 2 4 0
% 1 5 0
% -6 0 0
% 5 0 0
% Con =
% 所判定系统有 2 个不稳定根!
%
%
n=length(polequ)
polequ=reshape(polequ,1,n)
if mod(n,2)==0
n1=n/2
else
n1=(n+1)/2
polequ=[polequ,0]
end
routh=reshape(polequ,2,n1)
RouthTable=zeros(n,n1)
RouthTable(1:2,:)=routh
i=3
while 1
% =========特殊情况1(第备颤一列为0,其余列不为0)=====================
if RouthTable(i-1,1)==0 &&sum(RouthTable(i-1,2:n1))~=0
polequ = conv(polequ,[1 3])
n=length(polequ)
if mod(n,2)==0
n1=n/2
else
n1=(n+1)/2
polequ=[polequ,0]
end
routh=reshape(polequ,2,n1)
RouthTable=zeros(n,n1)
RouthTable(1:2,:)=routh
i=3
end
% ==========计算劳斯表===========================================
ai=RouthTable(i-2,1)/RouthTable(i-1,1)
for j=1:n1-1
RouthTable(i,j)=RouthTable(i-2,j+1)-ai*RouthTable(i-1,j+1)
end
% ==========特殊情况2(全0行)======================================
if sum(RouthTable(i,:))==0
k=0
l=1
F=zeros(1,n1)
while n-i-k>=0
F(l)=n-i+1-k
k=k+2
l=l+1
end
RouthTable(i,:)=RouthTable(i-1,:).*F(1,:)
end
% =========更新==================================================
i=i+1
if i>n
break
end
end
% =============outhput===========
r=find(RouthTable(:,1)<0)
if isempty(r)==1
Conclusion='所要判定系统稳定!'
else
n2=length(r)
m=n2
for i=1:n2-1
if r(i+1)-r(i)==1
m=m-1
end
end
str1='仿裤败所判定系纯简统有 '
if r(n2)==n
str2=num2str(m*2-1)
else
str2=num2str(m*2)
end
str3=' 个不稳定根!'
Conclusion = [str1,str2,str3]
end
在MATLAB命令窗口中输入:
n=11.96d=conv([1 0],conv([0.1 1],[0.51 1]))
equ=dequ(4)=d(4)+n
[RouthTable,Conclusion] = routh(equ)
则计算结果:
RouthTable =
0.05101.0000
0.6100 11.9600
0.0001 0
11.9600 0
Conclusion =
所要判定系统稳定!
同学你好,很高兴能回答你的问题。
1.劳斯表是什么?
劳斯表即劳斯判定依据,用数列的第一列的符号变化判别明宽系统稳定性的判据。劳斯表构成课参见高教版《自动控制原理》一书。
2.劳斯表的构成图:
3.劳斯表则弊稳定的判定依据是什么?
系统稳定的充分必要条件是劳斯表的第一列数的符号完全相同,如果劳斯表的第一列数的符号不完全相同,则系统不稳定。而且,系统正实部特征根的个数等于劳斯表第一列数的符号变化次数。
4.使用劳斯表要注意什么?
(1)劳斯表中某一行的第一列数为0其余全不为0。这是可用一个很小的正数ε代替激盯亮,然后继续列劳斯表。
(2)劳斯表中某一行全为0,可用上一行的数构成辅助多项式,并对变量求导,得到新的多项式,并用这个多项式代替全为0的那一行。
这是个比较难一两句就讲清楚的问题,请你参见http://jpkc.njust.edu.cn/kzgc/3%A3%AD5.htm。劳斯判据是1877年Roth提出来的一种判断线性定常控制系统稳定性的代数判据,这里只介绍方法不证明,证明涉及到高等代数的理论。
劳斯判据的三个步骤数颤:
① 列写系统的特征方程式;
② 列写劳斯表;
③ 根据劳斯表判断控制系统的稳定性。
⑴ 列写系统的特征方程
⑵ 劳斯表
a0 a2 a4 ……薯喊败
a1 a3 a5 ……
b1 b2 b3 ……
c1 c2 c3 ……
…
…
…
表中
……
可以证明:在劳斯表中将某一行中所有元素同时乘以某一正数,不影响系统的稳定性的判断。(这样处理往往可以简化计算)
⑶ 定性的判断
若劳斯表中第一列的各元素均大于零,则特征方程的所有根位于左半s平面,即系统稳定。
若劳斯表中第一列中存在着零元素或小于零的元素,系统则不稳定,劳渗手斯表中第一列符号变化的次数即是系统在右半平面的极点个数。
3.5.4.2 递推的劳斯判据
与劳斯判据的思路和方法完全相同,仅只是在总结劳斯表的列写上,归纳出下面的递推形式,便于计算机处理或计算。
通项 = - 偶数
判断:表中若第一列的数(即 )均大于零,这时系统稳定。否则系统不稳定。第一列变换符号的次数表明了系统在右半平面极点的个数。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)