Home » , , , » Các câu lệnh cơ bản ứng dụng Matlab vào lĩnh vực điều khiển tự động

Các câu lệnh cơ bản ứng dụng Matlab vào lĩnh vực điều khiển tự động

Written By Unknown on Thứ Năm, 8 tháng 11, 2012 | 09:10

Phần mềm Matlab là một phần mềm lập trính tính toán cực mạnh,khả năng của nó đang ngày được phát triển mạnh mẽ và một điều hiển nhiên,Matlab cũng được ứng dụng rất sâu vào kỹ thuật điều khiển tự động.
Trong bài viết này ,từ những kiến thức mình được các thầy cô của trường đại học Bách Khoa Hà Nội hướng dẫn,mình sẽ hướng dẫn các bạn bước đầu tiên làm quen với phần mềm này và một số ứng dụng cơ bản của nó vào kỹ thuật điều khiển tự động như tìm hàm truyền,lập trình tìm hàm truyền của một sơ đồ khối,tìm hàm truyền hệ thống hở,vẽ đường đặc tính hở của tiêu chuẩn Nyquist.....bài viết còn sơ khai do kiến thức hạn hẹp của mình,mong các bạn góp ý cho mình sửa chữa,dựa trên tài liệu thí nghiệm điều khiển tự động của đh Bách Khoa Hà Nội.


_____________________________________________________________________

Matlab là một phần mềm cao cấp dùng để giải các bài toán. Để khởi động MATLAB ta bấm đúp vào icon của nó. Các file MATLAB có dạng *.mat và chỉ chạy trong môi trường MATLAB. MATLAB xử lí số liệu như là ma trận. 

Khi ta đánh lệnh vào cửa sổ lệnh(Command window), nó sẽ được thi hành ngay và kết quả hiện lên màn hình. Nếu ta không muốn cho kết quả hiện lên màn hình thì sau lệnh ta đặt thêm dấu “;”. Nếu lệnh quá dài, không vừa một dòng dòng có thể đánh lệnh trên nhiều dòng và cuối mỗi dòng đặt thêm dấu ... rồi xuống dòng. Khi soạn thảo lệnh ta có thể dùng các phím tắt :
  •   hoặc Ctrl‐P  gọi lại lệnh trước đó 
  •   hoặc Ctrl‐N   gọi lệnh sau 
  • hoặc Ctrl‐B  lùi lại một kí tự 
  • →  hoặc Ctrl‐F  tiến lên một kí tự 
  • Ctrl‐→ hoặc Ctrl‐R  sang phải một từ 
  • Ctrl‐← Hoặc Crtl‐L  sang phải một từ 
  • home hoặc  Ctrl‐A   về đầu dòng 
  • end hoặc  Ctrl‐E  về cuối dòng 
  • esc  hoặc Ctrl‐U   xoá dòng 
  • del hoặc Ctrl‐D   xoá kí tự tại chỗ con nháy đứng 
  • backspace  hoặc Ctrl‐H  xoá kí tự trước chỗ con nháy đứng 

  Các phép toán cơ bản của MATLAB gồm: 
  •   +   cộng 
  •   ‐  trừ 
  •   *   nhân 
  •   /   chia phải 
  •   \   chia trái 
  •   ^   luỹ thừa 
  •   ‘   chuyển vị ma trận hay số phức liên hợp 

  Các toán tử quan hệ : 
  •   <      nhỏ hơn 
  •   <=     nhỏ hơn hay bằng 
  •   >     lớn hơn 
  •   >=      lớn hơn hoặc bằng 
  •   ==      bằng 
  •   ~=     không bằng 
 Các toán tử logic :  
  • &   và 
  • |     or 
  • ~     not 
  Các hằng :   
  •   pi     3.14159265 
  •   i     số ảo 
  •   j    tương tự i 
  •   eps    sai số 2-52 
  •   realmin   số thực nhỏ nhất 2-1022
  •   realmax   số thực lớn nhất 21023
  •   inf     vô cùng lớn 
  •   NaN   Not a number 
Giao diện chương trình Matlab 2012
Chú ý : Chúng ta nên sử dụng Editor trong matlab để soạn thảo,có thể chỉnh sửa được,không nên soạn thảo trực tiếp ở command window=> Bật trình Editor bằng cách vào menu : File chọn New hoặc bấm tổ hợp phím Ctrl+N
Lệnh xóa sạch lệnh được thực thi trên màn hình command window để lập trình mới là :   clc 

  • Cách thành lập đa thức trong matlab :
p=[ 2 3 0 1]; <-------------Tức là biểu thức được gọi trong Matlab là 
P(s)=2S3+3s2+ 0s+ 1

Tương tự q=[2 1];  <-----Tức là biểu thức được gọi trong Matlab là Q(s)=2s+1
  • Thực hiện nhân đa thức và tính giá trị hàm đa thức tại giá trị biến tương ứng :
Vì dụ xét :--------------------------------------------------------------------------------------
p=[3 2 1]   tức là p(s)=3s2+2s+1

q=[1 4] tức là  q(s)= s+4

