Giáo trình Matlab - Simulink

MỤC LỤC

CHƯƠNG 0. MỞ ĐẦU 1

CHƯƠNG 1. TỔNG QUAN VỀ MATLAB 2

1.1 Cấu trúc chung và các lĩnh vực ứng dụng của MATLAB: 2

1.2 Giới thiệu SIMULINK và TOOLBOXS trong MATLAB 3

CHƯƠNG 2. CÁC THAO TÁC LẬP TRÌNH TRÊN MATLAB 4

2.1 Các lệnh cơ bản quản lý MATLAB 4

2.1.1 Quản lý lệnh và các hàm 4

2.1.2 Quản lý biến, không gian workspace trên cửa sổ lệnh (Command window) 5

2.1.3 Làm việc với Files môi trường làm việc 5

2.1.4 Các phím thao tác trên cửa số dòng lệnh 6

2.2 Dữ liệu, hàm và cấu trúc lệnh trong MATLAB 6

2.2.1 Khái niệm dữ liệu và biến 6

2.2.2 Các ký hiệu và các toán tử 7

2.2.3 Các lệnh tương tác vào/ra (Interactive Input/Output) 18

2.2.4 Các lệnh, cấu trúc điều khiển chương trình (Control Flow) 19

2.3 Cách viết chương trình và hàm dạng m-files trong MATLAB 21

2.4 Các bài tập ứng dụng ** 23

CHƯƠNG 3. CÁC HÀM TOÁN HỌC THÔNG DỤNG 24

3.1 Các hàm toán học cơ bản 24

3.1.1 Các hàm xử lý số phức: 24

3.1.2 Các hàm lượng giác và hữu tỷ (thực hiện từng phần tử) 24

3.1.3 Các hàm làm tròn số, . 24

3.2 Các hàm xử lý ma trận và vector 25

3.3 Các thao tác trên dữ liệu chuỗi (STRING) 31

3.3.1 Khái niệm 31

3.3.2 Các hàm xử lý chuỗi 32

3.4 Các hàm chuyển đổi dữ liệu 34

3.5 Các thao tác trên dữ liệu cấu trúc 35

3.5.1 Dữ liệu kiểu cấu trúc (Struct) 35

3.5.2 Dữ liệu kiểu mảng cấu trúc (Cell Array) 37

3.6 Các hàm giao tiếp với tệp dữ liệu (FILES) 38

3.7 Các thao tác vẽ và xử lý đồ thị 45

3.7.1 Các lệnh xử lý trên cửa sổ đồ thị 45

3.7.2 Lệnh vẽ trong không gian 2-D 47

3.7.3 Lệnh vẽ trong không gian 3-D ** 52

3.8 Các thủ tục in ấn và lưu trữ kết quả 53

3.9 Các ví dụ và bài tập ** 54

CHƯƠNG 4. CÁC PHƯƠNG PHÁP TÍNH VÀ ỨNG DỤNG 55

4.1 Khái niệm Symbolic và giới thiệu về Toolbox Symbolic 55

4.1.1 Khái niệm Symbolic 55

4.1.2 Cách khai báo biến symbolic 55

4.1.3 Các hàm trong Toolbox Symbolic ** 56

4.2 Đa thức và nội suy 59

4.2.1 Đa thức 59

4.2.2 Nội suy và xấp xỉ 62

4.3 Tính vi phân (Differentiation) 62

4.3.1 Vi phân số 62

4.3.2 Sử dụng symbolic 64

4.4 Tính tích phân (Integration) 65

4.4.1 Tích phân số 65

4.4.2 Sử dụng Symbolic 66

4.5 Giải các phương trình và hệ phương trình 67

4.5.1 Phương pháp số 67

4.5.2 Sử dụng Symbolic ** 67

4.6 Giải phương trình vi phân và hệ phương trình vi phân 69

4.6.1 Phương pháp số: 69

4.6.2 Sử dụng symbolic ** 70

4.7 Các ví dụ ứng dụng ** 72

CHƯƠNG 5. LẬP TRÌNH TRỰC QUAN GIAO DIỆN NGƯỜI DÙNG (GUI: GRAPHIC USER INTERFACE) 73

5.1 Cách xây dựng các nút ấn và menu 73

5.1.1 Phương pháp sử dụng UIMENU và UICONTROL 73

5.1.2 Phương pháp sử dụng GUIDE (GUI design) 74

5.2 Cách lập trình trên giao diện GUI 76

5.3 Phương thức lập trình sự kiện thông qua truyền tham số “Action” 77

5.3.1 Khái niệm 77

5.3.2 Một số hàm thường dùng quản lý đối tượng 78

5.4 Ví dụ ứng dụng 79

