Sayfalar

matlab da routh hurwıtz metodu uygulaması

Program routh hurwitz kararlılık ölçütünü uygulamak için verilen transfer fonksiyonuna ait matris tabloyu oluşturmasını sağlar. Programın bu hali verilen tf'nin kararlı olup olmadığını söylememktedir. Matris tabloya bakıp kendimiz yorumlayarak kararlılığını buluyoruz. Başka bir başlıkta tf 'nin kök sayısını ve kararlılığını bulan programı yayınlayacağım. İlgilenen arkadaşlara kolay gelsin..

function zx= routh
disp('katsayıları köşeli parentez içerisinde girniz. Örnek [1 2 1 4]')
mt = input('');

%mt = [1 8 18 24 41 -32 -60];
n = length(mt);
if mod(n,2) == 1
    s = ((n-1)/2) + 1;
else
    s = (n/2);
end
mat = zeros(n , s);
a=1;
for i=1:n
    if a > n
        break
    end
    mat(1 , i) = mt(a);
    a=a+2;
end
b=2;
for e=1:n-1
    if b > n
        break
    end
    mat(2,e)=mt(b);
    b=b+2;
end
s;
n;
ozd=0;
t=0;
tur=0;
turev=0;
for d=3:n
    for f=1:s-1
        if mat(d,f)==0
        mat(d,f)=deter(d,f,mat,ozd);
        t = t + mat(d,f);
        end
    end
    if t==0 &  d <n-2
        ozd=2;
        w=1;
        d;
        for r=1:s-1
            tur(w)=mat(d,r);
            if length(tur) < s
                tur(w+1)=0;
                w=w+2;
            end
        end
        tur;
        turev = polyder(tur);
        x=1;
        for y=1:s-1
            if x<length(turev)
            mat(d+1,y)=turev(x);
            x=x+2;
            end
        end
    end
    t=0;
end
mat
end

% <------Determinant------->

function v = deter(x,y,z,ozd)
v = ((z(x-1,1)*z(x-2,y+1))-(z(x-2,1)*z(x-1,y+1)))/z(x-1,1);
if v==0
v=eps;
end
v;
end
% <----------------------->

Hiç yorum yok:

Yorum Gönder