Tải bản đầy đủ (.pdf) (68 trang)

Hướng dẫn sử dụng matlab simulink và ứng dụng điều khiển các hệ thống tự động

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 (2.56 MB, 68 trang )

lOMoARcPSD|2935381

BỘ LAO ĐỘNG - THƯƠNG BINH & XÃ HỘI
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT VĨNH LONG

ĐỒ ÁN MÔN HỌC

Hướng dẫn sử dụng MATLAB &
Simulink và ứng dụng điều khiển
các hệ thống tự động
Môn học: Đồồ án Điềồu khiển 2

Họ và tên: MAI LÊ THÀNH NHÂN
MSSV: 18007023
Giáo viên hướng dẫn: LÊ MINH THÀNH

Vĩnh Long, tháng 12 năm 2021

Downloaded by EBOOKBKMT VMTC ()


lOMoARcPSD|2935381

NHẬN XÉT VÀ ĐÁNH GIÁ CỦA GIÁO VIÊN
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
- Ý thức thực hiện:
…………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………


…………………………………………………………………………………………………………………………
- Nội dung thực hiện:
…………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………
- Hình thức trình bài:
…………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………
- Tổng hợp kết quả:
 Tổ chức báo cáo trước hội đồng
 Tổ chức chấm thuyết minh

Vĩnh Long, Ngày … Tháng … Năm 2021
Người Hướng Dẫn

LÊ MINH THÀNH

0

Downloaded by EBOOKBKMT VMTC ()


lOMoARcPSD|2935381


LỜI CÁM ƠN
Trong những lời đâu tiên báo cáo đồ án học phần này, em muốn gửi
nhũng lời cám ơn và biết ơn trân thành nhất của mình tới tất cả những
người đã hỗ trợ và giúp đỡ em cả về kiến thức và tinh thần trong quá trình
thực hiện đồ án.
Trước hết, em xin chân thành cám ơn thầy Lê Minh Thành, người đã
trực tiếp hướng dẫn, nhận xét, tận tình chỉ bảo, giúp đỡ em trong suốt quá
trình làm đồ án, để em có thể hồn thiện đồ án một cách tốt nhất.
Xin chân thành cảm ơn tới tất cả các thầy cơ đã nhiệt tình dạy bảo,
truyền đạt kiến thức cho chúng em trong suốt thời gian học tập dưới máy
trường Đại Học Sư Phạm Kỹ Thuật Vĩnh Long, đặc biệt với các thầy cô tại
Khoa Điện- Điện tử, các thầy cô đã luôn quan tâm , định hướng và tạo điều
khiện thuận lợi cho em học tập, nghiên cứu và thực hiện đồ án.
Em đã cố gắng để hoàn thiện Đồ án 2 một cách tốt nhất, nhưng do
sự hạn chế về thơi gian và kiến thức nên khơng thể tránh khỏi những thiếu
sót, rất mong sự đóng góp của thầy cơ và các bạn.
Xin chân thành cám ơn!
Vĩnh Long, Ngày … Tháng … Năm 2021
Sinh Viên
(Người thực hiện đồ án)

MAI LÊ THÀNH NHÂN

1

Downloaded by EBOOKBKMT VMTC ()


lOMoARcPSD|2935381


MỤC LỤC
Trang
NHẬN XÉT VÀ ĐÁNH GIÁ CỦA GIÁO VIÊN
LỜI CÁM ƠN
MỤC LỤC
LỜI NÓI ĐẦU
PHẦN 1: SƠ LƯỢC VỀ MATLAB …………………………………………………………………………………
I. Phần mềm Matlab ………………………………………………………………………………………..
II. Phạm vi ứng dụng ……………………………………………………………………………………
III. Cài đặt phần mềm Matlab …………………………………………………………………………
PHẦN 2: GIỚI THIỆU VỀ MATLAB VÀ PHẠM VI ỨNG DỤNG…………………………………………
CHƯƠNG 1. GIỚI THIỆU CHUNG VỀ MATLAB………………………………………………………………
I. Giới thiệu về Matlab.……………………………………………………………………………………
1.1 Khởi động và Giao Diện của Matlab……………………………………………………
1.2 Cách thức sử dụng phần mềm Matlab ……………………………………………………
1.3. Các thức viết biểu thức, sử dụng biến, các phím chức năng ……………………
II. Thao tác với các tệp trong Matlab ………………………………………………………………
2.1. Các loại tệp được dùng trong Matlab……………………………………………………
2.2. Các lệnh xử lý tệp .mat ………………………………………………………………
2.3. Đường dẫn ……………………………………………………………………………………
2.4. Các lệnh xử lý m. file…………………………………………………………………………
CHƯƠNG 2. XỬ LÝ DỮ LIỆU DẠNG MẢNG (MA TRẬN) TRONG MATLAB………………………………
I. Các phương pháp tạo mảng dữ liệu ………………………………………………………………
1.1 Phương pháp nhập trực tiếp từ bàn phím…………………………………………
1.2 Dùng tốn tử " : "…………………………………………………………………………
1.3 Dùng hàm linspace và logspace:……………………………………………………
1.4. Sử dụng các mảng chuẩn………………………………………………………………
1.5. Mảng tạo từ tệp…………………………………………………………………………


2

Downloaded by EBOOKBKMT VMTC ()


lOMoARcPSD|2935381

II. Tham chiếu tới các phần tử của mảng, tạo các mảng con………………………………
2.1 Nguyên tắc tham chiếu tới các phần tử của mảng…………………………………………
2.2 Các ứng dụng của việc truy cập các phần tử của mảng………………………………
III. Các phép tính thực hiện trên mảng………………………………………………………………
3.1 Các phép tốn thơng thường………………………………………………………………
3.2. Sử dụng các toán tử với dấu "."……………………………………………………
3.3. Các hàm dùng trên mảng………………………………………………………………
CHƯƠNG 3. ĐỒ HỌA TRONG MATLAB…………………………………………………………………………
3.1. Những vấn đề chung…………………………………………………………………………
3.2. Đường cong biểu diễn mỗi quan hệ của các giá trị …………………………………………
3.2.1. Đồ thị 2 chiều…………………………………………………………………………
3.2.2. Đồ thị 3 chiều (dạng lưới và bề mặt)……………………………………………………
3.2. Tên của đồ thị……………………………………………………………………………………
3.3. Các trục toạ độ……………………………………………………………………………………
3.3.1. Điều khiển các trục toạ độ………………………………………………………………
3.3.2. Các chú thích trên trục toạ độ……………………………………………………
3.4. Các chú thích khác trên đồ thị………………………………………………………………
3.5. Các thuộc tính của văn bản đồ hoạ………………………………………………………………
3.5.1. Các thuộc tính của văn bản………………………………………………………………
3.5.2. Các ký tự đặc biệt…………………………………………………………………………
3.5.3. Một số ví dụ…………………………………………………………………………
3.5.4. Các tuỳ chọn của lệnh plot………………………………………………………………
3.6. Một số lệnh viết chữ khác…………………………………………………………………………

3.6.1 Lệnh gtext……………………………………………………………………………………
3.6.2: Lệnh ginput…………………………………………………………………………
3.7. In ấn đồ thị ……………………………………………………………………………………
CHƯƠNG 4. LẬP TRÌNH ỨNG DỤNG TRONG MATLAB……………………………………………………
I. Các loại dữ liệu dùng trong Matlab………………………………………………………………
1. Dữ liệu số……………………………………………………………………………………

3

Downloaded by EBOOKBKMT VMTC ()


lOMoARcPSD|2935381

2. Các phép tính trên số phức………………………………………………………………
2.1 Nhập dữ liệu…………………………………………………………………………
2.2 các phép tính thực hiện trên số phức…………………………………………
2.3 Các hàm xử lý số phức……………………………………………………
3. Dữ liệu dạng chuỗi………………………………………………………………
3.1. Phép gán và tham chiếu đến dữ liệu dạng chuỗi……………………
3.2. Tạo các mảng với phần tử là chuỗi…………………………………………
3.2.1 Tạo véc tơ cột các chuỗi:……………………………………………………
3.2.2 Tạo mảng hoặc véc tơ hàng các chuỗi…………………………………………
3.3. Các hàm dùng trên chuỗi……………………………………………………
3.3.1 Hàm chuyển đổi từ dữ liệu số sang chuỗi và ngược lại……………………
II. Nhập, xuất dữ liệu……………………………………………………………………………………
1. Các lệnh nhập dữ liệu…………………………………………………………………………
1.1. Nhập từ bàn phím: Lệnh input……………………………………………………
1.2. Nhập từ hộp thoại: Lệnh inputdlg…………………………………………
1.3. Nhập dữ liệu từ tệp: Lệnh fread……………………………………………………

