Matlab căn bản và ứng dụng
MATLAB là sản phẩm phần mềm của công ty MathWorks Inc. Ƣu điểm nổi bật của
MATLAB là khả năng tính toán và biểu diễn đồ hoạ kỹ thuật nhanh chóng, đa dạng và
chính xác cao. Thƣ viện hàm của MATLAB bao gồm rất nhiều chƣơng trình tính toán con;
Các chƣơng trình con này giúp ngƣời sử dụng giải quyết nhiều loại bài toán khác nhau, đặc
biệt là các bài toán về ma trận, số phức, hệ phƣơng trình tuyến tính cũng nhƣ phi tuyến.
MATLAB cũng cho phép xử lý dữ liệu và biểu diễn đồ hoạ trong không gian 2D và 3D với
nhiều dạng đồ thị thích hợp, giúp ngƣời sử dụng có thể trình bày kết quả tính toán một cách
trực quan và thuyết phục hơn. Thêm vào đó, các phiên bản MATLAB ngày càng phát triển
nhiều module phần mềm bổ sung, gọi là các Toolbox (bộ công cụ) với phạm vi chức năng
chuyên dụng cho từng chuyên ngành cụ thể.
Tài liệu này giới thiệu cách sử dụng MATLAB phần căn bản và ứng dụng các bộ công
cụ Control system toolbox và SIMULINK để mô phỏng, phân tích động học các hệ thống
điều khiển. Các ví dụ và hình minh hoạ trong tài liệu đƣợc thực hiện với phiên bản
MATLAB 7 Release 14.
) (1 2sin )siny t t t ; t [0, 2 ] 7) Sử dụng lệnh ezplot vẽ đồ thị các hàm số sau trên cùng một hệ trục tọa độ : 2 3 1( ) 1 3 2 t ty t e e ; 4 42 1 ( ) 1 cos3 sin3 3 t ty t e t e t Thiết đặt hệ trục toạ độ tƣơng ứng với t [0, 4] ; y1 và y2 [0, 1.2] 8) Vẽ trên cùng một hệ trục toạ độ đồ thị của hai hàm số : 58 80t t 18 29 h1(t) 1 e e 11 11 h2(t) = 69t 47 1 e sinh(11t) cosh(11t) 11 Thiết đặt hệ trục toạ độ với t [0, 0.4]; h1 và h2 [0, 1.2]. MATLAB CAÊN BAÛN & ÖÙNG DUÏNG -75- Nhận xét kết quả và giải thích? 9) Vẽ trên cùng một hệ trục toạ độ đồ thị của hai hàm số : 2 6t t 3 1 h1(t) 1 e e 4 4 h2(t) = 4t 1 1 e sinh(2t) cosh(2t) 2 Thiết đặt hệ trục toạ độ với t [0, 3]; h1 và h2 [0, 1.05]. Biên Soạn : NGUYỄN THẾ HÙNG - 76- Chƣơng 6 1) Tìm giá trị bé nhất và lớn nhất của các hàm số sau: a. 3 26 5y x x ; x [-1, 5] b. 2 sin( )xy e x ; x [-6, 0] c. 2100y x ; x [-4, 4] d. 2 2 1 1 x x y x x ; x [-200,200] e. 22y tgx tg x ; x [0, /2] f. 2xy xe ; x [-1, 1] Hƣớng dẫn : Cách 1: Vẽ và sử dụng đồ thị. Cách 2: Dùng lệnh [xmin,ymin] = fminbnd (y,x1,x2) Ví dụ: >> y='x^3-6*x^2+5' >> [xmin, ymin] = fminbnd (y,-1,5) % tìm xmin, ymin của hàm y=f(x) >> yN='-(x^3-6*x^2+5)' % yN= ['-',y] % tạo yN = - y >> [xNmin, yNmin] = fminbnd (yN,-1,5) % tìm xmin, ymin của yN >> xmax=xNmin, ymax= -yNmin % đảo dấu của yNmin 2) Tính các giới hạn sau : a. 0 sin lim x x x b. 0 1 lim x x ; 0 1 lim x x c. 2 2 lim 2tg tg x x x d. 5lim 1 t t e ; lim 1 x x a x e. 0 sin( ) sin lim h x h x h f. 1 lim 1 1p qx p q x x g. lim x a x a x a x a h. 1/0 1 lim 1 xx e ; 1/0 1 lim 1 xx e i. 2 1 0 ln lim ln x xx xa x a b x b k. 2 2 1 lim 1x x x x x ; 2 2 1 lim 1x x x x x Chú ý: Khi x 0- lấy giới hạn bên trái ('left') điểm 0 Khi x 0+ lấy giới hạn bên phải ('right') điểm 0 Khi x - lấy giới hạn tại -Inf hoặc giới hạn bên phải ('right') điểm -Inf Khi x + lấy giới hạn tại Inf hoặc giới hạn bên trái ('left') điểm Inf a xmin= 4 ymin=-27 xmax= 0 ymax= 5 b xmin=-2.356 ymin=-14.92 xmax=-5.498 ymax= 345.28 c xmin= 4 ymin= 9.165 xmax= 0 ymax= 10 d xmin= -200 ymin= -1 xmax=-0.5 ymax= 1.667 e xmin= 1.57 ymin=-inf xmax= 0.785 ymax= 1 f xmin=-0.707 ymin=-0.429 xmax= 0.707 ymax= 0.429 MATLAB CAÊN BAÛN & ÖÙNG DUÏNG -77- 3) Dùng hàm symsum tính các tổng sau : a. 1 n n ; 2 1 n n ; 3 1 n n ; 4 1 n n b. 1 2 n n ; 1 3 n n ; 1 (3 1) n n ; 2 1 4 n n c. 1 (2 1) n k ; 2 1 (2 1) n k ; 3 1 (2 1) n k k d. 1 (1/ ) n k k ; 1 (1/ ) n k ak ; 2 1 (1/ ) n k k f. 0 ! n k k ; 0 ! k k x k ; 0 sin( )n k k k Cho n=10. Hãy tính giá trị của mỗi tổng đã cho bằng các phƣơng pháp sau : 1- Dùng hàm symsum tính tổng S theo n . Sau đó gán n=10 ; eval(S) 2- Dùng hàm symsum tính tổng trực tiếp với n=10. 3- Dùng vòng lặp for hoặc while 4- Dùng các hàm sum, prod (tính tổng, tích các phần tử của vectơ) . Nhận xét về phạm vi ứng dụng và kết quả của các phƣơng pháp trên. 4) Dùng lệnh dsolve giải các phƣơng trình vi phân sau đây : a. 'y ay b. siny y t c. 2 (2 4) xy y y x e d. 22 0xyy y x e. 2 2 1y y với điều kiện (ĐK) đầu (0) 0y f. 3 2 0y y y với ĐK đầu (0)y a ; (0)y b g. 2 5 3y y y với ĐK đầu (0) (0) 0y y h. 2 0y a y với ĐK y(0)=1; ( / ) 0y a i. 3 cosy y x x với ĐK đầu (0) (0) 0y y 5) Tìm hàm quá độ h(t) nếu biết ảnh Laplace H(s) nhƣ sau: (a) 2 40 H(s) s(s 13s 40) (b) 2 10s 25 H(s) s(s 6s 25) (c) 2 3s 15 H(s) s(s 6s 15) (d) 2 116(s 40) H(s) s(s 138s 4640) (e) 2 5s 25 H(s) s(s 8s 25) (f) 2 122(s 43) H(s) s(s 157s 5246) Biên Soạn : NGUYỄN THẾ HÙNG - 78- Chƣơng 7 1) Tìm hàm truyền đạt của hệ thống có sơ đồ khối sau đây: 2) Tìm hàm truyền đạt của hệ thống có sơ đồ khối sau đây: 3) Tìm hàm truyền đạt của hệ thống có sơ đồ khối sau đây: 4) Cho hệ thống có sơ đồ khối nhƣ hình vẽ . Bộ điều khiển PID có KP =7; KI =12; KD =1. Tín hiệu vào bậc thang đơn vị x= 1(t). x y 2 1 s 1 1 s s 1 2(s+1) G1 G2 G3 G4 G5 A B s 1 x y 2 1 s 1 1 s s 1 2(s+1) G1 G2 G3 G4 G5 A B s 1 x y 1 1 s s 1 2(s+1) G1 G2 G3 G4 H1 B A K 2 1 s x y PID 2 10 s 5s 6 e MATLAB CAÊN BAÛN & ÖÙNG DUÏNG -79- Hãy viết chƣơng trình Matlab thực hiện các yêu cầu a, b, c, d, e sau đây: a. Tìm hàm truyền đạt G(s) của hệ thống. b. Xác định giá trị các cực và zero của hệ thống. c. Vẽ biểu đồ đáp ứng quá độ h(t) của hệ thống. d. Tìm biểu thức của hàm quá độ h(t) = ? e. Tìm giá trị xác lập h( ) và sai số xác lập e( ) Lƣu chƣơng trình, đặt tên tập tin là Bai7_4.m . Gọi thực hiện chƣơng trình và thực hiện tiếp yêu cầu sau đây: f. Thao tác với đồ thị để xác định các thông số chất lƣợng: thời gian quá độ ( Settling time), độ vọt lố (Overshoot), giá trị xác lập h( ), sai số xác lập e( ). Vào menu file> save as> lƣu chƣơng trình với tên mới là Bai7_4B.m . Chỉnh sửa chƣơng trình trên tập tin mới để thực hiện tiếp các yêu cầu sau đây: g. Giữ nguyên giá trị ban đầu của KP và KD. Thay đổi giá trị KI tuỳ ý. Xác định giá trị giới hạn của KI để hệ thống luôn ổn định. (nói cách khác, h( ) có giá trị hữu hạn). Trong phạm vi hệ thống còn ổn định, có nhận xét gì về giá trị của h( ) và e( ) khi KI thay đổi ? h. Đặt giá trị KI =0 và KD=1. Thay đổi giá trị KP tuỳ ý. Xác định giá trị giới hạn của KP để hệ thống luôn ổn định. Trong phạm vi hệ thống còn ổn định, có nhận xét gì về giá trị của e( ) và tính dao động của hệ khi KP thay đổi ? i. Đặt giá trị KI =0 và KP=7. Thay đổi giá trị KD tuỳ ý. Có nhận xét gì về giá trị e( ) và tính dao động của hệ khi KD thay đổi ? 5) Thực hiện tƣơng tự bài tập 4 với hệ thống có sơ đồ khối nhƣ hình vẽ . Bộ điều khiển PID có KP =6; KI =8; KD =1. 6) Thực hiện tƣơng tự bài tập 4 với hệ thống có sơ đồ khối nhƣ hình vẽ . Bộ điều khiển PID có KP =9; KI =20; KD =1. 7) Thực hiện tƣơng tự bài tập 4 với hệ thống có sơ đồ khối nhƣ hình vẽ . Bộ điều khiển PI có KP =1; KI =2 . x y PID 2 6 s 5s 4 e x y PID 2 1 s 6s 5 e x y PI 2 40 s 16s 28 e Biên Soạn : NGUYỄN THẾ HÙNG - 80- MATLAB CAÊN BAÛN & ÖÙNG DUÏNG -81- CÂU HỎI TRẮC NGHIỆM 1) Tên biến nào sau đây là không hợp lệ: a) Chieucao b) Chieu-cao c) ChieuCao d) ChIeUcao1 2) Tên biến nào sau đây là hợp lệ: a) G1(s) b) G1s c) 1Gs d) G1s 3) Để xoá hai biến u và v trong Workspace có thể dùng lệnh : a) >> clear u, v b) >> clear u v c) >> clear u ; v d) cả a và b đều đúng 4) Để xoá mọi biến trong Workspace và làm sạch màn hình MATLAB có thể dùng lệnh : a) >> clear clc b) >> clear , clc c) >> clear (clc) d) cả 3 cách đều đƣợc 5) Câu lệnh nào sau đây là hợp lệ, không bị báo lỗi : a) s= ' input ' b) s= input (Hay nhap gia tri s:) c) s= input d) s= Input ('Hay nhap gia tri s: ') 6) Để mở mới cửa sổ soạn thảo Editor từ cửa sổ MATLAB có thể dùng cách : a) gõ lệnh edit b) vào menu File -> New-> M-File c) a và b đều đƣợc d) a và b đều sai 7) M-file có thể là: a) scrift file b) function file c) file chƣơng trình d) bạn có ý kiến khác 8) Để thực hiện file "baitap1.m", tại command window có thể đánh lệnh: a) >>baitap1 b) >>baitap1.m c) cả hai đều đƣợc d) cả hai đều sai 9) Dòng khai báo hàm nào sau đây là không hợp lệ : a) function TT= bai_1(a,b,c) b) function [TT]= bai_1(a,b,c) c) function = bai_1(a,b,c) d) function [TT, DT]= bai_1(a,b,c) 10) >> A= [1 2] là câu lệnh dùng để nhập A với A là : a) vectơ cột b) vectơ cột bƣớc tăng bằng 2 c) véctơ hàng d) vectơ hàng bƣớc tăng bằng 2 11) >> B= [ 1 2 3;-4 6 1] là câu lệnh dùng để nhập B với B là : a) ma trận b) ma trận hàng c) ma trận cấp 2 d) ma trận cấp 3 12) Cho 2 véctơ u = [ 1 3 5] và v= [2, 4, 6], có thể thực hiện đƣợc phép tính nào sau đây: a) u' .*v b) u*v c) cả hai d) không phép tính nào Biên Soạn : NGUYỄN THẾ HÙNG - 82- 13) Cho 2 véctơ u = [ 1;3 ;5]; v= [2 4 6], có thể thực hiện đƣợc phép tính nào sau đây: a) u.*v b) v' *u c) cả hai d) không phép tính nào 14) Lệnh nào sau đây dùng để tìm véctơ chứa các phần tử ở hàng một của ma trận A ? a) A(1,:) b) A(:,1) c) A(1 :) d) A(1) 15) Lệnh nào sau đây dùng để tìm véctơ chứa các phần tử ở cột hai của ma trận A ? a) A(2,:) b) A(:,2) c) A(2 :) d) A(2) 16) Lệnh >>X= linspace(0,10) cho kết quả X là một : a) véctơ hàng b) véctơ hàng có 100 phần tử c) véctơ cột d) véctơ hàng có bƣớc tăng bằng 1 17) Các trƣờng hợp nào sau đây sẽ báo lỗi: a) >>x=12; disp(x) b) >> x=12; fprintf (x) c) cả hai d) không trƣờng hợp nào 18) Lệnh nào sau đây sẽ không thực hiện đƣợc ? a) G=tf(6,[1 5 6]) b) G=tf( [6],[1 5 6]) c) s=tf(s); G=6/s^2+5*s+6 d) G=zpk([ ],[-2 -3],6) 19) Lệnh vẽ đồ thị nào sau đây sẽ bị báo lỗi ? a) syms x; y=x^2; ezplot(y,[0, pi]) b) syms x; y=x^2; ezplot(x,y,[0, pi]) c) cả hai d) không lệnh nào 20) Lệnh vẽ đồ thị nào sau đây sẽ bị báo lỗi ? a) x=0:100; y=x.^2 ; plot(x,y) b) y=x.^2 ; plot(x,y,[0:100]) c) cả hai d) không lệnh nào 21) Có thể dùng lệnh nào để cộng hai đa thức (x+1) và (x2+3) ? a) >>[1 1] + [1 3] b) >> [1 1] + [1 0 3] c) >>[0 1 1] + [1 0 3] d) >>[1 1 0] + [1 0 3] 22) Để tìm hàm truyền của hai phần tử nối tiếp, có thể dùng : a) toán tử + b) Hàm series c) a và b đều đƣợc d) a và b đều sai 23) Để tìm hàm truyền của hai phần tử song song, có thể dùng : a) toán tử * b) Hàm parallel c) cả hai đều đƣợc d) cả hai đều sai 24) Hệ sys mô tả bởi các lệnh: >> G1=tf(1,[1,4]); sys=feedback(G1,1,1) a) là hệ phản hồi dƣơng b) là hệ phản hồi âm c) là hệ phản hồi âm đơn vị d) là hệ phản hồi dƣơng đơn vị
File đính kèm:
- Matlab căn bản và ứng dụng.pdf