CHƯƠNG 6. MÔ PHỎNG, THIẾT KẾ TRỰC QUAN (SIMULINK) 84

6.1 Tổng quan về SIMULINK 84

6.1.1 Khởi động SIMULINK 84

6.1.2 Giới thiệu thư viện SIMULINK 85

6.2 Cách xây dựng một chương trình SIMULINK 89

6.3 Cách tạo ra thư viện riêng (một subsystem) từ các khối đã có 92

6.4 Ví dụ ứng dụng ** 92

 

 

doc98 trang | Chuyên mục: MATLAB | Chia sẻ: dkS00TYs | Lượt xem: 13453 | Lượt tải: 2download
Tóm tắt nội dung Giáo trình Matlab - Simulink, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
g','Axes1Text1', ...
	'VerticalAlignment','bottom');
 set(get(h2,'Parent'),'Title',h2);
 h1 = uicontrol('Parent',h0, ...
	'Units','points', ...
 'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ...
	'ListboxTop',0, ...
	'Position',[291 183 45 20.25], ...
	'String',['1 pha';'2 pha';'3pha ';' '], ...
	'Style','popupmenu', ...
	'Tag','chon', ...
	'Value',3);
 h1 = uicontrol('Parent',h0, ...
	'Units','points', ...
 'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ...
	'ListboxTop',0, ...
	'Position',[291 206.25 45 15], ...
	'String','Popupmenu', ...
	'Style','text', ...
	'Tag','StaticText1');
 h1 = uicontrol('Parent',h0, ...
	'Units','points', ...
 'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ...
	'Callback','actiongui dong', ...
	'ListboxTop',0, ...
	'Position',[299.25 36.75 45.75 16.5], ...
	'String','close', ...
	'Tag','Pushbutton3');
 h1 = uicontrol('Parent',h0, ...
	'Units','points', ...
 'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ...
	'Callback','actiongui xoa', ...
	'ListboxTop',0, ...
	'Position',[298.5 76.5 51.75 21.75], ...
	'String','xoa do thi', ...
 'Tag','xoa');
%set(h0, 'Visible','on');
else
 switch action
 case 'dong'
 close(gcbf)
 case 'xoa'
 cla
 case 'plotting' 
	 x=linspace(0,3*pi,1000); 
	 y1=sin(x); 
	 y2=sin(x-2*pi/3); 
	 y3=sin(x+2*pi/3); 
	 % Lay thuoc tinh chon trong popupmenu 
 	 handle_chon=findobj(gcbf,'Tag','chon'); 
	 % lay thuoc tinh Value cua chon 
	 hang=get(handle_chon,'Value') 
	 % ve do thi theo tinh huong 
	 grid on 
	 if hang==1 plot(x,y1,'b-') 
	 elseif hang==2 plot(x,y1,'b-',x,y2,'r-.') 
	 elseif hang==3 plot(x,y1,'b-',x,y2,'r-.',x,y3,'k:')
	 end 
 end
end 
mô phỎng, thiẾt kẾ trỰc quan (SIMULINK)
Tổng quan về SIMULINK
SIMULINK (Simulation and Link): là một tiện ích quan trọng của MATLAB giúp cho người sử dụng mô phỏng, phân tích và thiết kế các hệ thống thực tế cho các đối tượng liên tục, gián đoạn tuyến tính hay phi tuyến và cả các hệ sự kiện logic (ví dụ như một quá trình sản xuất)...
	Nguyên tắc làm việc chung của SIMULINK là xây dựng mô hình sơ đồ khối từ các khối mô đun chức năng tạo sẵn bằng thao tác “nhấn” và “thả” chuột các khối vào cửa sổ thiết kế, sau đó kết nối các khối và khai báo tham số cho phù hợp. 