1.4. Lệnh fopen: …………………………………………………………………………
1.5 Lệnh đóng tệp, fclose………………………………………………………………
1.6 Lệnh fscanf: …………………………………………………………………………
2. Các lệnh xuất dữ liệu…………………………………………………………………………
2.1. lệnh disp…………………………………………………………………………
2.2. Lệnh fprintf…………………………………………………………………………
2.3. Lệnh fwrite…………………………………………………………………………
III. Các lệnh phân nhánh…………………………………………………………………………
1. Lệnh if……………………………………………………………………………………
1.1 Cú pháp: Lệnh If………………………………………………………………
1.2 Các toán tử logic………………………………………………………………
1.3 Các hàm logíc………………………………………………………………
2. Lệnh switch…………………………………………………………………………

4

Downloaded by EBOOKBKMT VMTC ()


lOMoARcPSD|2935381

IV. Các vòng lặp……………………………………………………………………………………
1. Vòng lặp xác định: for………………………………………………………………
2. Vòng lặp khơng xác định: while……………………………………………………
V. Các chương trình con………………………………………………………………
1.Phương pháp xây dựng các hàm và chương trình con………………………………
2. Các đối số vào, ra…………………………………………………………………………
CHƯƠNG 5. MÔ PHỎNG CÁC HỆ THỐNG ĐỘNG LỰC BẰNG SIMULINK………………………………
I. Giới thiệu về mô phỏng số …………………………………………………………………………
1. Ý nghĩa và tầm quan trọng của mô phỏng số…………………………………………

2. Giới thiệu về các phần mềm mơ phỏng …………………………………………
II. Trình tự thực hiện một q trình mơ phỏng.……………………………………………………
1. Xây dựng cấu trúc mô phỏng: Sơ đồ khối…………………………………………
2. Xác lập giá trị các thơng số của mơ hình…………………………………………
3. Xác lập các điều kiện đầu……………………………………………………………
4. Các kích động đưa vào hệ thống……………………………………………………
5. Lựa chọn cách thức xuất kết quả……………………………………………………
6. Điểu khiển việc thực thi q trình mơ phỏng.…………………………………………
III. Sử dụng SIMULINK trong mô phỏng các hệ động lực…………………………………………
1. Các thao tác cơ bản…………………………………………………………………………
2. Chức năng và thao tác trên các khối thông dụng………………………………
2.1. Nhóm các khối xử lý tín hiệu liên tục…………………………………………
2.2. Nhóm các khối thực hiện việc gọi hàm từ Matlab và hàm truyền…………
2.3. Nhóm các khối thực hiện thao tác tốn học (Math)……………………
2.4. Nhóm các khối xử lý tín hiệu……………………………………………………
2.5. Nhóm các khối thực hiện chức năng xuất kết quả (Sinks)……………………
2.6. Nhóm các khối thực hiện chức năng nhập dữ liệu (Sources)…………
PHẦN 3: ỨNG DỤNG………………………………………………………………………………………………
ỨNG DỤNG SIMULINK ĐIỀU KHIỂN HỆ THỐNG LÒ NHIỆT…………………………………………
1.ỨNG DỤNG SIMULINK ĐIỀU KHIỂN HỆ THỐNG LÒ NHIỆT ………………………………

5

Downloaded by EBOOKBKMT VMTC ()


lOMoARcPSD|2935381

1.1. Mục đích …………………………………………………………………………
1.2. Giới thiệu Simulink ………………………………………………………

1.2.1. Các khối sử dụng trong bài thí nghiệm ……………………………………
1.2.2 Các bước để xây dựng ứng dụng mới……………………………………
2.Hàm truyền lị điện và mơ hình của Ziegler-Nichols……………………………………
2.1 Hàm truyền lị điện …………………………………………………………………………
2.2 Mơ hình của Ziegler-Nichols ………………………………………………………
2.3. Thí nghiệm …………………………………………………………………………
2.3.1. Chuẩn bị thí nghiệm ………………………………………………………
2.3.2. Khảo sát hệ hở lò nhiệt, nhận dạng hệ thống theo mơ hình Ziegler – Nichols. …..
2.3.3. Khảo sát mơ hình điều khiển nhiệt độ ON – OFF. ……………………………………
2.4 Khảo sát mơ hình điều khiển nhiệt độ PID (phương pháp Ziegler – Nichols).
…………………
KIỂM SOÁT MỰC NƯỚC HỆ BỒN ĐƠN DÙNG BỘ ĐIỀU KHIỂN PID SỐ………………………………
1.Giới Thiệu……………………………………………………………………………………………
2.Nội dung………………………………………………………………………………………………
2.1 Mơ hình toán của hệ bồn đơn ………………………………………………………………
2.2 Hệ thống điều khiển rời rạc………………………………………………………………
2.3. Mô phỏng ………………………………………………………………………………
2.4. Điều khiển hệ bồn đơn dùng bộ điều khiển PID………………………………………
2.5. Kết quả thực tế ………………………………………………………………………
3. Kết luận………………………………………………………………………………………………

6

Downloaded by EBOOKBKMT VMTC ()


lOMoARcPSD|2935381

PHẦN 1: SƠ LƯỢC VỀ
MATLAB

I. Phần mềm Matlab

ra kết quả của các biểu thức với dữ liệu đầu

MATLAB là phần mềm ứng dụng của
tập đoàn Mathworks (Mỹ). Đây là phần mềm
xử lý tốn học rất mạnh, thơng qua việc thực
hiện các phép toán trên ma trận (MAT - Matrix),
được các chun gia tốn học và máy tính đã
lập trình các thuật giải thông qua các thư viện
công cụ xử lý toán học (LAB - Laboratory).
Phần mềm cũng cung cấp nhiều modulee khác
nhau, phục vụ cho các lĩnh vực, các chuyên
ngành cụ thể.

vào là các véc tơ.
Matlab cung cấp các hàm để giải quyết các
vấn đề thường gặp trong kỹ thuật như:
+Xử lý các đa thức (nhân, chia, tìm điểm 0
(nghiệm) của đa thức).
+ Giải các phương trình tổng quát.
+ Giải hệ phương trình tuyến tính.
+ Giải hệ phương trình vi phân.
+ Xử lý các tín hiệu đo bằng phép khai triển
furier nhanh.

- Định hướng của phần mềm Matlab là dùng
cho những cán bộ nghiên cứu, thiết kế và lập
trình.


+ Các phép nội suy để xử lý dữ liệu trong
bảng.
+ Thuật giải bài tốn tối ưu.

- Đối với ngơn ngữ lập trình thơng thường để
giải bài tốn cơ học người ta phải thực hiện
qua các bước sau:

+ Phép tích phân vi phân.
+ Cơng cụ đồ hoạ .

+Xây dựng mơ hình cơ học → Xây dựng mơ
hình tốn học → áp dụng phương pháp tốn

Mat lab cung cấp cơng cụ lập trình để xây
dựng các chương trình ứng dụng.

+Xây dựng thuật tốn → Lập trình

Ngồi ra cịn có các module ứng dụng riêng
phục vụ cho nghiên cứu sâu như:

- Trong Matlab ta không cần quan tâm nhiều
đến việc sử dụng phương pháp tốn

+ Giải các phương trình vi phân đạo hàm
riêng phục vụ để giải quyết

các bài


toán bền dùng phương pháp phần tử hữu hạn

II. Phạm vi ứng dụng

+ Simulink cho phép mơ phỏng các cơ cấu
máy

Matlab đóng vai trị như một cơng cụ tính
tốn mạnh cho phép nhanh chóng tính ra trị số

+ Stateflow: để nghiên cứu các dịng chảy
khí hay chất lỏng

của biểu thức phức tạp và lưu giữ trị số của
biểu thức vào bộ nhớ của máy tính.

+ Fuzzy logic: nghiên cứu lôgic mờ

Malab cung cấp các công cụ xử lý các mảng

+ …v.v

