7. 2.1 Matlab
Matlab được phỏt triển bởi cụng ty MathWork Inc - là một chương trỡnh phõn tớch và làm toỏn trờn ma trận, thiết kế hệ thống điều khiển, nhận dạng hệ thống, đồ hoạ
84 2D, 3D. Matlab là một mụi trường mở, cung cấp cỏc thuật toỏn và khả năng lập trỡnh cho phộp người sử dụng tạo ra cỏc ứng dụng, cỏc chương trỡnh riờng của mỡnh.
Matlab cú một thư viện lớn gồm hơn 500 hàm toỏn học từ đại số tuyến tớnh, cỏc hàm ma trận đến phõn tớch biến đổi Fourier và cỏc phương phỏp số phi tuyến. Matlab cú một số Toolbox đú là những thư viện hàm chuyờn dụng nhằm giải cỏc bài toỏn trong cỏc lĩnh vực chuyờn mụn khỏc nhau.
Làm việc với Matlab rất đơn giản và thuận tiện. Cú hai cỏch làm việc: làm việc với cửa sổ lệnh và làm việc với cỏc M-file. Khi làm việc với cửa sổ lệnh, sau dấu nhắc (prompt) của Matlab “>>” người sử dụng đưa vào cỏc cụng thức, cỏc hàm, cỏc lệnh để tớnh toỏn và Matlab trả lời ngay sau mỗi lệnh. Cỏch làm việc này giống như tớnh toỏn trờn trang giấy, cho phộp người sử dụng thử cỏc phộp tớnh cỏc thuật toỏn rất thuận tiện.
Làm việc với M-file: Matlab cho phộp lập trỡnh, chương trỡnh là một dóy lệnh thực hiện một số nhiệm vụ tớnh toỏn nhất định. Chương trỡnh được ghi thành file cú phần mở rộng là .m với tờn file (filename) tự đặt được gọi là M.file. Để chạy chương trỡnh, sau dấu nhắc “>>” ta gừ vào tờn file khụng cú phần mở rộng. Lỳc này Matlab coi M-file như command file hay script file và chương trỡnh được thực hiện theo tuần tự cỏc lệnh đó xỏc định. Bỡnh thường khi chạy chương trỡnh cỏc lệnh khụng hiển thị trờn màn hỡnh.
Matlab cú cỏc loại lệnh cơ bản sau: + Cỏc lệnh chung và gỡ rối
+ Cỏc lệnh làm việc với ma trận và vectơ + Cỏc lệnh làm việc với cỏc hàm và đa thức + Cỏc lệnh đồ hoạ 2D và 3D
+ Cỏc lệnh xử lý tớn hiệu và phõn tớch hệ thống
Ngữ phỏp lập trỡnh của Matlab rất đơn giản và gần giống cỏc ngụn ngữ bậc cao khỏc như C, Basic và Fortran. Sau đõy là một số lệnh, hàm và cấu trỳc thường dựng trong lập trỡnh.
+ Cỏc phộp toỏn quan hệ:
< nhỏ hơn <= nhỏ hơn hoặc bằng = = bằng > lớn hơn >= lớn hơn hoặc bằng = khụng bằng
+ Cỏc phộp toỏn logic: AND, OR và NOT
+ Cỏc lệnh điều kiện và vũng lặp: for, while và if-else Lệnh vũng lặp for cú cỳ phỏp như sau:
85 For biến = biểu thức, lệnh, lệnh, ..., end
Cỏc vũng for ... end cú thể lồng vào nhau Lệnh vũng lặp while cú cỳ phỏp như sau: While biểu thức, lệnh, lệnh, ..., end
Lệnh rẽ nhỏnh cú điều kiện if ... else ... end. Cú ba dạng cấu trỳc rẽ nhỏnh và cú cỳ phỏp như sau:
If biểu thức, lệnh, lệnh, ... end
If biểu thức, lệnh, lệnh, ... else lệnh, lệnh, ... end
If biểu thức 1, lệnh, lệnh, ... elseif biểu thức 2, lệnh, lệnh, ... end + M file: Script file và Function file
Hai dạng của M.file là Script file và Function file.
Script file chứa chương trỡnh gồm một số lệnh để thực hiện nhiệm vụ tớnh toỏn đó định. Khi chạy chương trỡnh chỉ cần gừ tờn file (filename) khụng cú đuụi mở rộng .m.
Function file là lệnh mở rộng của Matlab, tất cả cỏc lệnh trong cỏc Toolbox đều cú dạng function. Function cú cỳ phỏp như sau:
Function [biến ra 1, biến ra 2, …] = filename (biến vào 1, biến vào 2 …]
Khỏc nhau cơ bản giữa Script và Function là Function chỉ dựng biến riờng của mỡnh và khụng tỏc động tới toàn bộ chương trỡnh. Dũng đầu tiờn của Function file phải cú chữ “Function”
7.2.2. Simulink
Simulink được coi là phần mở rộng của Matlab. Simulink được dựng để mụ phỏng cỏc hệ động học cỏc hệ tuyến tớnh, phi tuyến, cỏc mụ hỡnh trong thời gian liờn tục hoặc giỏn đoạn. Đặc điểm nổi bật của Simulink lập trỡnh ở dạng sơ đồ cấu trỳc, sử dụng cỏc đối tượng đồ họa (Graphic Programming). Loại lập trỡnh hướng đối tượng này cú ưu điểm là tớnh trực quan, dễ viết và hỡnh dung nhất là đối với những người lập trỡnh khụng chuyờn nghiệp. Simulink cung cấp giao diện đồ họa để xõy dựng mụ hỡnh ở dạng sơ đồ khối. Bằng thao tỏc “nhấn và kộo chuột” người sử dụng cú thể kộo cỏc khối chuẩn trong thư viện của Simulink ra vựng làm việc của mỡnh để xõy dựng mụ hỡnh mụ phỏng.
Người sử dụng cú thể thay đổi hoặc tạo ra khối riờng của mỡnh và bổ sung vào thư viện như là một khối ứng dụng mới. Simulink cú cỏc thư viện sau: thư viện cỏc khối nguồn tớn hiệu (Sources), thư viện cỏc khối xuất và hiển thị dữ liệu (Sink), thư viện cỏc phần tử tuyến tớnh (Linear), thư viện cỏc phần tử phi tuyến (Nonlinearr), thư
86 viện cỏc khối giỏn đoạn (Discrete), thư viện cỏc khối nối (Connections), thư viện cỏc khối phụ (Extras).
Mụ hỡnh trong Simulink được xõy dựng theo kiểu phõn cấp điều đú cho phộp người sử dụng cú thể xõy dựng mụ hỡnh theo hướng từ dưới lờn trờn hoặc từ trờn xuống dưới. Dựng chức năng tạo “mặt nạ” (Mask) của Simulink người ta cú thể xõy dựng cỏc hệ con (phõn hệ) bằng cỏch tạo hộp thoại và biểu tượng mới cho khối. Ứng dụng quan trọng của mặt nạ là tạo ra hộp thoại để tiếp nhận thụng số của cỏc khối trong hệ con, ngoài ra mặt nạ cũn làm cho mụ hỡnh đơn giản, rừ ràng và bảo vệ nội dung của khối khỏi sự xõm nhập của người lạ. Khi thực hiện mụ phỏng bằng Simulink người sử dụng vừa cú thể quan sỏt hệ thống ở mức tổng quan, vừa cú thể xem xột chi tiết hoạt động của từng khối bằng cỏch nhỏy đỳp chuột vào khối đú. Cỏc khối Scope và khối hiển thị khỏc (lấy trong thư viện Sinks) cho phộp người sử dụng quan sỏt kết quả trong khi đang chạy mụ phỏng. Hơn nữa người sử dụng cũn cú thể trực tiếp thay đổi thụng số trong khi đang chạy mụ phỏng để biết được ảnh hưởng của cỏc thụng số đú đối với kết quả của mụ phỏng.
Simulink cú một đặc tớnh quan trọng là khi ta xõy dựng mụ hỡnh dạng sơ đồ khối thỡ Simulink tự động tạo ra một M.file (function) cho mụ hỡnh đú. Hàm này được gọi là S-function. Cũng giống như cỏc hàm khỏc của Matlab, hàm S-function là một file mở, người sử dụng cú thể truy nhập vào và soạn thảo. Lệnh để mở một S-function là sfun. Điều đú cú nghĩa là cú thể soạn thảo chương trỡnh mụ phỏng mà khụng cần thụng qua giao diện đồ thị. Mặt khỏc, Simulink cho phộp chuyển đổi từ S-function sang sơ đồ khối và ngược lại. Như vậy rất thuận tiện cho người sử dụng.
7.3. ỨNGDỤNG MATLAB - SIMULINK ĐỂ PHÂN TÍCH VÀ KHẢO SÁT HỆ
THỐNGĐIỀUKHIỂNTỰĐỘNG TRONG MIỀNTHỜI GIAN VÀ TẦNSỐ
Trong phần này sẽ trỡnh bày một số lệnh của Matlab dựng để phõn tớch cỏc hệ điều khiển kinh điển, cỏc lệnh này cũng cú trong Control System Toolbox của Matlab.
Cho hàm truyền của một hệ điều khiển tự động G(s) = B(s)/A(s), trong đú B(s) - biểu thức tử số (numerator) và A(s) - biểu thức mẫu số (denominator). Chỳng ta quan tõm đỏp ứng của hệ thống trong miền thời gian cũng như trong miền tần số đối với cỏc tớn hiệu vào khỏc nhau như hàm xung, hàm bước nhảy, hàm điều hũa v.v…
a). Miền thời gian
Chất lượng của cỏc hệ thống tự động điều khiển thường được đỏnh giỏ dựa trờn đỏp ứng thời gian ứng với cỏc tớn hiệu vào khỏc nhau. Vỡ vậy đỏp ứng thời gian cú vai trũ quan trọng trong việc phõn tớch và tổng hợp hệ thống.
87 Để tỡm đỏp ứng của hệ G(s) khi tớn hiệu vào là hàm bậc thang đơn vị 1(t) Matlab dựng lệnh step. Cỳ phỏp như sau:
>> y = step(num, den, t)
Trước tiờn phải xỏc định trục thời gian t là một vectơ. Giỏ trị đỏp ứng ra cũng là một vectơ cú cựng kớch thước với vectơ t. Vớ dụ vẽ đường cong đỏp ứng của hàm 1(t) trong quóng thời gian từ t = 0 đến t = 10 sec, mỗi bước tớnh là 0,1 sec của hệ thống cú hàm truyền đạt sau đõy:
2 10 G(s) s 2s 10 = + +
Cỏc dũng lệnh sau đõy sẽ vẽđường cong đỏp ứng núi trờn: >>num = 10; den = [1 2 10];
>>t = [0:0.1:10]; y = step (num, den, t); plot(t,y) ;
Lệnh impulse sẽ cho ta đỏp ứng ra khi tớn hiệu đầu vào là xung. Cỳ phỏp như sau :
>>y = impulse (num, den, t);
Trong trường hợp đầu vào là hàm bất kỳ thỡ dựng lệnh lsim. Cỳ phỏp như sau : >>y = lsim (num, den, u, t);
Trong đú u là vectơ tớn hiệu đầu vào. Vớ dụ đầu vào là hàm dốc ramp, cỳ phỏp như sau :
>> ramp = t ; y = lsim (num, den, ramp, t) ;
Nếu hàm vào là hàm rand(m,n) sẽ sinh ra ma trận mn số ngẫu nhiờn phõn bố đều trong khoảng (0,1), cỳ phỏp như sau :
>>noise = rand(m,n) ; y = lsim (num, den, rand, t) ;
Đỏp ứng đầu ra khi đầu vào là hàm 1(t), khi điều kiện đầu bằng khụng, được gọi là đặc tớnh quỏ độ h(t) của hệ thống. Từ đặc tớnh quỏ độ cú thể xỏc định được cỏc chỉ tiờu chất lượng của hệ thống sau :
- Độ quỏ điều chỉnh (Percent Overshoot)
max h h % 100% h − =
- Thời gian cực đại tmax (Peak time) là quóng thời gian để đường quỏ độ đạt giỏ trị cực đại hmax
88 - Thời gian tăng tr (Rise time) là quóng thời gian từ khi đường quỏ độ đạt 10%h đến 90%h
- Thời gian quỏ độ (Settling time) là quóng thời gian từ t = 0 đến khi đường h(t) đi vào vựng 5%h.
Cú thể lập chương trỡnh để tớnh cỏc chỉ tiờu chất lượng của hệ thống dưới dạng một M-files.
Vớ dụ 1 dưới đõy sẽ minh họa đỏp ứng của hệ thống với hàm truyền
=
+ +
2
5 G(s)
s 3s 20 trong thời gian từ 0 đến 10 giõy, thời gian lấy mẫu là 0,1s ứng với 3 trường hợp: (1) tớn hiệu đầu vào là bước nhảy, (2) tớn hiệu đầu vào là xung hoặc (3) tớn hiệu đầu vào là ngẫu nhiờn.
Chương trỡnh viết dưới dạng Scripts
% Dap ung cua he thong voi cac tin hieu dau vao khac nhau % Ten chuong trinh: gtmh1.m
num=5; den=[1, 3, 20]; t=[1: 0.1: 10];
disp(‘Bam phim 1 neu tin hieu vao la xung’); disp(‘Bam phim 2 neu tin hieu vao la buoc nhay’);
disp(‘Bam phim 3 neu tin hieu vao la tin hieu ngau nhien’); a=input(‘Ban chon dang tin hieu nao:’);
switch a case 1
y= impulse(num,den,t); plot(t,y,‘m’) ;
title(‘Dap ung he thong voi tin hieu xung’) ; case 2
y=step(num,den,t) ; plot(t,y) ;
title(‘Dap ung he thong voi tin hieu buoc nhay’) ; case 3
89 noise=rand(101,1);
y=lsim(num,den,noise,t) ; plot(t,y,’g’) ;
title(‘Dap ung he thong voi tin hieu ngau nhien’); end
xlabel(‘Time[sec]’); ylabel(‘y’);
Chạy chương trỡnh
Từ cửa sổ lệnh, chỳng ta gừ tờn Script file là gtmh1, sau đú đưa vào giỏ trị chọn của dạng tớn hiệu trong chỉ dẫn trờn màn hỡnh, vớ dụ chọn dạng tớn hiệu là bước nhảy, chỳng ta bấm phớm 2.
>> gtmh1
Bam phim 1 neu tin hieu vao la xung Bam phim 2 neu tin hieu vao la buoc nhay
Bam phim 3 neu tin hieu vao la tin hieu ngau nhien Ban chon dang tin hieu
nao:2 >>
Đỏp ứng của hệ thống được hiển thị trờn Figure hỡnh 6.1. b). Miền tần số Cỏc đỏp ứng tần số cho ta một cỏch nhỡn trực quan về chất lượng hệ thống do nú cho ta thấy rừ bản chất vật lý và ảnh hưởng của cỏc phần tử lờn chất lượng hệ thống. Vỡ vậy
cỏc đỏp ứng tần số, hay cũn gọi là đặc tớnh tần số, cho ta cụng cụ tốt để hiệu chỉnh hệ thống.
Cú thể dựng cỏc lệnh sau đõy để tỡm đỏp ứng tần số của hệ thống: bode, nyquist và nichols. Cỳ phỏp của lệnh bode như sau:
90 >> bode (num, den)
Lệnh trờn sẽ vẽ đồ thị biờn độ (đơn vị là dB) và pha (đơn vị là độ). Từ đường đặc tớnh tần số ta cú thể xỏc định được cỏc chỉ tiờu chất lượng trong miền tần số như:
- Cộng hưởng đỉnh Mp, dB, là giỏ trị cực đại của đồ thỡ biờn độ;
- Tần số cộng hưởng r, rad/s, là tần số tại đú xuất hiện cộng hưởng đỉnh; - Tần số cắt c, rad/s, là tần số tại đú đường đặc tớnh tần số biờn độ loga cắt trục thực.
- Băng thụng B, rad/s, là giải thụng của hệ thống từ tần số bằng khụng đến tần số mà ởđú biờn độ giảm đi 3 dB.
Cỏc chỉ tiờu chất lượng trong miền thời gian và trong miền tần số cú quan hệ chặt chẽ với nhau. Thụng thường độ quỏ điều chỉnh % lớn thỡ MP cũng lớn tương ứng. Giỏ trị cộng hưởng đỉnh tối ưu là nằm trong khoảng 1,1 MP 1,5. Thời gian quỏ độ ts
lớn thỡ MP nhỏ vỡ vậy hệ thống tỏc động chậm. Băng thụng B rộng thỡ cỏc tớn hiệu tần số cao được đưa tới hệ thống nhiều hơn nờn đỏp ứng của hệ sẽ nhanh hơn và ngược lại.
Vớ dụ 2 sau đõy sẽ minh họa đỏp ứng tần số của hệ thống điều khiển tự động cú hàm truyền G(s) được mụ tả trong vớ dụ 1.
Chương trỡnh viết trờn Scrips như sau:
% Dap ung tan so
% Ten chuong trinh: gtmh2 num=5; den=[1,3,20]; bode(num, den)
Chỳng ta nhận được đặc tớnh biờn độ (thứ nguyờn là dB) và pha (độ) trờn màn hỡnh đồ họa như hỡnh 6.2
7.4. ỨNGDỤNG MATLAB - SIMULINK ĐỂ PHÂN TÍCH VÀ KHẢO SÁT HỆ
THỐNGĐIỀUKHIỂNTỰĐỘNG TRONG KHễNG GIAN TRẠNG THÁI
So với phương phỏp biểu diễn hệ thống điều khiển tự động bằng hàm truyền đạt Laplace, phương phỏp biểu diễn bằng phương trỡnh khụng gian trạng thỏi cú một số ưu điểm sau: hệ phương trỡnh mụ tả hệ thống là hệ phương trỡnh bậc nhất nờn tương ứng đơn giản trong tớnh toỏn đồng thời cỏc hệ số là cỏc ma trận nờn dựng MATLAB để giải
91 rất thuận tiện. Phương trỡnh khụng gian trạng thỏi được viết trực tiếp trong miền thời gian vỡ vậy rất tiện cho việc giải bằng mỏy tớnh. Cỏc hệ nhiều đầu vào nhiều đầu ra (MIMO) và cỏc hệ phi tuyến khụng dừng thường được biểu diễn bằng khụng gian trạng thỏi.
Hệ thống tuyến tớnh dừng (LTI-linear time invariant) được mụ tả bởi ba mụ hỡnh cơ bản là mụ hỡnh hàm truyền (TF-Transfer Function), mụ hỡnh điểm khụng - điểm cực - khuyếch đại (ZPK-Zero-Pole-Gain) và mụ hỡnh khụng gian trạng thỏi (SS - State Space).
Sau đõy là cỏc vớ dụ về cỏc dạng mụ hỡnh núi trờn - Mụ hỡnh hàm truyền (TF) − + − + + + + = + + + n n 1 1 2 n 1 m m 1 1 2 m 1 p s p s ... p G(s) q s q s ... q Vớ dụ 3: = + + 2 2s G(s) s 3s 20
Mụ hỡnh hàm truyền được biểu diễn trờn Matlab như sau: >> num = [2 0]; % Tu so: s
>> den = [1 3 20]; % Mau so: s^2+3s+20 >> H = tf(num, den) % Ham truyen Transfer function:
2 s --- s^2 + 3 s + 20 >>
- Mụ hỡnh điểm khụng - điểm cực - khuyếch đại (ZPK)
− − − = − − − 1 2 n 1 2 m (s z )(s z )...(s z ) G(s) K (s p )(s p )...(s p )
với K là hệ số khuyếch đại
z1… zn là cỏc điểm khụng (zeros) của G(s) p1… pm là cỏc điểm cực (poles) của G(s)
92 Vớ dụ 4: Xỏc định trờn Matlab hàm truyền dạng ZPK của hàm truyền G(s) như sau: = − − − + s G(s) 2 (s 2)(s ^ 2 2s 2) Giải: >> k = -2; >> z = 0; >> p = [2 1+i 1-i]; >> G = zpk(z,p,k) Zero/pole/gain: − − − + 2s (s 2)(s ^ 2 2s 2) >>
- Mụ hỡnh khụng gian trạng thỏi: x(t)==A(t) Bu(t)++
y(t) Cx(t) Du(t)
Trong đú x(t) là vectơ trạng thỏi kớch thước n1 và cỏc thành phần của nú được gọi là cỏc biến trạng thỏi. Trong trường hợp chung, nếu hệ thống cú bậc n, cú p tớn hiệu vào và m tớn hiệu ra thỡ cỏc ma trận cú kớch thước như sau:
A = n n, B = n p, C = m n, D = m p.
A là ma trận hệ thống, B là ma trận hằng số. Ma trận C liờn hệ đầu ra hệ thống với cỏc biến trạng thỏi, ma trận D liờn hệ trực tiếp đầu vào u(t) với đầu ra y(t) của hệ thống. Vectơ vào u(t) cú kớch thước p p và vectơ ra y(t) cú kớch thước m p.
Để xõy dựng phương trỡnh trạng thỏi người ta phải chuyển phương trỡnh vi phõn bậc n biểu diễn ĐKTĐ thành n phương trỡnh vi phõn bậc nhất đối với vectơ trạng thỏi. Do chọn biến trạng thỏi là khụng đơn trị nờn cú nhiều dạng phương trỡnh trạng thỏi. Thụng thường phương trỡnh trạng thỏi được viết dưới dạng chuẩn điều khiển được - CCF (Canonical controllable form) và dạng chuẩn quan sỏt được - COF (Canonical observable form).
Vớ dụ 5: Phương trỡnh trạng thỏi đơn giản của một động cơ điện cú dạng như sau:
= +
= +
x(t) A(t) Bu(t)
y(t) Cx(t) Du(t) Với = = = =
− −
0 1 0 y
A ; B ; C 1 0 ; D 0 ; x
5 2 3 dy
93 Giải: Lập M-file như sau: