Tải bản đầy đủ (.docx) (54 trang)

Đồ án Tìm hiểu về phần mềm mô phỏng MATLAB & SIMULINK

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.03 MB, 54 trang )

Đồ án Mô hình hóa và mô phỏng

GVHD: Ths. Lê Quốc Dũng

NHẬN XÉT CỦA GIÁO VIÊN

………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………
………………………………………….
………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………....................

1


Đồ án Mô hình hóa và mô phỏng



GVHD: Ths. Lê Quốc Dũng

LỜI MỞ ĐẦU
Thời đại công nghệ thông tin phát triển mạnh mẽ, cùng với nó là hàng loạt các
phần mềm hỗ trợ kèm theo, MATLAB & SIMULINK là một phần mềm mà ứng dụng của
nó trong điều khiển tự động quả là không nhỏ.
MATLAB & SIMULINK là một ngôn ngữ đa năng. Nó tạo môi trường để
SIMULINK thực hiện và liên kết SIMULINK với bên ngoài. Trong lòng MATLAB đã tích
hợp sẵn rất nhiều công cụ chuyên dùng để giải các bài toán khác nhau như: Nhận
dạng các đối tượng động học, điều khiển tối ưu, điều khiển bền vững, điều khiển mờ,
xử lý tín hiện số…Mô phỏng các hệ thống điều khiển tự động trong MATLAB cho phép
ta sử dụng các mô hình toán học khác nhau của hệ thống hoặc đối tượng cần khảo sát
như: Dùng hàm truyền đạt, dùng hàm trạng thái, dùng mô hình sơ đồ cấu trúc như
trong SIMULINK. MATLAB cho phép ta khảo sát các hệ thống điều khiển tự động trong
miền tần số và miền thời gian. MATLAB còn cho phép liên kết tối đa môi trường để có
thể tổ chức mô phỏng với mô hình bán tự nhiên, mô phỏng trong thời gian thực và mô
phỏng các hệ thống lớn.
Đối với một kỹ thuật viên tự động hóa cần phải có khả năng phân tích và thiết
kế hệ thống. Do đó, việc tìm hiểu và nắm vững kiến thức về công cụ phần mềm mô
phỏng MATLAB & SIMULINK là hết sức cần thiết.
Sau một thời gian thực hiện đề tài, mặc dù chúng em đã gặp nhiều khó khăn
nhưng với sự giúp đỡ của cô Th.S Lê Quốc Dũng và các thầy cô trong khoa CNTD
cùng sự cố gắng nỗ lực của bản thân, đề tài “Tìm hiểu về phần mềm mô phỏng
MATLAB & SIMULINK” đã được hoàn thành đúng tiến độ.
Dù đã rất cố gắng và nỗ lực để thực hiện đề tài này, nhưng do kiến thức và thời
gian có hạn nên không tránh khỏi những thiếu sót và hạn chế, vì vậy chúng em rất
mong nhận được những ý kiến đóng góp của quý thầy cô cùng các bạn.

Sinh viên thực hiện

Nguyễn Minh Tiến

2


Đồ án Mô hình hóa và mô phỏng

GVHD: Ths. Lê Quốc Dũng

MỤC LỤC

3


Đồ án Mô hình hóa và mô phỏng

GVHD: Ths. Lê Quốc Dũng

CHƯƠNG I: TÌM HIỂU VỀ LỊCH SỬ HÌNH THÀNH VÀ PHÁT TRIỂN CỦA PHẦN
MỀM MATLAB & SIMULINK
1.1: Lịch sử hình thành và phát triển của Matlab & Simulink
Matlab là một môi trường tính toán số và lập trình, được thiết kế bởi công ty
MathWorks. Matlab cho phép tính toán số với ma trận, vẽ đồ thị hàm số hay biểu đồ
thông tin, thực hiện thuật toán, tạo ra các giao diện người dùng và liên kết với những
chương trình máy tính viết trên ngôn ngữ lập trình khác.
Với thư viện Toolbox, matlab cho phép mô phỏng tính toán, thực nghiệm nhiều mô
hình trong thực tế và kỹ thuật.
1.1.1: Lịch sử hình thành
Matlab là viết tắt từ "MATrix LABoratory", được Cleve Moler phát minh vào cuối
thập niên 1970, và sau đó là chủ nhiệm khoa máy tính tại Đại học New Mexico. MATLAB,

nguyên sơ được viết bởi ngôn ngữ Fortran, cho đến 1980 nó vẫn chỉ là một bộ phận được
dùng nội bộ của Đại học Stanford.
Năm 1983, Jack Little, một người đã học ở MIT và Stanford, đã viết lại MATLAB
bằng ngôn ngữ C và nó được xây dựng thêm các thư viện phục vụ cho thiết kế hệ thống
điều khiển, hệ thống hộp công cụ (tool box), mô phỏng... Jack xây dựng MATLAB trở thành
mô hình ngôn ngữ lập trình trên cơ sở ma trận (matrix-based programming language).
Steve Bangert là người đã viết trình thông dịch cho MATLAB. Công việc này kéo dài gần
1½ năm. Sau này, Jack Little kết hợp với Moler và Steve Bangert quyết định đưa MATLAB
thành dự án thương mại - công ty The MathWorks ra đời thời gian này - năm 1984.
Phiên bản đầu tiên MATLAB 1.0 ra dời năm 1984 viết bằng C cho MS-DOS PC được
phát hành đầu tiên tại IEEE Conference on Design and Control (Hội nghị IEEE về thiết kế
và điều khiển) tại Las Vegas, Nevada. Ban đầu Matlab được phát triển để hỗ trợ sinh viên
sử dụng hai thư viện LINPACK và EISPACK dùng cho đại số tuyến tính (viết bằng
Fortran) mà không cần biết lập trình Fortran.
Năm 1986, MATLAB 2 ra đời trong đó hỗ trợ UNIX.
Năm 1987, MATLAB 3 phát hành.
Năm 1990 Simulink 1.0 được phát hành gói chung với MATLAB.
Năm 1992 MATLAB 4 thêm vào hỗ trợ 2-D và 3-D đồ họa màu và các ma trận truy
tìm. Năm này cũng cho phát hành phiên bản MATLAB Student Edition (MATLAB ấn bản
cho học sinh).
Năm 1993 MATLAB cho MS Windows ra đời. Đồng thời công ty này có trang web là
www.mathworks.com
4