dữ liệu: véc tơ và ma trận, cho phép tính tốn

III. Cài đặt phần mềm Matlab

7

Downloaded by EBOOKBKMT VMTC ()



lOMoARcPSD|2935381

Sau khi tải về, bạn tiến hành giải nén
tệp tin với WinRAR phiên bản mới nhất.
Với MATLAB 2021, quy trình cài đặt
tương tự như MATLAB 2020, bạn tiến hành thực
hiện các bước sau đây.
Bước 1: Gán File iso
MATLABv9.10R2021a_Win64.iso vào ổ đĩa ảo
(nhấn chuột phải vào file > Mount (Gán))
Bước 2: Chạy setup.exe > Advanced Options
> I have a File Installation Key

Bước 4:Select License File: license.lic
hoặc license_standalone.lic trong thư mục
“MATLAB Licenses” đã tải về.
Chọn các thành phần bạn cần cài
đặt: Select products, bạn cần
- 32GB ổ cứng để cài toàn bộ các thành phần.
- 3GB nếu chỉ cài “MATLAB”
Bước 5: Chọn Add shortcut to desktop để thêm
lõi tắt MATLAB ra Desktop.
Bước 6: Chờ cho q trình cài đặt hồn tất.
Bước 7: Sau khi cài đặt thành công, bạn copy
file “libmwlmgrimpl.dll” trong “MATLAB
Licenses” tới thư mục cài đặt
MATLAB <matlabfolder>\bin\win64\matlab_st
artup_plugins\lmgrimpl thay thế file cũ để
hồn tất kích hoạt.


Bước 3: Nhập Enter File Installation Key
09806-07443-53955-64350-21751-41297

8

Downloaded by EBOOKBKMT VMTC ()


lOMoARcPSD|2935381

PHẦN 2:
GIỚI THIỆU VỀ MATLAB
VÀ PHẠM VI ỨNG DỤNG

9

Downloaded by EBOOKBKMT VMTC ()


lOMoARcPSD|2935381

CHƯƠNG 1. GIỚI THIỆU CHUNG VỀ MATLAB
I. Giới thiệu về Matlab.

 Một số cửa sổ phụ thực hiện các chức năng
riêng (thơng báo thư mục hiện thời, thơng báo
các dịng lệnh đã thực hiện, tên biến đang có,...)

1.1 Khởi động và Giao Diện của Matlab

Để khởi động Matlab ta nháy đúp chuột
vào biểu tượng của Matlab, trên màn hình sẽ
hiện ra cửa sổ giao diện của Matlab

✻ Cửa sổ lệnh:

Toolbar
(Thanh Công Cụ)

Menu

(Menu
Bar
lệnh)

 Cửa sổ lệnh là nơi cho phép nhập các lệnh
thực hiện từng phép tốn, các chương trình con,
cũng như kết nối với các module ứng dụng
trong Matlab.
 Trên cửa sổ giao diện chính ln có dấu nhắc
">>": người sử dụng có thể nhập trực tiếp tên
lệnh vào đó, kết thúc gõ Enter () để thực lệnh

Cửa sổ
m
chụứca thư
hiện
thời

 Nếu 1 câu lệnh dài, để xuống dịng thì sử dụng

3 dấu chấm "..." trước khi gõ Enter.

Command
CWindow
ửa sổ lệnh)

 Nếu trước 1 dịng lệnh có ký tự "%" thì dịng
lệnh đó chỉ là chú thích, Matlab khơng thực hiện
lệnh trong dịng soạn thảo đó.

Cửa sổ
lưu trữ
các
lệnh đã
thực
hiện

 Khi thực hiện xong 1 lệnh đúng (khơng có lỗi),
Matlab sẽ đưa ngay kết quả của lệnh đó nếu
cuối câu lệnh khơng có dấu ";". Kết quả sẽ
được trả lời sau dịng ans.
 Lệnh clc cho phép xóa tồn bộ các lệnh đã
thực hiện trước đó, trả về 1 trang cửa sổ trắng.
 Lệnh clear all cho phép xóa tồn bộ lưu trữ
các biến có trong bộ nhớ hiện thời của máy tính.

( Hình 1: Giao diện Matlap)

 Gõ help <tên lệnh>, trên cửa sổ sẽ hiện cho
cách thức sử dụng lệnh đó.


✻ Trên cửa sổ giao diện chính có một số menu,
toolbar, cũng như một số cửa sổ nhỏ hơn:

1.2 Cách thức sử dụng phần mềm Matlab

 Menu bar: Chứa các cây thư mục chính,
tương tự như một số phần mềm khác chạy
trong mơi trường Windows, ngồi ra có một số
lệnh thực hiện riêng của Matlab.

a. Tính tốn trực tiếp
Có hai cách thực hiện:
 Gõ trực tiếp biểu thức hoặc các lệnh vào trong
cửa sổ lệnh, kết quả sẽ hiện ra màn hình sau
khi ấn Enter.

 Toolbar (thanh cơng cụ): chứa các biểu tượng
(icon) thực hiện một số chức năng thông thường
(Open, New, Save, Cut, Paste...) và riêng biệt
(Simulink, Guide, Help...).

 Đưa các câu lệnh, biểu thức vào trong tệp văn
bản script file (ghi dưới dạng mã ASCII) tệp này
cần có phần mở rộng là.m (nên còn được gọi là
m file). khi cần thực hiện việc tính tốn ta chỉ
cần gọi tệp này vào Matlab.

 Cửa sổ lệnh (Command window): đây là cửa
sổ quan trọng nhất, có thể cho phép thực hiện

ngay các phép toán, hoặc liên kết với các cửa
sổ khác.

10

Downloaded by EBOOKBKMT VMTC ()


lOMoARcPSD|2935381

b. Lập trình ứng dụng

 Tên biến do người dùng đặt, khơng có khoảng
trống và phân biệt chữ cái hoa, thường.

 Chương trình cần được ghi vào trong tệp
m.file khi cần chạy chương trình ta gọi vào mơi
trường Matlab.

 ở cú pháp 1: kết quả tính của biểu thức sẽ
hiện ra màn hình và lưu trữ dưới tên biến.
 ở cú pháp 2: kết quả khơng hiện ra màn hình .

 Để kiểm nghiệm từng dịng lệnh có thể đưa
thử trực tiếp trong cửa sổ của Matlab.

 Để kiểm tra giá trị hiện thời của biến ta chỉ cần
gõ tên biến.

 Để biên tập các tệp chương trình ta có thể

dùng một trình biên tập bất kỳ hoặc dùng trực
tiếp chương trình Matlab-Editor của Matlab với
các tiện ích hỗ trợ cho lập trinh.

 Trong biểu thức thay cho việc nhập giá trị cụ
thể ta có thể gõ tên biến.
 Để kiểm tra các biến tồn tại trong môi trường
Matlab ta gõ who, hoặc whos, hay dùng menu
File\Show Work Space

1.3. Các thức viết biểu thức, sử dụng biến,
các phím chức năng
a. Tính tốn biểu thức số:

 Để xố biến khỏi mơ trường ta có thể dùng các
lệnh: clear, clear , <tên biến 1>,<tên biến 2>...

 Các biểu thức số có thể nhập trực tiếp vào cửa
sổ lệnh của Matlab, sau khi ấn Enter kết quả
của biểu thức sẽ hiện ra màn hình.

c. Các phím chức năng
 Để biên tập các dịng lệnh ta dùng các phím
mũi tên hoặc dùng chức năng cắt dán

 Các phép tính: Cộng +, Trừ -, Nhân *, Chia /,
Luỹ thừa ^ và dấu ngoặc ưu tiên phép tinh.

 Phím xố lùi, phím del, end, pageup,
pagedown..


 Các dịng lệnh dài có thể được phân ra nhiều
dịng (bằng các ấn Enter),tuy nhiên cuối mỗi
dòng (trừ dòng cuối cùng) ta phải thêm dấu...

 Các phím tắt thơng thường khác như ở các
phần mềm ứng dụng trong Windows: Ctrl + C;
Ctrl + V; Ctrl + N, Ctrl + O, Ctrl + X,...

b. Sử dụng các hàm, hằng và biến
Các hàm: abs, sqrt, sin, cos, tan, cot, exp,
log, log10, asin, acos, atan, acot

d. Quy định việc hiển thị kết quả số ra màn
hình

 Các hằng số đã định nghĩa: realmax,