Phép nhân đa thức p(s) x q(s) =n(s)
Để tính giá trị của n(s) được ta sử dụng câu lệnh sau :

n=conv(p,q)  --------------------> Không có dấu ";" ở cuối dòng lệnh bởi nếu có ";" thì kết quả của n sẽ bị ẩn đi

Kết quả hiển thị matlab :-----------------------------------------------------------------  
 n= 3  14  9  4        ------------> n(s)= 3s3+14s2+9s+4


Tính giá trị của n(s) tại s= -10  Evaluate n(s) at s=-10
Ta nhập lệnh sau :
value =polyval(n,-10)

Kết quả hiển thị value = -1686

Kết quả hiển thị trên màn hình Matlab

  • Thành lập phân thức hàm truyền và các phép toán cơ bản

Tranfer function object ( tf)

Ta có hàm truyền w(s) thì bằng tỉ sổ giữa đầu ra Y(s) và đầu vào U(s)
W(s)= Y(s) / U(s)
Ta có lệnh chung để tính hàm truyền phân thức trong Matlab là
Sys =tf(num,den)
Vì dụ
Num1= [1 0];
Den1=[1 2 5];
Vậy hàm truyền của hệ thống được gọi theo câu lệnh
Sys1=tf(num1,den1) 

Kết quả w1(s)=sys1= 10/(S2+2s+5)
  • Tổ hợp các khối nối tiếp trong Matlab
    Một khối nối tiếp đơn giản :
_________________________________________________________________
U(s) ----------> [System 1 G1(s) ]-------------->[System 1 G1(s) ]-------> Y(s)
__________________________________________________________

    Trong đó đầu vào là U(s) và đầu ra là Y(s) và hệ thống gồm tổ hợp 2 khối nối tiếp  G1(s) và  G2(s) ( có thể hiểu  G1(s), G2(s) là tổ hợp của các khổi khác nhưng thu gọn về )   Trong đó giá trị của  G1(s) = sys1, G2(s)=sys2
Khi đó hàm truyền của hệ thống [sys] sẽ được tính trên Matlab theo câu lệnh:
[sys] = series(sys1,sys2)

Chú ý : Lệnh Series chỉ áp dụng cho 2 khối,không thể tổ hợp nhiều khối cùng lúc với lệnh này
Ví dụ : Tìm hàm truyền của hệ thống nối tiếp gồm 
G1(s) = (s+1)/(s+2)
G2(s)= 1/(500s2)

Tính [sys] = series(G1,G2)   ?

Đáp án : Hình bên
Câu lệnh nhập rất đơn giản
  • Tổ hợp các khối song song bằng Matlab:
Rất đơn giản cũng tương tự như hệ thống nối tiếp,hệ thống song song đơn giản bao gồm:
    Đầu vào là U(s) và đầu ra là Y(s) và hệ thống gồm tổ hợp 2 khối ghép song song  G1(s) và  G2(s) ( có thể hiểu  G1(s), G2(s) là tổ hợp của các khổi khác nhưng thu gọn về )   Trong đó giá trị của  G1(s) = sys1, G2(s)=sys2
Khi đó hàm truyền của hệ thống [sys] sẽ được tính trên Matlab theo câu lệnh:
[sys] = parallel(sys1,sys2)
  • Tổ hợp hệ thống phản hồi đơn vị với Matlab

Với một hệ thống phản hồi đơn vị đơn giản,câu lệnh matlab để biểu diễn và tính hệ thống này là 
Hàm truyền :

Sys1=Series(G,G);
Sys =feedback(sys1,[1],sign)

Sign : dấu tại điểm tụ hàm phản hồi,nếu dấu dương thì điền +1,nếu dấu của hàm phản hồi là -1 thì bỏ qua sign cũng được bởi không làm đổi dấu phép tính hàm truyền và giảm được bước nhập code,hoặc bạn có thể điền -1


Ví dụ áp dụng với bài này ,tìm hàm truyền của mạch phản hồi đơn vị:

Với Gc(s)= (s+1) / (s+2) và G(s) = 1/(500S)
Ta có :

sys1 = tf ( [1 1],[1 2]);
sys2 = tf ([1],[500 0 0]);
sys3=series(sys1,sys2);
sys=feedback(sys3,[1])


Kết quả hiển thị trên màn hình Matlab
Ta thấy kết quả hoàn toàn phù hợp với công thức tính hàm truyền của hệ thống phản hồi đơn vị :

Y(s)/R(s)= Gc(s).G(s) / (1+Gc(s).G(s))

  • Tìm hàm truyền hệ thống phản hồi chính tắc với Matlab

Với một hệ thống phản hồi chính tắc như hình trên,bạn có thể biểu diễn trên Matlab như sau để tính hàm truyền của hệ thống phản hồi chính tắc đó:
sys=feedback(sys1,sys2,sign)

Với Sign tương tự như hệ thống phản hồi đơn vị

VD : Tìm hàm truyền của hệ chính tắc :
Một hệ thống phản hồi chính tắc đơn giản
 Tìm hàm truyền của hệ thống phản hồi như hình trên với G (s)= (s+1)/(s+2) và H(s) =1/500s2
