H
پسندها
0

ارسال های پروفایل آخرین فعالیت ارسال ها درباره

  • سلام بیا این یک نمونه که قبلا خودم نوشتم مشابه سوال شماست
    clear;
    close all;
    clc;


    A=[0 , 1 , 0 , 0
    0 , 0 ,-1 , 0
    0 , 0 , 1 , 0
    0 , 0 , 5 , 0]


    B=[0
    1
    0
    2];

    C=[1 0 0 0];

    D=0;

    sys1=ss(A,B,C,D);
    G=tf(sys1)
    %step(G)
    P=pole(sys1);

    q=sum(real(P)>0);
    if q>0
    disp([' ' num2str(q) ' ghotb napayedar darad '])
    end

    %% ---


    OV= input ( ' overshot matlop ra vared konid : ' )

    Ts= input ( ' settling time matlop ra vared konid : ' )
    a=log(OV)
    zita = sqrt(a^2/(a^2+pi^2))
    Wn = 4/(zita*Ts)
    a = solve(['x^2+2*' num2str(zita) '*' num2str(Wn) '*x+'...
    num2str(Wn) '^2=0']);
    a =double(fix(1000.*a)/1000);

    DesiredPoles=[a(1) a(2)];

    K=place(A,B,DesiredPoles);

    Acl=A-B*K;

    H=ss(Acl,B,C,D);

    S=stepinfo(H);

    f.SettlingTime=S.SettlingTime
    f.Overshoot=S.Overshoot


    موفق باشی
  • بارگذاری...
  • بارگذاری...
  • بارگذاری...
بالا