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

MỤC LỤC

MỤC LỤC . 2

CHƯƠNG I . 4

GIỚI THIỆU KIẾN THỨC MÔ PHỎNG . 4

1.1. Một số định nghĩa cơbản . 4

1.2. Mô hình hóa hệthống. 5

1.2.1. Vai trò của phương pháp mô hình hóa hệthống. 5

1.2.2. Phân loại mô hình hóa hệthống . 7

1.3. Phương pháp mô phỏng. 9

1.3.1. Sơ đồkhối. 9

1.3.2. Bản chất của phương pháp mô phỏng . 10

1.3.3. Các bước nghiên cứu mô phỏng . 13

1.3.4 Một sốmôi trường mô phỏng thường gặp. 15

CHƯƠNG II. 16

MÔI TRƯỜNG MATLAB VÀ CÁCH LẬP TRÌNH. 16

2.1 Giới thiệu môi trường làm việc Matlab . 16

2.2 Các hàm toán . 16

2.3 Tính toán với vector và ma trận. 17

2.3.1. Khai báo vector và ma trận. 17

2.3.2. Tính toán với vector và ma trận. 20

2.4 Các phép so sánh và phép toán Logic . 23

2.5 Biến, cấu trúc và trường . 24

2.5.1. Biến . 24

2.5.2. Cấu trúc . 25

2.5.3. Trường. 28

2.6 Quản lý biến . 29

2.7 Rẽnhánh và vòng lặp . 31

2.7.1 Lệnh rẽnhánh if và switch . 31

2.7.2 Vòng lặp for và while . 31

2.7.3 Gián đoạn bằng continue và break . 32

2.8 Các scripts và các hàm của Matlab. 34

2.8.1. Các scripts của Matlab. 34

3

2.8.2. Các hàm của Matlab . 35

2.9 Nhập xuất dữliệu . 36

CHƯƠNG III . 37

ĐỒHỌA TRONG MATLAB. 37

3.1 Cơsở đồhoạMatlab . 37

3.2 Đồhoạ2 chiều. 39

3.3 Đồhoạ3 chiều. 42

3.3.1 Các lệnh Plots . 42

3.3.2 Phối cảnh trong đồhoạ3-D. 44

3.3.3 Nhập, xuất và in đồhoạ . 44

CHƯƠNG IV . 46

CƠSỞSIMULINK . 46

4.1 Khởi động Simulink . 46

4.2 Các thao tác cơbản với Simulink. 48

4.3 Tín hiệu và các loại dữliệu . 50

4.3.1 Làm việc với tín hiệu. 50

4.3.2 Làm việc với các loại sốliệu . 51

4.4 Thưviện Sources và Sinks . 52

4.4.1 Thưviện Sources. 52

4.4.2 Thưviện Sinks. 58

4.5 Thưviện Math . 60

4.6 Khai báo tham sốvà phương pháp tích phân chuẩn bịcho mô phỏng. . 63

4.6.1 Khởi động và ngừng mô phỏng . 66

4.6.2 Xửlý lỗi. 68

4.6.3 Tập hợp các tham sốtrong Script cửa Matlab. 68

4.6.4 In mô hình Simulink. 69

4.7 Hệthống con (Sub system). 70

4.7.1 Tạo hệthống con . 70

4.7.2 Thưviện signals và Subsystem . 71

4.7.3 Kích hoạt có điều kiện các hệthồng con . 74