eps,realmin, pi, inf

Dùng lệnh format:
Các chế độ chính sau đây:

 Khi viết biểu thức, kết quả tính tốn sẽ được
lưu trữ vào trong biến có tên mặc định là ans.

FORMAT Chế độ mặc định có ý nghĩa như
FORMAT SHORT

 Thơng thường để lưu kết quả tính ta thường
dùng phép gán với cú pháp sau:


FORMAT SHORT Ghi chế độ thập phân với 5
chữ số sau dấu phẩy

<tên biến> = <biểu thức>

FORMAT LONG Ghi chế độ thập phân với 15
chữ số sau dấu phẩy

hoặc
<tên biến> = <biểu thức>:

FORMAT SHORT E Chế độ ghi số e với 5 chữ
số thập phân.

Trong đó:

11

Downloaded by EBOOKBKMT VMTC ()


lOMoARcPSD|2935381

FORMAT LONG E Chế độ ghi số e với 15 chữ
số thập phân..

ghi các biến trong môi trường làm việc của
Matlab


FORMAT +

b. Lệnh Load hoặc File\Load Work Space

Sử dụng dấu +, - ghi trước số

II. Thao tác với các tệp trong Matlab

 Lệnh Load('Filename') sẽ tải các biến lưu trữ
trong tệp <Filename> vào môi trường làm việc
của Matlab

2.1. Các loại tệp được dùng trong Matlab
Trong Matlab, ta thường dùng một số loại tệp
chính:

 File\Load Work Space: Sẽ hiện ra hộp thoại
Open cho phép ta tìm kiếm và mở tệp để tải các
biến lưu trữ trong nó vào mơi trường làm việc
của Matlab.

a. Tệp *.m (m. file):
Tệp này có nhiều chức năng:

2.3. Đường dẫn

 Có thể chứa các biểu thức của Matlab (script
file) để gọi vào môi trường của Matlab khi cần
thiết


Thông thường để làm việc với các tệp (ghi hoặc
tải các tệp) ta cần chỉ rõ đường dẫn đến tệp cần
thao tác.

 Là chương trình ứng dụng dùng ngơn ngữ lập
trình của Matlab

Trong mơi trường làm việc của Matlab đã quy
định trước một số đường dẫn đến thư mục của
Matlab, nếu các tệp đưa ra khơng có đường
dẫn, máy sẽ tự tìm kiếm trong các thư mục này,
các thư mục này được gọi là "thư mục mặc
định".

 Là một hàm mới của Matlab do người dùng
định nghĩa M. file được lưu trữ dưới mã ASCII
b. Tệp *.mat
(có phần mở rộng là mat) dùng để ghi lại các
biến có trong mơi trường làm việc của
Matlab.Tệp này được ghi dưới mã nhị phân.

Để thao tác với các thư mục mặc định của
Matlab ta dùng lệnh: path, addpath, rmpath
hoặc dùng menu lệnh File\Set Path

c. Một số dạng tệp khác:

a. Lệnh path:

các dạng tệp đặc biệt, riêng cho các module

ứng dụng trong Matlab (VD: *.fig: đồ thị trong
Matlab; *.mdl: file mô phỏng trong Simulink...)

Cú pháp: path cho hiện ra danh sách các
đường dẫn đến thư mục mặc định của Matlab

2.2. Các lệnh xử lý tệp .mat