sys1=tf([1 1],[1 2]);
sys2=tf([1],[500 0 0]);
sys=feedback(sys1,sys2)

enter....
 Và kết quả như hình bên dưới :



  • Xét hệ thống ổn định với tiêu chuẩn đại số bằng Matlab
Xét một hệ thống có phương trình đặc tính như sau 
p=[1 3 0 4];
Tương đương với phương trình : P(s)=s3+3s2+4
Câu lệnh dùng để tính nghiệm của phương trình đặc tính này trong Matlab ( caculate roots of p(s)=0) là :
r=roots(p)
Ta cũng có thể từ các nghiệm r tìm được này có thể tái lập lại phương trình p ban đầu bằng câu lệnh sau:(Reassemble polynomial from roots)
p=poly(r) 

Kết quả ( ở đây mình gộp cả 2  phép toán vào làm một để tiết kiệm không gian cho bài viết) :


  • Khảo sát ổn định hệ thống với mặt phẳng phức trên Matlab
Khảo sát mặt phẳng nghiệm với Matlab:
Chúng ta đều biết điều kiện ổn định của một hệ thống đó là các nghiệm của phương trình đặc trưng đều phải có phần thực âm,vậy để xét hệ thống ổn định ta có thể tìm nghiệm của phương trình đặc trưng của một hệ thống bất kỳ trên mặt phẳng nghiệm bằng câu lệnh sau :
pole(sys)

Với sys là hàm truyền của hệ thống .

Ví dụ áp dụng với hệ thống phản hồi chính tắc có G(s) = 1/(S4+6s2+3s+15) và H(s)= 1/( 500s2)
Code nhập vào Matlab để tính nghiệm thuộc mặt phẳng phức của hệ thống trên là :

g=tf([1],[1 6 3 15]);
h=tf([1],[500 0 0]);
sys=feedback(g,h);
pole(sys)

Kết quả tính toán của Matlab

Ta thấy nghiệm của phương trình đặc trưng là (-5.9212;  -0.0394+1.5911i  ;  -0.0394-1.5911i  ;  0.0000+0.0115i  ;  0.0000-0.0115i  ) Vậy có 2 nghiệm nằm tại biên giới ổn định là 2 nghiệm 0 và 2 nghiệm còn lại thuộc nửa trái mặt phẳng nghiệm,vậy hệ thống ổn định
  • Xét hệ thống ổn định với tiêu chuẩn Nyquist bằng Matlab
Tiêu chuẩn Nyquist để xét ổn định chúng ta đã biết,cần xét vị trí điểm M(-1,0) so với đường đặc tính hệ thống hở,vậy với Matlab chúng ta cũng có thể vẽ được đường đặc tính hệ thống hở và có cả vị trí điểm M(-1,0) được tô đỏ trên trục tọa độ
Vậy câu lệnh để vẽ đường đặc tính hệ thống hở là :
nyquist(w)

Với w là :  Hàm truyền hệ thống hở
Ví dụ với hệ thống phản hồi như sau :

 với G1(s)=(s+1)/(s+2) và G2(s)= (s+3)/(s2-4s+4) và H(s)= (s+5)/(s+6)

Khi đó hệ thống hở sẽ gồm G1(s) và G2(s),code để vẽ đường đặc tính hệ thống hở của hệ thống trên là :

g1=tf([1 1],[1 2]);
g2=tf([1 3],[1 -4 4]);
h=tf([1 5],[1 6]);
g=series(g1,g2);
gh=series(g,h)
pole(gh)
nyquist(gh)

Hàm truyền hệ thống hở là gh.Bước gõ lệnh Pole để xác định tính ổn định của hệ thống hở

Kết quả trả về trên màn hình Matlab là :



Ta có thể thấy hệ thống hở có hàm truyền  (S3 +9s2 +23s +15) / ( S4 + 4s3 -16s2 -16s+48)
Các nghiệm của phương trình đặc trưng của hệ thống hở là : ( -6; -2 ; 2 )
Ta thấy có một nghiệm có phần thực thuộc nữa phải mặt phẳng nghiệm nên hệ thống hở không ổn định

Xét tiếp đường đặc tính hệ thống hở vẽ bởi lênh nyquist(gh)



Ta thấy đường đặc tính không bao điểm M(-1,0) (được tô đỏ trên trục thực ) => vậy hệ thống không ổn định

Phù......vậy là mình đã hoàn thiện bài viết về những câu lệnh cơ bản trong Matlab ứng dụng vào KỸ THUẬT ĐIỀU KHIỂN TỰ ĐỘNG... Hi vọng nhận được những ý kiến của các bạn để hoàn thiện thêm cho bài viết và bổ sung vào vốn kiến thức của mình. 
Xem thêm :TÀI LIỆU VỀ MATLAB VÀ ỨNG DỤNG TRONG KỸ THUẬT ĐIỀU KHIỂN TỰ ĐỘNG
Copy vui lòng ghi rõ nguồn www.share99.net và đặt link tới bài viết,hãy là người văn minh của thế giới mạng,xin cám ơn !
Bài viết bởi Share99.net