Đồ án Mô hình hóa và mô phỏng

GVHD: Ths. Lê Quốc Dũng

Năm 1995 MATLAB cho Linux ra đời. Trình dịch MATLAB có khả năng chuyển dịch

từ ngôn ngữ MATLAB sang ngôn ngữ C cũng được phát hành trong dịp này.
Năm 1996 MATLAB 5 bao gồm thêm các kiểu dữ liệu, hình ảnh hóa, bộ truy sửa lỗi
(debugger), và bộ tạo dựng GUI.
Năm 2000 MATLAB 6 cho đổi mới môi trường làm việc MATLAB, thay thế LINPACK
và EISPACK bằng LAPACK và BLAS.
Năm 2002 MATLAB 6.5 phát hành đã cải thiện tốc độ tính toán, sử dụng phương
pháp dịch JIT (Just in Time) và tái hỗ trợ MAC.
Năm 2004 MATLAB 7 phát hành, có khả năng chính xác đơn và kiểu nguyên, hỗ trợ
hàm lồng nhau, công cụ vẽ điểm, và có môi trường phân tích số liệu tương tác.
Đến tháng 12, 2008, phiên bản 7.7 được phát hành với SP3 cải thiện Simulink cùng
với hơn 75 sản phẩm khác.
Năm 2009 cho ra đời 2 phiên bản 7.8 (R2009a) và 7.9 (R2009b).
Năm 2010 phiên bản 7.10 (R2010a) cũng đã được phát hành.
Matlab được dùng rộng rãi trong giáo dục, phổ biến nhất là giải các bài toán số trị
(cả đại số tuyến tính lẫn giải tích) trong nhiều lĩnh vực kĩ thuật.
1.1.2: Ngôn ngữ lập trình
Ngôn ngữ lập trình dùng trong hệ tính toán số cũng có tên gọi là Matlab. Nó thuộc
kiểu lập trình thủ tục (với một số đặc điểm của lập trình hướng đối tượng mới được bổ
sung trong các phiên bản gần đây).
1.2: Phạm vi ứng dụng của Matlab
Matlab là một phần mềm ứng dụng chạy trong môi trường Windows, nó tích hợp
các công cụ rất mạnh phục vụ tính toán, lập trình, thiết kế, mô phỏng...trong một môi
trường rất dễ sử dụng, trong đócác bài toán và các lời giải được biểu diễn theo các kí
hiệu toán học quen thuộc. Có thể nói Matlab là ngôn ngữ của kỹ thuật, đang được các
nhà khoa học, các cán bộ kỹ thuật, giảng viên và các sinh viên các trường đại học kỹ
thuật ứng dụng. Các ứng dụng điển hình là:
- Toán học và tính toán.
- Phát triển thuật toán.
- Tạo mô hình mô phỏng và tạo giao thức.
- Khảo sát phân tích số liệu.

- Đồ họa khoa học kỹ thuật.
- Phát triển ứng dụng gồm cả xây dựng giao diện người dùng.
- Thiết kế các hệ thống điều khiển trong thời gian thực.
Matlab cung cấp một họ các phương pháp theo hướng chuyên dụng hóa được gọi
là các toolbox (hộp công cụ). Các toolbox cho phép người dùng sử dụng học và áp dụng
5


Đồ án Mô hình hóa và mô phỏng

GVHD: Ths. Lê Quốc Dũng

các kỹ thuật chuyên dụng cho một lĩnh vực nào đó. Toolbox là một tập hợp toàn diện các
hàm của Matlab (M-file) cho phép mở rộng môi trường Matlab để giải các lớp bài toán
cụ thể. Các lĩnh vực trong đó có sẵn các toolbox bao gồm: Xử lý tín hiệu, hệ thống điều
khiển, logic mờ, mạng nơron, mô phỏng...
Hệ thống Matlab gồm 5 phần chính:
- Ngôn ngữ Matlab: Là một ngôn ngữ ma trận, mảng cấp cao với các câu lệnh, hàm, cấu
trúc dữ liệu vào ra, các tính năng lập trình hướng đối tượng. Nó cho phép lập trình các
ứng dụng từ nhỏ đến các ứng dụng lớn, từ các ứng dụng đơn giản đến các ứng dụng
phức tạp.
- Môi trường làm việc của Matlab: Đây là một bộ công cụ và phương tiện mà bạn sử dụng
với các tư cách là người dùng hoặc người lập trình Matlab. Nó bao gồm các phương tiện
cho việc quản lý các biến trong không gian làm việc wordspace cũng như xuất nhập dữ
liệu. Nó bao gồm các công cụ để phát triển, quản lý, gỡ rối, và định hình M-file, ứng dụng
của Matlab.
- Xử lý đồ họa: Đây là một hệ thống đồ họa của Matlab. Nó bao gồm các lệnh cao cấp cho
trực quan hóa dữ liệu hai chiều và ba chiều, xử lý ảnh, ảnh động...nó cũng cung cấp các
lệnh cấp thấp cho phép bạn tùy biến giao diện đồ họa cũng như đi xây dựng một giao
diện đồ họa hoàn chỉnh cho ứng dụng Matlab của mình.

- Thư viện toán học Matlab: Đây là một tập hợp khổng lồ các thuật toán tính toán từ các
hàm cơ bản như cộng, trừ, nhân, chia, sin, cos, số phức...tới các hàm phức tạp hơn như:
Nghịch đảo, ma trận, tìm trị riêng của ma trận, phép biến đổi Fourier nhanh.
- Giao diện chương trình ứng dụng Matlab API (Application Program Interface): Đây là
một thư viện cho phép bạn viết các chương trình C và Fortran tương thích với Matlab.
Simulink là một chương trình đi kèm Matlab, là một hệ thống tương tác với việc