pdf78 trang | Chuyên mục: MATLAB | Chia sẻ: dkS00TYs | Lượt xem: 3056 | Lượt tải: 4download
Tóm tắt nội dung Bài giảng Mô phỏng và mô hình hóa, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
ram(0, ‘CallbackTracing’, ‘on’) 
Lệnh đó sẽ buộc Simulink phải liệt kê toàn bộ các thủ tục Callback tại cửa 
sổ Command khi chúng được gọi. Để biệt 69hem về lệnh set_param và Callback 
Routines ta gọi lệnh help set_param. 
4.6.4 In mô hình Simulink 
Cũng giống như đồ hoạ Matlab, ta có thể xuất mô hình Simulink dưới các 
dạng khác nhau. Bằng lệnh print –smodel ta sẽ xuất mô hình có tên model ra máy 
70 
in. Tuy nhiên, nếu in qua menu File/Print ta sẽ có nhiều khả năng khai báo tham số 
in hơn. Ví dụ: Chỉ in một tầng mô hình nhất định. Trước khi in ta nên chuyển tham 
số Paper type về khổ A4, vì một vài máy in có vấn đề khi in theo khổ usletter. Có 
thể làm điều đó từ cửa sổ Command của Matlab 
Set(gcf, ‘PaperType’, ‘A4’) 
Việc in mô hình Simulink thành File được thực hiện tương tự như đồ hoạ 
Matlab: 
Print –smodel; 
Print –smodel –dmeta model; 
Print –smodel –deps model; 
4.7 Hệ thống con (Sub system) 
4.7.1 Tạo hệ thống con 
Có hai cách để tạo hệ thống con: 
• Cách 1: Dùng chuột đánh dấu tất cả các khối mà ta muốn gom lại với nhau. 
Cần chú ý đánh dấu cả các đường tín hiệu kèm theo. Sau đó chọn Create 
Subsystem thuộc menu Edit. Các khối bị đánh dấu sẽ được Simulink thay 
thế bởi một khối Subsystem. Khi nháy chuột kép vào khối mới, cửa sổ có 
tên của khối mới sẽ mở ra. Các tín hiệu vào / ra của hệ con sẽ được tự động 
ghép với hệ thống mẹ bởi các khối Inport và Outport. 
• Cách 2: Dùng khối Subsystem có sẵn của thư viện Signals & Systems. Sau 
khi gắp khối đó sang mô hình hệ thống đang mở, ta nháy chuột kép vào 
khối để mở cửa sổ của khối và lần lượt gắp các khối cần thiết để tạo thành 
hệ thống con. Việc ghép nối với hệ thống mẹ phải được chủ động thực hiện 
bằng tay nhờ các khối Inport và Outport. Đây là cách đi ngược với cách 1: 
Ta lần lượt tạo các hệ thống con (bắt đầu từ tầng thấp nhất), sau đó nối các 
hệ thống con để tạo thành hệ thống mẹ (tầng cấp trên trực tiếp). 
71 
4.7.2 Thư viện signals và Subsystem 
Subsystem 
 Khối Subsystem được sử dụng để tạo hệ thống con trong khuôn 
khổ của một mô hình Simulink. Việc ghép với mô hình thuộc các tầng ghép trên 
được thực hiện nhờ khối Inport và Outport. Số lượng đầu vào / ra của khối 
Subsystem phụ thuộc số lượng khối Inport và Outport. 
 Đầu vào / ra của khối Subsystem sẽ được đặt theo tên mặc định của các 
khối Inport và Outport. Nếu chọn Format / Hide Port Labels trên menu cửa sổ khối 
Subsystem, ta có thể ngăn chặn được cách đặt tên kể trên và chủ động đặt cho 
Inport và Outport các tên phù hợp với ý nghĩa của chúng. 
Inport và Outport 
Inport và Outport là các khối đầu vào, đầu ra của một mô hình mô phỏng. 
Tại hộp thoại Block Parameters ta có thể điền vào ô Port number số thứ tự của 
khối. Simulink tự động đánh số các khối Inport và Outport một cách độc lập với 
nhau, bắt đầu từ 1. Khi ta bổ sung thêm khối Inport hay Outport, khối mới sẽ nhận 
số thứ tự kế tiếp. Khi xoá một khối nào đó, các khối còn lại sẽ tự động đánh số 
mới. Trong hộp thoại Block Parameters của Inport, ta còn có ô Port with dùng để 
khai báo bề rộng của tín hiệu vào. Khi ghép một tín hiệu có bề rộng lớn hoặc bé 
hơn bề rộng đã khai báo với Inport, ngay lập tức Simulink báo lỗi. 
 Cần lưu tâm tới một vài tham số quan trọng khác của khối Outport. Ví dụ, 
Outport when disabled cho hệ thống cần xử lý tín hiệu ra như thế nào khi hệ thống 
mô phỏng đang ngừng không chạy (xoá về không hay giữ nguyên giá trị cuối 
cùng). Initial Output cho biết giá trị cần lập cho đầu ra. 
72 
 Thông qua các khối Inport và Outport thuộc tầng trên cùng (chứ không phải 
thuộc các hệ thống con), ta có thể cất vào hay lấy số liệu ra khỏi môi trường 
Workspace. Để làm điều đó ta phải kích hoạt các ô Input và Output ở trang 
Workspace I/O của hộp thoại Simulation Parameters và khai báo tên của các biến 
cần lấy số liệu vào, hay tên của các biến mà ta sẽ gửi số liệu tới 
Enable và Trigger 
 Hai phần tử Enable và Trigger nhằm mục đích tạo cho các hệ con 
