Bài giảng Mô hình hóa và mô phỏng với matlab/simulink

NỘI DUNG „Vai trò của mô hình hóa và mô phỏng „Mô hình toán và phương pháp số †Mô hình toán của hệvật lý †Phương pháp sốgiải phương trình vi phân „Công cụMATLAB/Simulink †MATLAB †Simulink „Phân tích, mô phỏng một sốmô hình thiết bị điện với MATLAB/Simulink

pdf32 trang | Chia sẻ: maiphuongtt | Lượt xem: 4478 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Bài giảng Mô hình hóa và mô phỏng với matlab/simulink, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1MÔ HÌNH HÓA VÀ MÔ PHỎNG VỚI MATLAB/SIMULINK Mô hình hóa và mô phỏng thiết bị điện – dành cho sinh viên chuyên ngành TBĐ-ĐT Soạn bởi: Trần Vĩnh Thái B/m Thiết bị điện – điện tử ĐHBK Hà nội ĐHBK Hànội B/m Thiết bị điện – điện tử 2 NỘI DUNG „ Vai trò của mô hình hóa và mô phỏng „ Mô hình toán và phương pháp số † Mô hình toán của hệ vật lý † Phương pháp số giải phương trình vi phân „ Công cụ MATLAB/Simulink † MATLAB † Simulink „ Phân tích, mô phỏng một số mô hình thiết bị điện với MATLAB/Simulink ĐHBK Hànội B/m Thiết bị điện – điện tử 3 Yêu cầu với sinh viên „ Tham dự lớp đầy đủ „ Làm các bài tập về nhà „ Hoàn thành bài tập lớn „ Thi cuối học kỳ ĐHBK Hànội B/m Thiết bị điện – điện tử 4 1. Vai trò của mô hình hóa và mô phỏng „ Mô hình – dạng biểu diễn đơn giản hóa của một hệ vật lý. Chương trình này giới hạn mô hình ở dạng thức mô tả toán học, mô hình toán. „ Mô hình hóa và mô phỏng – là kỹ thuật cho phép xây dựng mô hình của hệ vật lý và thực hiện thực nghiệm trên mô hình đó. Môn học này sử dụng công cụ MATLAB/Simulink để biểu diễn mô hình toán của hệ trên máy tính số và cho phép phân tích, nghiên cứu nó. „ Vai trò của mô hình hóa và mô phỏng † Được sử dụng khi hệ vật lý không tồn tại, tốn kém và/hoặc tốn thời gian xây dựng… † Cho phép quan sát quá trình, đáp ứng động của hệ thống thiết kế trước khi thực nghiệm trên thiết bị thực † Là công cụ hữu hiệu với chi phí thấp cho nghiên cứu, dễ sử dụng, dễ dàng thay đổi phương án… ĐHBK Hànội B/m Thiết bị điện – điện tử 5 2. Mô hình toán và phương pháp số „ Phân loại mô hình toán † Mô hình tuyến tính, phi tuyến † Mô hình thông số tập trung, thông số rải † Mô hình tĩnh, động † Mô hình liên tục, gián đoạn † Mô hình xác định, bất định „ Trình tự xây dựng mô hình † Xác định mục tiêu và điều kiện của bài toán † Đặt giả thiết đơn giản hóa và loại bỏ các yếu tố không quan trọng † Xác định các tham số cho mô hình theo mục tiêu và điều kiện † Kiểm chứng mô hình về mức độ phù hợp với hệ thống vật lý ĐHBK Hànội B/m Thiết bị điện – điện tử 6 2. Mô hình toán và phương pháp số „Mô tả toán học thường gặp † Phương trình vi phân † Hàm truyền † Không gian trạng thái ĐHBK Hànội B/m Thiết bị điện – điện tử 7 2. Mô hình toán và phương pháp số „ Phương trình vi phân – Thí dụ 1: Phân tích mạch điện trên hình vẽ. Nguồn DC 1 V, điều kiện đầu i(0) = 0 A, uc(0) = 0 V. Xác định quá trình quá độ của i(t), uc(t) khi đóng công tắc. wBTVN: Xây dựng mô hình toán động cơ DC kích thích độc lập. ĐHBK Hànội B/m Thiết bị điện – điện tử 8 2. Mô hình toán và phương pháp số „ Hàm truyền † Định nghĩa: The transfer function of a linear, time-invariant, differential equation system is defined as the ratio of the Laplace transform of the output variable to the Laplace transform ofthe input variable, with all initial conditions assumed to be zero. „ Tiếp theo thí dụ 1 – mô tả bài toán ở dạng hàm truyền sC Vvdt diLRi =++ sC CC Vv dt vdLC dt dvRC =++ 2 2 Biểu thức: )( )()( sV sVsY S C= wBTVN: Chuyển mô hình toán động cơ DC kích thích độc lập về dạng hàm truyền. Điều kiện: Mạch từ tuyến tính, kích thích không đổi. ĐHBK Hànội B/m Thiết bị điện – điện tử 9 „ Mô tả không gian trạng thái † Dạng thức „ Tiếp theo thí dụ 1 – mô tả bài toán ở dạng thức không gian trạng thái † Đặt † Từ đó tìm được ma trận A, B, C, D 2. Mô hình toán và phương pháp số wBTVN: Chuyển mô hình toán động cơ DC kích thích độc lập về mô hình không gian trạng thái. Điều kiện: Mạch từ tuyến tính, kích thích không đổi. ĐHBK Hànội B/m Thiết bị điện – điện tử 11 2. Mô hình toán và phương pháp số „ Phương pháp số giải phương trình vi phân † Phương pháp Euler: Giải phương trình y’ = f(t,y) trong khoản [a,b], với y(a) = y(0) = y0: – Chia đoạn [a,b] thành n khoảng h đủ nhỏ – Giá trị của y tại y(k) được tính theo giá trị đã biết y(k-1) và hàm f(tk, yk) theo biểu thức: ),(. 111 −−− += kkkk ytfhyy với k = 1..n ĐHBK Hànội B/m Thiết bị điện – điện tử 12 Thí dụ về ph.pháp Euler viết trong MATLAB ĐHBK Hànội B/m Thiết bị điện – điện tử 13 Sai số của phương pháp Euler w Sai số tỉ lệ với h2. ĐHBK Hànội B/m Thiết bị điện – điện tử 14 2. Mô hình toán và phương pháp số „ Các phương pháp số khác † Phương pháp Runge-Kutta bậc 2 – trong MATLAB là ODE23 † Phương pháp Runge-Kutta bậc 4 – trong MATLAB là ODE45 † Phương pháp chuỗi Taylor † Các phương pháp Predictor-Correctors † … wThí dụ ODE45: ĐHBK Hànội B/m Thiết bị điện – điện tử 15 Thí dụ: Runge-Kutta Order 4 ĐHBK Hànội B/m Thiết bị điện – điện tử 16 3. MATLAB/Simulink „ Tại sao chọn MATLAB/Simulink? Đây là một công cụ: † Mạnh cho việc thực hiện mô phỏng các mô hình toán † Dễ học, dễ sử dụng Æ tốn ít thời gian đầu tư cho công cụ „ Các công cụ khác † Dymola với ngôn ngữ Modelica † 20-Sim với phương pháp Bond Graph † Maple, Mathematica, ACSL, Saber, Dynast… „ Tài liệu tham khảo † MATLAB/Simulink dành cho kỹ sư điều khiển tự động – Nguyễn Phùng Quang † … ĐHBK Hànội B/m Thiết bị điện – điện tử 17 MATLAB „ Môi trường MATLAB, demo và help „ Tạo biến trong MATLAB „ Thao tác với ma trận, toán tử logic và các hàm toán học „ Công cụ hiển thị „ M-file „ Viết chương trình trong MATLAB „ Lưu biến và buổi làm việc; thư mục và đường dẫn „ GUI „ Giải hệ phương trình vi phân với MATLAB „ … ĐHBK Hànội B/m Thiết bị điện – điện tử 18 Môi trường MATLAB To get started, select "MATLAB Help" from the Help menu. ĐHBK Hànội B/m Thiết bị điện – điện tử 19 » a = 2; » b = 5; » a^b ans = 32 » x = 5/2*pi; » y = sin(x) y = 1 » z = asin(y) z = 1.5708 » a = 2; » b = 5; » a^b ans = 32 » x = 5/2*pi; » y = sin(x) y = 1 » z = asin(y) z = 1.5708 Tạo biến trong môi trường MATLAB Kết quả được gán cho “ans” nếu không đặt tên biến Dấu () để truy cập hàm Tác dụng của dấu “;” MATLAB – máy tính tay Gán các biến trong MATLAB » -5/(4.8+5.32)^2 ans = -0.0488 » (3+4i)*(3-4i) ans = 25 » cos(pi/2) ans = 6.1230e-017 » exp(acos(0.3)) ans = 3.5470 » -5/(4.8+5.32)^2 ans = -0.0488 » (3+4i)*(3-4i) ans = 25 » cos(pi/2) ans = 6.1230e-017 » exp(acos(0.3)) ans = 3.5470 ĐHBK Hànội B/m Thiết bị điện – điện tử 20 Một số lệnh tiện ích „ Các lệnh tiện ích † who và whos – liệt kê các biến † clear, clear x, clear all – xóa biến † close – xóa cửa sổ đồ họa hiện hành † cd – đổi thư mục hiện hành † dir – liệt kê nội dung thư mục hiện hành † format – đặt định dạng biến lưu trong môi trường † help “tên hàm” – tra cứu nhanh † clc – xóa màn hình lệnh † … ĐHBK Hànội B/m Thiết bị điện – điện tử 21 Thao tác với ma trận „ 3 khái niệm trong đại số tuyến tính † Vô hướng – là một số hay một từ (có giá trị đơn nhất) † Véc-tơ – là mảng 1-D chứa một dãy các vô hướng, biến hoặc biểu thức † Ma trận – là mảng n-D chứa các vô hướng, biến hoặc biểu thức „ Trong MATLAB † Vô hướng – là ma trận 1x1 † Véc-tơ – là ma trận 1xn hoặc nx1 † Ma trận nxm ĐHBK Hànội B/m Thiết bị điện – điện tử 22 Thao tác với ma trận » a=[1 2;3 4] a = 1 2 3 4 » b=[-2.8, sqrt(-7), (3+5+6)*3/4] b = -2.8000 0 + 2.6458i 10.5000 » b(2,5) = 23 b = -2.8000 0 + 2.6458i 10.5000 0 0 0 0 0 0 23.0000 » a=[1 2;3 4] a = 1 2 3 4 » b=[-2.8, sqrt(-7), (3+5+6)*3/4] b = -2.8000 0 + 2.6458i 10.5000 » b(2,5) = 23 b = -2.8000 0 + 2.6458i 10.5000 0 0 0 0 0 0 23.0000 Tách dòng với dấu (;) Tách cột với dấu trống / phảy (,) Dùng dấu ngoặc [ ] ĐHBK Hànội B/m Thiết bị điện – điện tử 23 Thao tác với ma trận 4 10 1 6 2 8 1.2 9 4 25 7.2 5 7 1 11 0 0.5 4 5 56 23 83 13 0 10 1 2 Dòng (m) 3 4 5 Cột (n) 1 2 3 4 5 1 6 11 16 21 2 7 12 17 22 3 8 13 18 23 4 9 14 19 24 5 10 15 20 25 A = A (2,4) A (17) Ma trận: Vô hướng: 1-by-1 array Véc tơ: m-by-1 array 1-by-n array Ma trận: m-by-n array ĐHBK Hànội B/m Thiết bị điện – điện tử 24 Thao tác với ma trận » w=[1 2;3 4] + 5 w = 6 7 8 9 » x = 1:5 x = 1 2 3 4 5 » y = 2:-0.5:0 y = 2.0000 1.5000 1.0000 0.5000 0 » z = rand(2,4) z = 0.9501 0.6068 0.8913 0.4565 0.2311 0.4860 0.7621 0.0185 » w=[1 2;3 4] + 5 w = 6 7 8 9 » x = 1:5 x = 1 2 3 4 5 » y = 2:-0.5:0 y = 2.0000 1.5000 1.0000 0.5000 0 » z = rand(2,4) z = 0.9501 0.6068 0.8913 0.4565 0.2311 0.4860 0.7621 0.0185 Cộng vô hướng Tạo dãy trình tự: dùng dấu (:) Các hàm tiện ích tạo ma trận ĐHBK Hànội B/m Thiết bị điện – điện tử 25 Thao tác với ma trận „ Xóa dòng, cột của ma trận » A=[1 5 9;4 3 2.5; 0.1 10 3i+1] A = 1.0000 5.0000 9.0000 4.0000 3.0000 2.5000 0.1000 10.0000 1.0000+3.0000i » A(:,2)=[] A = 1.0000 9.0000 4.0000 2.5000 0.1000 1.0000 + 3.0000i » A(2,2)=[] ??? Indexed empty matrix assignment is not allowed. » A=[1 5 9;4 3 2.5; 0.1 10 3i+1] A = 1.0000 5.0000 9.0000 4.0000 3.0000 2.5000 0.1000 10.0000 1.0000+3.0000i » A(:,2)=[] A = 1.0000 9.0000 4.0000 2.5000 0.1000 1.0000 + 3.0000i » A(2,2)=[] ??? Indexed empty matrix assignment is not allowed. ĐHBK Hànội B/m Thiết bị điện – điện tử 26 Thao tác với ma trận „ Truy cập các thành phần trong ma trận 4 10 1 6 2 8 1.2 9 4 25 7.2 5 7 1 11 0 0.5 4 5 56 23 83 13 0 10 1 2 3 4 5 1 2 3 4 5 1 6 11 16 21 2 7 12 17 22 3 8 13 18 23 4 9 14 19 24 5 10 15 20 25 A = A(3,1) A(3) A(1:5,5) A(:,5) A(21:25) A(4:5,2:3) A([9 14;10 15]) A(1:end,end) A(:,end) A(21:end)’ ĐHBK Hànội B/m Thiết bị điện – điện tử 27 Thao tác với ma trận „ Nhân chia ma trận » a = [1 2 3 4; 5 6 7 8]; » b = ones(4,3); » c = a*b c = 10 10 10 26 26 26 » a = [1 2 3 4; 5 6 7 8]; » b = ones(4,3); » c = a*b c = 10 10 10 26 26 26 [2x4] [4x3] [2x4]*[4x3] [2x3] a(2nd row).b(3rd column) » a = [1 2 3 4; 5 6 7 8]; » b = [1:4; 1:4]; » c = a.*b c = 1 4 9 16 5 12 21 32 » a = [1 2 3 4; 5 6 7 8]; » b = [1:4; 1:4]; » c = a.*b c = 1 4 9 16 5 12 21 32 c(2,4) = a(2,4)*b(2,4) ĐHBK Hànội B/m Thiết bị điện – điện tử 28 Thao tác với ma trận „ Các hàm tiện ích † zeros – tạo ma trận rỗng † ones – tạo ma trận 1 † eye – tạo ma trận đơn vị † rand – tạo ma trận các phần tử ngẫu nhiên † diag – tạo ma trận đường chéo † size – hàm trả về kích thước của ma trận † fliplr – đảo cột ma trận trái phải † flipud – đảo hàng ma trận trên dưới † rot90 – xoay ma trận 90 độ (ngược chiều kim đồng hồ) † transpose (‘) – chuyển vị ma trận † cross & dot – nhân ma trận † det – định thức ma trận † inv – nghich đảo ma trận † rank – hạng ma trận… ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ 100 010 001 ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ 300 020 001 ĐHBK Hànội B/m Thiết bị điện – điện tử 29 Các toán tử logic » Mass = [-2 10 NaN 30 -11 Inf 31]; » each_pos = Mass>=0 each_pos = 0 1 0 1 0 1 1 » all_pos = all(Mass>=0) all_pos = 0 » all_pos = any(Mass>=0) all_pos = 1 » pos_fin = (Mass>=0)&(isfinite(Mass)) pos_fin = 0 1 0 1 0 0 1 » Mass = [-2 10 NaN 30 -11 Inf 31]; » each_pos = Mass>=0 each_pos = 0 1 0 1 0 1 1 » all_pos = all(Mass>=0) all_pos = 0 » all_pos = any(Mass>=0) all_pos = 1 » pos_fin = (Mass>=0)&(isfinite(Mass)) pos_fin = 0 1 0 1 0 0 1 = = equal to > greater than < less than >= Greater or equal <= less or equal ~ not & and | or isfinite(), etc. . . . all(), any() find 1 = TRUE 0 = FALSE w Lưu ý: ĐHBK Hànội B/m Thiết bị điện – điện tử 30 Một số hàm toán học „ Các hàm toán học † abs, sign – hàm trả về trị tuyệt đối và dấu † sin, cos, asin, acos… – hàm lượng giác † exp, log, log10 – hàm mũ e, log tự nhiên, log hệ 10 † ceil, floor, fix, round – các hàm làm tròn số † sqrt – hàm căn bậc hai † gcd – ước số chung lớn nhất † lcm – bội số chung nhỏ nhất † real, img – hàm trả về phần thực, phần ảo của số phức † rem, mod – các hàm lấy phần nguyên và phần dư của phép chia † max, min, means – các hàm tìm max, min và trị trung bình † sort – hàm sắp xếp † … ĐHBK Hànội B/m Thiết bị điện – điện tử 31 Công cụ hiển thị - Visualizing data „ 2-D Plotting † Hàm plot() – cú pháp † Thí dụ sử dụng hàm plot() plot(x1, y1, 'clm1', x2, y2, 'clm2', ...)plot(x1, y1, 'clm1', x2, y2, 'clm2', ...) x=[0:0.1:2*pi]; y=sin(x); z=cos(x); plot(x,y,x,z,'linewidth',2) title('Sample Plot','fontsize',14); xlabel('X values','fontsize',14); ylabel('Y values','fontsize',14); legend('Y data','Z data') grid on x=[0:0.1:2*pi]; y=sin(x); z=cos(x); plot(x,y,x,z,'linewidth',2) title('Sample Plot','fontsize',14); xlabel('X values','fontsize',14); ylabel('Y values','fontsize',14); legend('Y data','Z data') grid on ĐHBK Hànội B/m Thiết bị điện – điện tử 32 Công cụ hiển thị - Visualizing data Title Ylabel Xlabel Grid Legend w Sử dụng TEX cho phép hiển thị ký tự Hy Lạp, các ký tự toán học… ĐHBK Hànội B/m Thiết bị điện – điện tử 33 Công cụ hiển thị - Visualizing data „ subplot † Cú pháp »subplot(2,2,1); » … »subplot(2,2,2) » ... »subplot(2,2,3) » ... »subplot(2,2,4) » ... »subplot(2,2,1); » … »subplot(2,2,2) » ... »subplot(2,2,3) » ... »subplot(2,2,4) » ... subplot(rows,cols,index)subplot(rows,cols,index)w Vẽ nhiều đồ thị trên cùng cửa sổ ĐHBK Hànội B/m Thiết bị điện – điện tử 34 Công cụ hiển thị - Visualizing data „ 3-D plotting x = 0:0.1:2; y = 0:0.1:2; [xx, yy] = meshgrid(x,y); zz=sin(xx.^2+yy.^2); surf(xx,yy,zz) xlabel('X axes') ylabel('Y axes') x = 0:0.1:2; y = 0:0.1:2; [xx, yy] = meshgrid(x,y); zz=sin(xx.^2+yy.^2); surf(xx,yy,zz) xlabel('X axes') ylabel('Y axes') ĐHBK Hànội B/m Thiết bị điện – điện tử 35 Công cụ hiển thị - Visualizing data „ Các dạng vẽ contour và 3-D w contourf w contour3 w plot3 w waterfall w mesh w surf ĐHBK Hànội B/m Thiết bị điện – điện tử 36 Công cụ hiển thị - Visualizing data „ Một số thí dụ hiển thị khác w bar w bar3h w hist w area w pie3 w rose ĐHBK Hànội B/m Thiết bị điện – điện tử 37 M-files „ Script files † Là một tập lệnh lưu trong tệp tin m-file (tệp tin có đuôi .m). Tiện lợi hơn việc phải gõ từng lệnh vào dấu nhắc MATLAB (>>). † Các biến tạo ra khi chạy m-file được lưu trữ trong Workspace của MATLAB „ Function files † Cho phép người dùng tạo hàm riêng của mình † Tất cả các biến bên trong hàm có tính chất local (Muốn biến có tính chất global, phải dùng từ khóa global khi khai báo biến) † Thông tin đưa vào hàm dưới dạng thông số † MATLAB hỗ trợ nhiều tính năng cho hàm Æ xem thêm help function ĐHBK Hànội B/m Thiết bị điện – điện tử 38 M-files „ Cửa sổ soạn thảo M-file: Editor/Debugger Select Workspace Set Auto- Breakpoints tips ĐHBK Hànội B/m Thiết bị điện – điện tử 39 M-files „ Function file function y = mean (x) % MEAN Average or mean value. % For vectors, MEAN(x) returns the mean value. % For matrices, MEAN(x) is a row vector % containing the mean value of each column. [m,n] = size(x); if m == 1 m = n; end y = sum(x)/m; Tham số ra Tham số vào Tên hàm (phải trùng với tên file) Các dòng này sẽ xuất hiện khi gõ lệnh help mean Nội dung hàm ĐHBK Hànội B/m Thiết bị điện – điện tử 40 Viết chương trình trong MATLAB „ Các điều khiển chương trình † Lệnh điều kiện if † Vòng lặp while if ((attendance >= 0.90) & (grade_average >= 60)) pass = 1; end; if ((attendance >= 0.90) & (grade_average >= 60)) pass = 1; end; eps = 1; while (1+eps) > 1 eps = eps/2; end eps = eps*2 eps = 1; while (1+eps) > 1 eps = eps/2; end eps = eps*2 ĐHBK Hànội B/m Thiết bị điện – điện tử 41 Viết chương trình trong MATLAB † Vòng lặp for † Lệnh điều kiện switch a = zeros(k,k) % Preallocate matrix for m = 1:k for n = 1:k a(m,n) = 1/(m+n -1); end end a = zeros(k,k) % Preallocate matrix for m = 1:k for n = 1:k a(m,n) = 1/(m+n -1); end end method = 'Bilinear'; switch lower(method) case {'linear','bilinear'} disp('Method is linear') case 'cubic' disp('Method is cubic') otherwise disp('Unknown method.') end method = 'Bilinear'; switch lower(method) case {'linear','bilinear'} disp('Method is linear') case 'cubic' disp('Method is cubic') otherwise disp('Unknown method.') end ĐHBK Hànội B/m Thiết bị điện – điện tử 42 Viết chương trình trong MATLAB „ Kiểu dữ liệu † Numerical arrays † Multidimentional arrays † Structures and Cell arrays 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 Page N Page 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20 ĐHBK Hànội B/m Thiết bị điện – điện tử 43 Lưu biến và buổi làm việc „ Lưu các biến trong Workspace † Dùng lệnh save và load „ Lưu buổi làm việc † Dùng lệnh diary load fname load fname x y z load fname -ascii load fname -mat load fname load fname x y z load fname -ascii load fname -mat save fname save fname x y z save fname -ascii save fname -mat save fname save fname x y z save fname -ascii save fname -mat diary diary fname diary (‘fname’) diary on/off diary diary fname diary (‘fname’) diary on/off ĐHBK Hànội B/m Thiết bị điện – điện tử 44 Xuất/nhập dữ liệu „ Cho tệp tin BINARY † Lệnh fopen, fclose, fread, fwrite, fseek: „ Cho tệp tin TEXT † Lệnh textread † Lệnh dlmread » fid= fopen('mydata.bin' , 'wb'); » fwrite (fid,eye(5) , 'int32'); » fclose (fid); » fid= fopen('mydata.bin' , 'rb'); » M= fread(fid, [5 5], 'int32') » fclose (fid); » fid= fopen('mydata.bin' , 'wb'); » fwrite (fid,eye(5) , 'int32'); » fclose (fid); » fid= fopen('mydata.bin' , 'rb'); » M= fread(fid, [5 5], 'int32') » fclose (fid); »[A1…An]=textread(filename,format,N)»[A1…An]=textread(filename,format,N) » M = dlmread(filename,delimiter,range)» M = dlmread(filename,delimiter,range) ĐHBK Hànội B/m Thiết bị điện – điện tử 45 GUI „ Graphics objects Root object UIMenu objects Axes object Figure object Surface object Line objects Text objects UIControl objects Axes object ĐHBK Hànội B/m Thiết bị điện – điện tử 46 GUI „ Làm việc với object’s handle † Tạo cùng với lệnh † Các hàm tiện ích – 0 – root object handle – gcf – get current figure handle – gca – get current axis handle – gco – get current object handle † Hàm findobj handle = plot(x_data, y_data, ...) h_obj = findobj(h_parent, 'Property', 'Value', ...) Default = 0 (root object) ĐHBK Hànội B/m Thiết bị điện – điện tử 47 GUI „ Thay đổi thuộc tính đối tượng † Lấy thuộc tính của đối tượng với hàm get † Đặt thuộc tính cho đối tượng với hàm set † Thay đổi thuộc tính đối tượng với Property Editor get(h_object) set(h_object) set(h_object,'PropertyName','New_Value',...) ĐHBK Hànội B/m Thiết bị điện – điện tử 48 GUIDE Push ButtonsRadio Buttons Frames Checkbox Slider Edit text static text Axes w MATLAB hỗ trợ việc tạo giao diện người dùng. ĐHBK Hànội B/m Thiết bị điện – điện tử 49 GUIDE „ Tạo giao diện với GUIDE Guide Editor Property Inspector Result Figure ĐHBK Hànội B/m Thiết bị điện – điện tử 50 GUIDE „ Làm việc với m-file „ Thí dụ tạo GUI và lập trình với m-file ... handles.a = get(handles.slider_a,'Value'); set(handles.text_a,'String',... num2str(handles.a)); % Update handles structure guidata(hObject, handles); ... ĐHBK Hànội B/m Thiết bị điện – điện tử 51 Giải phương trình vi phân trong MATLAB „ Dùng hàm ODE23 và ODE45 „ Trở lại thí dụ 1: „ Chuyển về dạng phương trình trạng thái ĐHBK Hànội B/m Thiết bị điện – điện tử 52 Giải phương trình vi phân trong MATLAB „ Các bước giải phương trình vi phân trong thí dụ 1: † 1. Tạo hàm trạng thái elecsys() 21 2 2 1 .xRxV C x x x −− =& & Khai báo thông số mạch Khai báo phương trình trạng thái ĐHBK Hànội B/m Thiết bị điện – điện tử 53 Giải phương trình vi phân trong MATLAB „ Các bước giải phương trình vi phân trong thí dụ 1: † 2. Giải phương trình dùng hàm ODE23() Gọi hàm ode23() giải phương trình vi phân khai báo trong elecsys wBTVN: Mô phỏng quá trình quá độ của động cơ DC kích thích độc lập trong MATLAB. ĐHBK Hànội B/m Thiết bị điện – điện tử 54 Simulink „ Getting started w Commonly Used Blocks w Continuous w Discontinuous w Discr