MATLAB实现控制系统的时域分析,及稳定性判断,特征根法,劳斯判别法

      控制系统的时域分析法,即直接在时间域中对系统进行分析,可以提供系统时间响应的全部信息,具有直观、准确的特点。为了研究控制系统的时域特性,经常采用瞬态响应(如阶跃响应、脉冲响应)。

       用MATLAB求系统的瞬态响应时,将传递函数的分子、分母多项式的系数分别以s的降幂排列写为两个数组num、den。由于控制系统分子的阶次m一般小于其分母的阶次n,所以num中的数组元素与分子多项式系数之间自右向左逐次对其,不足部分用零补齐,缺项系数也用零补上。

例如,对于下列系统:

该系统可以表示为两个数组,每一个数组由相应的多项式系数组成,并且以s的降幂排列。求其阶跃响应的MATLAB指令为:

num = [0 0 25];
den = [1 4 25];
step(num,den)
grid

运行结果为:

 同样的,求系统的脉冲响应指令为:impulse(num,den)

        对于系统的稳定性判断,一般有两种方法:

1.直接求根判稳:控制系统稳定的充要条件是其特征方程的根均具有负实部。因此为了判别系统的稳定性就要求出系统特征方程的根,并检验它们是否都具有负实部。

        MATLAB中对多项式求根的函数为roots(),若求以下多项式的根:

则MATLAB指令为:

>> roots([1,10,35,50,24])

运行结果:

ans =

   -4.0000
   -3.0000
   -2.0000
   -1.0000
        可见特征方程的根具有负实部,因而系统为稳定的。

2.劳斯稳定判据:劳斯判据是通过构造系统的劳斯表,依据劳斯表的第一列是否有符号的变化,判断系统的稳定性。若劳斯表的第一列没有符号的变化,则系统是稳定的。

        由于MATLAB中没有自带的构造劳斯表的函数,需要自己编写,以下给出一种实现劳斯表的函数代码:

function R = routh(D)   %R表示劳斯表,D表示特征多项式系数组成的向量

L = length(D);
if rem(L,2)==1
    k=L+1;
else
    k=L;
end

R = zeros(L,k/2);
if rem(L,2)==0
    for j=1:k/2
        R(1,j) = D(2*j-1);
        R(2,j)=D(2*j);
    end
else
    for j=1:(k/2)-1
        R(1,j)=D(2*j-1);
        R(1,k/2)=D(k-1);
        R(2,j)=D(2*j);
    end
end

for i=3:L
    for j=1:k/2-1
        R(i,j)=(R(i-1,1)*R(i-2,j+1)-R(i-2,1)*R(i-1,j+1))/R(i-1,1);
    end
end
R  %在屏幕上显示routh表

以上述多项式为例,由routh判据判定系统的稳定性:

den = [1,10,35,50,24];
r = routh(den)

运行结果:

R =

     1    35    24
    10    50     0
    30    24     0
    42     0     0
    24     0     0

        由系统返回的routh表可以看出,其第一列没有符号的变化,系统式稳定的。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

clear_lantern

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值