Subsystem khả năng khởi động có điều kiện. Trong một hệ thống con chỉ có thể sử 
dụng một khối Enable và Trigger. Khi được gán một trong hai khối đó, tại khối 
Subsystem sẽ xuất hiện thêm một đầu vào điều khiển đặc biệt, nơi mà tín hiệu 
Enable hay Trigger được đưa tới. 
 Các hệ con có khối Enable được gọi là hệ cho phép. Hệ con đó sẽ được 
kích hoạt tại những bước tích phân có phát ra tín hiệu Enable với giá trị dương. 
Tham số States when enabling cho biết cần đặt giá trị ban đầu cho biến trạng thái 
như thế nào trước khi được kích hoạt. Tham số Show output port gán cho khối 
Enable thêm một đầu ra, tạo điều kiện xử lý hay sử dụng tiếp tín hiệu Enable. 
 Các hệ con có khối Trigger gọi là hệ được kích hoạt bằng xung. Việc kích 
hoạt xảy ra tại sườn dương (Trigger type: rising), hay sườn âm (Trigger type: 
falling), hay cả hai sườn (either) của xung kích hoạt. Nếu Trigger type được chọn 
là function-call, ta có cơ hội chủ động tạo xung kích hoạt nhờ một S-function do ta 
tự viết. 
 Các khối Enable và Trigger là khối ảo có điều kiện. 
Mux và Demux 
73 
 Khối Mux có tác dụng giống như một bộ chập kênh, có tác dụng chập các 
tín hiệu 1-D riêng rẽ thành một vector tín hiệu mới. Nếu như một trong số các tín 
hiệu riêng rẽ là 2-D, khi ấy ta chỉ có thể tập hợp các tín hiệu riêng rẽ thành Bus tín 
hiệu. Tại ô tham số Number of inputs ta có thể khai báo tên, kích cỡ và số lượng 
tín hiệu vào. Ví dụ, viết [4 3 -1] nghĩa là có tất cả 3 đầu vào, đầu vào thứ nhất có 
bề rộng là 4, đầu vào thứ hai có bề rộng là 3, còn đầu vào thứ ba chưa xác định vì 
giá trị khai là -1. 
Khối Demux có tác dụng ngược lại với Mux: Tách các tín hiệu được chập từ nhiều 
tín hiệu riêng rẽ trở lại thành các tín hiệu riêng rẽ mới. Khối Demux làm việc hoặc 
theo chế độ vector (Bus selection mode = off) hoặc theo chế độ chọn Bus (Bus 
selection mode = on). Ở chế độ vector, Demux chỉ chấp nhận tín hiệu 1-D ở đầu 
vào và sẽ tách tín hiệu 1-D đó thành các tín hiệu riêng rẽ như đã khai báo tại 
Number of outputs. Tham số Number of outputs có thể được khai báo dưới dạng 
một số nguyên >1 hay dưới dạng một vecter hàng, việc tách các phần tử của tín 
hiệu vào và phân chia các phần tử đó thành các tín hiệu ra hoàn toàn phụ thuộc 
vào bề rộng tín hiệu vào, số lượng và bề rộng của tín hiệu ra mà ta khai báo. Khi 
chọn chế độ Bus selection, Demux chỉ chấp nhận Bus tín hiệu ở đầu vào của khối. 
 Mux và Demux luôn luôn là ảo. 
Bus Selector và Selector 
74 
 Các tín hiệu do khối Mux chập lại, có thể được tách ra không chỉ bằng 
khối Demux. Ta có thể sử dụng khối Bus Selector để tái tạo lại các tín hiệu từ một 
Bus tín hiệu, đồng thời gom chúng lại thành các tín hiệu riêng rẽ ban đầu. 
 Tại hộp thoại Block Parameters của khối Bus Selector trong ô Signals in 
the bus ta có thể thấy danh sách liệt kê tất cả các tín hiệu nằm trong Bus. Nhấn nút 
Select >> ta có thể chọn những tín hiệu mà ta cần tách ra khỏi Bus và gom lại như 
ban đầu. 
 Khối Selector cho ta khả năng lựa chọn linh hoạt hơn Bus Selector: Khả 
năng tách ra khỏi Bus tín hiệu 1-D hay 2-D các phần tử riêng lẻ rồi sau đó gom 
chúng lại thành một tín hiệu 1-D hay 2-D mới. 
Hit Crossing 
 Khối Hit Crossing có tác dụng phát hiện thời điểm tín hiệu đầu vào đi qua 
giá trị khai tại Hit Crossing offset theo hướng khai tại Hit Crossing direction. Nếu 
ta chọn Show output port, tại thời điểm Crossing đầu ra sẽ nhận giá trị 1, còn lại là 
0. Nếu tại trang Advanced của hộp thoại Simulation Parameters ta đặt Boolean 
logic signals = off, tín hiệu ra sẽ là double, ngoài ra là boolean. 
IC 
 Khối IC có tác dụng gán cho tín hiệu ra của khối một điều kiện ban đầu 
nhất định. 
4.7.3 Kích hoạt có điều kiện các hệ thồng con 
75 
Các hệ thống con có chứa khối Enable hay Trigger gọi là các hệ cho phép 
kích hoạt hay hệ kích hoạt bằng xung. Việc kích hoạt hệ con hoàn toàn do tín hiệu 
điều khiển tương ứng xác định. Như ví dụ dưới đây cho thấy, khi gán khối Enable 
hay Trigger cho một hệ con, hệ đó sẽ tự động có thêm một đầu vào giành cho tín 
hiệu điều khiển. 
 Ví dụ tiếp theo giải thích rõ hơn nữa cách sử dụng khối Enable. Hai tín hiệu 
hình sin có cùng biên độ và tần số được đưa tới một Subsystem. Tín hiệu sin thứ 
nhất được đưa tới đầu vào Enable, tín hiệu sin thứ hai được đưa tới đầu vào In1 
của hệ con. Bên trong hệ con, tín hiệu của In1 được nhân với tín hiệu ra của khối 
Enable. Tín hiệu đầu ra của khối Product và của khối Enable được chập kênh, đưa 
tới khối Scope và cất vào Workspace dưới định dạng Array để sau đó plot thành 
đồ thị. 
76 
Sau khi chạy enable1.mdl, để thu được đồ thị trên ta cần thực hiện các dòng 
lệnh sau: 
>> plot(tout,simout(:,1),'r-.',tout,simout(:,2),'g-'); 
>> legen('Signal Enable','Signal Enable x Sinus'); 
 Ví dụ tiếp theo sẽ minh hoạ tác dụng của khối Trigger. Trong sơ đồ mô 
phỏng: Hai tín hiệu hình sin có tần số khác nhau được đưa tới một hệ con. Khối 
Sine Wave thứ hai chỉ được đưa tượng trưng qua hệ con. Ba tín hiệu Trigger, tín 
hiệu ra của Subsystem và Sine Wave thứ hai được đưa tới Scope. Tượng tự ví dụ 
trên, cả ba tín hiệu được plot để ta so sánh. Tuy nhiên tham số của khối Trigger đã 
được đặt vào either, nghĩa là: Hệ con được kích hoạt bằng cả hai sườn lên và 
xuống của xung kích hoạt. 
77 
 Sau khi chạy trigger1.mdl, tức là khi: Kết quả mô phỏng đã được cất vào 
Workspace, ta thực hiện chum lệnh dưới đây để thu được đồ thị như hình trên. 
>> plot(tout,simout(:,1),'r-.',tout,simout(:,2),'g-'); 
>> legend('Trigger Signal','Out1 Signal','Sinus Signal'); 
78 
TÀI LIỆU THAM KHẢO 
[1] Angermann, A.; Beuschel, M.; Rau, M.; Wohlfarth, U.: Simulation mit 
SIMULINK/MATLAB: Skriptum mit Ubungsaufgaben. Stand: 29. November 
2001, TU munchen: 
[2] Bishop, R. H.: Modern control systems analysis and disign using MATLAB. 
Addison - Wesley, 1993. 
[3] Nguyễn Phùng Quang MATLAB & SIMULINK dành cho kỹ sư điều khiển 
tự động - Nhà xuất bản khoa học và kỹ thuật. 

File đính kèm:

  • pdfBài giảng Mô phòng và mô hình hóa.pdf