Phụ lục 3: ĐÁNH GIÁ CHẤT LƯỢNG HỆ THỐNG ĐIỀU KHIỂN

  • Tìm độ lợi DC dùng lệnh   >>dcgain(g)
  • Tìm độ vọt lố dùng hàm pot(g)
  • Tìm thời gian quá độ dùng hàm settling_time(g)
  • Tiêu chuẩn tích phân tuyệt đối sai lệch dùng hàm IAE(g)
  • Tiêu chuẩn tích phân của tích thời gian nhân với trị tuyệt đối sai lệch dùng hàm ITAE(g)
Các hàm trên được để dưới định dạng text(.txt)
Bạn cần load hàm tf2sym để có thể chạy được các hàm trên.

Comments

comments

This entry was posted in Matlab. Bookmark the permalink.

5 Responses to Phụ lục 3: ĐÁNH GIÁ CHẤT LƯỢNG HỆ THỐNG ĐIỀU KHIỂN

  1. Pingback: Matlab và ứng dụng trong điều khiển tự động « KHVT

  2. Nguyễn Văn Cảnh says:

    Chào anh Bùi Trung Hiếu
    tìm thời gian quá độ, như anh hướng dẫn dùng hàm settling_time
    em đã viết lệnh trong M file nhưng vẫn chưa biết cách chạy
    em đã load hàm như sau:
    load hàm tf2sym
    load hàm settling_time
    cụ thể:
    viết hàm settling_time trong M file và lưu với tên settling_time
    viết hàm tf2sym trong M file và lưu với tên tf2sym
    trong cửa sổ Command
    gõ lệnh tf2sym để load
    gõ lệnh settling_time
    để gọi hàm
    Em làm như vậy còn thiếu thao tác gì không?
    Rất mong nhận được hồi âm!
    Em Cảnh

    % hàm tìm thời gian quá độ
    function[tset]=settling_time(g,stardard)
    %This function compute settling time, input data is tranfer function, error
    %stardard (0.02 or 0.05 or other) if stardard=null, I get: stardard=2%
    %——————————————————-|%
    %|(C)2005 Bui Trung Hieu |%
    %|Website: http://www.khvt.com |%
    %|Email: hieu@khvt.com |%
    %——————————————————-|%

    gtxl=freqresp(g,0);
    if(nargin==1)
    stardard=0.02;
    end

    ymin=gtxl*(1-stardard);
    ymax=gtxl*(1+stardard);
    [y,t]=step(g);
    for k=length(y):-1:1
    if ((y(k)>ymax)|y(k)f(x)
    %——————————————————-|%
    %|(C)2005 Bui Trung Hieu |%
    %|Website: http://www.khvt.com |%
    %|Email: hieu@khvt.com |%
    %——————————————————-|%

    exponent=g.iodelay;
    [z,p,fac]=zpkdata(g,’v’);
    f=sym(‘1’);
    syms x
    k=1;
    while(k<=length(z))
    f=f*(x-z(k));
    k=k+1;
    end
    k=1;
    while(k<=length(p))
    f=f/(x-p(k));
    k=k+1;
    end
    f=f*fac*exp(-exponent*x);
    %%End function

    • KHVT says:

      em phải nhập hàm giống như cấu trúc yêu cầu: function[tset]=settling_time(g,stardard)thì mới tìm được giá trị.
      g – transfer function,
      standard = error standard

    • Kyanna says:

      This is the perfect way to break down this infromtaoin.

  3. doiemxui says:

    Đầu tiên bạn phải nhập vào hàm truyền của hệ thống kín là g
    Nhập vào giá trị sai lệch tĩnh, standar=0.05 (hoặc một giá trị khác)
    Mình ví dụ nha (cho mình copy 1 đoạn nha bạn “KHVT”)

    Wh=tf(8,[0.0025 0.5125 2.52 4 2]);
    g=feedback(Wh,1,-1);
    standard=0.05;
    gtxl=freqresp(g,0);
    if(nargin==1)
    standard=0.02;
    end
    ymin=gtxl*(1-standard);
    ymax=gtxl*(1+standard);
    [y,t]=step(g);
    for k=length(y):-1:1
    if ((y(k)>ymax)|y(k)<ymin)
    tset=t(k);
    break;
    end
    if (k==1)
    error('Loi nhap du lieu!')
    tset=null;
    end
    end
    fprintf('thoi gian qua do là :%f\n',tset);

Leave a Reply

Your email address will not be published. Required fields are marked *