5- Câu hỏi và bài tập
6.2- Giới thiệu về Matlab Simulink
6.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ạ 2D, 3D. Matlab là một môi tr−ờng mở, cung cấp các thuật tố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 tố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 tốn trong các lĩnh vực chun 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 tố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 tố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 tố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 tố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
Bộ mơn Tự động hoá http://www.ebook.edu.vn Khoa Điện 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 tố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:
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 tốn đã định. Khi chạy ch−ơng trình chỉ cần gõ tên file (filename) khơng có đ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:
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 tồn bộ ch−ơng trình. Dịng đầu tiên của Function file phải có chữ “Function”
6.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 chun 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− 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, ngồ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.
Bộ mơn Tự động hoá http://www.ebook.edu.vn Khoa Điện
6.3- ứng dụng Matlab - Simulink để phân tích và khảo sát hệ thống điều khiển tự động trong miền thời gian và tần số khiển tự động trong miền thời gian và tần số
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.
Để 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 mìn số ngẫu nhiên phân bố đều trong khoảng (0,1), cú pháp nh− sau :
Đá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 q độ 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
- 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
Bộ mơn Tự động hố http://www.ebook.edu.vn Khoa Điện plot(t,y) ;
title(‘Dap ung he thong voi tin hieu buoc nhay’) ; case 3
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:
>> 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 độ q đ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
6.4- ứng dụng Matlab - Simulink để phân tích và khảo sát hệ thống điều khiển tự độ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 tốn đồng thời các hệ số là các ma trận nên dùng MATLAB để giải 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.
Bộ mơn Tự động hố http://www.ebook.edu.vn Khoa Điện 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)
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 nì1 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 =⎡⎢ ⎤⎥ =⎢ ⎥⎡ ⎤ =[ ] [ ] =⎡ ⎤⎢ ⎥
− −
⎣ ⎦ ⎣ ⎦ ⎣ ⎦