b. Lệnh addpath
Cú pháp: addpath('đường dẫn 1', 'đường dẫn
2',...): Thêm các đường dẫn thường trực vào
môi trường của Matlab

a.Lệnh Save hoặc File/Save Work Space As
Cú pháp:
 Save('filename'): ghi các biến có trong mơi
trường làm việc của Matlab vào tệp

c. Lệnh rmpath
Cú pháp rmpath('đường dẫn 1', 'đường dẫn
2'..): Loại bỏ các đường dẫn chỉ định khỏi môi
trường của Matlab

 Save('filename', 'biến 1', 'biến 2',...): ghi các ,
,... vào tệp
 Nếu dùng menu lệnh: File/Save Work Space
as máy sẽ cho hiện ra bảng chọn Save as cho
phép ta đặt tên tệp, vị trí thư mục sẽ lưu trữ tệp

d. Sử dụng menu lệnh: File\Set Path


12

Downloaded by EBOOKBKMT VMTC ()


lOMoARcPSD|2935381

Lệnh File\Set Path Cho hiện ra hộp
thoại thể hiện danh sách các đường dẫn thường
trực đồng thời giúp người dùng thực hiện việc
thêm vào, bớt đi các đường dẫn thường trực
một cách trực quan.

trở lên) thì nếu khi chạy m file từ một thư mục
(đường dẫn mới) thì Matlab sẽ hỏi trực tiếp
người sử dụng có đưa đường dẫnnày vào hiện
thời hay khơng, do đó giảm bớt cơng việc đưa
đường dẫn vào cụ thể như trên trong mỗi lần sử
dụng (khi thốt khỏi Matlab, đường dẫn cũng tự
động được xóa khỏi bộ nhớ)

*Để thêm vào đường dẫn thường trực ta
thực hiện các thao tác sau:

2.4. Các lệnh xử lý m. file

 Nháy chuột vào Path/ Add to Path,

Để tạo ra, biên tập và sửa chữa các tệp

m. file ta có thể sử dụng bất kỳ một trình biên
tập nào có thể tạo ra tệp mã ASCII, tuy nhiên
Matlab cung cấp một trình soạn thảo hết sức
tiện lợi đó là chương trình Matlab Editor.

 Nháy chuột vào nút... trong hộp thoại vừa mở
ra để tìm đến thư mục lựa chọn
 Nháy vào OK
 Vào Menu File\Save Path

 Để tạo file mới từ cửa sổ của Matlab ta gọi:
File/New/M.file, Hoặc nháy vào biểu tượng
New trên thanh công cụ

 Vào Menu File\Exit Browser để thoát khỏi hộp
thoại
*Để loại bỏ một đường dẫn thường trực ta
thực hiện các bước sau:

 Để mở tệp đã có ra để hiệu chỉnh, ta nháy
chuột vào biểu tượng Open hoặc chọn
File/Open, Máy sẽ hiện ra hộp thoại Open cho
ta tìm đến tệp cần mở và gọi Matlab Editor ra để
đưa tệp cần mở vào biên tập

 Nháy chuột vào thư mục cần loại bỏ trong
danh sách các thư mục mặc định của Matlab
 Nháy chuột vào Path\Remove From path
 Vào Menu File\Exit Browser để thoát khỏi hộp
thoại Với các phiên bản Matlab đời cao (từ 6.5


13

Downloaded by EBOOKBKMT VMTC ()


lOMoARcPSD|2935381

CHƯƠNG 2. XỬ LÝ DỮ LIỆU DẠNG
MẢNG (MA TRẬN) TRONG MATLAB
*Một số khái niệm cơ bản:

4.3000

- Số: là ma trận có kích thước 1x1 (1 hàng, 1
cột)

5.0000
Câu lệnh:
M=[1 3 4 ; 5 3 7 ; 2 1 4]

- Véctơ: là ma trận có số hàng, hoặc số cột
bằng 1

Sẽ cho kết quả ma trận 3 hàng, 3 cột
M=

+ Véctơ hàng: ma trận có số hàng bằng 1
+ Véctơ cột: ma trận có số cột bằng 1


134

- Ma trận số (mảng số): là ma trận có kích

537

thước mxn (m hàng, n cột) trong đó các phần

214

tử của ma trận đều là dữ liệu dạng số.

Chú ý: Các phần tử trong mỗi hàng khi nhập

- Ma trận khối (mảng khối): là ma trận có các
phần tử dạng dữ liệu chuỗi ký tự.

vào phải như nhau

I. Các phương pháp tạo mảng dữ liệu

Cú pháp:

1.1 Phương pháp nhập trực tiếp từ bàn phím

<Tên biến>=<Begin>: <Step>: <Limit>

1.2 Dùng toán tử " : "

Sẽ tạo ra véc tơ hàng có phần tử đầu tiên là


Các nguyên tắc chung

giá trị <Begin>, gia số giữa các phần tử là

 Các phần tử của mảng được bao trong dấu
ngoặc vuông: [ ]

<Step>, giá trị phần tử cuối cùng không vượt
quá <Limit>

 Các phần tử trên một hàng được cách nhau
bằng dấu cách
 Các hàng được phân cách bằng dấu ";" hoặc
dấu "Enter"

Chú ý: Nếu bỏ qua trị số của <Step>, máy sẽ

Ví dụ:

Y=1:2:10

Nếu ta gõ: C=[3.5 4.3 5.0], ta sẽ nhận được

Ta nhận được véc tơ hàng:

véc tơ hàng có ba phần tử là 3.5, 4.3 và 5.0 và

Y=


nhận gia số =1
Ví dụ:
Nếu nhập vào sau dấu nhắc dịng lệnh

trên màn hình của Matlab sẽ hiện ra:

13579

C=

Nếu nhập vào sau dấu nhắc dòng lệnh: Y=1:9
3.5000 4.3000 5.0000

Ta nhận được véc tơ:

Nếu ta nhập vào: V=[3.5; 4.3; 5.0], hoặc

Y=

V=[3.5000

123456789

4.3000

1.3 Dùng hàm linspace và logspace:

5.0000]

Cú pháp:


Ta sẽ nhận được véc tơ cột có ba phần tử là

<tên biến>=linspace(<MinVal>, <MaxVal>,

3.5, 4.3 và 5.0 và trên màn hình của Matlab sẽ

<Num>)

hiện ra:

Hàm sẽ tạo ra véc tơ hàng có số phần

V=

tử bằng <Num>, gia số giữa các phần tử như
3.5000

nhau và bằng (MaxVal-MinVal)/(Num-1), phần

14

Downloaded by EBOOKBKMT VMTC ()


lOMoARcPSD|2935381

tử đầu tiên có giá trị bằng MinVal, phần tử cuối

Ma trận có các phần tử bằng 1 thường dùng


cùng có giá trị bằng MaxVal

trong các trường hợp sau:

Ví dụ:

 Dùng làm ma trận mồi trong phép tính tích

Dùng hàm: linspace(1,11,6)

các phần tử tương ứng của nhiều ma trận

Ta nhận được véc tơ

(dùng vòng lặp)

ans =

 Dùng để tạo ma trận có các phần tử bằng
1 3 5 7 9 11

nhau (dùng khi thực hiện phép tính cộng hoặc

Ứng dụng: Hàm linspace rất tiện dụng trong

trừ từng phần tử của ma trận với cùng một số).

việc xác định véc tơ các giá trị trên trục hoành


Sử dụng hàm ones:

khi vẽ đồ thị

Cú pháp: <Tên biến>=ones (<RowNum>,

Hàm logspace

<ColumnNum>)

Có cú pháp tương tự như hàm linspace, tuy

Tạo ra ma trận với các phần tử 1, có số hàng

nhiên các phần tử biến thiên theo quy luật hàm

là <RowNum>, số cột là <ColumnNum>.

số mũ với gia số của các số mũ tăng đều và

Ví dụ: M=ones(3,4)

bằng:

Sẽ cho kết quả

(MaxVal-MinVal)/(Num-1).

M=


Ví dụ: logspace(1,6,6)

1111

Sẽ cho kết quả:

1111

ans =

1111

10 100 1000 10000 100000 1000000
1.4 Sử dụng các mảng chuẩn

M=3.5*ones(3,2)

1.4.1 Ma trận có các phần tử bằng 0

Sẽ cho kết quả

Ứng dụng:

M=

3.5

3.5

Ma trận có các phần tử bằng 0 thường dùng


3.5

3.5

trong các trường hợp sau:

3.5

3.5

 Dùng làm ma trận mồi trong phép tính tổng
nhiều

ma

trận

(dùng

vịng

1.4.3. Ma trận đơn vị
Để tạo ma trận đơn vị, ta dùng hàm eye;
Cú pháp:
<Tên biến>=eye(<RowNum>,
<ColumnNum>);
hoặc
<Tên biến>=eye(<Size>)
Cú pháp thứ nhất sẽ tạo ra ma trận đơn vị chữ

nhật, có số hàng bằng<RowNum> và số cột
bằng <ColumnNum>.
Cú pháp thứ hai sẽ tạo ra ma trận đơn vị có số
hàng bằng số cột bằng <Size>
Ví dụ: I=eye(3,4)
Sẽ tạo ra ma trận
I=
1000
0100
0010

lặp)

 Dùng để tạo ma trận có nhiều phần tử bằng 0
rất thường gặp trong kỹ thuật
Sử dụng hàm zeros:
Cú pháp: <Tên biến>=zeros(<RowNum>,
<ColumnNum>)
Tạo ra ma trận với các phần tử 0, có số hàng
là <RowNum>, số cột là <ColumnNum>.
Ví dụ: Hàm M=zeros(2,3)
Sẽ cho kết quả
M=
000

I=eye(4)
Sẽ tạo ra ma trận

000
1.4.2. Ma trận có các phần tử bằng 1


I=

Ứng dụng:

1000
0100

15

Downloaded by EBOOKBKMT VMTC ()


lOMoARcPSD|2935381

0010

00500
00030
V=[3 4 6;5 6 7;8 9 6]; M=diag(V)

0001
1.4.4. Tạo các mảng đường chéo ứng dụng

Cho kết quả:

Mảng đường chéo thường gặp ở các ma trận

M=


độ cứng và ma trận khối lượng trong tính tốn

3
6

bền

6

Dùng hàm diag

1.4.5. Mảng các số ngẫu nhiên

Cú pháp:

ứng dụng:

<tên biến>=diag(v)

Mảng các số ngẫu nhiên dùng nhiều

<tên biến>=diag(v,n)

trong đồ hoạ hoặc tạo các nhiễu trong mô

ở đây:

phỏng và sử lý số liêụ thực nghiệm

 V là một véc tơ hàng, hoặc cột. hoặc có thể là


Sử dụng lệnh rand:

ma trận

<tên biến>= rand(số hàng, số cột)

 n là số nguyên chỉ đường chéo nào của ma

Tạo ra mảng các số ngẫu nhiên với số hàng,

trận sẽ đặt các phần tử của véc tơ V

cột chỉ định

 Nếu V là một véc tơ, hàm sẽ cho kết quả là

1.5 Mảng tạo từ tệp

ma trận vng có các phần tử trên đường chéo

Nếu ta ghi các mảng trong một tệp

chỉ định là các phần tử của véc tơ V

dạng m.file (theo đúng quy cách tạo mảng

 Nếu V là một ma trận, sẽ trả kết quả là véc tơ

trong Matlab như trình bày ở trên), ta hồn


cột của các phần tử nằm trên đường chéo của

tồn có thể gọi mảng vào môi trường làm việc

ma trận V

của Matlab bằng cách nhập tên của m.file sau

 Nếu không chỉ ra n, các phần tử của V sẽ nằm

dấu nhắc của Matlab và ấn Enter.

trên đường chéo chính

Điều này rất thuận tiện khi ta dữ liệu

Ví dụ:
V=[1 3 5 3]; M=diag(V)
Sẽ cho kết quả
M=
1000
0300
0050
0003

dạng mảng được xuất ra từ một chương trình
tính toán khác.
II. Tham chiếu tới các phần tử của mảng, tạo
các mảng con

2.1 Nguyên tắc tham chiếu tới các phần tử
của mảng
 Để tham chiếu đến một phần tử của mảng, ta
cần chỉ ra chỉ số hàng và cột của phần tử (đặt
trong
dấu
ngoặc
đơn)
 Để tham chiếu đến một nhóm các phần tử của
mảng, thay cho việc chỉ ra chính xác chỉ số của
phần tử như trên ta phải chỉ ra được mảng các
chỉ số của các phần tử cần tham chiếu tới
 Dấu: để chỉ toàn bộ các chỉ số của hàng và cột
 Từ khoá end là chỉ số cuối cùng của hàng
hoặc cột của mảng
Ví dụ: để tham chiếu đến phần tử nằm ở hàng
số 2 và cột số 3 của ma trận M ta viết M(2,3)
M1= M([1 2],[3 2])
sẽ cho ta một ma trận mới:
M1 = M1,3 M2,3

M=diag(V,1)
Sẽ cho kết quả
M=
01000
00300
00050
00003
00000
M=diag(V,-1)

Cho kết quả
M=
00000
10000
03000

M1,2 M2,2

16

Downloaded by EBOOKBKMT VMTC ()


lOMoARcPSD|2935381

2.2.4. Loại bỏ bớt các phần tử của mảng:

Ví dụ:
M1=M(:,1)

Để loại bỏ các phần tử khỏi mảng ta chỉ cần
gán giá trị của các phần tử cần loại trị số rỗng:

sẽ cho ra véc tơ bao gồm các phần tử trên cột
thứ nhất của ma trận M

"[ ]"
Ví dụ: nếu ta có ma trận M=

M1=M(2,:)

sẽ cho ra véc tơ bao gồm các phần tử trên hàng
thứ hai của ma trận M

234
537
328

Ví dụ:

Sau khi dùng phép gán: M(:,1)=[ ]

M1=M([2 4],[3:end])

Ta nhận được:

Sẽ tạo ra ma trận M1 từ hàng 2 và 4 của ma

M=

trận M, mỗi hàng lấy ra từ phần tử thứ 3 đến

34

phần tử cuối cùng

37

2.2 Các ứng dụng của việc truy cập các

28


phần tử của mảng

2.2.5. Hợp mảng mới từ các mảng thành

2.2.1. Lấy các phần tử của mảng ra để tính

phần (nối mảng)

tốn

Để tạo mảng từ các mảng thành phần ta dùng

Ví dụ:

dấu "[ ]" bên trong cần chỉ rõ các phần tử đưa

S=V(2)^2+V(5)^2

vào mảng, nếu các phần tử nằm trên 1 hàng,

Sẽ tính tổng bình phương các giá trị của phần

chúng cách nhau bằn dấu cách (bước trống),

tử thứ 2 và thứ 5 của véc tơ V

để xuống dịng ta dùng dấu ;

S=M(1,2)-M(2,3)


Ví dụ:

Sẽ tìm ra hiệu của hai phần tử ở hàng 1 cột 2

Nếu ta có 2 véc tơ:

và hàng 2 cột 3 của ma trận M

V1=[3 5 7 9], V2=[4 6 8 2 7 3]

2.2.2. Thay đổi giá trị của từng phần tử của

Khi dùng lệnh:

mảng

V=[V1(2:end) V2([1 3 4])]

Ví dụ:

Ta sẽ nhận được:

Để tạo ra ma trận

[ ]

1 0 0
M= 0 0 0
0 3 0


V=
579482

,

III. Các phép tính thực hiện trên mảng

ta thực hiện theo các bước sau:

3.1 Các phép tốn thơng thường

- Tạo ma trận với các phần tử 0: M=zeros(3,3);
- Sau đó gán lại các phần tử khác 0 của ma
trận: M(1,1)=1;M(3,2)=3;
2.2.3. Tạo các mảng con từ mảng cơ sở

3.1.1: Phép cộng
Cú pháp: M=M1 + M2 + M3+...
Ý nghĩa: tạo ra mảng mới M có cùng kích
thước với mảng M1, M2..., các phần tử của

Ví dụ:

mảng mới sẽ bằng tổng từng phần tử tương

Để lấy ra hàng đầu tiên của ma trận M ta dùng

ứng của các mảng thành phần


lệnh:

Điều kiện:

V=M(1,:)

Các mảng M1, M2,... phải có cùng kích thước.

Để tạo ra véc tơ mới bằng cách bỏ đi phần tử

3.1.2: Phép trừ

đầu tiên của véc tơ V, ta dùng lệnh:

Cú pháp:

V1=V(2:end);

M=M1 - M2 - M3-...

17

Downloaded by EBOOKBKMT VMTC ()


lOMoARcPSD|2935381

+
Cộng (khơng có tốn tử.+)
Trừ (khơng có tốn tử.-)

.*
Nhân từng phần tử
./
Chia từng phần tử
.^
Luỹ thừa từng phần tử
'
Phép chuyển vị
nghĩa: Tạo ra mảng M với các phần tử

ý

xác định bằng quan hệ:
S(i)=Y(i+1)-2*Y(i); i=1 đến n-1, với Y =[3.5 6.2
7.0 5.4 6.2]
ở đây ta sử dụng biểu thức véc tơ:
S=Y(2:end)-2*Y(1:end-1)
VD2: tính giá trị của véc tơ V mà các phần tử

M(i,j)=M1(i,j)-M2(i,j)-M3(i,j)-..

của nó được xác định bằng biểu thức:

Điều kiện:

V(i)=2*Y(i)-b, với Y =[3.5 6.2 7.0 5.4 6.2], b=1.5

Các mảng M1, M2,... phải có cùng kích thước.

ở đây ta sử dụng biểu thức véc tơ:


3.1.3. Phép nhân

S=2*Y-b*ones(1,5)

Cú pháp:

VD3: giải hệ phương trình:

M=A*B

{

4 X 1+7 X 3=5
3 X 1+5 X 2−4 X 3=12
2 X 1+5 X 2+ X 3=4

ý nghĩa: Nếu A là ma trận có kích thước (i x k)
và B là ma trận có kích thước (k x j), ta sẽ nhận
được ma trận M có kích thước là (i x j) với:

Ta tạo ra các ma trận: M=[4 0 7; 3 5 -4;2 5 1];
Y=[5;12;4]
nghiệm của hệ được xác định bằng biểu thức:

Điều kiện:

X=eye(3,3)/M*Y

Số cột của ma trận A phải bằng số hàng của


X=

ma trận B.

3.0000

3.1.4 Phép luỹ thừa

-0.2000

Cú pháp:

1.0000

M=A^n,

3.3. Các hàm dùng trên mảng

trong đó n là số nguyên dương

3.3.1 Các hàm dùng chung:

Có kết quả như là phép nhân n ma trận A với

Tất cả các hàm tính tốn trên dữ liệu số

nhau:

đều có thể thực hiện trên dữ liệu mảng, và quả


Điều kiện: Các ma trận A phải là ma trận vng

là mảng có cùng kích cỡ

3.1.5 Phép chia hai ma trận

Ví dụ:

Cú pháp: M=A/B

Để vẽ đồ thị của hàm số:

ý nghĩa: Phép chia ma trận hoàn toàn giống

sin2 ( X ) +2 cos( 2 X )
Y=
1+cos 2 ( X )

như phép nhân với ma trận nghịch đảo:
M=A/B  M=A*B-1
Điều kiện:

đến Pi

Các ma trận A, B phải là các ma trận vuông

Ta sử dụng các lệnh sau:

cùng kích thước


X=linspace(0,pi,20);

3.2. Sử dụng các tốn tử với dấu "."

Y=(sin(X).^2+2*cos(2*X))./

3.2.1. Ý nghĩa:

(ones(1,20)+cos(X).^2);

Các tốn tử có dấu "." (xem bảng dưới ) sẽ cho

plot(X,Y)

; X=0

phép thao thác trên từng phần tử của mảng

3.2 Các hàm dùng cho việc xử lý dữ liệu

3.2.2 Các ví dụ:

a. Hàm size

VD1: Xác định véc tơ S, với các phần tử được

cú pháp:

18


Downloaded by EBOOKBKMT VMTC ()


lOMoARcPSD|2935381

 S=size(A): đưa ra véc tơ hàng chỉ số lượng

phần tử của nó tương ứng là tổng tích luỹ của

hàng và cột của ma trận

các phần tử trên từng cột của ma trận A.

 [r,c]=size(A) gán số hàng cho r, số cột cho c

 B = cumsum(A,dim) Sẽ đưa ra kết quả là ma

4 0 7
3 5 −4
2 5 1

trận B có cùng kích thước với A, các phần tử

Ví dụ: Nếu ta có ma trận M =

của véc tơ B sẽ là tổng tích luỹ của các phần tử
dọc theo hàng hoặc cột của ma trận A, tuỳ

Nếu gọi lệnh: S=size(M), ta nhận được:


thuộc vào trị số của <dim>. Ví dụ cumsum(A,1)

S=

sẽ tính dọc theo các cột, cumsum(A,2) sẽ tính

3 3

b. Hàm length

dọc theo các hàng.

cú pháp:

Thí dụ
cumsum(1:5) = [1 3 6 10 15]

S=length(V): đưa ra kết quả là 1 giá trị số

A = [1 2 3; 4 5 6];

bằng tổng số phần tử có trong vectơ V

cumsum(A)

c. Hàm min, max
Cú pháp: min(A) max(A)

123


 Nếu A là một véc tơ, hàm sẽ trả kết quả là giá

579
cumsum(A,2)

trị min (max) của các phần tử trong véctơ
 Nếu A là một ma trận, hàm sẽ trả kết quả là

136

một véc tơ hàng với các phần tử là min (max)

4 9 15

của các phần tử trong mỗi cột trong ma trận A

f. Hàm diff

d. Hàm sum

Tính tốn độ lệch giữa các phần tử trong mảng

Cú pháp: sum(A)

Cú pháp

 Nếu A là một véc tơ, hàm sẽ trả kết quả là

Y = diff(X)


tổng các phần tử của véc tơ

Y = diff(X,n)

 Nếu A là một ma trận, hàm sẽ trả kết quả là

Mô tả:

một véc tơ hàng với các phần tử là tổng các

Y = diff(X) tính ra độ lệch giữa các phần tử kề

phần tử của mỗi cột trong ma trận A

nhau của véc tơ X.

e. Hàm cumsum

*Nếu X là véc tơ kết quả đưa ra là véc tơ ít hơn

Cú pháp:

X 1 phần tử:

B = cumsum(A)

[X(2)-X(1) X(3)-X(2)... X(n)-X(n-1)]

B = cumsum(A,dim)


*Nếu X là ma trận, hàm diff(X) đưa ra kết quả

Mô tả:

là ma trận cột các độ lệch:

 Nếu A là một véc tơ, B = cumsum(A) sẽ đưa

[X(2:m,:)-X(1:m-1,:)]

ra kết quả là véc tơ B có các phần tử là tổng

Y = diff(X,n) Đưa ra véc tơ độ sai lệch

tích luỹ của các phần tử của véc tơ A: được xác

bậc n:

định bằng công thức:

như vậy diff(X,2) cho ra cùng kết quả với
diff(diff(X)).

 Nếu A là một ma trận, cumsum(A) Sẽ đưa ra
kết quả là ma trận có cùng kích cỡ với A và các

19

Downloaded by EBOOKBKMT VMTC ()



lOMoARcPSD|2935381

CHƯƠNG 3. ĐỒ HỌA TRONG MATLAB
3.1. Những vấn đề chung

Ví dụ: Vẽ nhiều đường cong trên cùng một hệ

Một đồ thị hồn chỉnh bao gồm những thành

trục

phần sau:

Nếu ta có: y1= sin(x); y2=sin(x-0.25); y3=sin(x-

- Đường cong biểu diễn mối quan hệ các giá trị

0.5)

- Tên của đồ thị

Để có thể so sánh đồ thị pha y1(x), y2(x), y3(x)

- Các trục toạ độ

trên cùng một hệ trục ta cũng dùng lệnh plot

- Các chú thích khác trên đồ thị


Hàm: plot(x, y,x,y2,x,y3) sẽ đưa ra bộ đồ thị

Sau đây chúng ta xem xét từng thành phần

như hình vẽ

trong mơi trường làm việc của Matlab.

Để làm nổi bật hay để phân biệt các đường

3.2. Đường cong biểu diễn mỗi quan hệ của

cong cho tiện theo dõi hay trình bày, ta cũng có

các giá trị

thể chỉ định kiểu đường nét, màu sắc và kiểu

Thông thường chúng ta đã biết các loại đồ thị 2

đánh dấu các điểm nút

chiều và 3chiều. Trong bài này chúng ta chỉ

Cú pháp 3: plot(x,y,'color_style_marker')

nghiên cứu đến loại đồ thị phẳng (2chiều) cịn

- Giải thích: trong lệnh trên, color_style_marker


chỉ giới thiệu về đồ thị 3 chiều.

là một bộ qui định màu sắc, kiểu đường và kiểu

3.2.1. Đồ thị 2 chiều

đánh dấu các điểm nút. Chúng được phân cách

a) Lệnh plot:

trong dấu nháy đơn.

Cú pháp 1:

- Một số chữ cái qui định kiểu màu: 'c', 'm', 'y',

plot(Y)

'r', 'g', 'b', 'w' và 'k'. Chúng tương ứng với các

plot(X,Y)

màu xanh da trời, tím đỏ, vàng, đỏ, xanh lá cây,

Giải thích:

xanh nước biển, trắng và đen.

- Nếu Y là một véc tơ, hàm plot(y) sẽ in ra đồ thị


- Các ký tự chỉ kiểu đường bao gồm '-' đối với

Y phụ thuộc vào chỉ số của nó trong véc tơ.

nét liền, '- -' đối với đường gạnh, ':' đường

- Nếu X, Y là hai véc tơ cùng độ lớn hàm

chấm, '-.' đường chấm gạch, và 'none' khi

plot(X,Y) sẽ in ra đồ thị hàm Y(X)

không vẽ đường.

- Nếu đối số trong hàm bao gồm nhiều bộ X, Y,

- Các ký tự để đánh dấu điểm bao gồm: '+', 'o',

Hàm sẽ đưa ra được nhiều đồ thị trên màn hình

'*', và 'x'.

và Matlab sẽ tự động hiển thị các đồ thị với các

Ví dụ: câu lệnh plot(x,y,'y:+') vẽ ra đồ thị là

màu khác nhau.

đường chấm chấm màu vàng có dấu + đanh


Ví dụ: để vẽ đồ thị hàm Sin với trị số hoành độ

dấu các điểm nút.

từ 0 đến 2 Pi ta dùng các dòng lệnh sau:

Một số chú ý:

X=0:Pi/100:2*Pi;

- Lệnh plot sẽ tự động mở ra một cửa sổ đồ

Y=Sin(X);

hoạ mới. Nếu cửa sổ này đã tồn tại lệnh plot

plot(X,Y)

mặc định sẽ sử dụng cửa sổ này. Để mở một

Cú pháp 2: plot(X1,Y1,X2,Y2,X3,Y3)

cửa sổ mới và đưa nó thành hiện thời ta dùng

Giải thích: Cú pháp 2 cho phép vẽ các đường

lệnh figure.

cong Y1(X1), Y2(X2), Y3(X3)... trên cùng 1 hệ


- Để đưa một cửa sổ đã mở thành hiện thời ta

trục tọa độ. Yêu cầu: các cặp véc tơ (X1,Y1),

dùng câu lệnh figure(n), trong đó n là số trên

(X2,Y2), (X3,Y3)... phải có cùng kích thước.

thanh tiêu đề của cửa sổ.

20

Downloaded by EBOOKBKMT VMTC ()


lOMoARcPSD|2935381

- Vẽ thêm đường cong mới vào một đồ thị đã

Để hiển thị hàm 2 biến z=f(x,y), hãy tạo

có: Lệnh hold cho phép bạn thêm đường cong

các ma trận x và y chứa đựng các hàng và cột

vào đồ thị đã có. Nếu bạn đặt chế độ hold on

lặp.


Matlab sẽ khơng xố đồ thị đã có và vẽ thêm

Sau đó sử dụng các ma trận này để tính ra đồ

đường cong mới khi gọi lệnh vẽ.

thị của hàm

Ví dụ: Để vẽ 3 đường cong y1, y2, y3 như ví

* Hàm meshgrid chuyển phạm vi được

dụ ở trên ta cũng có thể viết bằng 3 lệnh plot

định nghĩa bằng một véc tơ hoặc hai véc tơ x, y

riêng biệt, chỉ cần thêm lệnh hold on:

thành các ma trận X, Y dùng để tính ra giá trị

hold on

của hàm. Các hàng của X là các bản sao của

plot(x,y1)

véc tơ x, các cột của Y là copy của véc tơ y.

plot(x,y2)


Cú pháp:

plot(x,y3)

[X,Y] = meshgrid(x,y)

b) Lệnh subplot:

[X,Y] = meshgrid(x)

Hàm subplot sẽ chia cửa sổ đồ hoạ ra

[X,Y,Z] = meshgrid(x,y,z)

nhiều phần để hiển thị nhiều đồ thị trên cùng

Thí dụ:

một cửa sổ

Hàm

Cú pháp: subplot(m,n,p)

[X,Y] = meshgrid(1:3,10:14)

Trong đó m,n,p là các số nguyên, sẽ

Tạo hai mảng x và y sau


chia cửa sổ đồ hoạ ra m hàng và n cột và đưa

X=

phần cửa sổ thứ p thành hiện thời. Chỉ số các

123

cửa sổ con được xác định từ phải qua trái và

123

từ trên xuống dưới.

123

Ví dụ: Để vẽ 3 đường cong y1, y2, y3 ở ví dụ

123

trên nhưng trên 3 đồ thị trong cùng một cửa sổ

123

đồ hoạ, ta thực hiện

Y=

lệnh subplot


10 10 10

subplot(1,3,1)

11 11 11

plot(x,y1)

12 12 12

subplot(1,3,2)

13 13 13

plot(x,y2)

14 14 14

subplot(1,3,3)

* Hàm Mesh

plot(x,y3)

Cú pháp

3.2.2. Đồ thị 3 chiều (dạng lưới và bề mặt)

mesh(X,Y,Z)
Ví dụ:

[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
mesh(X,Y,Z)
Trong đó R là khoảng cách từ tâm, eps dùng để
tránh việc chia cho 0 ở điểm 0,0
3.2. Tên của đồ thị
Một đồ thị hồn chỉnh bao giờ cũng phải
có tên của đồ thị. Ta dùng hàm title
Cú pháp:
title('String')

a) Các hàm tạo bề mặt
Matlab định nghĩa một bề mặt lưới bởi
các toạ độ Z trên lưới của mặt xy. Dùng các
đường thẳng để nối các điểm kề nhau. Hàm
mesh và surf hiển thị các bề mặt ở dạng 3
chiều. Mesh cung cấp các bề mặt dạng khung
dây trong đó chỉ thể hiện màu ở các đường nối.
Surf hiển thị màu cả đường nối và bề mặt.
b) Trực quan hoá các hàm hai biến

21

Downloaded by EBOOKBKMT VMTC ()


lOMoARcPSD|2935381

title(…,'PropertyName',PropertyValue,…)

Giải thích:

Cú pháp:

text(x,y,'string')
text(x,y,z,'string')

- 'string': Là tên của đồ thị mà chúng ta cần

text(...,'PropertyName',PropertyValu

(Nhập từ bàn phím)

e,...)

- 'PropertyName': Tên của thuộc tính
-

PropertyValue:

Giá

trị

của

thuộc

Giải thích: Trong lệnh text ở trên: x,y, z là tọa
tính


độ vị trí ghi dịng chú thích

Tên và giá trị của thuộc tính sẽ được giới thiệu

- string: Tên của dịng chú thích là chuỗi ký tự

ở phần sau.(3.5)

trong 'string'

3.3. Các trục toạ độ

- 'PropertyName': Tên của thuộc tính

3.3.1. Điều khiển các trục toạ độ

- PropertyValue: Giá trị của thuộc tính

Sử dụng hàm axis:

Tên và giá trị của thuộc tính sẽ được giới thiệu

Cú pháp;

ở phần sau.(3.5)

axis square: Tạo cho tồn bộ trục x và y có
cùng chiều dài
axis equal: tạo ra các khoảng chia trên trục x và