phỏng các hệ thống động học phi tuyến. Nó là một trình đồ họa sử dụng chuột để thao tác
cho phép mô hình hóa một hệ thống bằng cách vẽ một sơ đồ khối trên màn hình. Nó có
thể làm việc với các hệ thống tuyến tính, phi tuyến, hệ thống liên tục theo thời gian, hệ
thống gián đoạn theo thời gian, hệ thống đa biến...
Đối với các hệ thống phức tạp, phi tuyến, ngẫu nhiên, các tham số biến đổi theo
thời gian, phương pháp giải tích truyền thống không thể cho ta lời giải chính xác được.
Lúc này phương pháp mô hình hóa và mô phỏng pháp huy thế mạnh của mình và trong
nhiều trường hợp nó là giải pháp duy nhất để nghiên cứu các hệ thống phức tạp.

6


Đồ án Mô hình hóa và mô phỏng

GVHD: Ths. Lê Quốc Dũng

CHƯƠNG II: GIỚI THIỆU CƠ BẢN VỀ MATLAB

2.1: Làm việc với Matlab
2.1.1: Chương trình trên Matlab

Matlab có thể làm việc như một siêu máy tính cầm tay nếu chúng ta cần matlab
thực hiện một số lệnh bằng cách đánh trực tiếp trên cửa số lệnh.

Chương trình trong Matlab có thể là: Kịch bản (Scripts) hoặc các hàm
(Funcitions).
- Scripts: Dãy lệnh ghi trong một file được đưa vào cửa sổ lệnh và được thực hiện tức thì.
- Funcitions: Các môđun chương trình tiếp nhận dữ liệu vào và trả lại kết quả (VD: hàm
sin nhận đầu vào là x và trả lại giá trị sin(x)).
Chương trình có thể được soạn thảo bằng bất kỳ bộ soạn thảo văn bản nào (tuy
nhiên Matlab cũng cung cấp bộ soạn thảo chương trình của riêng mình).
2.1.2: Cơ cấu làm việc của matlab
Matlab là ngôn ngữ thông dịch (Interpreted language):
- Các câu lệnh được đánh trực tiếp trong cửa sổ lệnh và được thực hiện tức thì.
- Các biến được phân bố bộ nhớ ngay lần đầu tiên chúng được khởi tạo.
- Muốn thực hiện lại một lệnh chỉ cần gõ lại lệnh đó.
Tất cả các biến được sử dụng trong cửa sổ lệnh được cất dữ vào vùng nhớ làm việc Base
Wordspace:
- Có thể gán giá trị mới cho các biến nếu cần thiết.
- Có thể chọn để xóa bỏ một số biến khỏi vùng nhớ làm việc.
- Vùng nhớ làm việc có thể cất dữ một file dữ liệu.
- Phần mở rộng của file dữ liệu là .mat (VD: mydata.mat).
- File mở rộng của nhị phân.
- Các file dữ liệu đuôi .mat có thể nạp trở lại vào vùng nhớ làm việc.
2.1.3: Câu lệnh, chỉ thị và biến
Tại dấu nhắc của cửa sổ lệnh, người sử dụng có thể gỡ:
- Lệnh (Command):
+ Save mydata (cất giữ vùng nhớ làm việc vào mydata.mat)
+ Whos (hiển thị danh mục các biến trong vùng nhớ làm việc).
- Chỉ thị gán (Assignment Statemend):
+ A = 285
+ B = 108
+ Câu lênh gán chỉ có một tên biến ở vế trái của toán tử gán (=) vế phải sẽ được tính dựa
vào giá trị hiện thời của các biến và kết quả tính sẽ được gán cho biến ở vế trái.

+ Giá trị có thể ở dạng số hoặc dạng ký tự.
+ Kiểu biến sẽ được cập nhật mỗi khi nó được gán giá trị.

7


Đồ án Mô hình hóa và mô phỏng

GVHD: Ths. Lê Quốc Dũng

2.1.4: Làm việc trong chế độ hội thoại
Khi sử dụng chế độ hội thoại, người sử dụng đánh trực tiếp câu lệnh vào sau dấu
nhắc của Matlab. Khi ấn nút Enter, dòng lệnh sẽ được thực hiện.
VD:
>>x=1;
>>4*atan(x)
Sau đó ấn Enter, kết quả sẽ được đưa ra màn hình dưới dạng ans=4.1416
Dấu “;” ở cuối dòng lệnh ngăn Matlab không đưa ra kết quả của phép thao tác.
2.1.5: Chương trình trên Matlab
Một cách làm việc khác với Matlab là ta có thể viết chương trình thực hiện các tính
toán. Để làm việc này ta cần phải soạn thảo một file văn bản bằng bất kỳ bộ soạn thảo
văn bản nào, trong đó có bộ soạn thảo của Matlab. File văn bản chứa các câu lệnh được
đặt tên với các đuôi là *m, nếu không Matlab sẽ không chấp nhận chương trình. Chương
trình soạn thảo sẽ được cất giấu trong thư mục làm việc hiện thời của Matlab.
2.2: Giới thiệu một số lệnh cơ bản trên Matlab
2.2.1: Lệnh ANS
a) Công dụng: Là biến chứa kết quả mặc định.
b) Giải thích: Khi thực hiện một lệnh nào đó mà chưa có biến chứa kết quả thì Matlab lấy
biến Ans làm biến chứa kết quả đó.
2.2.2: Lệnh CLOCK

a) Công dụng: Thông báo ngày giờ hiện tại.
b) Cú pháp: c = clock.
c) Giải thích: Để thông báo dễ đọc ta dùng hàm fix.

8


Đồ án Mô hình hóa và mô phỏng

GVHD: Ths. Lê Quốc Dũng

