LỜI NÓI ĐẦU
Ngày nay đất nước ta đang trên đà phát triển về mọi mặt để hòa nhập vào nền văn minh trong các nước tiên tiến ở khu vực và thế giới. Do đó cần sự có mặt của ngành tự động điều khiển để thực hiện công việc với độ chính xác và an toàn cao, một phần nào đó cũng làm giảm bớt sự lao động chân tay của con người.
Cùng với sự phát triển mạnh mẽ của ngành kỹ thuật máy tính và công nghệ thông tin, thì việc ứng dụng máy tính vào để giải những bài toán phức tạp trong hệ thống tự động điều khiển - như hệ thống nhiều ngõ vào và nhiều ngõ ra (MIMO)- thì không khó khăn lắm , mà độ chính xác lại cao hơn hẳn từ đó dẫn đến việc thiết kế và tính toán trở nên dễ dàng trong thời gian ngắn.
Để đóng góp một phần nào đó và tuân theo mục tiêu đào tạo của trường ĐH SƯ PHẠM KỸ THUẬT, người viết đi vào tìm hiểu một phần mềm được ứng dụng khá phổ biến trong nhiều lĩnh vực, trong đó có lĩnh vực tự động điều khiển, đó là MATLAB.
Matlab là một phần mềm rất được ưa chuộng cho các lập trình tính toán trong kỹ thuật hiện nay. Nó hầu như được phổ biến rộng khắp trong các trường đại học ở nhiều nước.Với Matlab công việc tính toán trở nên đơn giản và nhẹ nhàng hơn so với nhiều ngôn ngữ lập trình khác nhờ đã thiết kế sẵn các toolbox giúp cho người sử dụng:
¨ Control System Tollbox: là nền tảng của họ toolbox thiết kế điều khiển bằng Matlab. Nó chứa các hàn cho việc mô phỏng, phân tích và thiết kế các hệ thống trong tự động điều khiển.
¨ Frequency Domain System Identification Tollbox: Bao gồm các M-file giúp cho việc mô phỏng các hệ thống tuyến tính trên cơ sở phép đo đáp ứng tần số của hệ thống.
¨ Fuzzy Logic Tollbox: Cung cấp một tập hợp đầy đủ các công cụ cho việc thiết kế, mô phỏng và phân tích các hệ thống logic mờ (Fuzzy Inferencs).
¨ Higher Order Spectral Analysis Toolbox: cung cấp các công cụ cho việc xử lý tín hiệu dùng phổ bậc cao. Các phương này đặc biệt hữu dụng cho phân tích các tín hiệu có nguồn gốc từ một quá trình phi tuyến hay bị nhiễu phi Gaussian ( non-Gaussian noise) xâm nhập.
¨ Image Processing Toolbox: chứ các công cụ cho việc sử lý ảnh. Nó bao gồm các công cụ cho việc thiết kế các bộ lọc và lưu trữ ảnh, nâng cấp ảnh, phân tích và thống kê.
¨ Model Predictive Control Tollbox: đặc biệt hữu dụng cho các ứng dụng điều khiển với nhiều biến ngõ vào (input) và ngõ ra (output) mà phần lớn có các giới hạn nhất là trog kỹ thuật hóa chất.
¨ Mu-Analysis And Syntheris Tollbox: chứa các công cụ chuyên môn hóa cho điều khiển tối ưu hóa ; Đặc biệt trong lĩnh vực robot cao cấp và các hệ thống đa biến tuyến tính.
¨ Signal Processing Tollbox: chứa các công cụ xử lý tín hiệu. Các ứng dụng bao gồm: Audio (Đĩa compact, băng digital), video (digital HDTV, xử lý và nén ảnh), viễn thông (fax, telephone), y học, địa lý.
¨ Non-linear Control Design Tollbox: cho phép thiết kế các hệ thống điều khiển tuyến tính và phi tuyến, sử dụng kỹ thuật tối ưu hóa trên cơ sở miền thời gian.
¨ Optimization Tollbox: Các lệnh dùng cho sự tối ưu hóa các hàm tuyến tính và phi tuyến tổng quát.
¨ Symbolic Match Toolbox: Bao gồm các công cụ cho việc tính toán trên các biểu thức.
¨ System Identification Toolbox: Tập hợp các công cụ cho ước lượng và nhận dạng (tìm mô hình toán học cho một hệ thống vật lý).
¨ Robust Control System: Các công cụ cho phép phân tích và tổng hợp các hệ thống điều khiển bằng robot.
Ngoài ra còn có các toolbox khác như NAG Foundation Toolbox, Quantitative Feedback Workshop, Spline Toolbox, Statics Toolbox.
Một khả năng khác cần phải nhắc đến của Matlab là biểu diễn data bằng đồ thị hai chiều, ba chiều bằng các lệnh (hàm) khá đơn giản.
65 trang |
Chia sẻ: banmai | Lượt xem: 2596 | Lượt tải: 4
Bạn đang xem trước 20 trang tài liệu Sử dụng MATLAB tạo ra hộp công cụ dùng để giải các bài toán trong tự động điều khiển, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
veõ ñoà thò haøm sin(t) vôùi t=[1;4*pi] ta duøng:
» t=(0:0.05:4*pi);
» y=sin(t);
» plot(t,y)
» title('Do thi ham sin(t)')
» xlabel('Truc thoi gian')
» ylabel('Truc bien do')
» grid on
Keát quaû cho hình 4:
hình 4
VII.2. Veõ nhieàu ñoà thò treân cuøng moät truïc.
Ñaây laø phöông phaùp toát nhaát ñeå so saùnh nhieàu ñoà thò treân cuøng moät ñoà thò.Coù hai caùch thöùc cho vieäc veõ nhieàu doà thò :
a. Neáu chuùng ta caàn veõ nhieàu ñoà thò vôùi cuøng giaù trò hoaønh ñoä, ta coù theå söû duïng leänh plot(X,Y) vôùi :
Neáu Y laø ma traän vaø X laø moät vectô, thì nhöõng coät (hoaëc nhöõng haøng)cuûa ma traän Y ñöôïc veõ öùng vôùi nhöõng giaù trò trong vectô X;
Neáu X laø ma traän vaø Y laø moät vectô, thì nhöõng coät (hoaëc nhöõng haøng)cuûa ma traän X ñöôïc veõ öùng vôùi nhöõng giaù trò trong vectô Y;
Ví duï : veõ ñoà thò haøm y=sint vaø y=cost vôùi t=[0,2*pi] ta thöïc hieän nhö sau:
» t=(0:.1:2*pi)'; % phai chuyen doi thanh moät coät vectô
» y=[sin(t),cos(t)];
» plot(t,y)
Keát quaû nhö hình 5:
hình 5
Chuù yù: Truïc chia ñoä laø töï ñoäng vaø ñöôïc xaùc ñònh treân cô sôû giaù trò lôùn nhaát vaø nhoû nhaát trong ma traän y vaø vectô t phuø hôïp vôùi tung ñoä vaø hoaønh ñoä.
b. Neáu giôùi haïn cuûa hoaønh ñoä khaùc nhau. Thì ta duøng leänh plot vôùi nhieàu ñoái soá ngoõ vaøo nhö sau:
plot(X1,Y1,X2,Y2,...,Xn,Yn)
Ví duï: Veõ ñoà thò haøm sint vôùi t=[0,3] vaø haøm cost vôùi t=[0,4]. Ta thöïc hieän nhö sau:
» t1=(0:.1:3)';
» y1=sin(t1);
» t2=(0:.1:4)';
» y2=cos(t2);
» plot(t1,y1,t2,y2)
Keát quaû nhö hình 6
Hình 6
VII.3. Truïc chia ñoä
Nhö ñaõ noùi ôû treân, truïc chia ñoä laø töï ñoäng.Nhöng ñeå thöïc hieän veõ ñoà thò vôùi truïc chia theo yù muoán chuùng ta neân söû duïng leänh axis.Leänh naøy coù ba chöùc naêng chính:
Leänh axis([xmin,xmax,ymin,ymax]) duøng thay ñoåi truïc hoaønh vaø truïc tung trong khoaûng xmin,xmax vaø ymin,ymax.
Leänh axis(axis) duøng ñeå oån ñònh truïc chia ñoä.
Leänh axis(‘auto’) phuïc hoài laïi chöù naêng chia ñoä töï ñoäng.
Chuù yù : leänh v=axis giöõ giôùi haïn truïc nguoàn trong vectô v. Neáu moät trong nhöõng giôùi haïn coù giaù trò laø inf, thì giaù trò
cuûa truïc coøn laïi cuõng ôû voâ cuøng töông öùng;luùc ñoù ta coù :
axis([inf inf inf inf]) gioáng nhö duøng leänh axis(‘auto’)
* Caùc khaû naêng khaùc cuûa truïc chia :
leänh axis(‘ij’) laø duøng toïa ñoä ma traän vôùi chieàu thaúng döùng cuûa truïc chæ höôùng xuoáng.
leänh axis(‘xy’) laø duøng toïa ñoä Cartesian vôùi chieàu thaúng döùng cuûa truïc chæ höôùng leân.
axis(‘off’) khoâng cho hieän truïc chia ñoä
axis(‘on’) cho hieän truïc chia ñoä
Coù theå duøng leänh zoom ñeå phoùng to töøng chi tieát cuûa ñoà thò baèng caùch duøng chuoät. Khi nhaán nuùt traùi chuoät töùc laø phoùng to vuøng ñoù leân, nhaán nuùt phaûi chuoät ñeå trôû veà tình traïng ban ñaàu. chöùc naêng zoom off taét cheá ñoä phoùng to.
Ñeå veõ moät vectô phöùc (X) trong maët phaúng phöùc ta cuõng coù theå duøng leänh plot(X) keát quaû cuõng gioáng nhö leänh:
plot(real(X),imag(X))
III . öùng duïng MATLAB trong
töï ñoäng ñieàu khieån
>>
Trong chöông naøy chuùng ta ñònh roõ tính chaát ñieàu khieån vôùi nhöõng leänh trong hoäp coâng cuï cuûa heä thoáng töï ñoäng ñieàu khieån coù lieân quan ñeán söï trình baøy trong heä thoáng tuyeán tính baát bieán theo thôøi gian LTI (linear time invariant system) vaø hình thöùc thay ñoåi giöõa chuùng,söï chuyeån ñoåi kieåu thôøi gian töø lieân tuïc sang rôøi raïc, nhöõng ñaëc tính vaän duïng vaø quan saùt, nhöõng hình thöùc giaûm baäc vaø moái lieân laïc giöõa noái tieáp, song song vaø phaûn hoài.
Söï vaän duïng vaø mieâu taû trong heä thoáng moät ngoõ vaøo, moät ngoõ ra(SISO) vaø noät ngoõ vaøo, nhieàu ngoõ ra (SIMO) cuõng seõ deã hieåu, trong khi söû duïng nhöõng leänh töï ñoäng cho heä thoáng nhieàu ngoõ ra seõ trôû neân phöùc taïp töø khi MATLAB khoâng hoaït ñoäng vôùi ma traän ba chieàu.
I. söï mieâu taû trong heä thoáng LTI
Moät heä thoáng LTI ñöôïc mieâu taû döôùi nhieàu hình thöùc khaùc nhau: trong lónh vöïc veà thôøi gian ñöôïc mieâu taû baèng phöông trình vi phaân baäc nhaát (ñöôïc goïi laø traïng thaùi vaøo,ra hay hình thöùc bieán traïng thaùi), trong lónh vöïc phöùc taïp hôn laø hình thöùc haøm truyeàn cuûa heä thoáng. Trong tröôøng hôïp ñaëc bieät, chöùc naêng naøy coù theå ñöôïc vieát nhö tæ soá cuûa hai ña thöùc, baèng caùch tìm nghieäm cuûa chuùng töùc laø duøng cöïc, zero hoaëc giôùi haïn baèng caùch phaân thaønh töøng phaàn nhoû hay söû duïng thaëng dö vaø cöïc.
Trong phaàn naøy, ta quan taâm ñeán moái quan heä trong heä thoáng lieân tuïc theo thôøi gian. Chuùng ta seõ ñöa ra nhöõng hình thöùc mieâu taû trong matlab duøng nhöõng leänh trong ñieàu khieån,töø ñoù ta coù theå hieåu ñöôïc saâu hôn trong heä thoáng rôøi raïc theo thôøi gian.
I.1/ Moâ hình bieán traïng thaùi:
Trong moãi heä thoáng LTI coù theå ñöôïc trình baøy baèng caùch ñaët phöông trình vi phaân baäc nhaát döôùi daïng hình thöùc vectô:
x’= A.x+B.u (3.1)
y = C.x+D.u (3.2)
Trong ñoù x laø vectô traïng thaùi coù kích thöôùc nx , u laø moät vectô ngoõ vaøo coù kích thöôùc nu vaø y laø vectô ngoõ ra coù kích thöôùc laø ny .
Nhö ta ñaõ bieát ma traän laø yeáu toá cô baûn ñaàu tieân cuûa MATLAB. Cho neân, moät heä thoáng trong MATLAB ñöôïc mieâu taû baèng tình traïng vaøo ra töông nhö nhö vieäc aán ñònh boán ma traän A,B,C,D , ñöôïc trình baøy trong coâng thöùc (3.1) vaø (3.2).
Ví duï söï bieán ñoåi trong heä thoáng hai taàng tích phaân nhö hình sau:
u=x1’ x1=x2’ y=x2
ò ò
Chuùng coù theå bieåu dieån döôùi hình thöùc bieán traïng thaùi nhö sau:
Trong MATLAB laø söï bieåu thò sau:
A=[0 1; 1 0];
B=[1 0]’;
C=[0 1];
D=0;
I.2/ Moâ hình ma traän chuyeån ñoåi
Moät söï mieâu taû khaùc trong moät heä thoáng LTI coù theå ñöôïc thi haønh baèng pheùp bieán ñoåi Laplace, nhö trong heä thoáng tín hieäu lieân tuïc theo thôøi gian f(t) ñöôïc ñònh nghóa laø :
¥
F(s) = L(f(t)) = ò f(t)e-stdt
0
Töø (3.1) vaø (3.2) laáy daïo haøm vaø bieán ñoåi laplace. Sau vaøi pheùp bieán ñoåi ñaïi soá ta ñöôïc:
Y(s) = G(s)U(s) = (C(sI-A)-1B+D)U(s)
Trong ñoù G(s) goïi laø ma traän chuyeån ñoåi( hay chöùc naêng chuyeån ñoåi trong heä thoáng SISO)
Noùi toùm laïi trong heä thoáng SISO thì G(s) ñöôïc cho töø tæ soá cuûa hai ña thöùc: Maãu soá coù baäc laø nx, vaø töû soá coù baäc nhoû hôn hoaëc baèng nx . Noù coù khaû naêng aán ñònh baèng hai vecto ñöôïc cho bôûi caùc heä soá trong ña thöùc cuûa töû vaø maãu vaø saép xeáp vôùi soá muõ giaûm daàn theo bieán soá s.
Nhö ví duï sau, neáu chuùng ta muoán mieâu taû döôùi daïng haøm truyeàn:
s+2
G(s)=
s2+2s+7
chuùng ta coù theå aán ñònh nhö sau:
num = [1 2];
den = [1 2 7];
Trong heä thoáng SIMO töû soá cuûa G(s) laø moät vectô cuûa ña thöùc cuûa töû ,hay noùi khaùc hôn laø moät ña thöùc baäc nhaát,trong moãi moät moái quan heä ta coù caùc giaù trò ngoõ ra khaùc nhau. Trong tröôøng hôïp naøy ma traän coù moái quan heä vôùi vectô num; trong tröôøng hôïp ñaëc bieät soá caùc haøng cuûa ma traän naøy laø soá ngoõ ra cuûa heä thoáng, ngöôïc laïi soá coät phaûi coù giaù trò lôùn nhaát giöõa chieàu daøi caùc doøng.
Ví duï ñeå mieâu taû ma traän chuyeån ñoåi cuûa haøm truyeàn:
s+2
s3+3s2+1
G(s)= s3+5s+1
chuùng ta phaûi ñònh nghóa ma traän nhö sau:
num = [0 0 1 2; 1 3 0 1];
den = [1 0 5 1];
ÔÛ tröôøng hôïp naøy ña thöùc ñaõ ñöôïc saép xeáp theo soá muõ giaûm daàn cuûa nhöõng bieán phöùc s vaø ñöôïc theâm vaøi soá 0 ñeå thaønh moät vectô töông öùng khi maø soá muõ s khoâng xuaát hieän trong ña thöùc.
I.3/ kieåu hình thöùc cuûa zero vaø cöïc (zero vaø pole)
Haøm truyeàn trong heä thoáng LTI coù theå laøm noåi baät baèng söï mieâu taû nghieäm cuûa ña thöùc ôû töû soá (goïi laø zero), vaø nghieäm cuûa ña thöùc ôû maãu soá laø cöïc (pole).
Ví duï cho heä thoáng SISO vaø haøm truyeàn coù theå vieát döôùi hình thöùc sau:
(s-z1)(s-z2)...(s-znz)
G(s)= k (3.3) (s-p1)(s-p2)...(s-pnp)
Trong ñoù k laø haèng soá doä lôïi ( hay goïi laø heä soá khueách ñaïi ) vaø z vaø p laø nghieäm (coù theå laø nghieäm phöùc)cuûa ña thöùc ôû töû vaø maãu. Moät ñieàu quan troïng coù theå noùi laïi laø MATLAB duøng haøng cuûa vectô ñeå bieåu thò heä soá cuûa caùc ña thöùc ôû töû vaø maãu, vaø coät vectô ñeå bieåu thò soá nghieäm coù trong hai ña thöùc.( coù theå xem leänh roots vaø poly )
Trong vaán ñeà cô baûn ñaõ ñeà caäp ôû treân , MATLAB coù theå bieåu dieån haøm truyeån nhö sau:
(s-3)(s+1)
G(s) = 5
(s+2)(s-4)
Xem coâng thöùc 3.3 coù keát quaû bieåu thò nhö sau:
Ñoä lôïi : k = 5;
zero : zer = [3;-1];
cöïc : pol = [-2 4]’; hay pol = [-2;4];
Vieäc aán ñònh hai vectô zer vaø pol, phaûi chuù yù khi söû duïng kí hieäu maø ta söû duïng trong nhöõng vectô bieåu thò nghieäm cuûa nhöõng ña thöùc töông öùng cuûa töû vaø maãu .
Baây giôø ta coù moät ví duï khaùc nhö sau:
1
G(s)=
(s-1-j)(s+1+j)
Haøm truyeàn G(s) khoâng coù zero, nhö vaäy ta coù theå bieåu dieån nhö sau:
Ñoä lôïi : k =1;
Cöïc : pol= [-1+j;-1-j];
Trong tröôøng hôïp naøy vectô zer khoâng ñöôïc ñònh nghóa. tuy nhieân, trong tröôøng hôïp naøy töùc laø zero khoâng coù vaø vectô zer coù theå bieåu dieån nhö sau:
zer = inf;
Trong heä thoáng SIMO töû soá cuûa G(s) laø moät ma traän, noù nhaán maïnh nghieäm cuûa ña thöùc töû soá coù söï lieân heä ñeán ngoõ vaøo thöù i töùc laø ñöôïc nhaäp vaøo coät thöù i cuûa ma traän zer.
Baây giôø ta coù moät ví duï : Moät heä thoáng moät ngoõ vaøo vaø ba ngoõ ra cuûa moät haøm truyeàn nhö sau:
Trong MATLAB ta coù theå mieâu taû cöïc , zero vaø ñoä lôïi nhö sau:
zer = [inf 0 -4;inf inf -6];
pol = [-1 -1 -2]’;
k = [1 1 3]’;
ÔÛ ñaây chuùng ta coù zero ôû voâ cuøng trong nhöõng baäc cuûa ma traän phöùc zer vaø phaûi coù töông öùng soá coät nhö ngoõ ra heä thoáng
I.4 / kieåu cöïc vaø thaëng dö
Moät caùch khaùc ñeå trình baøy haøm truyeàn cuûa moät heä thoáng , baèng pheùp bieán ñoåi töøng phaàn cuûa töøng soá haïng ta coù keát quaû töø caùch vieát daïng (3.3) nhö sau:
r1 r2 rnx
G(s)= + +...+ +k(s) (3.4)
(s-p1) (S-P2) (S-Pnx)
Trong tröôøng hôïp naøy chuùng ta giaû söû maãu soá khoâng coù nghieäm phöùc .
Khi haøm truyeàn coù boäi soá cöïc, moät vaøi soá haïng seõ xuaát hieän trong (3.4) nhö sau:
ri ri+1 ri+m-1
+ +...+
(s-pi) (S- pi)2 (S- pi)m
Trong ñoù m laø boäi soá cuûa cöïc pi
Moät heä thoáng mieâu taû gioáng nhö treân, tröø phi vectô pol chæ soá cöïc pi seõ xuaát hieän m laàn . ví duï nhö haøm truyeàn sau:
Trong MATLAB seõ mieâu taû vieäc aán ñònh nhö sau:
res=[0.4 -0.3125 -0.125 -0.0437+0.025j -0.0437-0.025j];
pol=[0 -1 -1 1+2j 1-2J]’;
k=[];
Hay coù theå söû duïng leänh residue vôùi caáu truùc nhö sau:
[res,pol,k]=residue([1 2],conv([1 2 1 0],[1 -2 10]));
II. xaây döïng caâu leänh trong töï ñoäng ñieàu khieån
II.1/ caùch taïo ra haøm truyeàn
Cho moät heä thoáng moâ taû bôûi haøm truyeàn
Trong ñoù haøm truyeàn G(s) dieån taû moái lieân heä giöõa ngoõ ra Y(s) vaø ngoõ vaøo U(s).
Caùch thöùc bieåu dieån trong matlab vôùi moät m_file nhö sau:
ví duï 01
% vidu01.m
% day la chuong trinh tao va in ra man hinh mot ham truyen sau:
% 18(s+20)
% G(s) = ----------------------
% (s+15)(s+25)(s+0.4)
tu = 18*[1 20];
mau = conv(conv([1 15],[1 25]),[1 0.4]);
printsys(tu,mau,'s')
% ----------------------------------------------------------------
Bieán tu bieåu dieån ña thöùc ôû töû Y(s) cuûa haøm truyeàn G(s): Laø moät vectô moät haøng vôùi caùc phaàn töû töông öùng vôùi caùc heä soá cuûa ña thöùc ôû töû theo soá muõ giaûm daàn.Töông töï bieán mau dieån taû ña thöùc ôû maãu. Leänh printsys xuaát ra maøn hình tæ soá tu(s)/mau(s) vaø ñoái soá ‘s’ laø bieán s cuûa haøm truyeàn .
Keát quaû khi chaïy ví duï 01
» vidu01
num/den =
18 s + 360
----------------------------
s^3 + 40.4 s^2 + 391 s + 150
Khi goi leänh sau:
» help vidu01
Ta coù keát quaû giaûi thích treân maøn hình nhö sau:
vidu01.m
day la chuong trinh tao va in ra man hinh mot ham truyen sau:
18(s+20)
G(s) = ----------------------
(s+15)(s+25)(s+0.4)
Töông töï vôùi haøm truyeàn baäc hai nhö sau:
: laø taàn soá caét töï nhieân
: laø heä soá suy giaûm cuûa heä thoáng
Trong matlab seõ cung caáp cho ta moät leänh ord2 ñeå dieån taû nhöõng giaù trò vaø .
Ví duï nhö sau:cho haøm truyeàn cuûa moät heä thoáng baäc haivôùi k=1; =0.707; =2 . ta tao ra file vidu01.m nhö sau:
ví duï 01
% vidu01.m
% tao ham truyen dang bac hai
wn=2;
damping=0.707;
[tu2,mau2]=ord2(wn,damping);
printsys(tu2,mau2,'s')
Leänh ord2 coù hai ñoái soá ngoõ vaøo laø wn ( taàn soá caét töï nhieân) vaø damping (heä soá suy giaûm ); vaø hai bieán ngoõ ra töông öùng laø tu2 vaø mau2. Matlab töï ñoäng ñaët k=1
Chuù yù : hai bieán ngoõ ra laø tu2 vaø mau2 phaûi ñaët trong daáu ngoaëc vuoâng “[]”
Keát quaû cho ra:
» vidu02
num/den =
1
-----------------
s^2 + 2.828 s + 4
II.2/ caùch taïo ra kieåu bieán traïng thaùi
Vieäc taïo ra kieåu bieán traïng thaùi trong Matlab töông töï nhö vieäc taïo ra haøm truyeàn. Bieán traïng thaùi cuûa heä thoáng tuyeán tính baát bieán theo thôøi gian moät ngoõ vaøo vaø moät ngoõ ra bieåu dieån nhö sau:
Vôùi x(t) laø bieán traïng thaùi bao goàm moät taäp hôïp caùc bieán traïng thaùi x1(t),x2(t),...,xn(t) vôùi n laø baäc heä thoáng
u(t) : tín hieäu ñaàu vaøo heä thoáng
y(t) : tín hieäu ñaàu ra heä thoáng
a : laø ma traän [n x m] lieân quan giöõa caùc bieán traïng thaùi vaø ñaïo haøm baäc nhaát cuûa chuùng
b : laø vectô moät coät lieân quan giöõa ngoõ vaøo vaø ñaïo haøm baäc nhaát cuûa caùc bieán traïng thaùi
c : laø vectô moät haøng lieân quan giöõa ngoõ ra vôùi caùc bieán traïng thaùi
d : laø moät daïi löôïng voâ höôùng lieân quan giöõa ngoõ vaøo vaø ngoõ ra
ví duï 03
Bieåu dieån caùc bieán traïng thaùi sau ra maøn hình
;
;
;
d=0;
Ta taïo ra moät m_file vidu03.m nhö sau:
% vidu03.m
% bieu dien cac bien trang thai ra man hinh
a=[-40.4 -319 -150;1 0 0;0 1 0];
b=[1 0 0]';
c=[0 18 360];
d=0;
printsys(a,b,c,d)
Keát quaû chaïy chöông trình vidu03.m
» vidu03
a =
x1 x2 x3
x1 -40.40000 -319.00000 -150.00000
x2 1.00000 0 0
x3 0 1.00000 0
b =
u1
x1 1.00000
x2 0
x3 0
c =
x1 x2 x3
y1 0 18.00000 360.00000
d =
u1
y1 0
Töông töï leänh ord2 coù theå dieån taû baèng kieåu bieán traïng thaùi cuûa heä thoáng baäc hai vôùi taàn soá caét töï nhieân (wn) vaø heä soá suy giaûm nhö ví duï sau:
ví duï 04
% vidu04.m
% tao bien trang thai dang bac hai
wn=2;
damping=0.707;
[a2,b2,c2,d2]=ord2(wn,damping);
printsys(a2,b2,c2,d2)
Keát quaû laø:
» vidu04
a =
x1 x2
x1 0 1.00000
x2 -4.00000 -2.82800
b =
u1
x1 0
x2 1.00000
c =
x1 x2
y1 1.00000 0
d =
u1
y1 0
II.3/ hình thöùc chuyeån ñoåi töø bieán traïng thaùi sang haøm truyeàn
Trong tröôøng hôïp naøy Matlab cho ta söû duïng leänh ss2tf töùc laø state space(ss) to (2) transfer function(tf)_ chuyeån ñoåi töø bieán traïng thaùi sang haøm truyeàn .
Ta khaûo saùt ví duï sau:
% vidu05.m
% chuyen tu bien trang thai sang ham truyen cua ham bac hai
wn=2;
damping=0.707;
[a2,b2,c2,d2]=ord2(wn,damping);
[tucss,maucss]=ss2tf(a2,b2,c2,d2);
printsys(tucss,maucss,'s')
Keát quaû nhö sau:
» vidu05
num/den =
1
-----------------
s^2 + 2.828 s + 4
II.4/ chöùc naêng chuyeån ñoåi töø haøm truyeàn sang bieán traïng thaùi
Muoán chuyeån ñoåi ngöôïc laïi töø haøm truyeàn sang dieån taû baèng bieán traïng thaùi chuùng ta duøng leänh tf2ss .
Xeùt ví duï 06 nhö sau:
% vidu06.m
% tao ra bien trang thai tu ham truyen:
% 1
% G(s) = ----------------------------
% 2
% s + 2.828s + 4
tu=1;
mau=[1 2.828 4];
[actf,bctf,cctf,dctf]=tf2ss(tu,mau);
printsys(actf,bctf,cctf,dctf)
Keát quaû thöïc hieän chaïy chöông trình
» vidu06
a =
x1 x2
x1 -2.82800 -4.00000
x2 1.00000 0
b =
u1
x1 1.00000
x2 0
c =
x1 x2
y1 0 1.00000
d =
u1
y1 0
Chuù yù: vieäc chuyeån ñoåi töø haøm truyeàn sang bieán traïng thaùi vaø töø bieán traïng thaùi sang haøm truyeàn coù söï sai bieät nhö sau:
xeùt ví duï sau ñeå so saùnh hai hình thöùc chuyeån ñoåi
ví duï 07
% vidu07.m
% cho ham truyen :
% 1
% G(s) = --------------------
% 2 2
% (100s + s + 1)
% so sanh hai ket qua cua viec chuyen doi tu tf2ss va ss2tf
tu=1;
mau=conv([100 1 1],[100 1 1]);
printsys(tu,mau,'s')
[ac,bc,cc,dc]=tf2ss(tu,mau);
[tuc,mauc]=ss2tf(ac,bc,cc,dc);
printsys(tuc,mauc)
Keát quaû hieän treân maøn hình laø:
» vidu07
num/den =
1
---------------------------------------
10000 s^4 + 200 s^3 + 201 s^2 + 2 s + 1
num/den =
-9.7145e-017s^3-3.1225e- 017s^2 - 2.4666e-018s+0.0001
----------------------------------------------------
s^4 + 0.02 s^3 + 0.0201 s^2 + 0.0002 s + 0.0001
Caùc heä soá sau:
-9.7145e-017;-3.1225e – 017;- 2.4666e-018 : töùc laø
–9.7145*10-17 ;-3.11225*10-17;- 2.4666e-18 . Nhöõng giaù trò naøy quaù nhoû neân ta coù theå boû qua.
Vì vaäy ta nhaän xeùt raèng hai ñaùp soá treân ñeàu ñuùng chæ khaùc nhau ôû ñoä chính xaùc maø thoâi.
Khi ta coù haøm truyeàn G(s) = G1(s).G2(s) thì matlab cho pheùp ta duøng leänh series ñeå noái caùc bieán traïng thaùi cuûa G1(s) vaø G2(s) vaø sau ñoù ta chuyeån ngöôïc laïi thaønh haøm truyeàn.töông töï khi ta coù haøm truyeàn G(s) = G1(s) + G2(s) thì matlab cho pheùp ta duøng leänh parallel ñeå noái caùc bieán traïng thaùi cuûa G1(s) vaø G2(s) vaø sau ñoù ta chuyeån ngöôïc laïi thaønh haøm truyeàn
ví duï nhö ta coù haøm truyeàn :
ta duøng leänh series noái G1(s) vaø G2(s) nhö sau:
ví duï 08
% vidu08.m
% tao ra ham truyen dang:
% G(s)=G1(s).G2(s)
tuc=1;
mauc=[100 1 1];
[ac,bc,cc,dc]=tf2ss(tuc,mauc);
[a,b,c,d]=series(ac,bc,cc,dc,ac,bc,cc,dc);
[tu,mau]=ss2tf(a,b,c,d);
printsys(tu,mau,'s')
Keát quaû khi chaïy nhö sau:
» vidu08
num/den =
-1.0408e-017s^3-3.4694e-018 s^2 + 7.5894e-019 s + 0.0001
------------------------------------------------------
s^4 + 0.02 s^3 + 0.0201 s^2 + 0.0002 s + 0.0001
hay ta thöïc hieän nhö sau:
% vidu08.m
% tao ra ham truyen dang:
% G(s)=G1(s).G2(s)
tuc=1;
mauc=[100 1 1];
[tu,mau]=series(tuc,mauc,tuc,mauc);
printsys(tu,mau,'s')
keát quaû cho ra:
» vidu08
num/den =
1
---------------------------------------
10000 s^4 + 200 s^3 + 201 s^2 + 2 s + 1
Nhö vaäy leänh series noái n heä thoáng vôùi 2n bieán ngoõ vaøo laø töû vaø maãu cuûa n heä thoáng töông öùng,vaø 2 bieán ngoõ ra laø töû vaø maãu cuûa haøm truyeàn; khi chuyeån qua daïng bieán traïng thaùi ta coù 4n ngoõ vaøo öùng vôùi 4 ma traän a,b,c,d cuûa töøng heä thoáng,vaø 4 ngoõ ra laø 4 ma traän traïng thaùi cuûa haøm truyeàn caàn tìm .
töông töï nhö vaäy cho heä thoáng maéc song song nhö ví duï sau:
% vidu09.m
% cho ham truyen nhu sau:
% G(s)=G1(s)+G2(s) bieu dien theo so do:
% +--------+
% +---->|1/(s+2) |--------+
% | +--------+ _|_
% U(s)-->| |_+_|-----> Y(s)
% | +-------------+ |
% +---->|(s+3)/(s+10) |---+
% +-------------+
% so do he thong parallel
tu1=1; mau1=[1 2];
tu2=[1 3]; mau2=[1 10];
[tu,mau]=parallel(tu1,mau1,tu2,mau2);
printsys(tu,mau,'s')
Keát quaû nhö sau:G(s)=G1(s)+G2(s)
» vidu09
num/den =
s^2 + 6 s + 16
---------------
s^2 + 12 s + 20
II.5/ caùch thöùc xaây döïng moät heä thoáng
trong nhöõng ví duï tröôùc ñeàu ñöôïc dieån taû baèng moät haøm truyeàn hay kieåu bieán traïng thaùi ñôn giaûn. Nhöng thöïc teá trong töï ñoäng ñieàu khieån laøm vieäc vôùi nhieàu heä thoáng phöùc taïp bao goàm nhieàu heä thoáng phuï (subsystem) coù moái lieân heä vôùi nhau baèng nhieàu caùch nhö : Tình traïng phaûn hoài (feedback),hoaëc song song (parallel), hay noái tieáp (series).Bôûi vì coâng cuï ñeå giaûi thích heä thoáng ñieàu khieån deã daøng nhaát laø duøng haøm truyeàn hoaëc kieåu bieán traïng thaùi.Trong matlab seõ cung caáp cho ta nhöõng leänh ñeå chuyeån ñoåi töø nhöõng moái lieân heä phöùc taïp cuûa nhöõng heä thoáng phuï sang moät daïng ñôn giaûn.Thöïc vaäy,matlab cho pheùp chuùng ta xaây döïng moät heä thoáng töø nhöõng boä phaän, nhöõng leänh duøng ñeå caáu thaønh moät heä thoáng ngoõ ra ñôn giaûn goàm cloop, feedback, series, parallel, blkbuild vaø connect.
Leänh cloop ñöôïc söû duïng ñeå taïo ra moät heä thoáng voøng kín coù hoài tieáp ñôn vò.Ví duï nhö moät heä thoáng bieåu dieån nhö hình sau:
Hinh 3.1 : heä thoáng coù phaûn hoài ñôn vò
Heä thoáng treân taïo ra moät haøm truyeàn coù coâng thöùc sau:
Ñeå dieån taû haøm truyeàn trong ví duï treân ta coù taäp tin m_file sau:
% vidu10.m
% tao ra ham truyen co hoi tiep don vi
tu=[1 1];
mau=conv([1 3],[1 5]);
[tuG,mauG]=cloop(tu,mau);
printsys(tuG,mauG,'s')
Keát quaû khi chay chöông trình
» vidu10
num/den =
s + 1
--------------
s^2 + 9 s + 16
Khi phaàn töû phaûn hoài khoâng thuoäc loaïi phaûn hoài ñôn vò trong heä thoáng voøng kín, thì ta söû duïng leänh feedback. Ví duï nhö heä thoáng dieån taû trong hình (3.2) cho ra haøm truyeàn coù coâng thöùc sau:
Hình 3.2 : Sô doà heä thoáng phaûn hoài
Chöông trình taïo ra haøm truyeàn treân:
% vidu11.m
% tao ra ham truyen
% voi he thong phan hoi khong phai la phan hoi don vi
tuG=[1 1]; % tao ra vecto cua tu ham G(s)
mauG=conv([1 3],[1 5]); % tao ra vecto cua mau ham G(s)
tuH=[1 6]; % tao ra vecto cua tu ham H(s)
mauH=[1 10]; % tao ra vecto cua mau ham H(s)
[tu,mau]=feedback(tuG,mauG,tuH,mauH);
printsys(tu,mau)
Keát quaû ñöôïc tính theo coâng thöùc:
» vidu11
num/den =
s^2 + 11 s + 10
--------------------------
s^3 + 19 s^2 + 102 s + 156
Trong caû hai leänh cloop vaø feedback ñeàu söû duïng phaûn hoài aâm laø maëc nhieân.ñeå chæ roû phaûn hoài döông ta theâm vaøo soá 1 laøm moät bieán cuoái cuûa caâu leänh cloop hay feedback.Ví duï nhö trong hai ví duï treân (vidu10.m vaø vidu11.m) ta ñoåi phaûn hoài aâm thaønh phaûn hoài döông thì ta thay trong caâu leänh sau töông öùng töøng ví duï:
[tuG,mauG]=cloop(tu,mau,1);(trong vidu10.m)
[tu,mau]=feedback(tuG,mauG,tuH,mauH,1);(trong vidu11.m)
Ñeå boå sung cho hai caâu leänh cloop vaø feedback,matlab coøn taïo ra hai leänh series vaø parallel ñeå thu goïn moät heä thoáng dieån taû nhö hình 3.3 thaønh hình 3.1 nhö sau:
Hình 3.3 : heä thoáng vôùi H(s) noái tieáp vôùi G0(s)
Bieåu thò baèng taäp tin sau:
% vidu12.m
% tao ra ham truyen nhu hinh 3
tuG=[1 1];
mauG=conv([1 3],[1 5]);
tuH=[1 6];
mauH=[1 10];
[tuGH,mauGH]=series(tuG,mauG,tuH,mauH);
[tu,mau]=cloop(tuGH,mauGH);
printsys(tu,mau)
Keát quaû:
» vidu12
num/den =
s^2 + 7 s + 6
--------------------------
s^3 + 19 s^2 + 102 s + 156
Baèng caùch söû duïng boán leänh cloop, feedback, series vaø parallel ta coù theå bieán ñoåi caùc moái quan heä trong heä thoáng phöùc taïp thaønh moät haøm truyeàn ñôn giaûn hay kieåu bieán traïng thaùi.Tuy nhieân, trong nhieàu heä thoáng phöùc taïp khi duøng nhöõng leänh treân seõ toán nhieàu thôøi gian vaø raéc roái. Keát quaû laø matlab cho ra moät leänh ñaëc bieät ñeå xaây döïng nhöõng heä thoáng phöùc taïp.
Xaây döïng moät heä thoáng phöùc taïp phaûi theo trình töï töøng böôùc vôùi töøng caâu leänh trong matlab .Ví duï moät heä thoáng phöùc taïp bieåu dieån nhö hình (3.4) sau vôùi:
G0(s)=1;G1(s)=1/(s+1);G2(s)=1/(s+2);G3(s)=1/(s+3);
H1(s)=4;H2(s)=8;H3(s)=12.
R(s) Y(s)
G0(s) + G1(s) + G2(s) + G3(s)
1 2 3 4
H2(s) H3(s)
6 7
H1(s)
5
Hình 3.4: sô ñoà khoái cuûa moät heä thoáng phöùc taïp
Moät heä thoáng phöùc taïp nhö treân neáu ta söû duïng caùc leänh cloop, series,feedback,parallel thì coâng vieäc bieán ñoåi seõ khoâng tinh teá laém vaø toán nhieàu thôøi gian. Tuy nhieân chuùng ta seõ söû duïng leänh blkbuild vaø connect nhö trong taäp tin m_file vidu13.m sau:
% vidu13.m
% tao ra ham truyen cua mot he thong phuc tap nhu hinh 4 tren
% su dung lenh blkbuild, connect
n1=1; d1=1;
n2=1; d2=[1 1];
n3=1; d3=[1 2];
n4=1; d4=[1 3];
n5=4; d5=1;
n6=8; d6=1;
n7=12; d7=1;
nblocks=7;
blkbuild
q=[1 0 0 0 0
2 1 -5 0 0
3 2 -6 0 0
4 2 -6 3 -7
5 3 0 0 0
6 3 0 0 0
7 4 0 0 0];
input=1;
output=4;
[aa,bb,cc,dd]=connect(a,b,c,d,q,input,output);
[num,den]=ss2tf(aa,bb,cc,dd);
printsys(num,den,'s')
Giaûi thích:
Khi baét ñaàu thöïc hieän ta phaûi ñaùnh soá trong moãi heä thoáng phuï nhö hình 5 treân. Baûy caâu leänh ñaàu tieân cuûa vidu13.m bieåu dieån haøm truyeàn cuûa baûy khoái, chuùng ta qui ñònh teân töông öùng vôùi töû vaø maãu laø n1,d1,n2,d2,...trong tröôøng hôïp neáu cho daïng laø kieåu bieán traïng thaùi trong töøng heä thoáng phuï thì teân cuûa chuùng töông öùng laø a1,b1,c1,d1,a2,b2,c2,d2,...
Trong tröôøng hôïp naøy ta coù baûy khoái vì theá ñaët bieán nblock=7 (baèng vôùi soá cuûa heä thoáng phuï).
Sau ñoù laø leänh blkbuild duøng nhöõng bieán cuûa nblock ñeå baét ñaàu xaây döïng heä thoáng. Bieán blkbuild chuyeån ñoåi taát caû caùch thöùc dieån taû haøm truyeàn cuûa töøng heä thoáng phuï thaønh kieåu bieán traïng thaùi nhö duøng leänh tf2ss vaø ñöa chuùng vaøo moät khoái lôùn cuûa ma traän trang thaùi goïi laø a, b, c, d.
Böôùc keá tieáp laø taïo ra ma traän q ñeå nhaän bieát moái lieân heä giöõa caùc heä thoáng phuï. Moãi haøng cuûa ma traän q töông öùng vôùi moät heä thoáng phuï khaùc nhau. Phaàn töû ñaàu tieân trong haøng laø soá heä thoáng nguoàn,soá coøn laïi chæ khoái keát noái giöõa ngoõ ra vaø ngoõ vaøo cuûa heä thoáng phuï.Ví duï nhö haøng thöù hai cuûa ma traän q coù phaàn töû ñaàu töông öùng vôùi heä thoáng phuï 2 (G1(s)). Bôûi vì ngoõ ra cuûa heä thoáng 1 vaø heä thoáng 5 laø ngoõ vaøo cuûa heä thoáng 2,do ñoù hai phaàn töû keá tieáp trong haøng laø 1 vaø –5, hai soá 0 ñöôïc theâm vaøo ñeå caàn thieát taïo ra ñeå baûo ñaûm q laø ma traän hình chöõ nhaät.
Sau khi taïo ñöôïc ma traän q ta phaûi chæ roõ khoái ngoõ vaøo (bieåu dieãn bôûi bieán input) vaø khoái ngoõ ra(bieåu dieãn bôûi bieán output).
Leänh connect duøng ñeå noái caùc kieåu bieán traïng thaùi thu ñöôïc töø vieäc thaønh laäp ôû treân. Sau ñoù ta chuyeån qua daïng haøm truyeàn duøng leänh ss2tf vaø in ra maøn hình.
ta ñöôïc keát quaû nhö sau:
» vidu13
State model [a,b,c,d] of the block diagram has 7 inputs and 7 outputs
num/den =
1 s + 3
--------------------------
s^3 + 26 s^2 + 179 s + 210
III . cöïc(poles),zero(zeros)vaø ñaùp öùng thôøi gian
Trong chöông naøy trình baøy moät coâng cuï cuûa matlab trong vieäc nghieân cöùu caùc moái lieân heä giöõa cöïc vaø zero trong heä thoáng tuyeán tính baát bieán theo thôøi gian vieát taét laø LTI (linear time_invariant system) vaø trong phaïm vi ñaùp öùng thôøi gian. Bôûi vì ñaëc ñieåm cuûa heä thoáng töï ñoäng ñieàu khieån thöôøng cho nhöõng soá haïng trong ñaùp öùng böôùc ñôn vò,vì theá caàn laøm noåi baäc haøm böôùc naøy.
III.1/ caùch tính cöïc(poles) vaø zero
Ñeå xaùc ñònh cöïc vaø zero trong moät haøm truyeàn baèng pheùp tính tay laø moät coâng vieäc khoâng deã chòu vaø toán nhieàu thôøi gian, noù yeâu caàu phuï thuoäc thuoäc vaøo nhöõng heä soá trong hai ña thöùc ôû töû vaø maãu cuûa haøm truyeàn.Ví duï mang tính thöïc teá nhö trong nhöõng ña thöùc baäc hai hay baäc ba vôùi nhöõng heä soá nguyeân thì vieäc tìm nghieäm cuõng raát khoù.Vì theá matlab cung caáp cho ta moät leänh raát ñôn giaûn laø tf2zp ñeå tính cöïc vaø zero töø haøm truyeàn.Baây giôø ñeå minh hoïa ta xem ví duï 3.1 sau, ñaây laø moät ví duï tìm cöïc vaø zero töø haøm truyeàn :
ví duï 2.1
% vidu21.m
% tim cuc(p),zero(z) va do loi (k) tu ham truyen
% 4 3 2
% 3s + 2s + 5s + 4s + 6
% G(s)= -----------------------------------
% 5 4 3 2
% s + 3s + 4s + 2s + 7s + 2
num=[3 2 5 4 6]; % tao ra da thuc cua tu so
den=[1 3 4 2 7 2]; % tao ra da thuc cua mau so
[z,p,k]=tf2zp(num,den) % tim cuc(p),zero(z) va do loi(k)
Keát quaû thu ñöôïc:
» vidu21
z =
0.4019 + 1.1965i
0.4019 - 1.1965i
-0.7352 + 0.8455i
-0.7352 - 0.8455i
p =
-1.7680 + 1.2673i
-1.7680 - 1.2673i
0.4176 + 1.1130i
0.4176 - 1.1130i
-0.2991
k =
3
Trong ví duï treân caùc bieán num,den dieån taû ña thöùc ôû töû vaø maãu töông öùng cuûa haøm truyeàn G(s). Matlab traû veà giaù trò cöïc bieåu thò laø p,zero bieåu thò laø z vaø ñoä lôïi bieåu thò laø k cuûa haøm truyeàn trong caâu leänh tf2zp.
Matlab coøn coù theå tính cöïc vaø zero töø nhöõng bieán traïng thaùi ñöôïc mieâu taû trong heä thoáng. Baây giôø ta minh hoïa ñieàu treân baèng caâu leänh ss2zp trong ví duï 2.2 sau:
Ví duï 2.2
% vidu22.m
% day la chuong trinh tao ra bien trang thai
% va tim cuc,zero va do loi(k)
vec=[1 2 5 3 6 1];% tao ra da thuc dac trung bac 5
A=compan(vec); % tao ra ma tran huong dan A
b=[0;0;0;0;1]; % tao ra vecto ngo vao
c=[1 0 0 0 0]; % tao ra vecto ngo ra
[z,p,k]=ss2zp(A,b,c,0) % tim cuc,zero va k
* Giaûi thích:
Ñaây laø moät heä thoáng dieån taû baèng kieåu bieán traïng thaùi (A,b,c,d). Chuù yù duøng leänh compan ñeå taïo ra moät ma traän höôùng daãn A töø ña thöùc ñaëc tröng vec. Ma traän A coù kích thöôùc nhoû hôn vectô dieån taû ña thöùc ñaëc tröng. Ví duï ta coù ña thöùc ñaëc tröng baäc 4 nhö sau:
ma traän höôùng daãn A laø
Keát quaû chaïy chöông trình laø:
» vidu22
z =
1.0e-005 *
-0.1862 + 0.3225i
-0.1862 - 0.3225i
0.3723
p =
-1.0433 + 1.6215i
-1.0433 - 1.6215i
0.1323 + 1.2217i
0.1323 - 1.2217i
-0.1781
k =
-1
Sau keát quaû cuûa z ta thaáy xuaát hieän bieåu töôïng 1.0e-005 * , ñaây laø keát quaû bieåu thò nhöõng giaù trò cuûa zero (z) nhaân vôùi moät heä soá laø 10-5 thì môùi thu ñöôïc keát quaû ñuùng.
Ta thaáy heä thoáng coù ba zero vaø giaù trò thì raát nhoû gaàn baèng khoâng. Ñeå xem ñöôïc caùch bieåu dieån cuûa zero vaø cöïc treân maët phaúng phöùc thì ta duøng leänh pzmap(p,z) ngoaøi cöûa soå leänh sau khi chaïy taäp tin vidu22.m keát quaû nhö hình sau:
» pzmap(p,z)
Hình 3.5: Bieåu ñoà cöïc vaø zero
Nhö hình treân ta thaáy bieåu dieån naêm cöc laø daáu “x” vaø ba zero chæ bieåu dieån baèng moät voøng troøn “o” ôû goác toïa ñoä.
Ngoaøi hình thöùc duøng leänh pzmap(p,z) nhö treân ta coøn hai hình thöùc khaùc söû duïng leänh pzmap nhö sau:
[p,z]=pzmap(A,b,c,0) trong tröôøng hôïp duøng kieåu bieán traïng thaùi.
[p,z]=pzmap(num,den) trong tröôøng hôïp duøng haøm truyeàn.
Caû hai hình thöùc treân ñeàu traû veà giaù trò cuûa cöïc(p) vaø zero(z) vaø khoâng veõ cöïc vaø zero treân ñoà thò.
Nhöng thöïc hieän leänh pzmap(A,b,c,0) vaø pzmap(num,den) thì Matlab seõ veõ cöïc vaø zero treân ñoà thò nhö hình ...
III.2 / taïo ra haøm chöùc naêng töø cöïc vaø zero
Ñeå chuyeån ñoåi töø cöïc(p),zero(z) vaø ñoä lôïi(k) trong heä thoáng tuyeán tính baát bieán (LTI) thaønh haøm truyeàn ta duøng leänh zp2tf, ma traän bieåu dieãn zero z laø vectô moät coät, ma traän bieåu dieãn cöïc laø vectô moät haøng hoaëc moät coät. Ñöôïc minh hoïa baèng taäp tin vidu23.m vôùi heä thoáng coù boán zero, naêm cöïc vaø ñoä lôïi baèng 2 nhö sau:
Ví duï 2.3
% vidu23.m
% tao ra ham truyen tu cuc,zero va do loi
% hien thi ham truyen do len man hinh
z=[0;0;0;-1]; % vecto bieu dien zero
p=[-1+i -1-i -2 -3.15+2.63*i -3.15-2.63*i];% tao ra vecto cuc
k=2;% do loi
[num,den]=zp2tf(z,p,k); % tao ra tu va mau so ham truyen tu z,p,k
printsys(num,den,'s') % hien thi len man hinh num(s)/den(s)
keát quaû xuaát ra treân maøn hình laø:
» vidu23
num/den =
2 s^4 + 2 s^3
------------------------------------------------------
s^5+10.3 s^4+48.0394s^3+109.1576s^2+126.2364 s+67.3576
Matlab cuõng coù theå bieán ñoåi töø cöïc,zero vaø ñoä lôïi sang dieån taû baèng bieán traïng thaùi ñöôïc thöïc hieän baèng leänh zp2ss. Ñöôïc minh hoïa baèng taâp tin vidu24.m trong heä thoáng coù moät zero baèng –1, ba cöïc laø (–2,-1-i vaø –1+i) vaø ñoä lôïi baèng 2.
ví duï 2.4
% vidu2.4.m
% tao ra kieu bien trang thai tu cuc,zero va do loi dung lenh zp2ss
% sau do chuyen doi nguoc lai cuc,zero va do loi
% khi nhan mot phim bat ki
z=[-1]; % vecto bieu dien zero
p=[-1+i -1-i -2 ];% tao ra vecto cuc
k=2;% do loi
[a,b,c,d]=zp2ss(z,p,k) % tao ra ma tran trang thai a,b,c,d tu z,p,k
pause % nhan mot phim bat ki
cuc=eig(a) % tinh cuc
pause % nhan mot phim bat ki
zero=tzero(a,b,c,d) % tinh zero
pause % nhan mot phim bat ki
k=dcgain(a,b,c,d) % tinh do loi
keát quaû khi chay chöông trình
» vidu23
a =
-2.0000 0 0
-1.0000 -2.0000 -1.4142
0 1.4142 0
b =
1
1
0
c =
0 0 1.4142
d =
0
Khi nhaán moät phím baát kì
cuc =
-1.0000 + 1.0000i
-1.0000 - 1.0000i
-2.0000
Khi nhaán moät phím baát kì
zero =
-1
Khi nhaán moät phím baát kì
k =
0.5000
Trong chöông trình treân leänh eig(a) laø tính trò nguyeân cuûa vectô a chính laø cöïc cuûa heä thoáng,söû duïng leänh tzero ñeå tính zero vaø dcgain ñeà tìm doä lôïi. Leänh dcgain tìm ñoä lôïi dc cuûa heä thoáng,ví duï ta coù G(s)=k(s+2)/(s+1)(s+4) coù ñoä lôïi laø k nhöng ñoä lôïidc ñöôïc tính theo coâng thöùc k*(soá muõ cuûa töû)/(coá muõ cuûa maãu) töùc laø k/2.Leänh pause duøng ñeå döøng chöông trình khi gaëp leänh naøy vaø seõ tieáp tuïc thöïc thi khi ta nhaán moät phím baát kì.
III.3/ ñaùp öùng thôøi gian
Trong phaàn naøy chuùng ta tìm hieåu caùch thöùc dieån taû cuûa nhöõng caâu leänh trong matlab, cho vieäc phaân tích ñaùp öùng thôøi gian cuûa heä thoáng tuyeán tính baát bieán (LTI). Nhö ta bieát ngoõ ra cuûa moät heä thoáng LTI coù theå phaân tích nhö sau:
Vôùi x0 laø ñieàu kieän ban ñaàu vaø u(t) laø tín hieäu ngoõ ra. Chuù yù raèng pheùp phaân tích treân coù theå thöïc hieän baèng nhöõng caâu leänh trong matlab. Noù coù theå trình baøy söï phaân tích ñaùp öùng thôøi gian cuûa moät heä thoáng baét ñaàu töø haøm truyeàn vaø töø pheùp bieán ñoåi laplace cuûa tín hieäu ngoõ vaøo. Noùi caùch khaùc, chuùng ta xem nhö söï dieãn taû nhö sau:
Vôùi L laø toaùn töû cuûa pheùp bieán ñoåi Laplace
Baây giôø ta coù heä thoáng sau:
Ta bieán ñoåi töø ma traän traïng thaùi thaønh haøm truyeàn nhôø leänh ss2tf nhö sau:
[num,den]=ss2tf(A,B,C,0);
Ta coù keát quaû laø haøm truyeàn:
Giaû söû ngoõ vaøo laø haøm böôùc ñôn vò u(t)=1(t) vaø bieán ñoåi Laplace laø: U(s)=1/s
Vaäy ngoõ ra laø:
Ta duøng leänh residue ñeå bieán ñoåi Y(s) thaønh toång cuûa töøng phaân soá, nhö sau:
[res,pol,k]=residue([num,[den 0])
Chuù yù [den 0] laø vectô bieåu dieån ña thöùc ôû maãu soá cuûa Y(s)
töø keát quaû caâu leänh treân ta coù theå trình baøy nhö sau:
Duøng pheùp bieán ñoåi laplace ngöôïc cuûa töøng phaàn töû ta ñöôïc:
Vôùi 1(t) laø haøm böôùc ñôn vò.
Töø keát quaû treân ta ñi ñeán toång quaùt sau: Neáu ta coù moät haøm suy roäng vaø ñöôïc bieåu thò laø töøng phaàn cuûa Ri öùng vôùi li laø nghieäm cuûa maãu soá.Giaû söû ta coù m nghieäm thöïc vaø (n-m) nghieäm phöùc vaø boû qua khaû naêng haøm truyeàn coù cöïc boäi.
pheùp bieán ñoåi ngöôïc cuûa:
Coù theå vieát laø:
Vôùi nghieäm phöùc .
Ñaây laø nhöõng caâu leänh trong matlab duøng ñeå xaùc ñònh ñaùp öùng thôøi gian trong heä thoáng LTI.
impulse : ñaùp öùng xung
initial : ñaùp öùng töï nhieân
lsim : ñaùp öùng töøng ngoõ vaøo
step : ñaùp öùng böôùc ñôn vò
III.3.1/ ñaùp öùng töï nhieân
Ñaùp öùng töï nhieân cuûa heä thoáng baét ñaàu töø vieäc cho ñieàu kieän ban ñaàu x0, vaø duøng leänh initial.
ví duï: ta coù heä thoáng baäc hai moâ taû baèng phöông trình traïng thaùi sau
Khi thöïc hieän trong matlab phaûi ñònh nghóa nhöõng ma traän traïng thaùi trong phöông trình treân nhö sau:
A=[-4 3;-3 -4]; B=[0;1]; C=[0 1]; D=0;
Sau ñoù duøng caáu truùc :
initial(A,B,C,D,[2;0])
x=[2;0] laø ñieàu kieän ban ñaàu.Ta coù keát quaû laø hình (3.6) nhö sau:
Ñöôøng xanh gaïch lieàn trình baøy tình traïng töï do,ñöôøng gaïch ñöùt laø tình traïng oån ñònh cuûa heä thoáng.
caáu truùc toång quaùt:
[out,state,tt]=initial(A,B,C,D,x0)
Caùc giaù trò ngoõ ra, traïng thaùi vaø thôøi gian laáy maãucuûa heä thoáng ñöôïc löu giöõ trong caùc bieán (out,state,tt). Töø ñoù ta duøng leänh plot ñeå veõ ñaùp öùng cuûa heä thoáng naøy.
chuù yù : khi ta khoâng ñaëc bieán trong caáu truùc treân, töùc laø khoâng coù [out,state,tt] thì Matlab töï ñoäng veõ ñaùp öùng töï nhieân cho heä thoáng nhö ví duï treân.
Hình 3.6: ñaùp öùng töï nhieân
III.3.2/ ñaùp öùng böôùc (step)
Leänh step cho chuùng ta thu ñöôïc tín hieäu ngoõ ra vaø tình traïng cuûa moät heä thoáng LTI vôùi ñieàu kieän ban ñaàu baèng khoâng.
Xeùt haøm truyeàn sau:
Ñeå tính ñaùp öùng böôùc cuûa heä thoáng naøy ta duøng caáu truùc nhö sau:
[out,state,tt]=step([1 10],[1 8 25])
Giaû söû baây giôø ta muoán phaân tích moät ñaùp öùng böôùc cuûa heä thoáng thay ñoåi, vôùi zero cuûa haøm truyeàn thay ñoåi nhöng ñoä lôïi dc (dc gain) cuûa heä thoáng khoâng ñoåi. Hay noùi caùch khaùc ta taïo moät ma traän hö caáu ñeå giöõ laïi cho heä thoáng cuøng maãu vaø thay ñoåi heä soá cuûa soá haïng ñaàu trong ña thöùc cuûa töû,töùc laø heä soá cuûa s, vì vaäy maø dc gain laø haèng soá vaø zero thay ñoåi.
Ví duï : heä thoáng nhö ví duï treân nhöng soá haïng ban ñaàu cuûa ña thöùc ôû töû soá thay ñoåi thaønh (-4,-2,-1,0,1,2,4)
Ta thöc hieän trong cöûa soå leänh cuûa matlab nhö sau:
» coef=[-4 -2 -1 0 1 2 4];
» den=[1 8 25];
» [y,x,t]=step([coef' 10*ones(length(coef),1)],den);
» mesh(coef,t,y)
Keát quaû nhö hình:
Hình 3.7: So saùnh giöõa caùc ñaùp öùng step
Toång quaùt leänh step coù theå duøng trong caùc hình thöùc sau:
[out,state,tt]=step(A,B,C,D);
[out,state,tt]=step(A,B,C,D,ui);
[out,state]=step(A,B,C,D,ui,t);
[out,state,tt]=step(num,den);
[out,state]=step(num,den,t);
Trong ñoù bieán ui ñeå bieåu thò soá ngoõ vaøo cuûa heä thoáng nhieàu ngoõ vaøo.
III.3.3/ ñaùp öùng xung (impulse)
Trong matalb duøng caáu truùc impulse ñeå thu ñöôïc giaûn ñoà ñaùp öùng xung cuûa heä thoáng LTI vôùi ñieàu kieän ban ñaàu baèng khoâng.
Ví duï heä thoáng coù haøm truyeàn sau:
Veõ ñaùp öùng xung cuûa heä thoáng ta duøng leänh sau:
impulse([1 10],[1 2 25])
Giaû söû baây giôø ta muoán phaân tích ñaùp öùng xung thay ñoåi nhö theá naøo khi zero cuûa haøm truyeàn thay ñoåi, khoâng thay ñoåi dc gain cuûa heä thoáng. gioáng nhö ví duï ôû phaàn tröôùc ta coù :
» coef=[-4 -2 -1 0 1 2 4];
» den=[1 2 25];
» impulse([coef' 10*ones(length(coef),1)],den);
Keát quaû nhö hình sau:
Hình3.8 : so saùnh khi duøng leänh impulse:
* caáu truùc cuûa leänh impulse
[out,state,tt]=impulse(A,B,C,D);
[out,state,tt]=impulse(A,B,C,D,ui);
[out,state]=impulse(A,B,C,D,ui,t);
[out,state,tt]=impulse(num,den);
[out,state]=impulse(num,den,t);
Chuù yù cuù phaùp caáu truùc cuûa leänh impulse gioáng nhö laø leänh step ñöôïc noùi ôû phaàn tröôùc.
III.3.4/ Ñaùp öùng töøng ngoõ vaøo
Moät vaán ñeà toång quaùt hôn laø ta coù theå tính ñöôïc tín hieäu ngoõ ra cuûa heä thoáng LTI vôùi moät tính hieäu ngoõ vaøo khoâng ñoàng nhaát.
Ví duï nhö heä thoáng baäc nhaát sau:
Heä thoáng naøy bò taùc ñoäng vôùi moät tín hieäu ngoõ vaøo hình sin coù taàn soá laø 1Hz, tín hieäu ngoõ ra thu ñöôïc bôûi caáu truùc:
>> freq=1; t=0:0.05:10;
>> u=sin(2*pi*freq*t); lsim(-1,1,1,0,u,t)
Keát quaû laø hình sau:
Hình 3.9 : Ñaùp öùng töøng ngoõ vaøo
Toång quaùt ta coù caáu truùc sau khi duøng leänh lsim:
[out,state]=lsim(A,B,C,D,u,t);
[out,state]=lsim(A,B,C,D,u,t,x0);
[out,state]=lsim(num,den,u,t);
Nhöõng leänh treân cho ra tín hieäu ngoõ ra vaø traïng thaùi cuûa heä thoáng bò aûnh höôûng bôûi tín hieäu ngoõ vaøo ñöôïc hieåu laø ma traän u, vectô t laø thôøi gian laáy maãu vaø x0 laø ñieàu kieän ban ñaàu.
III.4/ ñaùp öùng taàn soá
Trong phaàn naøy chuùng ta dieãn taû nhöõng leänh trong töï ñoäng ñieàu khieån trong lónh vöïc phaân tích ñaùp öùng taàn soá cuûa heä thoáng tuyeán tính baát bieán (LTI). Ñaùp öùng taàn soá ma traän G(w) cuûa heä thoáng döôïc ñònh nghóa laø:
Y(w)=G(w)U(w)
Vôùi U(w) vaø Y(w) laø pheùp bieán ñoåi Fourier cuûa tín hieäu ngoõ vaøo vaø tín hieäu ngoõ ra töông öùng.
Nhö ta bieát, trong tröôøng hôïp taát caû caùc cöïc cuûa heä thoáng coù phaàn thöïc aâm, töùc laø heä thoáng ñaït ñeán traïng thaùi oån ñònh, ma traän ñaùp öùng taàn soá xaûy ra ñoàng thôøi vôùi ma traän chuyeån ñoåi cuûa heä thoáng treân truïc aûo (s=jw).
Trong heä thoáng SISO (moät ngoõ vaøo vaø moät ngoõ ra) ñaùp öùng taàn soá laø moät soá phöùc nghóa laø tín hieäu ngoõ vaøo cuûa heä thoáng LTI laø moät soùng sin coù bieân ñoä ñôn vò vaø taàn soá laø W0, thì ôû traïng thaùi oån ñònh ngoõ ra cuûa heä thoáng seõ coù moät soùng sin vôùi taàn soá laø W0, bieân ñoä cho bôûi modul cuûa giaù trò ñaùp öùng taàn soá ôû W0 vaø pha thu ñöôïc laø toång pha cuûa tín hieäu ngoõ vaøo vaø pha cuûa giaù trò ñaùp öùng taàn soá ôû W0.
Nhöõng leänh ñöôïc duøng ñeå tính ñaùp öùng taàn soá cuûa heä thoáng LTI:
bode : veõ giaûn ñoà bode
margin : tính ñoä lôi vaø pha döï tröõ
nichols : veõ giaûn ñoà nichols
ngrid : taïo löôùi chi ñoà thò nichols
nyquist : veõ ñoà thò nyquist
III.4.1/ Giaûn ñoà bode
Giaûn ñoà bode (modul vaø pha cuûa ñaùp öùng taàn soá nhö moät haøm cuûa taàn soá vôùi truïc chia ñoä laø logarit) ñöôïc duøng ñeå phaân tích moät vaøi thuoäc tính heä thoáng nhö pha vaø ñoä lôïi döï tröõ,dc gain, baêng thoâng, vaán ñeà nhieãu, vaø söï oån ñònh heä thoáng voøng kín.
Xeùt moät heä thoáng baäc ba vôùi haøm truyeàn sau:
Ta duøng caáu truùc sau ñeå veõ giaûn ñoà bode
» num=4;den=poly([-1 -1 -1]);
» bode(num,den)
Ta ñöôïc giaûn ñoà bode nhö hình (3.10)
Nhöõng caáu truùc toång quaùt ñeå veõ giaûn ñoà bode
[mod,phase,puls]=bode(A,B,C,D);
[mod,phase,puls]=bode(A,B,C,D,ui);
[mod,phase,puls]=bode(A,B,C,D,ui,w);
[mod,phase,puls]=bode(num,den);
[mod,phase,puls]=bode(num,den,w);
Cho modul(mod) laø giaù trò töï nhieân (ñeå chuyeån ñoåi sang dB ta duøng coâng thöùc moddB=20*log10(mod)), pha coù ñôn vò laø ñoä vaø vectô cuûa giaù trò taàn soá (ñôn vò laø rad/s) vôùi ñaùp öùng taàn soá coù theå tính ñöôïc.
Töø cuù phaùp chæ daãn ta coù theå choïn ngoõ vaøo ñaëc bieät ui, khi laøm vieäc vôùi heä thoáng nhieàu ngoõ vaøo vaø luoân luoân ñieåm taàn soá (vectô w) ñôn vò laø rad/s cuûa ñaùp öùng taàn soá phaûi ñöôïc tính. Vectô w toát nhaát laø duøng trong truïc chia logarit, khi ñoù leänh logspace ñöôïc söû duïng.
Moät ñieàu caàn ñöôïc nhaán maïnh laø khi dc gain cuûa haøm truyeàn laø aâm thì leänh Bode cho ñoà thò pha baét ñaàu töø +1800 nhö thöôøng leä laø -1800
Hình 3.10 : Giaûn ñoà Bode
III.4.2/ Giaûn ñoà nyquist
Giaûn ñoà nyquist laø moät caùch khaùc ñeå dieån taû ñaùp öùng taàn soá cuûa heä thoáng LTI.
Xeùt moät haøm truyeàn heä thoáng sau:
Ñaây laø haøm truyeàn cuûa moät heä thoáng voøng hôû; Ñoä oån ñònh cuûa heä thoáng voøng kín vôùi phaûn hoài ñôn vò aâm phuï thuoäc vaøo ñoä lôïi cuûa heä thoáng voøng hôû. Tuy nhieân,theo ñònh lyù veà söï oån ñònh cuûa nyquist chuùng ta coù theå laøm cho heä thoáng voøng kín trôû neân khoâng oån ñònh neáu heä soá k quaù lôùn. Baây giôø ta phaân tích ñaëc ñieåm naøy baèng caùch söû duïng giaûn ñoà nyquist vaø dieãn taû baèng nhöõng caâu leänh trong töï ñoäng ñieàu khieån.
Ta coù theå vieát trong matlab laø:
nyquist([4;10],poly([-1 –1 –1]))
Khi thöïc hieän leänh treân trong cöûa soå leänh cuûa matlab ta ñöôïc hai bieåu ñoà nhö hình (3.11a) sau töông öùng vôùi k=4 vaø k=10.
Hình 3.11a
Theo ñònh lyù nyquist caùch ñôn giaûn ñeå xaùc ñònh heä thoáng voøng kín oån ñònh vôùi phaûn hoài ñôn vò aâm laø ñaùp öùng taàn soá voøng hôû G(jw) bao ñieåm –1+j0 ngöôïc chieàu kim ñoàng hoà ôû moïi luùc hay cöïc cuûa G(s) coù phaàn thöïc döông.
Khi duøng leänh
nyquist([4;10],[1 3 3 1],1.5:0.1:2)
Vôùi bieán cuoái cuøng laø moât daõy taàn soá ñöôïc choïn ñeå veõ bieåu ñoà, chuùng ta thu ñöôïc nhö hình (3.11b).
Ñaây laø ñoà thò phoùng to cuûa bieåu ñoà hình (3.11a)treân trong nhöõng vuøng laân caän cuûa ñieåm “critical point” –1+j0. Roõ raøng caùc bieán cuûa ñoä lôïi voøng hôû k baèng 4 ñeán 10 thì heä thoáng voøng kín treân khoâng oån ñònh.
Hình 3.11b
Toång quaùt nhöõng caáu truùc khi söû duïng leänh nyquist
[re,im,puls]= nyquist(A,B,C,D);
[re,im,puls]= nyquist(A,B,C,D,ui);
[re,im]= nyquist(A,B,C,D,ui,w);
[re,im,puls]= nyquist(num,den);
[re,im]= nyquist(num,den,w);
Caáu truùc treân cho phaàn thöïc vaø phaàn aûo cuûa ñaùp öùng taàn soá. Nhö leänh bode neáu leänh nyquist khoâng söû duïng bieán ngoõ ra thì seõ veõ bieåu ñoà nyquist laäp töùc. Chuù yù trong tröôøng hôïp naøy söû duïng ñöôøng lieân tuïc ñeå bieåu dieãn ñoà thò trong vuøng taàn soá döông (töø 0 ñeán ¥). Tuy nhieân phaàn thöïc cuûa bieåu ñoà ñöôïc dieãn taû laø nhöõng ñöôøng gaïch ngang ñeå chæ vuøng taàn soá aâm (töø -¥ ñeán 0); Muõi teân chæ vuøng taàn soá taêng.
Moät ñieàu quan troïng caàn chuù yù laø neáu heä thoáng coù moät hay nhieàu cöïc ôû goác toïa ñoä thì bieåu ñoà nyquist thu ñöôïc töø leänh nyquist laø khoâng chính xaùc, vì trong tröôøng hôïp naøy khoâng thuoäc vuøng bieân giôùi cuûa truïc ñöùng. Ñeå thu ñöôïc moät bieåu ñoà nyquist hoaøn toaøn chính xaùc thì vectô taàn soá w ñöôïc duøng nhö moät bieán ngoõ vaøo hoaëc sau leänh nyquist thì phaûi duøng leänh axis nhö moät yeâu caàu caàn coù ñeå thuoäc bieân giôùi truïc ñöùng.
Chuù yù : tuøy theo chuùng ta söû duïng version cuûa matlab maø leänh nyquist cho hoaëc khoâng cho nhöõng thoâng tin sai trong vieäc chia moãi zero khi duøng vôùi haøm truyeàn maø coù cöïc ôû goác toïa ñoä.
III.4.3/ Bieåu ñoà nichols
Bieåu ñoà nichols laø moät phöông phaùp raát höõu duïng ñeå xaùc ñònh ñoä oån ñònh vaø ñaùp öùng taàn soá voøng kín cuûa heä thoáng hoài tieáp. Söï oån ñònh ñöôïc ñaùnh giaù töø ñöôøng cong veõ moái quan heä cuûa ñoä lôïi theo ñaëc tính pha cuûa haøm truyeàn voøng hôû. Ñoàng thôøi ñaùp öùng taàn soá voøng kín cuûa heä thoáng cuõng ñöôïc xaùc ñònh baèng caùch söû duïng ñöôøng cong bieân ñoä vaø ñoä di pha voøng kín khoâng ñoåi phuû leân ñöôøng cong bieân ñoä – pha voøng hôû.
Ví duï xeùt heä thoáng coù haøm truyeàn sau:
Töông öùng vôùi vieäc thöïc hieän trong matlab caáu truùc:
» num=30*[1 7 1];
» den=[poly([-1 -1 -1]) 0];
» hold on, plot(-180,0,'*r'), hold on;
» nichols(num,den)
Traû veà bieåu ñoà nichols vôùi ñieåm tôùi haïn “critical point”
(-1800 ,0)ñöôïc bieåu dieãn nhö hình sau:
Hình 3.12:Bieåu ñoà Nichols
Nhöõng caáu truùc toång quaùt:
[mod,phase,puls]= nichols(A,B,C,D); [mod,phase,puls]= nichols(A,B,C,D,ui);
[mod,phase]= nichols(A,B,C,D,ui,w);
[mod,phase,puls]= nichols(num,den);
[mod,phase]= nichols(num,den,w);
Nhöõng caáu truùc treân cho ñoä lôùn laø nhöõng giaù trò töï nhieân, pha laø ñoä vaø vectô cuûa dieåm taàn soá laø rad/s.
Töø nhuõng caáu truùc chæ daãn treân ñaõ chæ ra söï toàn taïi cuûa ñieåm taàn soá maø ñaùp öùng taàn soá ñöôïc ñònh giaù baèng vectô w, vaø ui laø bieán khai baùo vôùi heä thoáng nhieàu ngoõ vaøo.
khi söû duïng leänh nichols vôùi caáu truùc khoâng coù bieán ngoû ra thì ta ñöôïc bieåu ñoà nichols.
Moät ñieåm caàn nhaán maïnh laø leänh nichols luoân luoân cho pha trong khoaûng [-3600,00]
III.4.4/ Ñoä döï tröõ pha vaø ñoä lôïi.
Nhö ta bieát, ñoä döï tröõ pha vaø ñoä lôïi cho pheùp chuùng phaân tích nhöõng thuoäc tính cô baûn veà söï oån ñònh cuûa heä thoáng voøng kín LTI. Ta coù theå goïi ñoä lôïi döï tröõ laø nghòch ñaûo cuûa ñaïi löôïng ñaùp öùng taàn soá ôû taàn soá maø pha baèng -p. Noùi caùch khaùc vôùi taàn soá wp vaø pha cuûa ñaùp öùng taàn soá G(jw) laø -p, ñoä lôïi döï tröõ laø:
Töông öùng vôùi giaù trò töï nhieân vaø decibel.Trong heä thoáng oån ñònh thì ñoä lôïi döï tröõ ñöôïc hieåu laø moät soá maø tæ leä vôùi dc gain. Vì vaäy heä thoáng voøng kín vôùi phaûn hoài ñôn vò aâm töø traïng thaùi oån ñònh trôû neân khoâng oån ñònh khi noù coù cöïc treân truïc aûo cuûa maët phaúng phöùc.
Ñoä döï tröõ pha ñöôïc tính theo coâng thöùc:
Vôùi wt laø taàn soá töông öùng vôùi giao ñieåm cuûa daëc tính bieân-pha vôùi truïc hoaønh ôû 0dB.
Ví duï cho haøm truyeàn :
caáu truùc :
» num=4;
» den=poly([-1 -1 -1]);
» margin(num,den);
ta ñöôïc hình (3.13) sau:
Hình 3.13: Bieåu ñoà dieãn taû ñoä lôïi vaø ñoä döï tröõ
Caáu truùc toång quaùt cuûa leänh margin:
[gm,pm,wgm,wpm]= margin(A,B,C,D);
[gm,pm,wgm,wpm]= margin(mod, phase,w);
[gm,pm,wgm,wpm]= margin(num,den);
III.5. Quyõ ñaïo nghieäm
Phöông phaùp quyõ ñaïo nghieäm soá laø phöông phaùp duøng ñeå xaùc ñònh nghieäm cuûa phöông trình ñaëc tính voøng kín cuûa heä thoáng nhö laø moät haøm cuûa heä soá khueách ñaïi tónh. Phöông phaùp naøy döïa treân moái quan heä giöõa nghieäm cuûa haøm truyeàn voøng kín vôùi cöïc vaø zero cuûa haøm truyeàn voøng hôû.
Vieäc xaây döïng quyõ ñaïo nghieäm soá ñoái vôùi moät heä thoáng cuï theå coù theå baét ñaàu baèng vieäc xaùc ñònh vò trí cuûa cöïc vaø zero voøng hôû trong maët phaúng phöùc.
Vieäc öùng duïng matlab trong töï ñoäng ñeå veõ quyõ ñaïo nghieäm soá goàm nhöõng leänh sau:
pzmap* tìm vò trí cuûa zero vaø cöïc.
rlocfind* choïn ñoä lôïi
rlocus* veõ quyõ ñaïo nghieäm
sgrid taïo löôùi cho z vaø wn
Chuù yù :
daáu * ñeå chæ nhöõng leänh coù theå duøng trong heä thoáng rôøi raïc
Ví duï
Cho haøm truyeàn sau:
Giaû söû ta muoán bieåu dieån cöïc vaø zero treân maët phaúng phöùc duøng caáu truùc sau:
» pzmap([1 1],[1 5 6]);
vaø thu ñöôïc ñoà thò treân maët phaúng phöùc vôùi zero=-1(bieåu thò baèng voøng troøn ) vaø cöïc laø (-3,-2) ( bieåu thò baèng daáu sao).
Toång quaùt leänh pzmap coù theå duøng vôùi hình thöùc sau:
[pol,zer]= pzmap(A,B,C,D);
[pol,zer]= pzmap(num,den);
Khi ta khoâng ñaëc bieán ngoõ vaøo thì cöïc vaø zero cuûa heä thoáng seõ ñöôïc hieån thò treân maët phaúng phöùc vôùi voøng troøn vaø hình sao, ngöôïc laïi cöïc vaû zero cuûa heä thoáng seõ ñöôïc ñaët trong vectô pol vaø zer.
Muoán bieát söï di chuyeån cuûa cöïc trong heä thoáng voøng kín tuøy thuoäc vaøo ñoä lôïi voøng hôû,ta coù theå duøng quyõ ñaïo nghieäm.
Ví duï cho haøm truyeàn nhö sau:
Vieát theo caáu truùc sau ta coù ñöôïc ñoà thò bieåu dieãn quyõ ñaïo nghieäm:
» num=[1 4];
» den=conv([1 1],[1 2])
» rlocus(num,den)
Keát quaû nhö hình sau:
Hình 3.14: Quyõ ñaïo nghieäm soá
Leänh toång quaùt khi söû duïng leänh rlocus
[rt,k]= rlocus(A,B,C,D);
rt= rlocus(A,B,C,D,k);
[rt,k]= rlocus(num,den);
rt= rlocus(num,den,k);
Vôùi söï moâ taû haøm truyeàn G(s) hoaëc bieán traïng thaùi seõ cung caáp cho zero cuûa da thöùc 1+kG(s) öùng vôùi töøng giaù trò cuûa k maø ñöôïc ñònh roõ laø bieán ngoõ vaøo.