y có chiều dài như nhau
axis auto: trả lại chế độ mặc định
axis on: Viết ra tên của trục và đánh dấu các
điểm chia trên trục
axis off: Huỷ bỏ việc viết ra tên của trục và
đánh dấu các điểm chia trên trục
Bật/tắt các đường lưới trên đồ thị

3.5. Các thuộc tính của văn bản đồ hoạ
Để quy định vị trí, cách căn chỉnh, kích
cỡ và kiểu font chữ của văn bản đồ hoạ đưa ra
bởi các lệnh xlabel, ylabel, zlabel, text, title...,
chúng ta có thể gán thuộc tính cho các dịng
văn bản đó ở dạng:
<câu lệnh>(...., 'Property Name',value>...).

Cú pháp:
grid on: Vẽ ra các đường lưới
grid off: Không vẽ các đường lưới
grid: Chuyển chế độ bật hoặc tắt

ở đây:
- <câu lệnh> là các câu lệnh viết chữ của
Matlab (xlabel, text, title...)
- 'Property Name' là tên thuộc tính (cần đặt

3.3.2. Các chú thích trên trục toạ độ

bên trong dấu ' ')

- là giá trị của thuộc tính có

Các hàm để viết chú thích trên trục toạ độ
xlabel, ylabel, zlabel
Cú pháp:
xlabel('string')
xlabel(...,'PropertyName',PropertyValue,...)
Giải thích: Mỗi trục của đồ thị đều có thể có

