匿名使用者
匿名使用者 發問時間: 電腦與網際網路程式設計 · 10 年前

Ziegler-Nichols問題~

請問..如何使用Ziegler-Nichols方法用在PID(Matlab)程式上?謝謝

1 個解答

評分
  • KEN
    Lv 4
    10 年前
    最佳解答

    在余克維的『控制系統分析與設計使用MATLAB』書中有很清楚的說明與程式範例可以參考。

    以下為修改後的程式

    function[Gc,Kp,Ti,Td]=zieg_nich(key,vars)

    Ti=[];

    Td=[];

    if length(vars)==4

    K=vars(1);

    L=vars(2);

    T=vars(3);

    N=vars(4);

    a=K*L/T;

    if key==1

    Kp=1.2/a;

    Ti=2*L;

    Td=L/2;

    end

    elseif length(vars)==3

    K=vars(1);

    Tc=vars(2);

    N=vars(3);

    if key==1

    Kp=0.6*K;

    Ti=0.5*Tc;

    Td=0.12*Tc;

    end

    nn=[Kp*Ti*Td*(N+1)/N,Kp*(Ti+Td/N),Kp];

    dd=Ti*[Td/N,1,0];

    Gc=tf(nn,dd);

    end

    接著從你的系統開迴路步階響應找出K,L,T,N,就可以由剛剛編好的程式以Ziegler-Nichols方法找到PID的參數。

    參考資料: 買的書與自己
還有問題?馬上發問,尋求解答。