Bước tiếp theo là chạy kết quả, phân tích, hiệu chỉnh để có kết quả mong muốn. SIMULINK cho phép giao diện với MATLAB thông qua một số khối. Các kết quả trả lại trong không gian Workspace để chương trình MATLAB lấy và xử lý. Trong SIMULINK còn cho phép đưa các dòng lệnh MATLAB hoặc các biểu thức toán học vào ngay trong sơ đồ SIMULINK. 
Như vậy công cụ SIMULINK giúp cho người lập trình tiết kiệm nhiều thời gian và công sức vì nó tự động liên kết, biến đổi để chuyển thành các hệ phương trình vi phân tính toán ngầm trong môi trường MATLAB mà người lập trình không cần quan tâm. Vì vậy, để mô phỏng một quá trình thực tế có thể tính toán bằng hai cách: hoặc viết các dãy lệnh MATLAB (*. m file) hay lập mô hình tính toán trong SIMULINK. Cách đầu có ưu điểm là chạy nhanh nhưng vất vả cho người lập trình nhất là đối với các hệ phức tạp. Cách sau có ưu điểm là rất trực quan sinh động, dễ tư duy tiện lợi, nhất là đối với hệ thống lớn. Nhược điểm là chạy chậm. Tuy nhiên, theo quan niệm lập trình nâng cao, nên kết hợp hai phần trên trong một dự án (project) để thực hiện nhiều công việc khác nhau.
Khởi động SIMULINK
Khởi động SIMULINK hiển thị thư viện các nhóm chức năng bằng cách gõ lệnh: 
»similink3
Hình 1. Thư viện SIMULINK 3
Khởi động SIMULINK hiển thị thư viện chi tiết bằng cách gõ lệnh:
»similink
Giới thiệu thư viện SIMULINK
Hình 2. Thư viện các thành phần SIMULINK 
Cửa sổ tìm kiếm: nhập tên khối và enter. Chương trình sẽ tìm khối cần tìm. 
Kích chuột vào dấu + mỗi khối sẽ liệt kê các phần tử cần sử dụng 
Hình 3. Thư viện chi tiết SIMULINK 
các khối để mô phỏng hệ liên tục
các khối để mô phỏng hệ gián đoạn
khối logic AND, OR, NAND,...
Khối khuyếch đại
các khối dành cho quan sát đặc tính ra
tạo ra hệ con bao gồm các khối. Một hệ thống lớn được xây dựng bằng nhiều hệ thống con
Thư viện simulink bổ sung
Sources: gồm các khối tạo ra các dạng nguồn phát khác nhau
Tạo ra tín hiệu step (hàm 1(t)) dùng làm tín hiệu đặt trong các hệ điều khiển tự động
tạo ra các giá trị thời gian theo bước lấy mẫu
tạo ra các nguồn xung chuẩn khác nhau
Thư viện NCD blocksets : gồm 3 khối phục vụ thiết kế hệ phi tuyến
Thư viện Power system Blockset
*. Giới thiệu chi tiết một số khối thường dùng
- Khối không gian trạng thái
- khối hàm truyền
các khối hệ gián đoạn 
- Các khối tạo hàm 
- Khối hàm trong MATLAB
- Một số khối trong Power System Blockset
Cách xây dựng một chương trình SIMULINK
Xét một số ví dụ sau:
Ví dụ 1: xây dựng mô hình hệ điều khiển PID tương tự.
Trong ví dụ trên, sử dụng khối PID là khối điều khiển theo luật PID dạng hàm truyền: 	WPID(s)= P+I/s+D.s, đó là hàm truyền của đối tượng là khối Transfer Fcn.
Các bước thực hiện như sau:
Bước 1: Rê và thả các khối cần xây dựng mô hình từ các thư viện SIMULINK. 
Nếu có các khối giống nhau cần xây dựng trong một mô hình thì dùng lệnh COPY và PAST (dán) để tạo nhanh các khối, có thể copy từ một mô hình khác. 	
Có thể sử dụng Menu Format của SIMULINK để định dạng mô hình như: Chọn lại font, màu sắc, nét vẽ, quay khối (rotate), ...
Bước 2: Nhập thông số hợp lý cho các khối bằng cách kích đúp chuột lên đối tượng khối sau đó nhập các tham số từ cửa sổ hội thoại. 
Bước 3: Chú thích các dòng text lên đối tượng như hình trên. 
Bước 4: Khai báo các lựa chọn tham số trong Menu Simulation -> parametter... để chọn các tham số tính toán mô phỏng. (xem hình trang sau).
Bước 5: Chạy chương trình bằng cách chọn nút Run trên thanh công cụ hoặc chọn Menu Simulation ->Run
Quan sát kết quả đánh giá và hiệu chỉnh tham số sau mỗi lần chạy.
Các chú ý: 
+ Muốn vẽ nhiều đồ thị trên một trục toạ độ, phải sử dụng khối ghép kênh (MUX) trước khi cho tín hiệu đến bộ quan sát. Nếu dùng khối To Workspace thì sau khi chạy xong ta nhận được biến out là biến toàn cục trong không gian Workspace của MATLAB. (biến out sẽ là biến toàn cục trong bộ nhớ). Lúc này để vẽ được nhiều đồ thị trên một hệ toạ độ, ta dùng hàm plot như sau:
plot(out(:,1), out(:,2),out(:,1), out(:,3)...) 
sẽ vẽ nhiều đồ thị biến đổi theo thời gian trên chung 1 trục toạ độ.
+ Chương trình chạy đến hết thời gian (stop time) thì tự động ngừng. Để chương trình dừng trước khi kết thúc, ấn nút STOP trên thanh công cụ (hoặc Menu Simulation -> Stop). Có thể ấn nút tạm dừng (PAUSE) để chương trình tạm nghỉ và sau đó chạy lại tiếp tục từ bước trước khi dừng.
+ Đối với hệ thống lớn, có thể Module hoá chương trình bằng cách sử dụng khối SUBSYSTEM để chứa nhóm khối chức năng lại với nhau và hệ thống sẽ được xây dựng từ nhiều hệ thống con hợp thành (xem phần sau).
Cửa sổ Parameter trước khi mô phỏng
Ví dụ: Mô phỏng một hệ thống điều khiển tốc độ động cơ điện một chiều. Với bộ điều khiển PID theo luật PI được tổng hợp theo phương pháp module tối ưu. Hãy thành lập mô hình và mô phỏng đánh giá kết quả
Cách tạo ra thư viện riêng (một subsystem) từ các khối đã có 
Ý nghĩa cách làm này là tạo ra một khối con trên cơ sở các khối đã có để phân hệ thống lớn thành nhiều hệ thống con (subsystem). Nếu một khối con được sử dụng nhiều lần trong các chương trình thì ta có thể đóng gói khối con, tức là che mặt nạ cho nó (mask subsystem) để biến nó thành một khối chức năng như những khối đã được tạo ra trong SIMULINK. Trong thư viện SIMULINK, có rất nhiều các khối đã tạo từ những khối cơ bản. Ví dụ: khối PID controller được tạo ra từ các khối: Gian, Derivative, Integrator, Sum. 
Để xem cấu trúc bên trong của subsystem đã che mặt nạ (masked), ta làm như sau:
Chọn khối cần xem cấu trúc bên trong
Chọn menu Edit ->Look under Mask để mở cửa sổ simulink cho mô hình của subsystem.
(có thể ấn nút phải chuột trên đối tượng để chọn chế độ trên)
Ví dụ ứng dụng **
Ta xét ví dụ sau đây, tạo ra một khối có tên là PID controller làm chức năng một khối tích hợp là bộ điều khiển theo luật PID. Các trình tự tạo ra khối chức năng theo trình tự sau:
Bước 1: Kéo và thả một khối Subsystem trong cửa số SIMULINK, đặt tên khối này là PID Controller
Bước 2: Xây dựng mô hình bộ điều khiển PID tổng quát với hàm truyền dạng:
WPID(s)= P+I/s+D.s
Có cấu trúc sơ đồ như hình vẽ. Trong đó 3 thông số P, I, D là 3 tham số cần nhập vào
Bước 3: đóng gói hệ con này thành một khối riêng bằng cách: chọn menu Edit -> Mask subsystem, xuất hiện một cửa sổ lựa chọn sau gồm 3 trang:
Trang 1: tạo ra biểu tượng (Icon)
cho khối bằng cách dùng các lệnh vẽ trong khung Drawing Commands
Ví dụ: disp(‘PID’) : hiển thị nhãn trên biểu tượng khối.
Trang 2: Nhập và khai báo các biến. (Initialization)
Trang 3: Mô tả chức năng khối (Documetation)
Chức năng khối được mô tả bằng các dòng Text vào Block description.
Block Help: các mô tả khi ấn nút help nhập thông số khối.
Trong ví dụ trên, ta có 3 tham số cấn khai báo (P, I, D). Lần lượt khai báo từng tham số trong các ô: Prompt và ô Variable. Sau khi khai báo xong một biến, chọn nút Add để tạo thêm biến mới.
Cuối cùng, chọn OK để kết thúc. Khi đó khối con trở thành một khối thư viện chức năng với các tham số cần nhập như hình bên phải (khi kích đúp chuột vào khối này)
Khảo sát các mô hình hệ thống trên cơ sở các hệ thống con thông qua ví dụ sau:
VD: hệ thống điều khiển tốc độ một chiều dùng chỉnh lưu Thyristor. 
Trong đó: khối hệ con là 6-pulse Converter và Pulse_ Generator là hệ con được xây dựng sẵn trong thư viện Power System Blocksets. Có thể xem cấu trúc bên trong của nó bằng cách xem chế độ Look under Mask. Khối 6-pulse converter là subsystem có cấu trúc như sau:
Hãy thành lập mô hình này và chạy quan sát kết quả?
Ví dụ: phân tích quá trình quá độ hệ thống điện. Hãy thành lập mô hình và chạy mô phỏng lấy kết quả. Cách xây dựng một mô hình như sau:
TÀI LIỆU THAM KHẢO
MỤC LỤC

File đính kèm:

  • docGiáo trình Matlab - Simulink.doc