thể là chuỗi hoặc số nguyên, số thực...
3.5.1. Các thuộc tính của văn bản

nhãn riêng được tạo bằng các lệnh xlabel,
ylabel, zlabel.
- xlabel('string'): Tên của trục x là chuỗi ký tự
trong 'string'
- 'PropertyName': Tên của thuộc tính
- PropertyValue: Giá trị của thuộc tính
Tên và giá trị của thuộc tính sẽ được giới thiệu
ở phần sau.(3.5)
Tương tự như vậy với các hàm ylabel và
zlabel.

3.5.2. Các ký tự đặc biệt

3.4. Các chú thích khác trên đồ thị
Hàm để viết chú thích tại điểm bất kỳ text

22


Downloaded by EBOOKBKMT VMTC ()


lOMoARcPSD|2935381

3.5.4. Các tuỳ chọn của lệnh plot

Trong các chuỗi của đối số của các
hàm viết chữ trong chế độ đồ hoạ ta có thể

Trong lệnh plot ta có thể đưa vào các tuỳ chọn

đưa vào các ký tự điều khiển để xuất ra các

ở dạng:

chữ cái hy lạp, ký hiệu toán học, và kiểu font.

plot(...,'PropertyName',PropertyValue,...)

Các mã điều khiển được đặt sau dấu '\'

Trong đó 'PropertyName' là tên các thuộc tính,

Chúng ta có thể điều khiển trực tiếp
kiểu

font

chữ


bằng

các



tự

PropertyValue là giá trị của thuộc tính mà ta

điều

muốn gán:

khiển:\fontname

Dưới đây là bảng liệt kê các thuộc tính của đồ

Trong trường hợp này tên font chữ sẽ

thị:

phải đặt trong dấu {}. kế tiếp phần điều khiển

Tên thuộc
tính
'LineWidt
h'


font chữ, chúng ta có thể thêm các mã điều
khiển:
\bf - kiểu chữ đậm
\it - kiểu chữ nghiêng
\sl - oblique font
\rm - kiểu chữ bình thường

ý nghĩa

kiểu giá trị

điều khiển bề dầy
của nét vẽ đồ thị

số nguyên

'MarkerE
dgeColor'

Điều khiển màu
của nét vẽ biểu
tượng đánh dấu
điểm

các ký tự
chỉ màu

dụ:'g','y'...

'MarkerSi

ze'

Kích thước của
biểu tượng đánh
dấu điểm

số nguyên

'MarkerFa
ceColor'

Điều khiển màu
của biểu tượng
đánh dấu điểm

các ký tự
chỉ màu

dụ:'g','y'...

\fontsize{fontsize} - Định nghĩa cỡ chữ.
Các chỉ số trên và dưới được định nghĩa bằng
các ký tự điều khiển "_" và "^"
3.5.3. Một số ví dụ
Ví dụ 1: Vẽ đồ thị của hàm số y=sin(x).
t = -pi:pi/100:pi;
y = sin(t);
plot(t,y)

3.6. Một số lệnh viết chữ khác


axis([-pi pi -1 1])

3.6.1 Lệnh gtext

xlabel('-\pi \leq \itt \leq \pi')

Cú pháp:

ylabel('sin(t)')

gtext('string')

title('Graph of the sine function')

Mô tả

text(1,-1/3,'\it{Note the odd symmetry.}')

gtext

Đưa ra đồ thị như hình vẽ:

sẽ hiển thị chuỗi văn bản tại vị trí chỉ định bằng
chuột trên đồ thị
3.6.2: Lệnh ginput
Nhập dữ liệu của các điểm bằng chuột
Cú pháp
[x,y] = ginput(n)
[x,y] = ginput

Giải thích:
[x,y] = ginput(n) Cho phép bạn chọn n điểm
bằng chuột và trả kết quả là toạ độ x và y của
các điểm chọn cho các véc tơ x và y. Có thể
kết thúc việc chọn điểm ngay cả khi chưa nhập
đủ n điểm bằng cách ấn Enter

23

Downloaded by EBOOKBKMT VMTC ()


×