Hiện tại, tôi sử dụng Matlab 7.0, để có thế sử dụng tốt và hiểu về ma trận trong matlab, tốt nhất bạn nên vào phần Help(F1)->Matlab->Getting Started->Matrix and Array để xem, hay bạn có thể Download từ trang chủ của Matlab các nội dung cần thiết để tìm hiểu.
Bây giờ, ta đi vào nội dung chính: Cách khai báo một hàm truyền trong Matlab. (Bạn có thể tham khảo trong phần Help->Control System Toolbox) Thường ta dùng bốn cách sau:
- Dạng hàm truyền (Tranfer Function)
- Dang zêrô-cưc-đô lơi (zero-pole-gain)
- Dạng dữ liệu đặc tính tần số (frequency response data)
- Dạng không gian trạng thái (State space)
Để có thể xem chi tiết, bạn đánh các hàng lệnh tương ứng trong Matlab như sau:
>>doc tf
>>doc zpk
>>doc frd
>>doc ss
Các lệnh trên sẽ cho ta cái nhìn chung nhất về các mô hình LTI.
Ví dụ: để khai báo hàm truyền g=(s+5)/(s^2+5*s+6) ta có thể làm theo cách sau:
>>g=tf([1 5],[1 5 6])
Hoăc
>>ts=[1 5]
>>ms=[1 5 6]
Sau đó
>>g=tf(ts,ms)
Nên sử dụng dạng này khi tử số và mẫu số là tổng: Sigma(a×sⁿ)
Với mô hình zpk, ta có thể khai báo hàm truyền dưới dạng sau:
- zero=các zero của hàm truyền
- pole=các cực của hàm truyền
- k=độ lợi DC của hàm truyền
Nên sử dụng cách này khi hàm truyền có dạng là tích của các tổng.
g(s)=k×Π̣(s-zi)/Π(s-pj)
Xét ví dụ sau:
>>z=[-1 -2]
>>p=[-0.1 -5 -6]
>>k=10
>>g=zpk(z,p,k)
Sẽ có kết quả là:
Zero/pole/gain:
10 (s+1) (s+2)
——————-
(s+0.1) (s+5) (s+6)
Ta cũng có thể kết hợp các mô hình trên với nhau, ta cũng có thể sử dụng mô hình tf dưới dạng như sau:
- s=tf(‘s’)
- Sau đó khai báo hàm truyền như dạng syms trong matlab
Xét ví dụ:
>>s=tf(‘s’)
Transfer function:
s
>> g=10*(s+1)/(s^2+5*s+2)/(s+8)
Kết quả thu được:
Transfer function:
10 s + 10
————————
s^3 + 13 s^2 + 42 s + 16
- Hàm truyền nối tiếp: lệnh >>series(g1,g2) hoặc >>g1*g2 %với g1 và g2 là hai hàm truyền đã được khai báo trước.
- Hàm truyền song song: lệnh >>parallel(g1,g2) hoặc >>g1+g2 %với g1 và g2 là hai hàm truyền đã được khai báo trước.
- Cấu trúc hồi tiếp lệnh: >>gk=feedback(g,h) %tương đương với gk=g/(1+g*h)
- Với hồi tiếp dương, dùng thêm >>gk=feedback(g,h,1) %tương đương với gk=g/(1-g*h)
Các tính chất khác của hàm truyền như tính trễ (delay) có thể khai báo dưới dạng:
>>g.iodelay=T hoặc >>g.inputdelay=Ti hoặc >>g.outputdelay=To
Ta có thể xem các tính chất của hàm truyền nhờ lệnh >>get(g)
- Cách làm đơn giản hàm truyền nhờ lệnh >>minreal.
- Cách lấy giá trị cực, zêro và độ lợi nhờ lệnh >>zpkdata(g,’v’)
- Cách lấy giá trị các hệ số tử và mẫu của hàm truyền >>tfdata(g,’v’)
Tham khảo thêm ở LTI Models các mô hình ss(A,B,C,D), frd(response,frequency)
Tham chiếu các lệnh sau:
>>doc ss
>>doc frd
Pingback: Matlab và ứng dụng trong điều khiển tự động « KHVT