- 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.
Pingback: Matlab và ứng dụng trong điều khiển tự động « KHVT
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
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
This is the perfect way to break down this infromtaoin.
Đầ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);