2.2.3: Lệnh COMPUTER
a) Công dụng: Cho biết hệ điều hành của máy vi tính đang sử dụng Matlab.
b) Cú pháp:
computer
[c,m] = computer
c) Giải thích:
c: Chứa thông báo hệ điều hành của máy.
m: Số phần tử của ma trận lớn nhất mà máy có thể làm việc được với Matlab.
2.2.4: Lệnh DATA
a) Công dụng: Thông báo ngày tháng năm hiện tại.
b) Cú pháp: s = data
2.2.5: Lệnh CD
a) Công dụng: Chuyển đổi thư mục làm việc.
b) Cú pháp:
cd
cd diretory
cd..
c) Giải thích:
cd: Cho biết thư mục hiện hành.

diretory: Đường dẫn đến thư mục muốn làm việc.
cd..: Chuyển đến thư mục cấp cao hơn một bậc.
2.2.6: Lệnh CLC
a) Công dụng: Xóa cửa sổ lệnh.
b) Cú pháp: clc
2.2.7: Lệnh CLEAR
a) Công dụng: Xóa các đề mục trong bộ nhớ.
b) Cú pháp:
clear name
clear name1 name2 name3
clear functions
clear variables
clear mex
clear global
clear all
c) Giải thích:
clear: Xóa tất cả các biến khỏi vùng làm việc.
clear name: Xóa tất cả các biến hay hàm được chỉ ra trong name.
clear functions: Xóa tất cả các hàm ra khỏi bộ nhớ phụ.
clear variables: Xóa tất cả các biến ra khỏi bộ nhớ.
clear mex: Xóa tất cả các tập tin .mex ra khỏi bộ nhớ.
clear global: Xóa tất cả các biến chung.
9


Đồ án Mô hình hóa và mô phỏng

GVHD: Ths. Lê Quốc Dũng

clear all: Xóa tất cả các biến, hàm và các tập tin .mex khỏi bộ nhớ. Lệnh này làm cho bộ

nhớ trống hoàn toàn.
2.2.8: Lệnh DELETE
a) Công dụng: Xóa tập tin và đối tượng đồ họa.
b) Cú pháp:
Delete filename
Delete (n)
c) Giải thích:
Filename: Tên tập tin cần xóa.
n: Biến chứa đối tượng đồ họa cần xóa. Nếu đối tượng là một cửa sổ sẽ đóng lại và bị xóa.
2.2.9: Lệnh DEMO
a) Công dụng: Chạy chương trình mặc định của Matlab.
b) Cú pháp: demo
c) Giải thích: Demo là chương trình có sẵn trong Matlab, chương trình này minh họa một
số chức năng của Matlab.
2.2.10: Lệnh DIARY
a) Công dụng: Lưu vùng thành file trên đĩa.
b) Cú pháp: diary filename
c) Giải thích: filename là tên của tập tin.

10


Đồ án Mô hình hóa và mô phỏng

GVHD: Ths. Lê Quốc Dũng

2.2.11: Lệnh DIR
a) Công dụng: Liệt kê các tập tin vào thư mục.
b) Cú pháp:
Dir

Dir name
c) Giải thích:
Dir: Liệt kê các tập tin và thư mục có trong thư mục hiện hành.
Dir name: Đường dẫn đến thư mục cần liệt kê.
2.2.12: Lệnh DISP
a) Công dụng: Trình bày biến nội dung của biến (x) ra màn hình.
b) Cú pháp: disp(x)
c) Giải thích: x là tên của ma trận hay là tên của biến chứa chuỗi ký tự, nếu trình bày trực
tiếp chuỗi ký tự thì chuỗi ký tự được đặt trong dấu ‘’.
2.2.13: Lệnh ECHO
a) Công dụng: Hiển thị hay không hiển thị dòng lệnh đang thi hành trong file *.m.
b) Cú pháp:
Echo on
Echo off
c) Giải thích:
On: Hiển thị dòng lệnh.
Off: Không hiển thị dòng lệnh.
2.2.14: Lệnh FORMAT
a) Công dụng: Định dạng kiểu hiển thị của các con số.
b) Cú pháp:
Format short
Format long
Format rat
Format +
c) Giải thích:
Format short: Hiển thị 4 con số sau dấu chấm.
VD: 1.2345
Format long: Hiển thị 14 con số sau dấu chấm.
VD: 1.2345678912345
Format rat: Hiển thị dạng phân số của phần nguyên nhỏ nhất.

VD: 355/133
Format +: Hiển thị số dương hay âm.
2.2.15: Lệnh HELP
a) Công dụng: Hướng dẫn cách sử dụng các lệnh trong Matlab.
b) Cú pháp:
Help
11


Đồ án Mô hình hóa và mô phỏng

GVHD: Ths. Lê Quốc Dũng

Help topic
c) Giải thích:
Help: Hiển thị vắn tắt các mục hướng dẫn.
topic: Tên lệnh cần được hướng dẫn.
2.2.16: Lệnh HOME
a) Công dụng: Đem con trỏ về đầu vùng làm việc.
b) Cú pháp: home
2.2.17: Lệnh LENGTH
a) Công dụng: Tìm chiều dài vector.
b) Cú pháp:
l=length(x)
c) Giải thích: l là biến chứa chiều dài vector.
2.2.18: Lệnh LOAD
a) Công dụng: Nạp file từ đĩa vào vùng làm việc.
b) Cú pháp:
Load
Load filename

Load filename.extension
c) Giải thích:
Load: Nạp file matlab.mat.
Load filename: Nạp file filename.mat.
Load filename.extension: Nạp file filename.extension.
Tập tin này phải là tập tin dạng ma trận có nghĩa là số cột của hàng dưới bằng số cột của
hàng trên. Kết quả ta được một ma trận có số cột và số hàng chính là số cột và hàng của
tập tin văn bản trên.
2.2.19: Lệnh LOOKFOR
a) Công dụng: Hiển thị tất cả các lệnh có liên quan đến topic.
b) Cú pháp: look for topic
c) Giải thích: topic là tên lệnh cần được hướng dẫn.
2.2.20: Lệnh PACK
a) Công dụng: Sắp xếp lại bộ nhớ vùng làm việc.
b) Cú pháp:
Pack
Pack filename
c) Giải thích:
Nếu như khi sử dụng Matlab máy tính xuất hiện thông báo ‘Out of memory’ thì
lệnh pack có thể tìm thấy một số vùng nhớ còn trống mà không cần phải xóa bớt các biến.
12


Đồ án Mô hình hóa và mô phỏng

GVHD: Ths. Lê Quốc Dũng

Lệnh pack giải phóng không gian bộ nhớ cần thiết, bằng cách nén thông tin trong
vùng nhớ xuống cực tiểu. Vì Matlab quản lý bộ nhớ bằng phương pháp xếp chồng nên các
đoạn chương trình Matlab có thể làm cho vùng nhớ bị phân mảnh. Do đó sẽ có nhiều

vùng nhớ còn trống nhưng không đủ để chứa các biến lớn mới.
Lệnh pack sẽ thực hiện:
- Lưu tất cả các biến lên đĩa trong các tập tin tạm thời là pack.tmp.
- Xóa tất cả các biến và hàm có trong bộ nhớ.
- Lấy lại các biến từ tập tin pack.tmp.
- Xóa tập tin tạm thời pack.tmp.
Kết quả là trong vùng nhớ các biến được gộp lại hoặc nén lại tối đa nên không bị
lãng phí bộ nhớ.
Pack.filename cho phép chọn tên tập tin tạm thời để chứa các biến. Nếu không chỉ
ra tên tập tin tạm thời thì Matlab tự lấy tên tập tin đó là pack.tmp.
Nếu đã dùng lệnh pack mà máy vẫn còn báo thiếu bộ nhớ thì bắt buộc phải xóa
bớt các biến trong vùng nhớ đi.

13


Đồ án Mô hình hóa và mô phỏng

GVHD: Ths. Lê Quốc Dũng

2.2.21: Lệnh PATH
a) Công dụng: Tạo đường dẫn liệt kê các đường dẫn đang có.
b) Cú pháp:
path
p = path
path(p)
c) Giải thích:
path: Liệt kê các đường dẫn đang có.
p: Biến trong đường đẫn.
path(p): Đặt đường dẫn mới.

2.2.22: Lệnh QUIT
a) Công dụng: Thoát khỏi Matlab.
b) Cú pháp: quit.
2.2.23: Lệnh SIZE
a) Công dụng: Cho biết số dòng và số cột của ma trận.
b) Cú pháp:
d = size(x)
[m,n] = size(x)
m = size(x,1)
n = size(x,2)
c) Giải thích:
- x là tên ma trận.
- d là tên vector có 2 phần tử, phần tử thứ nhất là số dòng, phần tử thứ hai là số cột.
- m,n : Biến m chứa số dòng, biến n chứa số cột.
2.2.24: Lệnh TYPE
a) Công dụng: Hiển thị nội dung của tập tin.
b) Cú pháp: type filename
c) Giải thích:
- filename: Tên file cần hiển thị nội dung.
- Lệnh này trình tập tin được chỉ ra.
2.2.25: Lệnh WHAT
a) Công dụng: Liệt kê các tập tin *.m, *.mat, *.mex.
b) Cú pháp:
what
what dirname
c) Giải thích:
what: Liệt kê các tập tin .m, .mat, .mex trong thư mục hiện hành.
Dirname: Tên thư mục cần liệt kê.

14



Đồ án Mô hình hóa và mô phỏng

GVHD: Ths. Lê Quốc Dũng

2.2.26: Lệnh WHICH
a) Công dụng: Xác định chức năng funname là hàm của Matlab hay tập tin.
b) Cú pháp: which funname
c) Giải thích: funname là tên lệnh trong Matlab hay tên tập tin.
2.2.27: Lệnh WHO, WHOS
a) Công dụng: Thông tin về biến đang có trong bộ nhớ.
b) Cú pháp:
who
whos
who global
whos global
c) Giải thích:
who: Liệt kê tất cả các tên biến đang tồn tại trong bộ nhớ.
whos: Liệt kê tên biến, kích thước, số phần tử và xét các phần tử ảo có khác 0 không.
whos global và who global: Liệt kệ các biến trong vùng làm việc chung.

15


Đồ án Mô hình hóa và mô phỏng

GVHD: Ths. Lê Quốc Dũng

CHƯƠNG 3: GIỚI THIỆU SƠ LƯỢC VỀ CÁC CHỨC NĂNG CHÍNH CỦA PHẦN

MỀM
Phần mềm bao gồm 3 bộ công cụ quan trọng nhất đó là:
- Tính toán số, lập trình, phân tích dữ liệu, hiển thị đồ thị…
- Mô phỏng bằng khối, thiết kế mô hình, hệ thống nhúng…
- Phân tích, kiểm tra liên quan đến lập trình C, C++ và các bộ kit chứng chỉ DO, IEC.
3.1: Giới thiệu một số toolbox về tính toán số, phân tích dữ liệu, hiển thị đồ thị…
3.1.1: Symbolic toolbox
Symbolic toolbox là một thư viện toán học kiểu ký tự. Được phát triển từ symbolic
maple của trường đại học Waterloo, Canada.
Bảng 3.1: Một số hàm thông dụng của symbolic
Tên hàm
diff
int
taylor
det
numden
subs
dsolve
solve

Chức năng
Đạo hàm
Tích phân
Khai triển taylor
Định thức của ma trận
Tử và mẫu của phân số
Thay biến sum bằng trị số
Giải phương trình vi phân
Giải phương trình đại số


Têm hàm
fourier
ifourier
laplace
ilaplace
ezplot
ezpolar
ezmesh
ezsurf

Chức năng
Biến đổi fourier
Biên đổi fourier ngược
Biến đổi laplace
Biến đổi laplace ngược
Vẽ hàm plot
Vẽ hàm, tọa độ cực polar
Vẽ mặt lưới mesh
Vẽ mặt surf

Để biến đổi một số, một hàm hay một đối tượng nào đó thành kiểu symbolic ta có thể sử
dụng một trong các cách sau:
>>S = sym(A)
>>x = sym(x)
>>syms x y z % khai báo kết hợp x, y, z là biến symbolic
a) Tính đạo hàm bằng hàm diff của symbolic: Nếu s là biểu thức của symbolic thì
diff(S)
% đạo hàm của S theo biến tự do
diff(S,’v’)
% đạo hàm của S theo biến v

diff(S,’v’,n)
% đạo hàm cấp n của S theo v
VD: Tính đạo hàm của y = sinx3
>>x = sym(‘x’)
% khai báo x là kiểu symbolic
>>y = sin(x^3);
>>z = diff(y)
% đạo hàm của y
z=
3*x^2*cos(x^3)
>> pretty(z)
% hiển thị dạng quen thuộc
3*x^2*cos(x^3)
>> ezplot(x,y)
% vẽ y theo x

16


Đồ án Mô hình hóa và mô phỏng

GVHD: Ths. Lê Quốc Dũng
x = x, y = sin(x 3)

2
1.5
1

y


0.5
0
-0.5
-1
-1.5
-2
0

1

2

3

4

5

6

x

Hình 3.1: Đồ thị đạo hàm của y
b) Tính vi phân bằng hàm int của symbolic:
Nếu s là biểu thức của symbolic thì
int(S)
% tích phân không xác định của S theo biến mặc nhiên (muốn biết biến mặc
nhiên này ta dùng hàm findsym)
int(S,v)
% tích phân không xác định của S theo v

int(S,a,b)
% tích phân xác định của S trên cận [a,b]
int(S,v,a,b) % tích phân xác định của S theo v trên cận [a,b]
VD: Tính
>>syms x
>>S = 2*x^2*(19+12x^2)/7(x^2+1)
>>y = int(S,x,0,1)
% tích phân s theo x trên cận [0,1]
>>subs(y)
% đổi sang kiểu số
c) Giải hệ phương trình bằng hàm solve
>>help solve
>>syms x y
>>[x,y] = solve(‘x^2*sin(x^2)-3*y = 7’, ‘x + y = 1’)
x=
2.5754700796522256500419539196399
y=
-1.575470079652225650019539196399
d) Vẽ mặt 3D bằng hàm ezsurf
VD: Vẽ mặt S = f(x,y) = trên miền xác định -5 < x < 5, >> syms x y
>> s=y/(1+x^2+y^2)
s=
17


Đồ án Mô hình hóa và mô phỏng

GVHD: Ths. Lê Quốc Dũng

y/(x^2 + y^2 + 1)

>> ezsurf(s,[-5 5 -2*pi 2*pi])
y/(x2 + y2 + 1)

0.5

0

-0.5
5
5
0
0
-5
y

-5

x

Hình 3.2: Mặt S trong không gian 3 chiều
3.1.2: Control system toolbox – Công cụ khảo sát, thiết kế hệ thống điều khiển
Control system toolbox (CST) là một công cụ cực kỳ có ý nghĩa và tiện lợi đối với kỹ
sư điều khiển tự động hay những người nghiên cứu lý thuyết hệ thống. Với CST ta có thể
thực hiện tất cả các bước để khảo sát, thiết kế hệ thống và đặc biệt là các hệ thống điều
khiển (Control system):
- Mô tả các hệ tuyến tính – dừng (hệ có tham số hằng) dưới dạng liên tục hay gián đoạn
(hàm truyền đạt, sơ đồ phân bố điểm không điểm cực, mô hình trạng thái, mô hình đặc
tính tần…).
- Chuyển đổi hoặc xử lý hệ, phân tích đặc tính hệ thống (động học, đáp ứng bước nhảy,
giảm bậc…).

- Thiết kế và tính tối ưu các khâu điều chỉnh (khâu ĐC: Quỹ đạo điểm cực, gán cực, tối ưu
hệ thống…).

18


Đồ án Mô hình hóa và mô phỏng

GVHD: Ths. Lê Quốc Dũng

3.1.3: Optimization toolbox – Công cụ tính toán tìm tối ưu
Mục đích của Optimization toolbox không phải là phân tích hay tổng hợp (thiết kế)
các thuật toán tìm tối ưu, mục đích của bộ công cụ này là làm sao sử dụng một cách tiện
lợi các thuật toán đã biết. Khi đi tìm cực trị ta sẽ không phân biệt giữa cực tiểu và cực
đại nữa mà chỉ tập chung vào bài toán tìm cực tiểu. Tất cả các bài toán tìm cực đại với
hàm mục tiêu F(x) đều có thể được quy về bài toán tương ứng: Tìm cực tiểu cho hàm mục
tiêu –F(x).
Để sử dụng Optimization toolbox, hàm mục tiêu và các điều kiện phụ phải được
khai báo dưới dạng hàm Matlab (Matlab function) viết thành m-file hay inline object.
Ngoài ra việc sử dụng inline object cho hàm Matlab có thể rất có lợi.
Thay vi phải cất hàm Matlab trên đĩa cứng dưới dạng m-file ta có thể tạo hàm
trực tiếp dưới dạng inline object, đặc biệt thích hợp là các hàm nhỏ được gọi lặp lại
nhiều lần trong các Matlab scripts. Bằng cách đấy ta có thể làm cho các Matlab scripts
phức hợp trở nên ngắn gọn hơn rất nhiều.
3.1.4: Signal processing toolbox – Công cụ xử lý tín hiệu
Các phương pháp xử lý tín hiệu trước hết phục vụ chế biến, lọc và phân tích các số
liệu thu thập được. Thông thường các số liệu đó tồn tại dưới dạng giá trị đo và để có thể
xử lý được Matlab cần đọc vào dưới dạng vector. Trong điều khiển tự động có rất nhiều
bài toán phụ thuộc các phạm trù như nận dạng quan sát và điều khiển thích nghi…cần
các giá trị đo đã qua xử lý thích hợp. Chính vì vậy Signal processing toolbox có một ý

nghĩa đặc biệt đối với lĩnh vực xử lý tín hiệu nói cung và điều khiển tự động hóa nói riêng.
3.2: Giới thiệu về lập trình Matlab
3.2.1: Sơ lược lập trình Matlab
Môi trường Matlab là môi trường lập trình được xem là sinh ra để dùng tính toán
kỹ thuật. Mặc dù ở mỗi chuyên ngành hẹp vẫn có những phần mềm tiện lợi hơn Matlab,
nhưng Matlab vẫn được cho điểm cao nhờ có nhiều lợi thế như:
- Không đòi hỏi biết nhiều thủ tục, giúp mọi người học ngôn ngữ dễ dàng hơn. Không
phức tạp hơn C để người lập trình trên thế giới vốn quen với ngôn ngữ C sẽ học Matlab
nhanh hơn. Ngôn ngữ Matlab khá giống ngôn ngữ C và các chương trình của Matlab có
thể được dịch thành chương trình C.
- Tổ chức bộ nhớ để lưu trữ các mảng rất tốt, các tính toán trên mảng Matlab thực hiện
cực kì nhanh.
19


Đồ án Mô hình hóa và mô phỏng

GVHD: Ths. Lê Quốc Dũng

- Có thể nhanh chóng thấy được kết quả của từng lệnh nên dễ dàng kiểm tra chương
trình. Đa số các ngôn ngữ khác cần phải biên dịch cả một chương trình không có lỗi rồi
mới chạy.
- Các bộ công cụ(Toolbox) được phát triển trên nền Matlab khá dễ dàng, mỗi toolbox có
một số lệnh, mỗi lệnh được đặt trong một file text khá đơn giản. Nhờ cơ chế này mà
người ta nhanh chóng phát triển Matlab để phục vụ nghiên cứu trong từng lĩnh vực cụ
thể, có thể nói cơ chế mở như vậy là yếu tố chính để Matlab ngày càng thông dụng.
- Matlab có các phiên bản chạy được trên mỗi hệ điều hành khác nhau, việc trao đổi dữ
liệu các phiên bản có thể đơn giản là trao đổi file text (các file.m).
3.2.2: Lập trình Gui trong Matlab
3.2.2.1: Mở phần mềm

Mở phần mềm Matlab rồi gõ lệnh “guide” vào command ta được bảng như sau:

Hình 3.3: Cửa sổ GUI
Trong cửa sổ Guide Quick start có nhiều lựa chọn theo một trong những khuôn mẫu sau:
Create New Gui: Tạo một hộp thoại gui mới theo một trong các loại sau:
- Blank Gui (Default): Hộp thoại gui trống không có diều khiển uicontrols nào cả.
- Gui With Uicontrols: Hộp thoại gui với vài uicontrols như button.., chương trình có thể
chạy ngay.
- Gui With Axes and Menu: Hộp thoại với một uicontrols axes và button, các menu để hiển
thị đồ thị.
- Modal Question Dialog: Hộp thoại đặt câu hỏi yes hoặc no.
- Open Existing Gui: Mở hộp thoại project có sẵn.

20


Đồ án Mô hình hóa và mô phỏng

GVHD: Ths. Lê Quốc Dũng

3.2.2.2: Các công cụ trong cửa sổ Gui
Để tạo project ta có thể chọn Blank Gui (Default) và nó sẽ hiện ra cửa sổ

Hình 3.4: Cửa sổ công cụ trong Gui
Giao diện này rất giống với những chương trình lập trình giao diện như Visual
Basic, Visual C++…Di chuyển chuột qua các biểu tượng ở bên trái sẽ thấy tên của các điều
khiển. Một vài tên điều khiển hay dùng là:
- Push Button: Giống như nút command button là các nút bấm như nút ok hay cancel mà
ta vẫn bấm.
- Slider: Thanh trượt và có một con trượt chạy trên đó.

- Radio Button: Nút để lựa chọn.
Ngoài ra còn có các nút điều khiển khác như: Check Box, Edit Text, StaticText, Pop-up
Menu, List Box, Axes, Panel, Button Grould, Ativex Control, Toggle Button…
Còn trên thanh menu thì quan trọng nhất là menu tool có:
Run (Ctrl+T): Để chạy chương trình mà ta đã viết, có lỗi sẽ thông báo.
Align Obiejct: Dùng để làm cho các điều khiển sắp xếp gọn đẹp theo ý mình như cùng căn
lề trái…
Grid and Rulers: Dùng để cấu hình về lưới trong giao diện vì nó coi giao diện như một ma
trận các ô vuông nhỏ, ta sẽ thay đổi giá trị này để cho các điều khiển có thể thả ở đâu tùy
ý.
Menu Editor: Trình bày để tạo menu cho điều khiển.
Tab Order Editor: Sắp xếp tab oder là thứ tự khi ta nhấn phím tab.
Gui Options: Lựa chọn cho giao diện Gui.

21


Đồ án Mô hình hóa và mô phỏng

GVHD: Ths. Lê Quốc Dũng

3.2.2.3: Kéo tha các điều kiện
Ta sẽ kéo vào trong giao diện 2 edit box, 1 static box và 1 push botton thì sẽ được:

Hình 3.5: Kéo, thả các điều kiện
Chương trình có 2 chức năng khi nhấn vào nút bấm thì kết quả của phép cộng giữa 2 số
được gõ vào 2 ô sẽ hiện lên trong Static Text.

22



Đồ án Mô hình hóa và mô phỏng

GVHD: Ths. Lê Quốc Dũng

3.2.2.4: Thay đổi các thuộc tính của các điều kiện
Nháy đúp vào Edit Text bên trái để xuất hiện cửa sổ các thuộc tính của điều kiện.
Có thể sắp xếp theo chức năng hoặc theo thứ tự từ A – Z của tên thuộc tính bằng nút hiện
ở góc bên trái.

Hình 3.6: Cửa sổ các thuộc tính điều kiện
Thuộc tính quan trọng của Edit Box bao gồm:
- Tag: Là thuộc tính để đặt tên điều khiển, dùng tên này có thể thao tác đến các thuộc tính
của đối tượng.
- String là xâu ký tự hiện lên Edit Box.

23


Đồ án Mô hình hóa và mô phỏng

GVHD: Ths. Lê Quốc Dũng

3.2.2.5: Viết lệnh cho chương trình
Chương trình sẽ có tác dụng khi ta nhấn vào nút Push Botton sẽ hiện lên kết quả ở
Static Box. Vì thế nên sẽ phải viết hàm này mà khi ta nhấn vào nút Push Box sẽ gọi chính
là hàm Callback. Điều kiện nào cũng có hàm Callback, nó tương tự như hàm ngắt trong vi
điều khiển.
3.3: Khái quát về Simulink
3.3.1: Khởi động Simulink

Vào Matlab có 2 cách vào cửa sổ Simulink:
Cách 1: Vào trực tiếp Simulink bằng cách nhấp chuột vào biểu tượng trong menu của
Matlab.
Cách 2: Gõ lệnh “Simulink” sau đó ấn enter.
3.3.2: Đặc điểm của Simulink
Simulink phân biệt (không phụ thuộc vào thư viện con) hai loại khối chức năng:
khối ảo (virtual) và khối thực (notvirtual). Các khối thực đóng vai trò quyết định khi chạy
mô phỏng mô hình Simulink. Việc thêm hay bớt một khối thực sẽ thay đổi đặc tính động
học của hệ thống đang được mô hình Simulink mô tả. Có thể nêu nhiều ví dụ về khối thực
như: Khối tích phân Integrator hay khối hàm truyền đạt Tranfer Fcn của thư viện
Continuous, khối Sum hay khối Product của thư viện Math. Ngược lại, các khối ảo không
có khả năng thay đổi đặc tính của hệ thống, chúng chỉ có nhiệm vụ thay đổi diện mạo đồ
họa của mô hình Simulink. Đó chính là các khối như Mux, Demucx hay Enable thuộc thư
viện con Signal và System. Một số chức năng mang đặc tính ảo hay thực tủy thuộc vào vị
trí hay cách sử dụng chúng trong mô hình Simulink. Các mô hình đó được xếp vào loại ảo
có điều kiện.
3.3.3: Các thao tác cơ bản sử dụng trong Simulink
Simulink gần như chỉ có thể sử dụng được nhờ chuột. Bằng cách nháy kép chuột
trái vào một trong số các thư viện con thuộc thư viện con đó. Hoặc cũng có thể thu được
kết quả tương tự bằng cách nháy kép chuột trái của thư viện con, nằm ở phần bên phải
của cửa sổ truy cập Library Browser. Từ các khối chứa trong thư viện con ta có thể xây
dựng được lưu đồ tín hiệu mong muốn. Để tạo định dạng (Format) và soạn thảo ta có các
khả năng sau đây:

24


Đồ án Mô hình hóa và mô phỏng

GVHD: Ths. Lê Quốc Dũng


- Sao chép (coppy): Bằng cách gắp và thả “drag & drop” nhờ phím chuột phải ta có thể
ghép một khối từ thu viện (cũng có thể từ một thư viện khác).
- Di chuyển (move): Ta có thể dễ dàng di chuyển một khối trong phạm vi cửa sổ nhờ phím
chuột trái.
- Đánh dấu: Bằng cách nháy phím chuột trái vào khối ta có thể đánh dấu, lựa chọn từng
khối hoặc kéo chuột lựa chọn nhiều khối cùng một lúc.
- Xóa (Delete): Có thể xóa các khối và các đường nối đã bị đánh dấu bằng cách gọi lệnh
menu Edit/Clear. Bằng menu Edit/Undu hoặc tổ hợp phím Ctrl+Z ta có thể khôi phục lại
động tác xóa vừa thực hiện.
- Hệ thống con: Bằng cách đánh dấu lại nhiều khối có quan hệ chức năng, sau đó gom
chúng lại thông qua menu Edit/Creat Subsystem, ta có thể tạo ra một hệ thống con mới.
- Nói hai khối: Dùng phím chuột trái nháy vào đầu ra của một khối, sau đó di chuyển mũi
tên của chuột đến đầu vào cần nối. Sau khi thả chuột khỏi đường nối tự động được tạo ra.
Có thể rẽ nhánh tín hiệu bằng cách nháy chuột phải vào một đường nối có sẵn, kéo đường
nối mới xuất hiện tới đầu vào cần nối.
- Di chuyển đường nối. Để lưu đồ tín hiệu thoáng và dễ theo dõi, nhiều khi ta phải di
chuyển, bố trí lại các đường nối. Khi nháy chọn bằng chuột trái ta có thể di chuyển tùy ý
các điểm góc hoặc di chuyển song song đoạn thẳng của đường nối.
- Chỉ thị kích cỡ và dạng dữ liệu của tín hiệu: Lệnh chọn qua menu Format/Signal
Dimensions sẽ hiển thị kích cỡ của tín hiệu đi qua đường nối. Lệnh menu Format/Port
Data Types chỉ thị thêm loại dữ liệu của tín hiệu qua đường nối.
- Định dạng cho đường nối: Sau khi nháy phím chuột phải vào một đường nối, cửa sổ
định dạng đường (của cả đường dẫn tới đường nối đó) sẽ mở ra. Tại đây ta có các lệnh
cho phép cắt bỏ, coppy hoặc xóa đường nối.
- Hộp đối thoại (Dialog Box) về đặc tính của khối (Block Properties): Hoặc đi theo menu
của cửa sổ mô phỏng Edit/Block Properties của cửa sổ định dạng khối, ta sẽ thu được
hộp thoại cho phép đặt một vài tham số tổng quát về đặc tính của khối.
- Hộp thoại về đặc tính của tín hiệu (Signal Properties): Có thể tới được hộp thoại như
Signal Properties của một đường nối hoặc bằng cách nháy chuột đánh dấu trên cửa sổ

mô phỏng, sau đó đi theo menu Edit/Signal Properties hoặc chọn mục Signal Properties
từ cửa sổ định dạng. Trong hộp thoại ta có thể đặt tên cho đường nối hoặc nhập một
đoạn văn bản mô tả. Tuy nhiên, để đặt tên cho đường nối cũng còn có cách khác đơn giản
hơn: Nháy kép chuột trái vào đường nối ta sẽ tự động tới được chê độ nhập văn bản.

25


×