SlideShare a Scribd company logo
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoAR cPSD|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
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoAR cPSD|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
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
LÊ MINH THÀNH
0
lOMoAR cPSD|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ể hoà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)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
MAI LÊ THÀNH NHÂN
1
lOMoAR cPSD|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………………………………
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
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 toá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 (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoAR cPSD|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 toá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ố……………………………………………………………………………………
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
3
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoAR cPSD|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…………………………………………………………………………
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
4
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoAR cPSD|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 quá 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 quá 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 toá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 ………………………………
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
5
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoAR cPSD|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………………………………………………………………………………………………
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
6
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoAR cPSD|2935381
PHẦN 1: SƠ LƯỢC
VỀ MATLAB
I. Phần mềm Matlab
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ý toá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 chuyên gia toá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ể.
- Đị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.
- Đối với ngôn ngữ lập trình thông thường để
giải bài toán cơ học người ta phải thực hiện
qua các bước sau:
+Xây dựng mô hình cơ học → Xây dựng mô
hình toán học → áp dụng phương pháp toán
+Xây dựng thuật toán → Lập trình
- Trong Matlab ta không cần quan tâm nhiều
đến việc sử dụng phương pháp toán
II. Phạm vi ứng dụng
Matlab đóng vai trò như một công cụ tính
toán mạnh cho phép nhanh chóng tính ra trị số
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.
Malab cung cấp các công cụ xử lý các mảng
dữ liệu: véc tơ và ma trận, cho phép tính toán
ra kết quả của các biểu thức với dữ liệu đầu
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.
+ Các phép nội suy để xử lý dữ liệu trong
bảng.
+ Thuật giải bài toán tối ưu.
+ Phép tích phân vi phân.
+ Công cụ đồ hoạ .
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.
Ngoài ra còn có các module ứng dụng riêng
phục vụ cho nghiên cứu sâu như:
+ 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
+ Simulink cho phép mô phỏng các cơ cấu
máy
+ Stateflow: để nghiên cứu các dòng chảy
khí hay chất lỏng
+ Fuzzy logic: nghiên cứu lôgic mờ
+ …v.v
III. Cài đặt phần mềm Matlab
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
7
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
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 3: Nhập Enter File Installation Key
09806-07443-53955-64350-21751-41297
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 quá trình cài đặt hoà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>binwin64matlab_st
artup_pluginslmgrimpl thay thế file cũ để hoàn
tất kích hoạt.
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
8
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoAR cPSD|2935381
PHẦN 2:
GIỚI THIỆU VỀ MATLAB
VÀ PHẠM VI ỨNG DỤNG
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
9
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoAR cPSD|2935381
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
Để 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
Menu Toolbar
( Menu (Thanh Công Cụ)
Bar
lệnh)
Cửa sổ
mục
chứ a thư
hiện
thời
Command
Cửa sổ l ệnh)
Window
Cửa sổ
lư u trữ
các
lệnh đã
thực
hiện
( Hình 1: Giao diện Matlap)
✻ 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:
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, ngoài ra có một số
lệnh thực hiện riêng của Matlab.
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...).
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
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
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ó,...)
✻ Cửa sổ 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 toá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 luôn 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
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.
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 đó.
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 toà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 toàn bộ lưu trữ
các biến có trong bộ nhớ hiện thời của máy tính.
Gõ help <tên lệnh>, trên cửa sổ sẽ hiện cho
cách thức sử dụng lệnh đó.
1.2 Cách thức sử dụng phần mềm Matlab
a. Tính toá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.
Đư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 toán ta chỉ
cần gọi tệp này vào Matlab.
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
b. Lập trình ứng dụ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.
Để 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.
Để 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.
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 toán biểu thức số:
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 phép tính: Cộng +, Trừ -, Nhân *, Chia /,
Luỹ thừa ^ và dấu ngoặc ưu tiên phép tinh.
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...
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
Các hằng số đã định nghĩa: realmax,
eps,realmin, pi, inf
Khi viết biểu thức, kết quả tính toán sẽ được
lưu trữ vào trong biến có tên mặc định là ans.
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:
<tên biến> = <biểu thức>
hoặc
<tên biến> = <biểu thức>:
Trong đó:
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.
ở 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 tra giá trị hiện thời của biến ta chỉ cần
gõ tên biến.
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
FileShow Work Space
Để xoá 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á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
Phím xoá lùi, phím del, end, pageup,
pagedown..
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,...
d. Quy định việc hiển thị kết quả số ra màn
hình
Dùng lệnh format:
Các chế độ chính sau đây:
FORMAT Chế độ mặc định có ý nghĩa như
FORMAT SHORT
FORMAT SHORT Ghi chế độ thập phân với 5
chữ số sau dấu phẩy
FORMAT LONG Ghi chế độ thập phân với 15
chữ số sau dấu phẩy
FORMAT SHORT E Chế độ ghi số e với 5 chữ
số thập phân.
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
11
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
FORMAT LONG E Chế độ ghi số e với 15 chữ
số thập phân..
FORMAT + Sử dụng dấu +, - ghi trước số
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
Trong Matlab, ta thường dùng một số loại tệp
chính:
a. Tệp *.m (m. file):
Tệp này có nhiều chức năng:
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
Là chương trình ứng dụng dùng ngôn ngữ lập
trình của Matlab
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.
c. Một số dạng tệp khác:
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...)
2.2. Các lệnh xử lý tệp .mat
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
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
ghi các biến trong môi trường làm việc của
Matlab
b. Lệnh Load hoặc FileLoad Work Space
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
FileLoad 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.
2.3. Đường dẫn
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.
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".
Để 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 FileSet Path
a. Lệnh path:
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
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
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
d. Sử dụng menu lệnh: FileSet Path
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
12
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
Lệnh FileSet 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.
*Để thêm vào đường dẫn thường trực ta
thực hiện các thao tác sau:
Nháy chuột vào Path/ Add to Path,
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 FileSave Path
Vào Menu FileExit 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:
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 PathRemove From path
Vào Menu FileExit Browser để thoát khỏi hộp
thoại Với các phiên bản Matlab đời cao (từ 6.5
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 thoát khỏi Matlab, đường dẫn cũng tự
động được xóa khỏi bộ nhớ)
2.4. Các lệnh xử lý m. file
Để 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.
Để 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ụ
Để 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
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
13
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoAR cPSD|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:
- Số: là ma trận có kích thước 1x1 (1 hàng, 1
cột)
- Véctơ: là ma trận có số hàng, hoặc số cột
bằng 1
+ 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
- Ma trận số (mảng số): là ma trận có kích
thước mxn (m hàng, n cột) trong đó các phần
tử của ma trận đều là dữ liệu dạng số.
- 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ự.
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
Các nguyên tắc chung
Các phần tử của mảng được bao trong dấu
ngoặc vuông: [ ]
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"
Ví dụ:
Nếu ta gõ: C=[3.5 4.3 5.0] , ta sẽ nhận được
véc tơ hàng có ba phần tử là 3.5, 4.3 và 5.0
và trên màn hình của Matlab sẽ hiện ra: C =
3.5000 4.3000 5.0000
Nếu ta nhập vào: V=[3.5; 4.3; 5.0], hoặc
V=[3.5000
4.3000
5.0000]
Ta sẽ nhận được véc tơ cột có ba phần tử là
3.5, 4.3 và 5.0 và trên màn hình của Matlab sẽ
hiện ra:
V =
3.5000
4.3000
5.0000
Câu lệnh:
M=[134;537;214]
Sẽ cho kết quả ma trận 3 hàng, 3 cột
M =
1 3 4
5 3 7
2 1 4
Chú ý: Các phần tử trong mỗi hàng khi
nhập vào phải như nhau
1.2 Dùng toán tử " : "
Cú pháp:
<Tên biến>=<Begin>: <Step>: <Limit>
Sẽ tạo ra véc tơ hàng có phần tử đầu tiên là
giá trị <Begin>, gia số giữa các phần tử là
<Step>, giá trị phần tử cuối cùng không
vượt quá <Limit>
Chú ý: Nếu bỏ qua trị số của <Step>, máy sẽ
nhận gia số =1
Ví dụ:
Nếu nhập vào sau dấu nhắc dòng lệnh
Y=1:2:10
Ta nhận được véc tơ hàng:
Y =
13579
Nếu nhập vào sau dấu nhắc dòng lệnh: Y=1:9
Ta nhận được véc tơ:
Y =
123456789
1.3 Dùng hàm linspace và logspace:
Cú pháp:
<tên biến>=linspace(<MinVal>,
<MaxVal>, <Num>)
Hàm sẽ tạo ra véc tơ hàng có số phần
tử bằng <Num>, gia số giữa các phần tử như
nhau và bằng (MaxVal-MinVal)/(Num-1), phần
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
14
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
tử đầu tiên có giá trị bằng MinVal, phần tử
cuối cùng có giá trị bằng MaxVal
Ví dụ:
Dùng hàm: linspace(1,11,6)
Ta nhận được véc tơ
ans =
1357911
Ứng dụng: Hàm linspace rất tiện dụng trong
việc xác định véc tơ các giá trị trên trục hoành
khi vẽ đồ thị
Hàm logspace
Có cú pháp tương tự như hàm linspace, tuy
nhiên các phần tử biến thiên theo quy luật
hàm số mũ với gia số của các số mũ tăng đều
và bằng:
(MaxVal-MinVal)/(Num-1).
Ví dụ: logspace(1,6,6)
Sẽ cho kết quả:
ans =
10 100 1000 10000 100000 1000000
1.4 Sử dụng các mảng chuẩn
1.4.1 Ma trận có các phần tử bằng
0 Ứng dụng:
Ma trận có các phần tử bằng 0 thường dùng
trong các trường hợp sau:
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 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 =
0 0 0
0 0 0
1.4.2. Ma trận có các phần tử bằng
1 Ứng dụng:
Ma trận có các phần tử bằng 1 thường dùng
trong các trường hợp sau:
Dùng làm ma trận mồi trong phép tính tích
các phần tử tương ứng của nhiều ma trận
(dùng vòng lặp)
Dùng để tạo ma trận có các phần tử bằng
nhau (dùng khi thực hiện phép tính cộng hoặc
trừ từng phần tử của ma trận với cùng một số).
Sử dụng hàm ones:
Cú pháp: <Tên biến>=ones (<RowNum>,
<ColumnNum>)
Tạo ra ma trận với các phần tử 1, có số hàng
là <RowNum>, số cột là <ColumnNum>.
Ví dụ: M=ones(3,4)
Sẽ cho kết quả
M =
1111
1111
1111
M=3.5*ones(3,2)
Sẽ cho kết quả
M = 3.5 3.5
3.5 3.5
3.5 3.5
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
I=eye(4)
Sẽ tạo ra ma trận
I = 1000
0100
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
15
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
0010
0001
1.4.4. Tạo các mảng đường chéo ứng dụng
Mảng đường chéo thường gặp ở các ma trận
độ cứng và ma trận khối lượng trong tính toán
bền
Dùng hàm diag
Cú pháp:
<tên biến>=diag(v)
<tên biến>=diag(v,n)
ở đây:
V là một véc tơ hàng, hoặc cột. hoặc có thể là
ma trận
n là số nguyên chỉ đường chéo nào của ma
trận sẽ đặt các phần tử của véc tơ V
Nếu V là một véc tơ, hàm sẽ cho kết quả là
ma trận vuông có các phần tử trên đường chéo
chỉ định là các phần tử của véc tơ V
Nếu V là một ma trận, sẽ trả kết quả là véc tơ
cột của các phần tử nằm trên đường chéo của
ma trận V
Nếu không chỉ ra n, các phần tử của V sẽ nằm
trên đường chéo chính
Ví dụ:
V=[1 3 5 3]; M=diag(V)
Sẽ cho kết quả
M =
1000
0300
0050
0003
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
00500
00030
V=[3 4 6;5 6 7;8 9 6]; M=diag(V)
Cho kết quả:
M = 3
6
6
1.4.5. Mảng các số ngẫu nhiên
ứng dụng:
Mảng các số ngẫu nhiên dùng nhiều
trong đồ hoạ hoặc tạo các nhiễu trong mô
phỏng và sử lý số liêụ thực nghiệm
Sử dụng lệnh rand:
<tên biến>= rand(số hàng, số cột)
Tạo ra mảng các số ngẫu nhiên với số
hàng, cột chỉ định
1.5 Mảng tạo từ tệp
Nếu ta ghi các mảng trong một tệp
dạng m.file (theo đúng quy cách tạo mảng
trong Matlab như trình bày ở trên), ta hoàn
toàn có thể gọi mảng vào môi trường làm việc
của Matlab bằng cách nhập tên của m.file sau
dấu nhắc của Matlab và ấn Enter.
Điều này rất thuận tiện khi ta dữ liệu
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
M1,2 M2,2
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
16
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
Ví dụ:
M1=M(:,1)
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
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
Ví dụ:
M1=M([2 4],[3:end])
Sẽ tạo ra ma trận M1 từ hàng 2 và 4 của ma
trận M, mỗi hàng lấy ra từ phần tử thứ 3 đến
phần tử cuối cùng
2.2 Các ứng dụng của việc truy cập các
phần tử của mảng
2.2.1. Lấy các phần tử của mảng ra để tính
toán
Ví dụ:
S=V(2)^2+V(5)^2
Sẽ tính tổng bình phương các giá trị của phần
tử thứ 2 và thứ 5 của véc tơ V
S=M(1,2)-M(2,3)
Sẽ tìm ra hiệu của hai phần tử ở hàng 1 cột 2
và hàng 2 cột 3 của ma trận M
2.2.2. Thay đổi giá trị của từng phần tử của
mảng
Ví dụ:
Để tạo ra ma trận M =[
1 0 0
],
00 3
0
0
0
ta thực hiện theo các bước sau:
- 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ở
Ví dụ:
Để lấy ra hàng đầu tiên của ma trận M ta dùng
lệnh:
V=M(1,:)
Để tạo ra véc tơ mới bằng cách bỏ đi phần tử
đầu tiên của véc tơ V, ta dùng lệnh:
V1=V(2:end);
2.2.4. Loại bỏ bớt các phần tử của mảng:
Để 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:
"[ ]"
Ví dụ: nếu ta có ma trận M=
2 3 4
5 3 7
3 2 8
Sau khi dùng phép gán: M(:,1)=[ ]
Ta nhận được:
M =
3 4
3 7
2 8
2.2.5. Hợp mảng mới từ các mảng thành
phần (nối mảng)
Để tạo mảng từ các mảng thành phần ta dùng
dấu "[ ]" bên trong cần chỉ rõ các phần tử đưa
vào mảng, nếu các phần tử nằm trên 1 hàng,
chúng cách nhau bằn dấu cách (bước trống),
để xuống dòng ta dùng dấu ;
Ví dụ:
Nếu ta có 2 véc tơ:
V1=[3 5 7 9], V2=[4 6 8 2 7 3]
Khi dùng lệnh:
V=[V1(2:end) V2([1 3 4])]
Ta sẽ nhận được:
V =
579482
III. Các phép tính thực hiện trên mảng
3.1 Các phép toán thông thường
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
mảng mới sẽ bằng tổng từng phần tử tương
ứng của các mảng thành phần
Điều kiện:
Các mảng M1, M2,... phải có cùng kích thước.
3.1.2: Phép
trừ Cú pháp:
M=M1 - M2 - M3-...
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
17
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
ý
+ Cộng (không có toán tử.+)
- Trừ (không có toá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ử M(i,j)=M1(i,j)-M2(i,j)-M3(i,j)-..
Điều kiện:
Các mảng M1, M2,... phải có cùng kích thước.
3.1.3. Phép nhân
Cú pháp:
M=A*B
ý 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:
Điều kiện:
Số cột của ma trận A phải bằng số hàng của
ma trận B.
3.1.4 Phép luỹ thừa
Cú pháp:
M=A^n,
trong đó n là số nguyên dương
Có kết quả như là phép nhân n ma trận A với
nhau:
Điều kiện: Các ma trận A phải là ma trận
vuông 3.1.5 Phép chia hai ma trận Cú pháp:
M=A/B
ý nghĩa: Phép chia ma trận hoàn toàn giống
như phép nhân với ma trận nghịch đảo:
M=A/B M=A*B-1
Điều kiện:
Các ma trận A, B phải là các ma trận vuông
cùng kích thước
3.2. Sử dụng các toán tử với dấu "."
3.2.1. Ý nghĩa:
Các toán tử có dấu "." (xem bảng dưới ) sẽ cho
phép thao thác trên từng phần tử của mảng
3.2.2 Các ví dụ:
VD1: Xác định véc tơ S, với các phần tử được
lOMoAR cPSD|2935381
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ử của
nó được xác định bằng biểu thức: V(i)=2*Y(i)-b,
với Y =[3.5 6.2 7.0 5.4 6.2], b=1.5
ở đây ta sử dụng biểu thức véc tơ:
S=2*Y-b*ones(1,5)
VD3: giải hệ phương trình:
{4 X 1+7 X3=5
3 X1+5 X2−4 X3= 12
2 X 1+5 X 2+ X3=4
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:
X=eye(3,3)/M*Y
X =
3.0000
-0.2000
1.0000
3.3. Các hàm dùng trên mảng
3.3.1 Các hàm dùng chung:
Tất cả các hàm tính toán trên dữ liệu số
đều có thể thực hiện trên dữ liệu mảng, và quả
là mảng có cùng kích cỡ Ví dụ:
Để vẽ đồ thị của hàm số:
Y =
sin2
( X ) +2 cos( 2 X )
; X=0
1+cos2
( X )
đến Pi
Ta sử dụng các lệnh sau:
X=linspace(0,pi,20);
Y=(sin(X).^2+2*cos(2*X))./
(ones(1,20)+cos(X).^2);
plot(X,Y)
3.2 Các hàm dùng cho việc xử lý dữ
liệu a. Hàm size
cú pháp:
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
18
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
S=size(A): đưa ra véc tơ hàng chỉ số lượng
hàng và cột của ma trận
[r,c]=size(A) gán số hàng cho r, số cột cho c
4 0 7
Ví dụ: Nếu ta có ma trận M = 3 5 − 4
2 5 1
Nếu gọi lệnh: S=size(M), ta nhận được:
S = 3 3
b. Hàm length
cú pháp:
S=length(V): đưa ra kết quả là 1 giá trị số
bằng tổng số phần tử có trong vectơ V
c. Hàm min, max
Cú pháp: min(A) max(A)
Nếu A là một véc tơ, hàm sẽ trả kết quả là giá
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à
một véc tơ hàng với các phần tử là min (max)
của các phần tử trong mỗi cột trong ma trận A
d. Hàm sum
Cú pháp: sum(A)
Nếu A là một véc tơ, hàm sẽ trả kết quả là
tổng các phần tử của véc tơ
Nếu A là một ma trận, hàm sẽ trả kết quả là
một véc tơ hàng với các phần tử là tổng các
phần tử của mỗi cột trong ma trận A
e. Hàm cumsum
Cú pháp:
B = cumsum(A)
B = cumsum(A,dim)
Mô tả:
Nếu A là một véc tơ, B = cumsum(A) sẽ đưa
ra kết quả là véc tơ B có các phần tử là tổng
tích luỹ của các phần tử của véc tơ A: được
xác định bằng công thức:
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
phần tử của nó tương ứng là tổng tích luỹ của
các phần tử trên từng cột của ma trận A.
B = cumsum(A,dim) Sẽ đưa ra kết quả là ma
trận B có cùng kích thước với A, các phần tử
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ỳ
thuộc vào trị số của <dim>. Ví dụ cumsum(A,1)
sẽ tính dọc theo các cột, cumsum(A,2) sẽ tính
dọc theo các hàng.
Thí dụ
cumsum(1:5) = [1 3 6 10 15]
A=[123;456];
cumsum(A)
1 2 3
5 7 9
cumsum(A,2)
1 3 6
4915
f. Hàm diff
Tính toán độ lệch giữa các phần tử trong mảng
Cú pháp
Y = diff(X)
Y = diff(X,n)
Mô tả:
Y = diff(X) tính ra độ lệch giữa các phần tử kề
nhau của véc tơ X.
*Nếu X là véc tơ kết quả đưa ra là véc tơ ít hơn
X 1 phần tử:
[X(2)-X(1) X(3)-X(2)... X(n)-X(n-1)]
*Nếu X là ma trận, hàm diff(X) đưa ra kết quả
là ma trận cột các độ lệch:
[X(2:m,:)-X(1:m-1,:)]
Y = diff(X,n) Đưa ra véc tơ độ sai lệch
bậc n:
như vậy diff(X,2) cho ra cùng kết quả với
diff(diff(X)).
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
19
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoAR cPSD|2935381
CHƯƠNG 3. ĐỒ HỌA TRONG MATLAB
3.1. Những vấn đề chung
Một đồ thị hoàn chỉnh bao gồm những thành
phần sau:
- Đường cong biểu diễn mối quan hệ các giá trị
- Tên của đồ thị
- Các trục toạ độ
- Các chú thích khác trên đồ thị
Sau đây chúng ta xem xét từng thành phần
trong môi trường làm việc của Matlab.
3.2. Đường cong biểu diễn mỗi quan hệ của
các giá trị
Thông thường chúng ta đã biết các loại đồ thị 2
chiều và 3chiều. Trong bài này chúng ta chỉ
nghiên cứu đến loại đồ thị phẳng (2chiều) còn
chỉ giới thiệu về đồ thị 3 chiều.
3.2.1. Đồ thị 2 chiều
a) Lệnh plot:
Cú pháp 1:
plot(Y)
plot(X,Y)
Giải thích:
- Nếu Y là một véc tơ, hàm plot(y) sẽ in ra đồ thị
Y phụ thuộc vào chỉ số của nó trong véc tơ.
- Nếu X, Y là hai véc tơ cùng độ lớn hàm
plot(X,Y) sẽ in ra đồ thị hàm Y(X)
- Nếu đối số trong hàm bao gồm nhiều bộ X, Y,
Hàm sẽ đưa ra được nhiều đồ thị trên màn
hình và Matlab sẽ tự động hiển thị các đồ thị
với các màu khác nhau.
Ví dụ: để vẽ đồ thị hàm Sin với trị số hoành độ
từ 0 đến 2 Pi ta dùng các dòng lệnh sau:
X=0:Pi/100:2*Pi;
Y=Sin(X);
plot(X,Y)
Cú pháp 2: plot(X1,Y1,X2,Y2,X3,Y3)
Giải thích: Cú pháp 2 cho phép vẽ các đường
cong Y1(X1), Y2(X2), Y3(X3)... trên cùng 1 hệ
trục tọa độ. Yêu cầu: các cặp véc tơ (X1,Y1),
(X2,Y2), (X3,Y3)... phải có cùng kích thước.
Ví dụ: Vẽ nhiều đường cong trên cùng một
hệ trục
Nếu ta có: y1= sin(x); y2=sin(x-0.25); y3=sin(x-
0.5)
Để có thể so sánh đồ thị pha y1(x), y2(x), y3(x)
trên cùng một hệ trục ta cũng dùng lệnh plot
Hàm: plot(x, y,x,y2,x,y3) sẽ đưa ra bộ đồ thị
như hình vẽ
Để làm nổi bật hay để phân biệt các đường
cong cho tiện theo dõi hay trình bày, ta cũng có
thể chỉ định kiểu đường nét, màu sắc và kiểu
đánh dấu các điểm nút
Cú pháp 3: plot(x,y,'color_style_marker')
- Giải thích: trong lệnh trên, color_style_marker
là một bộ qui định màu sắc, kiểu đường và kiểu
đánh dấu các điểm nút. Chúng được phân cách
trong dấu nháy đơn.
- Một số chữ cái qui định kiểu màu: 'c', 'm', 'y',
'r', 'g', 'b', 'w' và 'k'. Chúng tương ứng với các
màu xanh da trời, tím đỏ, vàng, đỏ, xanh lá
cây, xanh nước biển, trắng và đen.
- Các ký tự chỉ kiểu đường bao gồm '-' đối với
nét liền, '- -' đối với đường gạnh, ':' đường
chấm, '-.' đường chấm gạch, và 'none' khi
không vẽ đường.
- Các ký tự để đánh dấu điểm bao gồm: '+', 'o',
'*', và 'x'.
Ví dụ: câu lệnh plot(x,y,'y:+') vẽ ra đồ thị là
đường chấm chấm màu vàng có dấu + đanh
dấu các điểm nút.
Một số chú ý:
- Lệnh plot sẽ tự động mở ra một cửa sổ đồ
hoạ mới. Nếu cửa sổ này đã tồn tại lệnh plot
mặc định sẽ sử dụng cửa sổ này. Để mở một
cửa sổ mới và đưa nó thành hiện thời ta dùng
lệnh figure.
- Để đưa một cửa sổ đã mở thành hiện thời ta
dùng câu lệnh figure(n), trong đó n là số trên
thanh tiêu đề của cửa sổ.
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
20
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
- Vẽ thêm đường cong mới vào một đồ thị đã
có: Lệnh hold cho phép bạn thêm đường cong
vào đồ thị đã có. Nếu bạn đặt chế độ hold on
Matlab sẽ không xoá đồ thị đã có và vẽ thêm
đường cong mới khi gọi lệnh vẽ.
Ví dụ: Để vẽ 3 đường cong y1, y2, y3 như ví
dụ ở trên ta cũng có thể viết bằng 3 lệnh plot
riêng biệt, chỉ cần thêm lệnh hold on:
hold on
plot(x,y1)
plot(x,y2)
plot(x,y3)
b) Lệnh subplot:
Hàm subplot sẽ chia cửa sổ đồ hoạ ra
nhiều phần để hiển thị nhiều đồ thị trên cùng
một cửa sổ
Cú pháp: subplot(m,n,p)
Trong đó m,n,p là các số nguyên, sẽ
chia cửa sổ đồ hoạ ra m hàng và n cột và đưa
phần cửa sổ thứ p thành hiện thời. Chỉ số các
cửa sổ con được xác định từ phải qua trái và
từ trên xuống dưới.
Ví dụ: Để vẽ 3 đường cong y1, y2, y3 ở ví dụ
trên nhưng trên 3 đồ thị trong cùng một cửa sổ
đồ hoạ, ta thực hiện
lệnh subplot
subplot(1,3,1)
plot(x,y1)
subplot(1,3,2)
plot(x,y2)
subplot(1,3,3)
plot(x,y3)
3.2.2. Đồ thị 3 chiều (dạng lưới và bề
mặt) 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
Để hiển thị hàm 2 biến z=f(x,y), hãy tạo
các ma trận x và y chứa đựng các hàng và cột
lặp.
Sau đó sử dụng các ma trận này để tính ra đồ
thị của hàm
* Hàm meshgrid chuyển phạm vi được
định nghĩa bằng một véc tơ hoặc hai véc tơ x, y
thành các ma trận X, Y dùng để tính ra giá trị
của hàm. Các hàng của X là các bản sao của
véc tơ x, các cột của Y là copy của véc tơ y.
Cú pháp:
[X,Y] = meshgrid(x,y)
[X,Y] = meshgrid(x)
[X,Y,Z] =
meshgrid(x,y,z) Thí dụ:
Hàm
[X,Y] = meshgrid(1:3,10:14)
Tạo hai mảng x và y sau X
=
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
Y =
10 10 10
11 11 11
12 12 12
13 13 13
14 14 14
* Hàm Mesh
Cú pháp
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ị hoà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')
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
21
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
title(…,'PropertyName',PropertyValue,…)
Giải thích:
- 'string': Là tên của đồ thị mà chúng ta cần
(Nhập từ bàn phím)
- '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)
3.3. Các trục toạ độ
3.3.1. Điều khiển các trục toạ độ
Sử dụng hàm axis:
Cú pháp;
axis square: Tạo cho toà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ị
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
3.3.2. Các chú thích trên trục toạ độ
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ó
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.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
Cú pháp: text(x,y,'string')
text(x,y,z,'string')
text(...,'PropertyName',PropertyValu
e,...)
Giải thích: Trong lệnh text ở trên: x,y, z là tọa
độ vị trí ghi dòng chú thích
- string: Tên của dòng chú thích 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)
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',<property
value>...).
ở đâ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
bên trong dấu ' ')
- <property value> là giá trị của thuộc tính 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
3.5.2. Các ký tự đặc biệt
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
22
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
Trong các chuỗi của đối số của các
hàm viết chữ trong chế độ đồ hoạ ta có thể
đưa vào các ký tự điều khiển để xuất ra các
chữ cái hy lạp, ký hiệu toán học, và kiểu font.
Các mã điều khiển được đặt sau dấu ''
Chúng ta có thể điều khiển trực tiếp
kiểu font chữ bằng các ký tự điều
khiển:fontname
3.5.4. Các tuỳ chọn của lệnh plot
Trong lệnh plot ta có thể đưa vào các tuỳ chọn
ở dạng:
plot(...,'PropertyName',PropertyValue,...)
Trong đó 'PropertyName' là tên các thuộc tính,
PropertyValue là giá trị của thuộc tính mà ta
muốn gán:
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ẽ
phải đặt trong dấu {}. kế tiếp phần điều khiển
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
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);
thị:
Tên thuộc ý nghĩa
tính
'LineWidt điều khiển bề dầy
h' của nét vẽ đồ thị
Điều khiển màu
'MarkerE của nét vẽ biểu
dgeColor' tượng đánh dấu
điểm
'MarkerSi
Kích thước của
biểu tượng đánh
ze'
dấu điểm
'MarkerFa Điều khiển màu
ceColor' của biểu tượng
đánh dấu điểm
kiểu giá trị
số nguyên
các ký tự
chỉ màu
ví
dụ:'g','y'...
số nguyên
các ký tự
chỉ màu
ví
dụ:'g','y'...
plot(t,y)
axis([-pi pi -1 1])
xlabel('-pi leq itt leq pi')
ylabel('sin(t)')
title('Graph of the sine function')
text(1,-1/3,'it{Note the odd symmetry.}')
Đưa ra đồ thị như hình vẽ:
3.6. Một số lệnh viết chữ khác
3.6.1 Lệnh gtext
Cú pháp:
gtext('string')
Mô tả
gtext
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
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
23
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
[x,y] = ginput Cho phép chọn số điểm không
hạn chế.
3.7. In ấn đồ thị
Tuỳ chọn Print của menu FILE và lệnh
print đều dùng để in đồ thị. Tuỳ chọn Print sẽ
gọi ra hộp thoại cho phép người dùng chọn các
tuỳ chọn về in ấn giống như ở các phần mềm
khác, còn lệnh print cung cấp chúng ta các khả
năng mềm dẻo hơn và cho phép điều khiển
việc in đồ thị từ m. file. Kết quả có thể gửi trực
tiếp ra máy in hoặc được xếp xắp trong một tệp
xác định. Các định dạng đầu ra hết sức khác
nhau được cung cấp ở đây (kể cả PostScript)
Thí dụ: câu lệnh sau đây ghi hình ảnh của màn
hình đồ hoạ ra tệp Postscript cấp 2 có tên là
magicsquare.eps:
print -depsc2 magicsquare.eps
Một điều hết sức quan trọng là cần phải
biết trước khả năng của máy in trước khi dùng
lệnh print. Ví dụ như tệp Postscript cấp 2
thường là gọn hơn và tô bóng nhanh hơn khi in
so với tệp Postscript cấp 1. Tuy nhiên không
phải tất cả các máy in đều có khả năng làm
việc với tệp Postscript cấp 2
CHƯƠNG 4. LẬP TRÌNH ỨNG DỤNG TRONG MATLAB
I. Các loại dữ liệu dùng trong Matlab - Matlab sử dụng các chế độ ghi dữ liệu số
1. Dữ liệu số: thập phân thông thường.
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
24
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
- Có kiểu ghi dùng chữ cái e để xác định số mũ
cơ số 10. Ví dụ: 1.60210e-20 =1.60210*
1020
- Các số được lưu trữ trong bộ nhớ có giới hạn
là 16 chữ số sau dấu phẩy và giá trị giới hạn
nằm trong khoảng −10308
đến 10308
.
Một số hằng số thường dùng trong
Matlab pi = 3.14169265
i,j = các đơn vị của số ảo
esp = độ chính xác tương đối của số thực,
2−52
Inf = Vô cùng lớn
NaN = Không phải là số
2. Các phép tính trên số phức
2.1 Nhập dữ liệu
Số phức được nhập ở dạng Phần thực +
phần ảo i
Ví dụ: x= 2+3i
2.2 các phép tính thực hiện trên số phức -
Phép cộng: Sử dụng toán tử +,
- Phép trừ: Sử dụng toán tử -,
- Phép nhân: Sử dụng toán tử *,
- Phép chia: Sử dụng toán tử
/ Ví dụ:
Nếu X= 3 +4i, Y=5+6i, ta sẽ có:
X+Y
ans =8.0000
+10.0000i X*Y
ans =-9.0000 +38.0000i
X-Y
ans =-2.0000 -
2.0000i X/Y
ans =0.6393 + 0.0328i
2.3 Các hàm xử lý số phức
a. Hàm real
Lấy ra giá trị phần thực của số phức
Ví dụ: Nếu ta có X=3 +4i, real(X) sẽ cho giá trị
3
b. Hàm imag
Lấy ra phần ảo của số phức Ví dụ: với X lấy
giá trị như trên, imag(X) sẽ cho giá trị 4
c. Hàm conj
Tìm số phức liên hợp của số phức đã cho
Ví dụ: với X lấy giá trị như trên, conj(X) sẽ
cho giá trị 3-4i
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
* Phép gán: <tên biến>='chuỗi'
* Tham chiếu đến dữ liệu dạng chuỗi Chuỗi là
một véc tơ hàng có số phần tử bằng số chữ cái
trong chuỗi để tham chiếu đến từng chữ cái ta
chỉ cần gọi phần tử tương ứng của chuỗi
Các ví dụ: nếu gán x='String Mat'
Khi gọi x(1), ta nhận được ans = S
nếu gọi x(1:6), ta sẽ nhận được ans = String
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:
* Nhập trực tiếp: nhập theo nguyên tắc giống
mảng với các phần tử là số, tuy nhiên yêu cầu
các chuỗi có chiều dài như nhau, trong trường
hợp các chuỗi có chiều dài khác nhau, ta phải
thêm bước trống vào cuối chuỗi.
Ví dụ:
x=['first '
'second'
'third '] x
= first
second
third
* Dùng hàm: char
Cú pháp: char('chuỗi 1', 'chuỗi 2',....)
Chú ý: hàm char sẽ chèn cả các chuỗi rỗng vào
mảng
Ví dụ: x=char('first','second', '', 'third') sẽ cho kết
quả là véc tơ cột có 4 phần tử
x =
first
second
third
3.2.2 Tạo mảng hoặc véc tơ hàng các chuỗi
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
25
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
Dùng mảng khối:
-Mảng khối được nhập như mảng thông
thường, chỉ khác là mảng được bao bằng dấu {
}
Các phần tử của mảng khối sẽ là các chuỗi
ví dụ:
x={'first' 'second' 'third'}
x =
'first' 'second' 'third'
Nếu gọi: x(1), ta nhận được
ans =
'first'
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
a. Chuyển từ số sang chuỗi: Các hàm
int2str, num2str, mat2str
* Hàm int2str: chuyển số nguyên sang chuỗi.
Cú pháp: str = int2str(N)
Mô tả:
str = int2str(N) Chuyển số nguyên sang chuỗi
với định dạng của số nguyên. N có thể là một
số nguyên riêng lẻ hoặc mảng các số nguyên.
Các giá trị thực sẽ được làm tròn trước khi
chuyển đổi.
Thí dụ:
int2str(2+3) là chuỗi
'5'. int2str(3.5) =4
* Hàm num2str
Chuyển đổi từ số thực sang
chuỗi Cú pháp
str = num2str(A)
str = num2str(A,precision)
str = num2str(A,format)
Mô tả
Hàm num2str chuyển đổi các số thực sang
chuỗi. Hàm này được dùng nhiều khi cần đưa
vào đồ thị các nhãn hoặc tiêu đề bằng các giá
trị số thực.
str = num2str(a) chuyển đổi mảng A thành
chuỗi str với 4 chữ số sau dấu phảy và số mũ
nếu cần thiết.
str = num2str(a,precision) chuyển đổi mảng A
thành chuỗi str với độ chính xác được quy định
bằng 'precision'. đối số precision quy định số
chữ số sau dấu phảy, mặc định là 4.
str = num2str(A,format) chuyển đổi mảng A sử
dụng định dạng quy định bằng 'format'. (xem
lệnh fprint).
num2str(pi) là 3.142. num2str([1/3
3/6]) là 0.33333 0.5 num2str(3/7,5)
cho kết quả là: 0.42857
* Hàm mat2str
Cú pháp:
str = mat2str(A)
str = mat2str(A,n)
Mô tả
str = mat2str(A) Chuyển ma trận A thành chuỗi,
phù hợp với dữ liệu đầu vào của hàm eval, sử
dụng độ chính xác cao nhất.
str = mat2str(A,n) Chuyển đổi ma trận A thành
chuỗi với n chữ số sau dấu phảy.
Chú ý: Hàm mat2str chỉ được thực hiện trên
các giá trị số, véc tơ hoặc mảng chữ nhật.
Thí dụ:
Xét ma trận:
A =
1 2
3 4
Câu lệnh
b = mat2str(A)
cho kết quả: b
= [1 2 ;3 4 ]
b. Chuyển từ chuỗi sang số, thực hiện
các phép tính: hàm eval
Cú pháp:
eval('Chuỗi')
[a1,a2,a3,...] = eval('Chuỗi')
Mô tả:
eval('Chuỗi') thực hiện biểu thức được mô tả
trong 'chuỗi'. Bạn có thể tạo ra 'chuỗi' bằng
cách nối kết các chuỗi con và các biến trong
ngoặc vuông.
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
26
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
[a1,a2,a3,...] = eval('Chuỗi') thực thi biểu thức
trong 'chuỗi' và đưa ra các kết quả trong các
biến đầu ra chỉ định.
Thí dụ:
y=eval('5+6-7'), cho kết quả y =4
Nếu ta có x='5+6-sin(pi)', hàm y=eval(x) sẽ cho
kết quả: y =11
eval(['sin(pi/2)' '+' 'cos(pi)']), cho kết quả là 0
c. Hàm sprintf
Cú pháp:
s = sprintf(format,A,...)
Mô tả:
s = sprintf(format,A,...) Định dạng các dữ liệu
trong ma trận A, trên cơ sở của chuỗi quy định
mẫu định dạng 'format' và trả kết quả cho biến
dạng chuỗi s. Câu lệnh sprintf cũng có ý nghĩa
tương tự như fprint, điểm khác chỉ ở chỗ câu
lệnh fprint thường dùng để xuất dữ liệu ra tệp.
Chuỗi format quy định các ghi chú, căn
chỉnh, số chữ số, bề rộng của trường. Nó có
thể chứa các dữ liệu số, chữ và các ký tự điều
khiển theo cấu trúc sau:
Bảng dưới đây sẽ mô tả các ký tự không nhìn
thấy được sử dụng trong định dạng của lệnh
sprintf.
Các ký tự thoát
ký tự Mô tả
b Xoá lùi
f Kéo giấy
n Xuống dòng
t lùi vào một bước tab
 Backslash
'' dấu "
%% dấu %
Các quy định chuyển đổi
ký tự
điều Mô tả
khiển
%c Ký tự riêng lẻ
%d
chế độ ghi số thập phân dùng dấu chấm
động
%e ghi bằng số e (sử dụng e)
%E ghi bằng số e (sử dụng E)
%f Cho phép quy định số chữ số xuất ra
Chế độ ghi ngắn gọn %e, %f, Các chữ
%g số 0 phía sau không
được in ra
%G Giống %g, nhưng sử dụng E thay cho e
%s Ghi chuỗi ký tự
Các ký tự khác
Các ký tự khác có thể chèn vào mã quy định ở
vị trí giữa % và ký tự điều khiển.
Ký tự Mô tả Thí dụ
Dấu Left-justifies the converted
%-5.2d
(-) argument in its field.
Dấu Luôn in dấu (+ hoặc -) trước
%+5.2d
(+) số xuất ra.
Số Đưa vào các số 0 thay cho
%05.2d
(0) các khoảng trống.
Số
Quy định số lượng chữ số ít
nguy %6f
nhất được in ra.
ên
Số
với Số với dấu. xác định số
dấu lượng chữ số được in sang %6.2f
chấm phải dấu chấm phân cách.
động)
Thí dụ
Lệnh Kết quả
sprintf('%0.5g',
1.618
(1+sqrt(5))/2)
sprintf('%0.5g',1/eps) 4.5036e+15
sprintf('%15.5f',1/eps) 4503599627370496.00000
sprintf('%d',round(pi)) 3
sprintf('%s','hello') hello
sprintf('The array is
The array is 2x3
%dx%d.',2,3)
sprintf('n') Xuống dòng
d. Hàm sscanf
Đọc chuỗi theo định dạng quy định, hàm có
ý nghĩa như là hàm ngược của sprintf. Cú
pháp
A = sscanf(s,format)
A = sscanf(s,format,size)
Mô tả
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
A = sscanf(s,format) Đọc dữ liệu từ
chuỗi s, chuyển đổi nó phù hợp với định
dạng được quy
27
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
định trong format và trả ra kết quả cho ma trận
a.
A = sscanf(s,format,size) Đọc số phần tử quy
định trong size và chuyển đổi nó phù hợp với
định dạng quy định trong format. size có thể lấy
các giá trị sau:
n Đọc n phần tử và trả véc tơ
cột
inf
Đọc đến cuối tệp và trả kết
quả ra véc tơ cột.
[m,n]
Đọc đủ số phần tử để điền
vào ma trân m x n phần tử.
Nếu ma trận A là kết quả chỉ của việc sử dụng
các ma trận chuyển đổi, và size không ở dạng
[M,N], véc tơ hàng sẽ được trả. Thí dụ:
Các câu lệnh
s = '2.7183 3.1416';
A = sscanf(s,'%f')
Tạo ra véc tơ cột có hai phần tử chứa giá
trị của pi và e.
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
Cú pháp:
<tên biến>=input('lời nhắc')
<tên biến>=input('lời nhắc',
's') Mô tả:
<tên biến>=input('lời nhắc') Sẽ hiển thị lời nhắc
và chờ người dùng nhập dữ liệu, các dữ liệu
này sẽ được gán cho <tên biến>.
<tên biến>=Input('lời nhắc', 's') thường dùng
khi nhập chuỗi: nếu dùng cú pháp thứ nhất để
nhập chuỗi thì ta cần đặt chuỗi trong dấu ' ',
còn ở cú pháp 2 ta có thể nhập trực tiếp nội
dung của chuỗi.
Chú ý:
Nếu ta ấn enter khi xuất hiện lời nhắc,
Matlab sẽ trả kết quả là ma trận rỗng.
1.2. Nhập từ hộp thoại: Lệnh inputdlg
Cú pháp:
answer = inputdlg(prompt)
answer = inputdlg(prompt,title)
answer = inputdlg(prompt,title,lineNo)
answer = inputdlg(prompt,title,lineNo,defAns)
Mô tả:
Prompt: là các dòng nhắc trên các trường dữ
liệu, được nhập ở dạng mảng khối các chuỗi
lời nhắc
Title: là tiêu đề của hộp thoại, nhập vào ở
dạng chuỗi
LineNo: là số nguyên quy định số dòng cho mỗi
trường nhập dữ liệu
DefAns: là một mảng khối các chuỗi gán giá
trị mặc định
Các dữ liệu nhập vào được gán cho
answer dưới dạng mảng khối các chuỗi Ví
dụ
prompt = {'Nhập số hàng ma trận:','Nhập số
cột ma trận'};
title = 'Hộp thoại nhập ma
trận'; lines= 1;
def = {'20','20'};
answer = inputdlg(prompt,title,lines,def);
Sẽ đưa ra hộp thoại:
Nếu nhập ở hai hộp các giá trị 40 và 30, sau
đó nháy OK, ta nhận được: answer={'20' '30'}
Chú ý:
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
28
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
Kết quả nhập vào được gán cho biến ở dạng
mảng khối các chuỗi, chính vì vậy để có thể sử
dụng được các giá trị này ta phải dùng hàm
char để chuyển đổi về mảng thông thường, sau
đó dùng các hàm sscanf hoặc eval để chuyển
dữ liệu về dạng số.
1.3. Nhập dữ liệu từ tệp: Lệnh fread
Cú pháp:
[A,count] = fread(fid,size,precision Dữ liệu đọc
được sẽ ghi vào mảng A, count sẽ ghi lại số
phần tử được đọc Fid là chỉ số của tệp được
mở lấy ra từ lệnh fopen
Size: định dạng số phần tử được lấy ra. Có các
loại định dạng sau:
- n: Đọc n phần tử và ghi ra ở dạng véc tơ cột.
- inf: Đọc đến cuối mảng, các phần tử đưa vào
ma trận cột.
- [m,n]:Đọc đủ số phần tử để điền vào ma trận
m x n, các phần tử điền vào theo trật tự các
cột, nếu không đủ số phần tử điền, máy thêm
vào phần tử 0.
Preciscion: Dạng của phần tử
'char' Character; 8 bits
'schar' Signed character; 8 bits
'uchar'
Unsigned character; 8
bits
'int8' Integer; 8 bits
'int16' Integer; 16 bits
'int32' Integer; 32 bits
'int64' Integer; 64 bits
'uint8' Unsigned integer; 8 bits
'uint16'
Unsigned integer; 16
bits
'uint32'
Unsigned integer; 32
bits
1.4. Lệnh fopen:
Mở tệp để ghi hoặc đọc dữ liệu
Cú pháp: fid = fopen('filename','permission')
Permission: quy định chế độ mở, có thể lấy các
giá trị:
'r': mở ra để đọc
'w': mở ra để ghi, nếu tệp đã có, nó sẽ xoá
toàn bộ nội dung tệp và ghi lại 'a': mở ra để ghi
thêm
Filename: là tên của tệp sẽ mở được đặt trong
dấu ' '
Kết quả sẽ trả ra chỉ số của tệp được mở (con
trỏ tham chiếu đến tệp) và gán cho biến fid.
1.5 Lệnh đóng tệp, fclose
Cú pháp:
status = fclose(fid), đóng tệp chỉ định
status = fclose('all'), đóng tất cả các tệp đang
mở
1.6 Lệnh fscanf:
Nhập dữ liệu từ tệp định dạng mã ascci
Cú pháp:
A = fscanf(fid,format)
[A,count] = fscanf(fid,format,size)
ở cú pháp thứ nhất, fscanf sẽ đọc dữ liệu từ
tệp có con trỏ fid theo định dạng quy định bằng
chuỗi format.
Số phần tử được đọc thành công sẽ được trả
cho biến count
Ví dụ:
Ta có tệp dữ liệu có tên là 'd:datadl.dat' có
các số liệu sau:
1.345 4.123 4.567 2.456
2.675 6.876 4.576 3.456
Đoạn chương trình sau sẽ đọc dữ liệu từ tệp
xếp thành ma trận (4,2) và gán cho biến M
f=fopen('d:datadl.dat','r'); M=fscanf(f,'%f',[4,2]);
fclose(f);
2. Các lệnh xuất dữ liệu
2.1. lệnh disp: Hiển thị văn bản hoặc mảng
cú pháp: disp(A)
Mô tả
disp(X) Hiển thị giá trị các mảng mà không đưa
ra tên mảng, nếu x chứa chuỗi, chuỗi sẽ được
in ra màn hình.
2.2. Lệnh fprintf: Ghi lại dữ liệu
Cú pháp:
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
29
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
count = fprintf(fid,format,A,...)
fprintf(format,A,...)
Mô tả:
count = fprintf(fid,format,A,...) định dạng các
dữ liệu ở phần thực của ma trận A dưới sự
điều khiển của chuỗi định dạng 'format' và ghi
vào tệp tham chiếu bằng con trỏ 'fid'. Hàm
fprintf trả số lượng byte được ghi ra.
fid là chỉ số của tệp được mở ra để ghi dữ liệu,
nhận được từ lệnh fopen. Nếu bỏ qua fid, kết
quả sẽ in ra màn hình.
format là chuỗi quy định định dạng sẽ xuất ra
(xem lệnh sprintf)
2.3. Lệnh fwrite: Ghi dữ liệu ra tệp ở dạng
mã nhị phân.
Cú pháp:
count = fwrite(fid,A,precision)
Mô tả:
count = fwrite(fid,A,precision) ghi các phần tử
của ma trận A vào tệp tham chiếu bởi 'fid'.
Chuyển đổi các giá trị của MATLAB với độ
chính xác được quy định trong 'precision'. Dữ
liệu được ghi theo trật tự cột, count sẽ đếm số
phần tử được ghi thành công vào tệp. đối số
'fid' là con trỏ tệp nhận được từ lệnh fopen.
III. Các lệnh phân nhánh
1. Lệnh if
1.1 Cú pháp: Lệnh If
Cú pháp 1:
if Biểu thức lôgíc
Các biểu thức tính;
end
Cú pháp 2:
if Biểu thức lôgíc
Các biểu thức tính 1
else
Các biểu thức tính 2
end
Cú pháp 3:
if Biểu thức lôgíc 1
Các biểu thức tính
1 elseif Biểu thức lôgíc 2
Các biểu thức tính 2
else
Các biểu thức tính 3
end
Trong các cú pháp đưa ra ở trên:
- Các biểu thức lô gíc viết theo quy
tắc được trình bày ở dưới đây
- Các biểu thức tính chứa các dòng
lệnh của Matlab
Trong cú pháp 1: Máy sẽ kiểm tra biểu thức
logic: nếu biểu thức lôgic đúng, máy sẽ thực
hiện các lệnh trong if (nằm giữa if và end), còn
nếu biểu thức lô gíc sai máy sẽ bỏ qua các câu
lệnh trong if và thực hiện các câu lệnh kế tiếp
câu lệnh if
Trong cú pháp 2: nếu biểu thức lôgic đúng máy
sẽ thực hiện các câu lệnh trong Các biểu thức
tính 1, còn nếu biểu thức lôgic sai máy sẽ thực
hiện các câu lệnh Các biểu thức tính 2.
Trong cú pháp 3: Nếu biểu thức lôgíc 1 đúng,
máy sẽ thực hiện Các biểu thức tính 1. Nếu
biểu thức lôgíc 1 sai, máy sẽ kiểm tra biểu thức
lôgíc 2: nếu biểu thức lôgic này đúng, máy sẽ
thực hiện các biểu thức tính 2, còn các trường
hợp khác máy sẽ thực hiện các biểu thức tính
3.
1.2 Các toán tử logic
Mat lab cho phép sử dụng các toán tử
lôgic sau:
S
Toán
T ý nghĩa thí dụ
T tử
kiểm tra liệu hai biểu
1 = = thức có bằng nhau A=B
không
2 > Lớn hơn A>B
3 < Nhỏ hơn A<B
4 <= Nhỏ hơn hoặc bằng A<=B
5 >= Lớn hơn hoặc bằng A>=B
6 ~= Khác A~=B
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
30
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
7 & Và lôgic A&B
8 | Hoặc lôgic A|B
9 Not Phủ định Not(A)
1.3 Các hàm logíc
Kiểm tra liệu mảng X có rỗng không, cho giá trị
đúng (1) khi X rỗng nguợc lại cho kết quả sai
(0)
b. Hàm isequal(a,b...)
k = isequal(A,B,...) sẽ trả giá trị đúng lôgic(1),
nếu các mảng đối số có cùng dạng, cùng kích
cỡ và có cùng nội dung. Hàm này thường dùng
khi so sánh hai hay nhiều mảng, nó sẽ không
gây lỗi khi 2 mảng có kích thước khác nhau. c.
Hàm ischar(x)
Cho kết quả đúng nếu x là dữ liệu dạng chuỗi. d.
Các hàm strcmp(s1,s2), strcmp(s1, s2, n)
Hàm strcmp(s1,s2) so sánh hai chuỗi s1, s2.
Nếu hai chuỗi giống nhau sẽ trả kết quả đúng
Hàm strcmp(s1,s2,n) cho kết quả đúng nếu n
ký tự đầu tiên của hai chuỗi như nhau.
Chú ý:
Trong trường hợp đối số trong các hàm lôgic là
ma trận, máy sẽ thử từng cặp phần tử trong
ma trận, nếu đúng trả giá trị 1, nếu sai trả giá trị
0 và kết quả nhận được là ma trận các giá trị 1
và 0. Để so sánh được hai ma trận phải có
cùng kích thước.
2. Lệnh switch
Cú pháp:
switch Biểu thức switch
case Biểu thức case 1
Các biểu thức tính 1
case Biểu thức case 2
Các biểu thức tính 2
...
otherwise
Các biểu thức tính khác
end
Khi lệnh switch được gọi, nó sẽ tính
toán giá trị biểu thức switch Sau đó giá trị của
biểu thức này sẽ được so với mỗi một biểu
thức case theo trình tự được ghi trong câu
lệnh, nếu 2 phép so sánh đưa ra kết quả đúng,
nhóm các câu lệnh tương ứng sẽ được thực
hiện, sau đó thoát khỏi lệnh và thực hiện các
câu lệnh sau switch.
Nếu tất cả các biểu thức case đều
không phù hợp với giá trị của biểu thức switch.
Nhóm lệnh dưới otherwise sẽ được thực hiện.
IV. Các vòng lặp
1. Vòng lặp xác định: for
Cú pháp:
for <biến>= mảng
Các biểu thức tính;
end
Vòng lặp for sẽ thực hiện các câu lệnh lặp với
số lần bằng số cột của mảng, trong mỗi lần lặp
<biến> sẽ mang giá trị là một véc tơ hàng
tương ứng của mảng
Thí dụ: Tạo mảng có các phần tử a(i,j)=1/(i+j-
1) a = zeros(n,n) % Preallocate matrix
for i = 1:n
for j = 1:n
a(i,j) = 1/(i+j -1);
end
end
2. Vòng lặp không xác định:
while Cú pháp:
while <biểu thức logíc >
Các biểu thức tính end
Khi thực hiện câu lệnh, máy sẽ kiểm tra
biểu thức lôgíc, nếu giá trị biểu thức là đúng,
các câu lệnh trong vòng lặp sẽ được thực hiện,
sau khi thực hiện xong sẽ quay trở về kiểm tra
lại giá trị của biểu thức logic.
Nếu giá trị của biểu thức lô gíc là sai, vòng lặp
sẽ kết thúc.
Thí dụ: Tìm nghiệm của phương trình x3 - 2x - 5
= 0 trong khoảng [0,3] theo phương pháp dây
cung.
3. Lệnh break:
Thoát khỏi vòng lặp một cách cưỡng bức
Cú pháp:
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
31
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
break
Mô tả:
break
Dừng việc thực thi vòng lặp for hoặc while. Khi
có nhiều vòng lặp lồng vào nhau, break sẽ chỉ
thoát khỏi vòng lặp gần nhất.
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
- Hàm được viết trong m file, tên của m file
được bắt đầu bằng ký tự chữ hoặc số và có
phần mở rộng là.m.
- Dòng trên cùng của hàm m file phải chứa từ
khoá function và viết theo đúng quy cách quy
định trong Matlab.function [biến ra1, biến ra 2...]
= <Tên hàm>(biến vào 1, biến vào 2..)
- Tên của m file phải trùng với <tên hàm>.
Ví dụ: tệp stat.m chứa nội dung sau tính ra
độ lệch chuẩn của véc tơ x = [x1 x2... xn]
function [mean,stdev] = stat(x)
n = length(x);
mean = sum(x)/n;
stdev = sqrt(sum((x-mean).^2/n));
Chúng ta có thể định nghĩa một hàm
con trong hàm khác bằng cách gọi ra từ khoá
function bên dưới thân của hàm chính. Ví dụ
dưới đây sẽ định nghĩa hàm con avg bên trong
tệp stat.m:
function [mean,stdev] = stat(x)
n = length(x);
mean = avg(x,n);
stdev = sqrt(sum((x- avg(x,n)).^2)/n);
function mean = avg(x,n) mean =
sum(x)/n;
Khi Matlab không nhận ra một tên hàm,
nó sẽ tìm kiếm tên tệp trùng với tên hàm, nếu
tìm ra nó sẽ dịch và đưa vào bộ nhớ. Trong
trường hợp tổng quát nếu ta nhập một tên vào
Matlab, nó sẽ kiểm tra theo trình tự sau:
1. Kiểm tra xem đó có phải là tên biến
2. Kiểm tra xem đó có phải là tên hàm nội trú
trong Matlab.
3. Kiểm tra xem đó có phải là hàm m. file
Khi gọi một m.file từ dòng nhắc hoặc trong m.file
khác đưa hàm vào bộ nhớ, và nó sẽ lưu lại ở đó
cho tới khi ta thoát khỏi Matlab hoặc dùng lệnh
clear.
2. Các đối số vào, ra
Chú ý
- Hàm m-file có thể không chứa đối số nào
- Hàm có thể được gọi với số đối số ra hoặc vào
ít hơn số đối số được khai báo trong hàm
- Khi hàm được gọi ra các biến sử dụng trong
hàm chỉ tồn tại tạm thời trong vùng bộ nhớ dành
cho hàm
- Hàm trong Matlab có thể chứa không hạn chế
thông số đầu vào, khi đó biến đầu vào cuối cùng
của hàm phải được khai báo là varargin, khi đó
biến đầu vào được coi như một mảng khối có vô
số phần tử. Tương tự hàm cũng có thể chứa vô
hạn các thông số ra khi ta khai báo bằng
varargout.
- Câu lệnh varagin và varagout
Cho phép định nghĩa vô số biến vào và ra
của hàm trong Matlab
Cú pháp:
function varargout =
foo(n) y = function
bar(varargin) Mô tả:
Hàm varargout = foo(n) sẽ trả một số lượng
không hạn chế các biến ra từ hàm foo.m.
Hàm y = function bar(varargin) Chấp nhận vô số
biến đầu vào của hàm bar.m
Các câu lệnh varargin và varargout chỉ
được sử dụng bên trong hàm m.file để chứa
biến tuỳ chọn vào hoặc ra của hàm. Chúng phải
được định nghĩa như là một biến cuối cùng
trong danh sách các biến khai báo ở câu lệnh
function.
CHƯƠNG 5. MÔ PHỎNG CÁC HỆ THỐNG
ĐỘNG LỰC BẰNG SIMULINK
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
32
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
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ố
- Mô phỏng hệ thống là một trong những công
cụ được sử dụng rộng rãi nhất dùng cho công
việc phân tích, thiết kế ở nhiều lĩnh vực khác
nhau. Mô phỏng trong máy tính là việc giải
quyết bằng phương pháp số các hệ phương
trình vi phân mô phỏng mô hình nghiên cứu.
- Trong nhiều tài liệu đã đề cập tới các phương
pháp giải bằng giải tích các phương trình vi
phân. Phương pháp này rất hiệu quả trong việc
phân tích các mô hình tuyến tính (bậc 1 hoặc
bậc 2). Tuy nhiên trong kỹ thuật cần có các
phương pháp tinh để giải quyết 3 vấn đề chủ
yếu:
- Các mô hình phi tuyến:
- Các mô hình tuyến tính bậc cao
- Các hàm kích động bất kỳ
2. Giới thiệu về các phần mềm mô phỏng
- Trước kia, các phần mềm mô phỏng với mục
đích chung dùng cho kỹ sư được phát triển ở
dạng thư viện được dịch trước các thuật toán
tích phân, cho phép người dùng nối kết với các
chương trình FORTRAN mô tả các hệ phương
trình. Những phần mềm này thông thường
cung cấp các "đầu - cuối" và bộ hậu xử lý làm
giảm nhẹ gánh nặng cho người lập trình, cung
cấp khả năng dễ dàng điều khiển việc thực thi
quá trình phân tích và xuất kết quả ở dạng đồ
hoạ. Các phần mềm CSMP và ACSL thuộc loại
này.
- Với sự xuất hiện của giao diện đồ hoạ, một
phương pháp tiếp cận mới của các phần mềm
mô phỏng, công việc mô phỏng trên máy tính
đã đơn giản hơn nhiều. Trong phương pháp
tiếp cận này, việc mô phỏng được thực hiện
bằng cách phát triển các sơ đồ khối mô phỏng,
sử dụng thư viện các khối đã được định nghĩa
từ trước ví dụ như: khối tích phân, khối tổng,
khối nhân hệ số... Các sơ đồ khối chứa đựng
các cấu trúc dữ liệu định nghĩa các phương
trình vi phân của hệ thống.
-Các phần mềm mô phỏng thường cung cấp
một số lượng lớn các khối chức năng chứa
đựng các đặc tính phi tuyến thường gặp, các
hàm nhiều biến và đặc biệt là các hàm do
người dùng định nghĩa. Người dùng cũng có
thể chọn các thuật toán tích phân từ một danh
sách do phần mềm cung cấp và có thể điều
khiển nhiều khía cạnh khác nhau của thuật
giải. Cuối cùng các phần mềm mô phỏng cung
cấp cho chúng ta các các công cụ đồ hoạ
mạnh để dễ dàng hiển thị kết quả nhận được.
- Các phần mềm mô phỏng thường cung cấp
một số lượng lớn các khối chức năng chứa
đựng các đặc tính phi tuyến thường gặp, các
hàm nhiều biến và đặc biệt là các hàm do
người dùng định nghĩa. Người dùng cũng có
thể chọn các thuật toán tích phân từ một danh
sách do phần mềm cung cấp và có thể điều
khiển nhiều khía cạnh khác nhau của thuật
giải. Cuối cùng các phần mềm mô phỏng cung
cấp cho chúng ta các các công cụ đồ hoạ
mạnh để dễ dàng hiển thị kết quả nhận được.
- Trong thực tế chúng ta có thể sử dụng nhiều
phần mềm khác nhau để tiến hành mô phỏng
trên máy tính các hệ thống động lực, tuy nhiên
tất cả các công việc mô phỏng trên máy tính
đều bao hàm những công việc sau:
a) Xây dựng mô hình toán học:
- Điều này được hoàn thành bằng hệ phương
trình vi phân mô tả hệ thống và thể hiện các
quy luật chung về vật lý
b) Xác định giá trị các thông số của mô
hình:
- Các thông số của mô hình liên quan tới các
giá trị mà thông thường không bị thay đổi trong
quá trình mô phỏng. Các thông số cơ bản của
các hệ cơ khí là khối lượng và độ cứng của lò
xo. Trong thực tế các thông số của mô hình
cũng có thể thay đổi theo thời gian, nhưng
thông thường chúng thay đổi với tốc độ chậm
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
33
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
hơn nhiều so với các biến động lực được tính
toán trong quá trình mô phỏng.
c) Xác định các điều kiện đầu:
- Khi giải hệ phương trình bằng phương pháp
giải tích chúng ta đã biết được ý nghĩa quan
trọng của điều kiện đầu. Trong mô phỏng việc
xác định điều kiện đầu vẫn giữ nguyên tính
chất quan trọng như vậy.
d) Tín hiệu đầu vào:
-Thông thường các hệ thống phản ứng với 1
hoặc nhiều tín hiệu đầu vào, việc mô phỏng
cũng cần có yêu cầu như vậy
e) Xác định kết quả sẽ xuất ra: .
-Mô phỏng thường không cần chỉ định các kết
quả xuất ra. Kết quả xuất ra thường là các quá
trình phụ thuộc vào thời gian của các biến vật
lý của hệ thống.
f) Xác định các thông số điều khiển quá
trình mô phỏng:
- Các thông số điều khiển quá trình mô phỏng
là các giá trị và các tuỳ chọn. Các giá trị này sẽ
chỉ ra cách thức thực hiện các phương pháp số
trong quá trình mô phỏng. Thông thường đó là
bước thời gian, khoảng tích phân, sai số cho
phép và việc lựa chọn thuật toán tích phân.
II. Trình tự thực hiện một quá trình mô
phỏng.
1. Xây dựng cấu trúc mô phỏng: Sơ đồ khối
- Như chúng ta đã biết, quá trình tích phân là
cốt lõi của quá trình mô phỏng, và các khối tích
phân hình thành cơ sở trung tâm của sơ đồ
khối. Chính vì vậy việc xây dựng các sơ đồ
khối bắt đầu bằng việc đưa vào số lượng chính
xác các khối tích phân và sử dụng thư viện các
khối để xây dựng các phương trình cân bằng.
Cách thức nối kết các khối trong sơ đồ tổng thể
và từ đó quá trình mô phỏng có thể thay đổi tuỳ
thuộc vào phần mềm được chọn.
2. Xác lập giá trị các thông số của mô hình
- Ngay sau khi mô hình được xây dựng xong,
giá trị của các thông số được xác lập. Trong
SIMULINK, điều này được thực hiện bằng cách
nháy đúp chuột vào biểu tượng khối và điền
các thông số thích hợp vào hộp thoại được hiện
ra. Một phương án khác là chúng ta có thể
nhập tên biến, và các biến này sẽ được xác lập
trong môi trường của MATLAB trước khi mô
phỏng. Biện pháp này hết sức hiệu quả đặc biệt
trong việc nghiên cứu sự thay đổi các thông số.
-Trong một số hệ phức tạp, thông số của mô
hình phân tích có thể phụ thuộc vào thời gian
hoặc giá trị của biến trạng thái, khi đó chúng ta
phải viết các m-file hoặc s-file để mô tả sự biến
đổi đó, sau đó sử dụng khối Matlab function để
gọi các chương trình con này vào chương trình
mô phỏng.
3. Xác lập các điều kiện đầu
- Việc xác lập điều kiện đầu cũng hoàn toàn
giống như việc xác lập các thông số của sơ đồ
khối, có nghĩa là chúng ta sẽ nhãy đúp chuột
vào khối tương ứng và nhập vào giá trị điều kiện
đầu (hoặc tên biến trong môi trường MATLAB )
vào mục thích hợp trong hộp thoại hiện ra.
- Trong một số trường hợp, hoạt động của hệ
thống được chia ra nhiều pha, mỗi pha lại có
một điều kiện đầu khác nhau (ví dụ như bài toán
va chạm). Trong trường hợp này thay cho việc
đưa điều kiện đầu vào trong các khối tích phân,
chúng ta đưa điều kiện đầu vào khối từ bên
ngoài
4. Các kích động đưa vào hệ thống
- Trong các phần trước chúng ta đã biết, cấu
trúc mô phỏng được định nghĩa bằng sơ đồ
khối, giá trị các thông số của mô hình và điều
kiện đầu. Ba thành phần này bao hàm số lượng
tối thiểu các thông tin cần thiết để thực thi quá
trình mô phỏng. Do vậy nếu các thông số đầu
vào từ bên ngoài không được định nghĩa, quá
trình mô phỏng sẽ chỉ đưa ra có thành phần tự
do hoặc thuần nhất của nghiệm
- Simulink và các phần mềm khác cung cấp một
thư viện hết sức đa dạng các kiểu kích thích từ
bên ngoài. Các tín hiệu vào đơn giản như: kích
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
34
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
động hình sin, các sóng răng cưa, sóng chữ
nhật được định nghĩa trong các thư viện khối.
Các kích động khác như xung chữ nhật, có thể
tạo ra bằng cách sử dụng 2 khối tín hiệu bước
và 1 khối nối tổng. Khối tín hiệu bước thứ nhất
xác định vị trí bắt đầu của xung, khối tín hiệu
bước thứ 2 xác lập vị trí kết thúc của xung và
cộng vào bước thứ nhất sau khi nhân với -1
- Cuối cùng các kích động đầu vào phức tạp
cũng có thể được tạo ra từ các dữ liệu lưu trữ
trong môi trường MATLAB. Điều này cho phép
chúng ta sử dụng tín hiệu đầu vào từ những kết
quả tính toán từ một chương trình khác.
5. Lựa chọn cách thức xuất kết quả
- Công dụng cơ bản của việc sử dụng mô phỏng
máy tính là nghiên cứu phản ứng của hệ thống
với các tín hiệu kích động và các điều kiện đầu.
quá trình này được ngầm hiểu là việc tìm ra một
hoặc nhiều biến hệ thống thông qua kết quả của
quá trình mô phỏng. Các phần mềm mô phỏng
cung cấp nhiều phương thức kiểm tra các kết
quả của quá trình mô phỏng (màn hình, lưu trữ
biến trong môi trường làm việc, tệp dữ liệu...)
6. Điểu khiển việc thực thi quá trình mô
phỏng.
- Trong quá trình mô phỏng, sau khi xây dựng
được sơ đồ mô phỏng một nhiệm vụ hết sức
quan trọng của người dùng là xác lập các thông
số điều khiển. Thực tế hầu hết các phần mềm
mô phỏng đều cung cấp một bộ các thông số
điều khiển cách thức mà phần mềm mô phỏng
giải phương trình vi phân, nếu chúng ta không
có lựa chọn gì khác, máy sẽ chọn bộ thông số
mặc định còn nếu như chúng ta nắm vững được
bản chất và ý nghĩa của các thông số này,
chúng ta có thể điều khiển các chương trình mô
phỏng thực thi theo mục đích cụ thể của mình
- Đối với phần lớn các ứng dụng, 5 thông số sau
sẽ điều khiển việc thực thi quá trình mô phỏng:
a) Thời gian mô phỏng:
- Thời gian mô phỏng thường được xác lập
bằng các trị số: thời điểm bắt đầu (start time) và
thời điểm kết thúc (stop time). Thời điểm bắt đầu
là thời điểm xác lập các điều kiện đầu trong các
khối tích phân mặc định có giấ trị bằng 0.
- Chú ý : thời gian mô phỏng là thời gian làm
việc thực tế của hệ thống không phải là thời
gian cần thiết để chạy chương trình mô phỏng.
ví dụ như thời gian mô phỏng đặt là 10 s, tuy
nhiên để chạy chương trình mô phỏng có thể
mất một vài giờ.
b) Thuật toán tích phân (thuật giải)
- Trong các chương trình mô phỏng người ta sử
dụng rất nhiều thuật giải khác nhau để giải các
dạng hệ phương trình vi phân khác nhau. Một
thuật giải này có thể rất hiệu quả đối với dạng
phương trình này nhưng lại không thể dùng
được đối với các loại phương trình khác. Để
đảm bảo được độ chính xác của kết quả và tốn
ít thời gian chạy máy nhất chúng ta cần phải
chọn được thuật giải hợp lý nhất.
- Chúng ta có thể chọn thuật giải với bước thời
gian cố định và bước thời gian thay đổi. Các
thuật giải với bước thời gian thay đổi có thể biến
đổi giá trị của bước thời gian trong quá trình mô
phỏng, cung cấp khả năng điều khiển sai số
cũng như kiểm tra việc cắt qua điểm 0 của
nghiệm tìm được. Ngược lại thuật giải với bước
tích phân cố định không thể điều khiển sai số
cũng như kiểm tra việc cắt điểm 0 của nghiệm.
Phần dưới đây chúng ta sẽ giới thiệu các thuật
giải được dùng trong SIMULINK. Các thuật giải
này cũng sẽ được dùng trong các chương trình
mô phỏng khác (có thể dưới tên gọi khác đi một
chút)
Thuật giải mặc định:
- Trong Simulink nếu người dùng không chọn
thuật giải, thuật giải mặc định sẽ được sử dụng
tuỳ thuộc vào loại mô hình đang phân tích:
- Nếu mô hình phân tích ở trạng thái liên tục,
thuật giải ODE45 được sử dụng. ODE45 là
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
35
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
thuật giải đa chức năng tuy nhiên nếu hệ thống
phân tích là hệ cứng và thuật giải này không cho
được kết quả có thể chấp nhận, hãy thử dùng
thuật giải ODE15S.
- Nếu mô hình phân tích không ở trạng thái liên
tục, SIMULINK sẽ sử dụng thuật giải với bước
tích phân thay đổi có tên là "thuật rời rạc"
(discrete) và hiển thị lời nhắc chỉ ra rằng thuật
giải ODE45 không được sử dụng.
Các thuật giải với bước tích phân thay đổi:
Trong SIMULINK chúng ta có thể lựa chọn nhiều
thuật giải với bước tích phân thay đổi như:
ODE45, ODE23, ODE113, ODE15S, ODE23S
và thuật giải "discrete":
ODE45 là thuật giải dựa trên công thức
Runge-Kuta bậc bốn, năm. Đó là thuật giải một
bước: để tính ra y(tn) chỉ cần có giá trị nghiệm
tại một thời điểm trước đó y( t n−1 ). Nói chung
ODE45 là thuật giải được sử dụng nhiều nhất và
được áp dụng như là phép thử đầu tiên khi
chúng ta chưa chọn được thuật giải phù hợp.
ODE23 cũng dựa trên cơ sở công thức Runge-
Kuta(2,3). Thuật giải này có thể hiệu quả hơn
thuật giải ODE45 với độ chính xác không yêu
cầu cao và đối với hệ cứng trung bình. ODE23
cũng là thuật giải một bước.
ODE113 là thuật giải Adams-Bashforth-Moulton
với bậc thay đổi. Nó có thể hiệu quả hơn thuật
ODE45 ở độ chính xác tương đối cao. ODE113
là thuật giải nhiều bước có nghĩa là để xác định
giá trị nghiệm ở một thời điểm cần có giá trị
nghiệm tại nhiều thời điểm trước đó.
ODE15S là thuật giải dựa trên công thức đạo
hàm số có bậc thay đổi (NDFs). Đây là công
thức tương tự như công thức đạo hàm lùi
(BDFs) - được biết đến với tên gọi "phương
pháp Gear" nhưng hiệu quả hơn nhiều. Tương
tự như thuật giải ODE113, thuật ODE15S cũng
là thuật giải nhiều bước. Đối với các hệ thống
"cứng", khi mà thuật giải ODE45 không sử dụng
được, hoặc sử dụng kém hiệu quả, hãy thử sử
dụng ODE15S.
ODE23S được xây dựng trên cơ sở công thức
Rosenbrock bậc 2, và đây là thuật giải một
bước, nên nó có thể hiệu quả hơn giải thuật
ODE15S khi mà yêu cầu về độ chính xác không
cao. Thuật giải này cũng được dùng ở một vài
hệ cứng khi mà thuật giải ODE15S tỏ ra không
hiệu quả.
Ode23t áp dụng quy tắc hình thang với phép
nội suy "tự do". Chúng ta sử dụng thuật giải này
chỉ đối với các hệ thông tương đối cứng.
Ode23tb sử dụng công thức Runge-Kuta ẩn
(TR-BDF2) với giai đoạn đầu sử dụng quy tắc
hình thang và giai đoạn hai sử dụng Công thức
vi phân lùi bậc hai. Về cấu trúc cả hai bước đều
sử dụng cùng một ma trận lặp. Cũng giống như
thuật giải Ode23s, thuật giải này cũng hiệu quả
hơn Ode15s khi yêu cầu về độ chính xác không
cao.
Phương pháp rời rạc "Discrete" được sử dụng
khi Simulink xác định được hệ thống ở trạng thái
không liên tục.
Các thuật giải với bước cố định
Ode5 là phiên bản với bước cố định của thuật
giải Ode45
Ode4 sử dụng công thức Runge - Kuta bậc 4
Ode3 là phiên bản với bước cố định của thuật
giải Ode23
Ode2 sử dụng công thức tích phân của Heun,
được biết đến như là công thức Euler cải tiến.
c) Độ lớn của bước tích phân
- Đối với các thuật giải với bước thay đổi chúng
ta có thể lựa chọn giá trị lớn nhất của bước
tích phân hoặc giá trị gợi ý của bước tích phân
đầu tiên. Mặc định các thông số này được xác
lập một cách tự động
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
36
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
- Đối với các thuật giải với bước cố định chúng
ta có thể xác lập chiều dài bước tích phân. Mặc
định là giá trị Auto.
Giá trị lớn nhất của bước tích phân:
- Giá trị mặc định được xác định theo giá trị của
thời gian bắt đầu và kết thúc quá trình mô
phỏng hmax =
t
stop
−t
start
Thông thường giá
50
trị mặc định này phù hợp với phần lớn các
trường hợp. Trừ khi người dùng xác định được
rằng giá trị này có thể gây ra sai lệch về hình
dạng kết quả chúng ta có thể xác lập lại giá trị
mới
- Nếu hệ phân tích có ứng xử biến đổi theo chu
kỳ hoặc gần theo chu kỳ, chúng ta có thể xác
lập giá trị lớn nhất của bước tích phân theo giá
trị của chu kỳ (ví dụ =1/4 chu kỳ).
Để thay đổi số lượng điểm xuất chọn
điều khiển kết quả xuất ra khác (ví dụ như
SIMULINK sử dụng tham số "Refine Output"
Độ lớn bước tích phân khởi tạo (Initial
step size)
- Độ lớn của bước khởi tạo thông thường được
các thuật giải tự xác định trên cơ sở kiểm tra
trạng thái đạo hàm tại thời điểm bắt đầu phân
tích. Nếu giá trị bước khởi tạo được người
dùng xác lập, máy sẽ thử sử dụng giá trị này
nhưng sẽ sử dụng bước nhỏ hơn nếu độ chính
xác không đảm bảo.
Bước thời gian bé nhất
- Thông số này xác lập giới hạn dưới của bước
thời gian sử dụng cho thuật toán bước thời
gian tự thích nghi, nó được xác lập bởi người
dùng trên cở sở của hàng loạt các nhân tố kể
cả hiệu quả tính toán. Người sử dụng cần phải
chờ thời gian dài để kết thúc quá trình mô
phỏng nếu như xác lập bước thời gian quá bé.
d) Sai số:
- Các thuật giải nói chung đều sử dụng kỹ thuật
điều khiển lỗi cục bộ chuẩn để kiểm soát lỗi tại
mỗi bước tính. Trong mỗi bước tính, các thuật
giải sẽ tính ra các giá trị của biến trạng thái tại
điểm cuối mỗi bước và đồng thời xác định sai
số cục bộ để ước lượng sai số của các biến
trạng thái này. Sau đó sẽ so sánh giá trị sai số
này với sai số cho phép (là hàm số của thông
số rtol- sai số tương đối và abstol - sai số tuyệt
đối). Nếu giá trị sai số ước lượng lớn hơn giá
trị cho phép, máy sẽ giảm giá trị bước tính và
lặp lại quá trình ở trên.
Sai số tương đối:
- Xác định giá trị sai số một cách tương đối so
với giá trị của biến trạng thái tại mỗi điểm tích
phân. Giá trị của nó bằng tỷ số của giá trị sai số
tuyệt đối và giá trị của biến trạng thái tương
ứng tại điểm xét. Trong SIMULINK mặc định sai
số tương đối được chọn là 0.001
Sai số tuyệt đối:
- Là giá trị ngưỡng của sai số, chỉ ra giá trị sai
số cho phép khi giá trị của biến trạng thái tiến
dần tới không. Trong SIMULINK, nếu chúng ta
sử dụng chế độ lựa chọn sai số mặc định, giá
trị sai số tuyệt đối sẽ là 10-6 .
e) Các tuỳ chọn xuất kết quả
- Các tuỳ chọn xuất kết quả điều khiển lượng
dữ liệu (số điểm) sẽ được chương trình mô
phỏng đưa ra. Trong SIMULINK chúng ta có
các tuỳ chọn xuất kết quả sau đây:
Refine Output (chế độ xuất dữ liệu mịn)
Produce additional Output (xuất thêm dữ liệu
ở các điểm bổ sung)
Produce specified Output only (xuất dữ liệu
chỉ tại những điểm yêu cầu)
Refine Output :
- Sẽ làm mịn dữ liệu xuất ra bằng cách thêm
vào các dữ liệu kết quả trung gian khi mà dữ
liệu đưa ra bởi SIMULINK quá thô. Tuỳ chọn
này sẽ cho phép người dùng nhập vào một số
nguyên chỉ ra số điểm trung gian cần thêm vào
giữa 2 mốc tích phân kề nhau.
- Để nhận được kết quả xuất ra mịn hơn chúng
ta nên thay đổi hệ số độ mịn (refine factor) thay
cho việc chia nhỏ bước tích phân. Với việc thay
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
37
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
đổi hệ số độ mịn, chúng ta không làm tăng thời
gian chạy máy vì việc thay đổi này không ảnh
hưởng tới độ lớn của bước tích phân.
- Việc thay đổi độ mịn của dữ liệu xuất ra đặc
biệt thích hợp và hiệu quả khi chúng ta sử dụng
thuật giải ODE45 vì thuật giải này có khả năng
đưa ra các bước tích phân khá lớn và như vậy
nếu đưa các kết quả tích phân ra ngoài màn
hình ở dạng đồ thị, chúng ta có thể nhận được
hình dạng sai khác nhiều so với thực tế.
Produce additional Output:
- Lựa chọn này sẽ cho phép người dùng chỉ
định chính xác các điểm trung gian cần lấy kết
quả. Khi lựa chọn chế độ này, Simulink sẽ đưa
ra véc tơ thời gian mà tại đó nó sẽ xuất kết quả
ra. Người dùng cần phải nhập vào một biểu
thức của Matlab để đưa ra các điểm thời gian
bổ sung. Các kết quả bổ sung sẽ được tạo ra
bằng cách sử dụng một công thức mở rộng tại
các thời điểm bổ sung. Khác với việc thay đổi
hệ số độ mịn, tuỳ chọn này sẽ thay đổi chiều
dài bước tích phân cho phù hợp với véc tơ thời
gian được bổ sung.
Produce specified Output only:
- Tuỳ chọn này sẽ yêu cầu Simulink xuất ra dữ
liệu kết quả chỉ tại các thời điểm chỉ định. Nó
sẽ làm thay đổi độ lớn của bước tích phân cho
phù hợp với véc tơ thời gian yêu cầu. Tuỳ chọn
này được dùng chủ yếu khi chúng ta cần phải
so sánh các kết quả mô phỏng khác nhau để
đảm bảo rằng dữ liệu xuất ra giữa các lần mô
phỏng là ở cùng một thời điểm.
III. Sử dụng SIMULINK trong mô phỏng các
hệ động lực
1. Các thao tác cơ bản
- SIMULINK là một phần mềm đồ hoạ, định
hướng sơ đồ khối dùng để mô phỏng các hệ
động lực. Đây là sản phẩm nằm bên trong
MATLAB và sử dụng nhiều hàm của MATLAB,
và cũng có thể trao đổi qua lại với môi trường
của MATLAB để tăng thêm khả năng mềm dẻo
của nó.
- Với SIMULINK chúng ta có thể xây dựng mô
hình toán học của hệ thống giống như khi ta vẽ
sơ đồ khối. SIMULINK có một thư viện với
nhiều khối chức năng khác nhau. Từ thư viện
này ta có thể chọn các phần tử cơ sở cho mô
hình hệ thống phân tích. Thêm vào đó có nhiều
cách để thêm khối chức năng vào hệ thống.
Ngay sau khi mô hình được xây dựng, ta có thể
thực hiện quá trình mô phỏng theo nhiều cách
khác nhau. Nhiều phương pháp tích phân có
thể được sử dụng và người dùng cần định
nghĩa giới hạn của bước thời gian, các tiêu
chuẩn hội tụ. Các kết quả mô phỏng có thể
được hiển thị qua các khối “màn hiện sóng” của
SIMULINK hoặc chuyển sang môi trường làm
việc (bộ nhớ) của MATLAB, ở đây ta có thể
dùng các lệnh đồ hoạ mạnh hơn để hiển thị kết
quả.
- Phần còn lại của chương này sẽ giới thiệu
một cách sơ lược việc sử dụng SIMULINK để
xử lý một bài toán mô phỏng đơn giản. Điều
này rất cần thiết cho các sinh viên muốn tiếp
cận với SIMULINK. Tuy nhiên để có đầy đủ
kiến thức về SIMULINK cần phải tham khảo
thêm trợ giúp trực tuyến của phần mềm hoặc
phần hướng dẫn sử dụng khi cài đặt phần mềm
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
38
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
- Để xây dựng mô hình ta phải khởi động
MATLAB (nháy đúp chuột vào biểu tượng
MATLAB trên màn hình), tại dòng nhắc của
MATLAB ta gõ simulink (hoặc nháy chuột vào
biểu tượng simulink trên thanh công cụ) để kích
hoạt chương trình SIMULINK, cửa sổ thư viện
của simulink sẽ hiện ra. Nháy chuột vào biểu
tượng “New” để mở ra cửa sổ mới xây dựng
mô hình mô phỏng, hoặc "Open" để mở 1 file
mô phỏng trước đó (tương tự như các phần
mềm chạy trong Windows).
- Việc xây dựng mô hình bắt đầu từ việc mở
thư viện các khối của simulink bằng cách nháy
chuột vào mục simulink và sau đó chọn các
nhóm thích hợp.
- Trong MATLAB 7.0 thư viện của Simulink
phân làm 8 nhóm: Commontly Used Block,
Continuous, Discontinuities, Discrete,
Logic and Bit Operations, Look-up Tables,
Math Operations, Model Verification, Model-
Wide Utilities, Ports & SubSystems, Signal
Attributes, Signal Routing, Sinks, Source,
User-Defined Functions, Additional Math &
Discrete
- Các nhóm trên chứa rất nhiều khối chức năng
cho phép thực hiện các phép tích toán phân
tích động lực học trên các khối toán học chuẩn.
Bao gồm từ các dạng tín hiệu đầu vào, các
phép toán xử lý, các hàm chuânt, các hàm do
người sử dụng tự xây dựng, cho đến quản lý
các dữ liệu đầu ra.
- Các thao tác cơ bản khi thực hiện trên
Simulink:
- Để Copy một khối từ thư viện vào của sổ mô
hình, hãy chọn khối, rê chuột để kéo khối đã
chọn và thả vào cửa sổ mô hình. Trong cửa sổ
mô hình, nếu muốn copy một khối, hãy ấn
phím Ctrl và rê chuột kéo khối sang vị trí đặt
bản copy. Để xoá khối hãy chọn nó và ấn phím
Delete.
- Thao tác tiếp theo là nối các khối thành mô
hình phản ánh hệ thống được mô tả bằng toán
học ở trên. Dựa trên phương trình trạng thái
toán học xác lập ban đầu, chúng ta cần nối các
tín hiệu vào cho từng khối, và chỉ định đích cho
tín hiệu ra (tính toán tiếp theo hoặc xuất kết
quả...)
- Bước cuối cùng là đổi tên các khối để có thể
dễ dàng đọc và hiểu sơ đồ khối mô phỏng
được xây dựng. Hãy nháy chuột lên tên của
mô hình và biên tập lại. Chúng ta ghi mô hình
vào đĩa bằng cách nháy chuột vào biểu tượng
Save trên thanh công cụ và đặt tên tệp trong
hộp thoại hiện ra và nháy vào Save
- Để gán các giá trị cho thông số của mô hình
chúng ta phải kích đúp chuột vào khối tương
ứng.
Trước khi chạy chương trình mô phỏng, hãy
xác lập các thông số điều khiển quá trình mô
phỏng: Trên thực đơn kéo xuống (pulldown
menu) của cửa sổ mô hình hãy chọn
Simulation/Parameter (hoặc ấn Ctrl + E).
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
1) Khối Derivative (Đạo hàm)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
39
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
Khối tính đạo hàm gồm 1 tín hiệu vào và 1
tín hiệu ra
2) Khối intergrator (tính tích phân)
- Khối tính tính phân gồm 1 tín hiệu vào và 1 tín
hiệu ra. Chú ý khi sử dụng khối tích phân có
thể phải khai báo điều kiện đầu cho tín hiệu
(mặc định giá trị của điều kiện đầu bằng 0). Khi
nháy đúp chuột vào biểu tượng của khối, sẽ
đưa ra 1 cửa sổ, điều kiện đầu được nhập tại
dòng "Initial condition" như hình dưới:
- Khối Look-Up Table được sử dụng rộng rãi
khi tín hiệu vào có những điều kiện giá trị đặc
biệt tại từng thời điểm. Nó gồm 2 tín hiệu: 1 tín
hiệu vào (thông thường là thời gian) và 1 tín
hiệu ra. Ví dụ, nếu chúng ta đã có dữ liệu về
các thời điểm vận tốc (véc tơ "vv") được xác
định tại các thời điểm (véctơ "tt") thì tín hiệu
vào là thời gian (khối "clock") và các thông số
khai báo của khối Look-up table được chỉ ra
trong hình dưới
2) Khối Matlab Fcn (các hàm sẵn có của
Matlab )
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
1) Khối Look-Up Table (nhận tín hiệu từ
vectơ đã có)
Thông số trong khối này được chỉ ra trong ô
"Matlab function": nó cho phép chúng ta sử
dụng các hàm chuẩn sẵn có trong Matlab (hình
dưới). Chú ý phân biệt khi nhập lệnh (tên hàm)
phải là hàm sẵn có trong Matlab.
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
40
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
Khối này thực hiện phép cộng các đại lượng,
được thể hiện thông qua các tín hiệu vào (có 2
hoặc nhiều tín hiệu vào), kết quả đưa ở 1 tín
hiệu ra. Khi nhấp đúp chuột vào khối sẽ cho ra
bảng thông số như hình vẽ dưới cho phép
người dùng định dạng số tín hiệu vào và hình
thức thể hiện khối.
3) Khối Fcn (khai báo 1 hàm theo qui cách của
MATLAB)
- Đây là 1 khối cho phép mô tả công thức toán
học một cách đơn giản mà trong thư viện
chuẩn của Matlab chưa có, nó cũng gồm 1 tín
hiệu vào và 1 tín hiệu ra. Thông số của hàm
(định nghĩa hàm) được khai báo trong ô
"Expression" như hình vẽ dưới
2.2. Nhóm các khối thực hiện thao tác toán
học (Math)
1) Khối Sum (Cộng)
- Trong dòng "Icon shape": lựa chọn hình thức
thể hiện là hình tròn (round) hoặc hình chữ
nhật (rectangular) tuỳ theo ý muốn của người
dùng.
- Trong ô "List of signs": nhập số lượng và
phép tính (cộng/trừ). Ví dụ trên hình vẽ nếu
cần 2 đại lượng cộng với nhau thì ta cần nhập
2 dấu "+".
2) Khối Gain (nhân với 1 hằng số)
Khối này gồm 2 tín hiệu (1 vào, 1 ra), thực hiện
phép nhân đại lượng vào với 1 hằng số "x"
được khai báo trong khối, giá trị của x có thể
được nhập trực tiếp hoặc là 1 hằng số được
khai báo sẵn khi chạy trong cửa sổ lệnh của
Matlab. Cách nhập thông số của khối thể hiện
bên dưới.
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
41
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
3) Khối Math Function (các hàm cơ bản trong
Matlab)
Đây là khối cho phép thực hiện 1 số hàm cơ
bản trong Matlab, ý nghĩa cũng giống như
Matlab function. Ưu điểm là người sử dụng lựa
chọn trong danh sách các hàm có sẵn mà
không cần nhớ tên hàm. Nhược điểm là số
lượng hàm còn ít.
Để gọi hàm cần lựa chọn hàm trong ô
"Function" như hình vẽ dưới đây.
4) Khối Dot Product (thực hiện phép nhân tích
vô hướng của 2 vectơ)
Khối này có 2 tín hiệu vào là 2 vẽ tơ và 1
tín hiệu ra là giá trị vô hướng
5) Khối Product (thực hiện phép nhân 2 vectơ)
Khối này thực hiện phép nhân các phần tử
tương ứng của 2 vectơ (giống như toán tử ".").
Nó có thể có 2 hoặc nhiều tín hiệu vào và 1 tín
hiệu ra. Số lượng tín hiệu vào được khai báo
trong ô "Number of inputs" như hình dưới đây
Ngoài ra, trong nhóm Math còn có nhiều khối
hàm toán học khác: abs, sin, ... Trên đây chỉ là
một số khối cơ bản hay sử dụng nhất mà thôi.
2.4. Nhóm các khối xử lý tín hiệu
1) Khối Sub System (môđun con)
Sub system là một hệ thống nhánh (môđun
con) trong cả bài toán cụ thể. Subsystem có
thể được tạo ra theo 2 cách:
- Cách 1: Trong 1 ô cửa sổ đang mở của
Simulink, đánh dấu tất cả các khối, sau đó bấm
chuột phải, rồi lựa chọn "Creat subsystem".
- Cách 2: Sử dụng khối "Sub System"
Khối Subsystem có thể có nhiều cổng (tín hiệu)
vào hoặc ra, tuỳ theo ý muốn của người sử
dụng. Các tín hiệu vào (Input) và các tín hiệu ra
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
42
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
(Output) được qui định khi đặt các cổng (In và
Out) (xem thêm phần nhóm Sinks, cổng vào,
ra)
2) Khối In (khai báo cổng vào trong
Subsystem)
Đây là khối thực hiện việc khai báo cổng vào
cho Subsystem. Mỗi tín hiệu vào Subsystem
cần phải có 1 khối In3) Khối Out (khai báo cổng
ra trong Subsystem)
Đây là khối thực hiện việc khai báo cổng ra cho
Subsystem. Mỗi tín hiệu ra Subsystem cần
phải có 1 khối Out.
4) Khối Mux (Trộn tín hiệu)
Khối Mux cho phép trộn nhiều tín hiệu vào
thành 1 tín hiệu ra tổng hợp. Số tín hiệu vào
được khai báo khi nhấp đúp chuột vào biểu
tượng khối.
5) Khối Demux (Phân rã tín hiệu)
Ngược với khối Mux là khối Demux, nó cho
phép phân rã 1 tín hiệu vào tổng hợp thành
nhiều tín hiệu ra. Chú ý khi trộn tín hiệu vào là
bao nhiêu tín hiệu riêng lẻ hay tổng hợp thì khi
phân rã cũng bấy nhiêu tín hiệu như vậy.
7) Khối Goto (Ghi lại tín hiệu với tên định sẵn)
lOMoAR cPSD|2935381
Khối Goto cho phép ghi lại tên tín hiệu với tên
định sẵn tuỳ theo người sử dụng. Khối này
thường sử dụng khi không muốn lưu trữ nhiều
Subsystem, cũng như để tránh việc nối chồng
chéo các tín hiệu giữa các Subsystem với
nhau. Sự kết hợp của 2 khối Goto và From sẽ
rất hiệu quả, giúp cho người sử dụng dễ quan
sát và liên kết các khối được chính xác. Tên
của tín hiệu được định tuỳ theo người sử dụng,
cho ở trong ô "Tag" như hình vẽ dưới:
8)
Khối From (Nhận tín hiệu với tên định sẵn)
Như đã trình bày ở trên, khi tín hiệu có tên định
trước, có thể gọi chính xác tín hiệu đó làm đầu
vào mà không cần nối tín hiệu. Tên của tín hiệu
được định tuỳ theo người sử dụng bằng cách
lựa chọn các tín hiệu đã có sẵn tên trong bảng
(được định ra sau khi sử dụng khối Goto), cho
ở trong ô "Tag" hoặc lựa chọn khi bấm "Select
tag" như hình vẽ dưới:
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
43
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
2.4. Nhóm các khối thực hiện chức năng
xuất kết quả (Sinks)
1) Khối Display (hiển thị kết quả ra màn hình)
Khối này cho phép hiển thị các kết quả của quá
trình mô phỏng ra màn hình, kết quả được đưa
vào từ 1 tín hiệu vào.
2) Khối Out (đưa tín hiệu ra)
Chức năng của khối này đã trình bày ở trên.
3) Khối Scope (hiển thị kết quả bằng đồ thị
trong Simulink)
Khối này thể hiện kết quả tính toán theo thời
gian mô phỏng. Kết quả tính sẽ được thể hiện
như hình dưới đây. Trong đó khi nhấp đúp vào
biểu tượng "Autoscale" cho phép chúng ta
quan sát một cách tổng thể toàn bộ kết quả.
Các nút Zoom in và zoom out cho phép phóng
to, thu nhỏ để quan sát các kết quả thu được từ
quá trình mô phỏng
4) Khối To Workspace (đưa kết quả tính toán
lưu trữ vào bộ nhớ chương trình)
Khối này thực hiện việc đưa tín hiệu vào môi
trường làm việc (bộ nhớ) của chương trình
Matlab. Kết quả được lưu trữ trong bộ nhớ tạm
thời khi Matlab đang hoạt động. Từ đó có thể
có tác động tiếp theo đến tín hiệu (kết quả)
xuất ra (như vẽ đồ thị, lưu trữ, xuất dữ liệu...).
Khi nhấp đúp vào biểu tượng khối, tên của biến
(tín hiệu xuất ra được nhập trong ô "Variable
name" như hình vẽ dưới đây.
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
44
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
2.5. Nhóm các khối thực hiện chức năng
nhập dữ liệu (Sources)
1) Khối Constant (tín hiệu nhập vào là hằng số)
Khối này đưa tín hiệu (kích động) đầu vào là
hằng số theo thời gian. Khi nhấp đúp vào biểu
tượng của khối, cho phép nhập giá trị của tín
hiệu trong ô "Constant value" như hình vẽ
dưới.
2) Khối In (nhập tín hiệu vào qua cổng vào)
Chức năng của khối này đã trình bày ở trên
3) Khối Clock (nhập tín hiệu vào là thời gian)
Tín hiệu vào được nhập là thời gian, tương
ứng với thời điểm tích phân, rất hiệu quả khi tín
hiệu vào là một hàm thời gian hay quá trình nội
suy theo thời gian.
4) Khối From Workspace (nhập tín hiệu từ biến
trạng thái trong bộ nhớ)
biến được nhập trong ô "Data" như hình vẽ
dưới đây
5) Khối Signal Buider (nhập tín hiệu dạng đặc
biệt)
Tín hiệu vào được nhập dưới dạng đặc biệt
nhờ khối signal buider. Khi nhấp đúp chuột vào
biểu tượng khối sẽ hiện ra cửa sổ như hình vẽ
dưới. Chúng ta có thể thêm, bớt hoặc thay thế
kiểu dạng tín hiệu khi bấm vào menu signal
như trên hình đề có được tín hiệu dạng hàm
sin, hình thang hay các hằng số…
3. Điều khiển thực thi quá trình mô phỏng
Dữ liệu nhập vào là tên biến đang lưu trữ trong
bộ nhớ của matlab trong quá trình chạy. Khi
nhấp đúp chuột vào biểu tượng khối, tên của
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
45
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
Để điều khiển các thông số thực hiện
quá trình mô phỏng, nhấp chuột vào
"SimulationConfiguration Parameters", khi
đó sẽ hiện ra cửa sổ cho phép điều khiển các
thông số cho quá trình mô phỏng.
chọn sai số tính càng nhỏ thì kết quả tính càng
chính xác, tuy nhiên thời gian tính toán càng
lâu. Do đó việc lựa chọn thông số nên để ở
thời gian mặc định, nếu thời gian tính toán
nhanh thì có thể tăng độ chính xác để kiểm tra
giá trị tính toán
4. Cấu trúc của một sơ đồ Simulink
Sơ đồ Simulink được cấu trúc bằng các khối
chức năng và các đường truyền tín hiệu liên
kết chúng lại với nhau. Các khối chức năng
được tích hợp sẵn trong các thư viện. Trong đồ
án này sử dụng các khối thư viện như sau:
a. Thư viện các khối Sources (Khối phát tín
hiệu):
Thư viện này gồm các khối tạo nguồn tín hiệu
khác nhau
Trong thư viện Sources có các khối được thể
hiện như trong bảng 1
Bảng 1. Một số khối chức năng trong thư viện
nhóm Sources của Matlab Simulink
Trong hộp thoại xác lập chế độ mô
phỏng, chúng ta có thể nhập các thông số điều
khiển quá trình tính toán:
- Ô "Start time": thời gian bắt đầu mô phỏng
- Ô "Stop time": thời gian kết thúc mô phỏng
- Ô "Relative tolerance": sai số tương đối
- Ô "Absolute tolerance": sai số tuyệt đối
- Ô "Type": xác lập kiểu chia bước tích phân:
"Variable-Step"; chia bước tự động do máy
tính, "Fixed-Step" chia bước do người sử dụng
qui định.
- Trong "Solver option" có thể lựa chọn kiểu
tích phân (thông thường lựa chọn kiểu ode45,
ode15s hoặc ode113)
…
Trong các thông số của quá trình mô phỏng,
thông thường hay điều khiển thời điểm kết thúc
quá trình tích phân và các sai số tính toán. Khi
b. Thư viện các khối Sinks:
Trong thư viện này có các khối của để thể hiện
hoặc xuất kết quả các tín hiệu ra. Thư viện
Sinks gồm một số khối chức năng được thể
hiện ở bảng 2:
Bảng 2. Một số khối chức năng trong thư viện
nhóm Sinks
c. Thư viện các khối Continuous:
Trong thư viện này có các khối của hệ thống
liên tục tuyến tính, các khối biểu diễn các hàm
tuyến tính chuẩn được thể hiện ở bảng 3
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
46
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
Bảng 3. Một số khối chức năng trong thư viện
nhóm Continuous
d. Thư viện các khối Signal & System:
Thư viện các khối Signal & System có các
khối biểu diễn tín hiệu và hệ thống. Các khối
chính như trong bảng 4.
Bảng 4. Một số khối chức năng trong thư viện
nhóm Signal & System
e. Thư viện các khối Math:
Thư viện Math có các khối biểu diễn hàm toán
học được thể hiện bảng 5.
Bảng 5. Một số khối chức năng trong thư viện
nhóm Math
g. Thư viện các khối Funtion & Tables:
Khi thực hành mô phỏng hệ thống phức tạp
có nhiều phần tử nối ghép lại với nhau, có thể
tạo ra các mô đun độc lập để mô phỏng các hệ
thống con trong sơ đồ chung rồi nối ghép các
mô đun đó lại. Việc cấu trúc thành các mô đun
mô phỏng độc lập như vậy làm cho sơ đồ mô
phỏng có tính hệ thống, dễ theo dõi, quan sát,
kiểm tra cũng như dễ dàng thay đổi các giá trị
thông số trong quá trình khảo sát.
5. Trình tự thực hiện quá trình mô phỏng
-Xây dựng hệ phương trình vi phân mô tả sự
hoạt động và thể hiện các quy luật chung về
tính chất vật lý của hệ thống được gọi là xây
dựng mô hình toán học của hệ thống. Các
phương trình này mô tả được quan hệ ràng
buộc giữa các thông số cấu trúc, các thông số
trạng thái của hệ thống với các tham số của tác
động bên ngoài
-Bước tiếp theo để giải mô hình toán là xây
dựng sơ đồ mô phỏng trên máy tính bằng công
cụ Simulink trong môi trường Matlab theo trình
tự các bước sau:
- Lựa chọn các khối chức năng phù hợp trong
thư viện của các khối chính để mô phỏng các
thành phần trong hệ phương trình vi phân đã
được xây dựng.
- Sau khi đã có các khối chức năng, tiến hành
các đường truyền tín hiệu bằng cách nối chúng
lại với nhau theo đúng trình tự và chức năng
trong cấu trúc của hệ thống cần khảo sát.
- Nhập giá trị các thông số vào các khối chức
năng của mô hình.
- Thiết lập các điều kiện trong quá trình mô
phỏng: Đó là các điều kiện đầu cho các bước
tính toán, các khối chức năng.
- Xác định các thông số điều khiển quá trình
mô phỏng: Cần chú ý đến các thông số điều
chỉnh như: thời gian mô phỏng, thuật toán tích
phân, độ lớn của bước lấy tích phân, sai số
cho phép và các tuỳ chọn xuất kết quả
- Chạy chương trình và xuất kết quả mô phỏng,
có thể dùng khối Scope để hiển thị hoặc dùng
lệnh vẽ đồ thị “plot” của Matlab.
- Đánh giá, nhận xét: sau khi chạy chương
trình nhận được kết quả, căn cứ vào kết quả
mô phỏng để so sánh với kết quả khảo
nghiệm. Nếu không đúng thì phải kiểm tra lại
từng bước, từ các phương trình vi phân mô tả
toán học của quá trình đến việc lựa chọn các
khối chức năng, nhập xuất dữ liệu và sự liên
kết giữa các khối. Đến khi kết quả phù hợp với
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
47
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoAR cPSD|2935381
ý nghĩa vật lý của quá trình khảo sát thì quá
trình mô phỏng thành công.
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
1.1. Mục đích
SIMULINK là một công cụ rất mạnh của
Matlab để xây dựng các mô hình một cách trực
quan và dễ hiểu. Để mô tả hay xây dựng hệ
thống ta chỉ cần liên kết các khối có sẵn trong
thư viện của SIMULINK lại với nhau. Sau đó,
tiến hành mô phỏng hệ thống để xem xét ảnh
hưởng của bộ điều khiển đến đáp ứng quá độ
của hệ thống và đánh giá chất lượng hệ thống.
1.2. Giới thiệu Simulink
Để thực hiện các yêu cầu trong bài thí
nghiệm này, sinh viên cần phải chuẩn bị kỹ và
hiểu rõ các khối cơ bản cần thiết trong thư viện
của SIMULINK. Sau khi khởi động Matlab 7.0,
ta gõ lệnh simulink hoặc nhấn vào nút simulink
trên thanh công cụ thì cửa sổSIMULINK hiện ra:
1.2.1. Các khối sử dụng trong bài thí
nghiệm Khối nguồn tín hiệu vào Sources
Khối Step (ở thư viện
SimulinkSources) có chức năng
xuất ra tín hiệu hàm nấc. Double
click vào khối này để cài đặt các
thông số:
Step time: khoảng thời gian ngõ
ra chuyển sang mức Final value
kể từ lúc bắt đầu mô phỏng. Cài
đặt giá trị này bằng 0. - Initial
value: Giá trị đầu. Cài đặt bằng
0.
Final value: Giá trị cuối. Cài đặt
theo giá trị ta muốn tác động tới
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
48
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
hệ thống. Nếu là hàm nấc đơn
vị thì giá trị này bằng 1. -
Sample time: thời gian lấy mẫu.
Cài đặt bằng 0
Khối Repeating Sequence (ở
thư viện SimulinkSources) là
khối phát tín hiệu lặp lại. Tuỳ
theo giá trị lập trình mà nó có
thể phát ra tín hiệu xung vuông,
tam giác hay răng cưa với biên
độ và tần số thay đổi được.
Ví dụ: để phát xung tam giác có biên độ 5V,
chu kỳ10s, ta khai báo như sau.
Time values: [0 2.5 5 7.5 10]
Output values: [0 5 0 -5 0]
Khối tải– Thiết bị khảo sát ngõ ra (Sink).
Khối Mux (ở thư viện
SimulinkSignals Routing) là
bộ ghép kênh nhiều ngõ vào
1 ngõ ra, từ ngõ ra này ta
đưa vào Scope để xem nhiều
tín hiệu trên cùng một cửa
sổ. Double click vào khối này
để thay đổi số kênh đầu vào
(trong mục Number of inputs)
Khối Scope (ở thư viện
SimulinkSinks) là cửa sổ
xem các tín hiệu theo thời
gian, tỉ lệ xích của các trục
được điều chỉnh tự động để
quan sát tín hiệu một cách
đầy đủ
Các khối xử lý – Khối động học.
Khối Sum (ở thư viện
SimulinkMath Operations) là bộ
tổng (cộng hay trừ) các tín hiệu,
thường dùng để lấy hiệu số của
tín hiệu đặt với tín hiệu phản hồi.
Double click để thay đổi dấu của
bộtổng.
Khối Gain (ở thư viện
SimulinkMath Operations) là bộ
tỉ lệ. Tín hiệu sau khi qua khối
49
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
này sẽ được nhân với giá trị Gain. Double click để thay đổi giá
trị độ lợi Gain
Khối Transfer Fcn (ở thư viện
SimulinkContinuous) là hàm truyền của hệ tuyến tính. Double
click để thay đổi bậc và các hệ
số của hàm truyền. Cài đặt các thông số:
- Numerator: các hệ số của đa thức tử số
- Denominator: các hệ số của đa
thức mẫu số
Khối Relay (ở thư viện
SimulinkDiscontinuities) là bộ điều khiển rơle 2 vị trí có trễ (còn
gọi là bộ điều khiển ON-OFF). Các thông số: - Switch on
point: nếu tín hiệu đầu vào lớn
hơn giá trị này thì ngõ ra của
khối Relay lên mức ‘on’
-Switch off point: nếu tín hiệu đầu
vào nhỏ hơn giá trị này thì ngõ ra
của khối Relay xuống mức ‘off’
Output when on: giá trị của ngõ ra khi ở mức ‘on’
-Output when off: giá trị của ngõ
ra khi ở mức ‘off’
Nếu tín hiệu đầu vào nằm trong
khoảng (Switch on point, Switch
off point) thì giá trị ngõ ra giữ
nguyên không đổi
Khối PID controller (ở thư viện
Simulink ExtrasAdditional
Linear) là bộ điều khiển PID với
hàm truyền
KP: hệ số tỉ lệ (proportional term)
KI: hệ số tích phân (integral term)
KD: hệ số vi phân (derivative
term)
-Khối Saturation (ở thư viện
SimulinkDiscontinuities) là một
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
khâu bão hòa. Các thông số cài
đặt:
-Upper limit: giới hạn trên. Nếu
giá trị đầu vào lớn hơn Upper
limit thì ngõ ra luôn bằng giá trị
Upper limit
-Lower limit: giới hạn dưới. Nếu
giá trị đầu vào nhỏ hơn Lower
limit thì ngõ ra luôn bằng giá trị
Lower limit
-Khâu bão hoà dùng để thể hiện
giới hạn biên độ của các tín hiệu
trong thực tế như: áp ra cực đại
của bộ điều khiển đặt vào đối
tượng, áp nguồn….
1.2.2 Các bước để xây dự ng ứng dụng mới
Sau khi khởi động Matlab, gõ lệnh >> simulink
hoặc nhấn vào nút simulink trên thanh công cụ
thì cửa sổ SIMULINK hiện ra (như ở hình vẽ
Trang 1).
Click vào biểu tượng như hình dưới (Simulink
icon)
Hình 1.1. Khởi động từ thanh công cụ
Từ cửa sổ lệnh, đánh lệnh simulink và enter
Cửa sổ thư viện Simulink sẽ hiển thị:
Hình 1.2. Cửa sổ thư viện Simulink
Tạo một mô hình mới bằng cách:
- Click vào icon New model hoặc gõ Ctrl-N
Hình 1.3. Tạo một mô hình mới bằng
cách:
Hình 1.4. Cửa sổ xây dựng mô hình
Tạo các khối: từ thư viện Simulink chọn khối
cần dùng, nhấp chuột vào và kéo ra ra cửa sổ
mô hình
Hình 1.5. Tạo các khối từ thư viện
Simulink
Lưu trữ mô hình bằng lệnh Save (File - Save)
hoặc nhấp vào icon Save
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
50
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
Hình 1.6. Lưu trữ mô hình
Dịch chuyển các khối đơn giản bằng cách nhấp
vào khối đó và kéo thả
Hình 1.7. Dịch chuyển các khối
Xoay các khối đơn giản bằng cách nhấp vào
khối đó kết hợp với tổ hợp (trl+R)
Mô phỏng mô hình: Dùng lệnh Start
(Menu Simulation-Start) hoặc nhấp chuột vào
icon Start
Hình 1.8. Mô phỏng mô hình
Xem tín hiệu từ Scope: nhấp đôi vào
khối Scope
Hình 1.9. Xem tín hiệu từ Scope
Chỉnh thông số của một khối bằng cách nhấp
đôi vào khối cần chỉnh, sau đó thay đổi các
thông số theo yêu cầu
Trước khi mô phỏng mô hình Simulink, chúng ta
cần đặt các thông số mô phỏng bằng cách chọn
menu Simulation-Configuration Parameters
Hình 1.10. Cửa sổ Configuration Parameters Ở
cửa sổ Configuration Parameters, chúng ta
có thể đặt một số thông số như Start time, Stop
time(second – giây), và phương pháp giải
Solver, Solver options,.. sau đó nhấn nút OK
Hình 1.11. Đặt các thông số mô phỏng
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
Lò nhiệt có đầu vào là điện áp (hay
công suất) cung cấp cho dây điện trở và ngõ ra
là nhiệt độ bên trong lò. Để lập hàm truyền lò
nhiệt ta phải khảo sát phương trình vi phân mô
tả các quan hệ nhiệt độ và năng lượng. Đây là
một bài toán phức tạp nếu muốn mô tả chính
xác hàm truyền phi tuyến của hệ thống.
Một cách gần đúng, ta có thể xem môi
trường nung là đồng chất, đẳng nhiệt. Từ
phương trình cân bằng năng lượng: điện năng
cung cấp sẽ được dùng để bù vào năng lượng
nhiệt truyền ra bên ngoài và tích nhiệt vào môi
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
51
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
trường nung, ta tính được hàm truyền lò là bậc
nhất, có dạng như sau:
Trong đó:
P: công suất cung cấp.
θ: là độ tăng nhiệt nhiệt độ đầu ra so với nhiệt
độ môi trường.
K: là hệ số tỉ lệ cho biết quan hệ vào ra ở chế
độ xác lập.
T: là hằng số thời gian, thể hiện quán tính nhiệt
hệ thống.
2.2 Mô hình của Ziegler-Nichols
Mô hình hàm truyền lò điện cho thấy quá trình
quá độ với đầu vào hàm nấc có dạng hàm mũ.
Thực tế cho thấy mô hình lò nhiệt trên chỉ là
gần đúng, hệ thống có bậc cao hơn nhưng quá
trình quá độ đầu vào hàm nấc vẫn không có
quá điều chỉnh, có dạng như hình sau khi cho
nhiệt độ đầu bằng 0.
Hình 1.12. Xác định các thống số L, T
Theo Ziegler-Nichols thì một hệ thống
như vậy có thể được biểu diễn dưới dạng hàm
truyền sau :
bao gồm một khâu quán tính hệ số khuếch đại K
và hằng số thời gian T, và khâu trễ thời gian L,
các thông số này có thể lấy được khi kẻ tiếp
tuyến ở điểm uốn cho đồ thị quá độ hàm nấc
như hình vẽ bên. Hệ số khuếch đại K được tính
như sau:
Khi nhiệt độ ban đầu khác không, K được tính
từ độ tăng nhiệt độ đầu ra so với môi trường. Để
áp dụng cho hệ tuyến tính, ta lấy khai triển
Taylor của e-LS, hàm truyền trở nên :
Tóm lại, Ziegler-Nichols xấp xỉ hàm truyền lò với
hệ bậc nhất có trễ hay hệ tuyến tính bậc hai, và
cho phép tìm hàm truyền bằng thực nghiệm khi
vẽ quá trình quá độ hệ thống với đầu vào là hàm
nấc
2.3. Thí nghiệm
2.3.1. Chuẩn bị thí nghiệm
Sinh viên phải chuẩn bị các kiến thức sau trước
khi bước vào thí nghiệm:
-Tìm hiểu sơ lược Matlab và Simulink.
-Mô tả toán học hệ thống điều khiển tự động,
đánh giá chất lượng hệ thống điều khiển tự
động.
-Mô hình hóa đối tượng và xác định thông số
bộ điều khiển PID theo phương pháp thứ nhất
của Ziegler – Nichols.
-Phương pháp điều khiển on-off. Ưu khuyết
điểm của điều khiển on-off so với điều khiển
sớm trễ pha hay PID.
-Phương pháp điều khiển PID. Ưu khuyết điểm
của điều khiển PID. Cách hiệu chỉnh thông số
PID dựa vào đáp ứng quá độ đối với tín hiệu
vào hàm nấc đơn vị.
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.
1. Mục đích.
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
52
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
Đặc trưng của lò nhiệt là khâu quán tính nhiệt.
Từ khi bắt đầu cung cấp năng lượng đầu vào
cho lò nhiệt, nhiệt độ của lò bắt đầu tăng lên từ
từ. Để nhiệt độ lò đạt tới giá trị nhiệt độ cần
nung thì thường phải mất một khoảng thời gian
khá dài. Đây chính là đặc tính quán tính của lò
nhiệt. Khi tuyến tính hoá mô hình lò nhiệt, ta
xem hàm truyền của lò nhiệt như là một khâu
quán tính bậc 2 hoặc như là một khâu quán tính
bậc nhất nối tiếp với khâu trễ. Trong bài thí
nghiệm này ta xem mô hình lò nhiệt như là một
khâu quán tính bậc 2.
Trong phần này, sinh viên sẽ khảo sát khâu
quán tính bậc 2 cho trước. Dùng phương pháp
Ziegler-Nichols nhận dạng hệ thống sau đó xây
dựng lại hàm truyền. So sánh giá trị các thông
số trong hàm truyền vừa tìm được với khâu
quán tính bậc 2 cho trước này.
2. Trình tự thí nghiệm.
- Bước 1. Dùng SIMULINK để xây dựng mô
hình lò nhiệt vòng hở như sau.
Hình 1.13. Mô hình khảo sát vòng hở
Trong đó:
+Step: là tín hiệu hàm nấc thể hiện phần trăm
công suất cung cấp cho lò nhiệt.
Giá trị của hàm nấc từ 0‚1 tương ứng công suất
cung cấp 0%‚100%
+Transfer Fcn – Transfer Fcn1: mô hình lò nhiệt
tuyến tính hóa.
+Đầu ra của Transfer Fcn1 là nhiệt độ thực của
lò, đưa vào Scope để quan sát.
Bước 2. Chỉnh giá trị của hàm nấc: Step time =
0; Initial value = 0; Final value = 1;
Chỉnh thời gian mô phỏng Stop time = 600s.
Bước 3: Nhấp chuột vào ô Parameters, vào
trang Data History và tiến hành cài đặt các
thông số như hình bên dưới:
Hình 1.14. Cài đặt thông số mô hình khảo sát -
Bước 4: Nhấn Run để mô phỏng quá trình
-Bước 5: Double click vào khối Scope. Cửa sổ
Scope hiện ra như sau.
Hình 1.15. Cửa sổ Scope
- Bước 6: Vào cửa sổ Command Window để
nhập các dòng lệnh sau.
>>plot(ScopeData.time,ScopeData.signals.valu
es) % Vẽ lại đáp ứng.
>> grid on % Kẻ lưới. (chú ý, cần chạy lại mô
hình)
- Bước 7: Lúc này cửa sổ Figure hiện ra với
hình vẽ giống như hình vẽ ở cửa sổ Scope.
Vào menu Insert/Line, Insert/Text để tiến
hành kẽ tiếp tuyến và chú thích cho hình vẽ.
Kết quả cuối cùng như hình bên dưới:
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
53
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
Hình 1.16. Cửa sổ Figure-xác định các hệ số
L,T hệ thống
-Bước 8: Vào menu [File]→[Export] để lưu
thành file *.bmp
-Bước 9: Dựa vào đáp ứng ta có L ≈18,
T≈177 Dựa vào đáp ứng xác định trị số L, T
-Để xác định chính xác trị số L, T ta làm như
sau: Trên cơ sở flide ScopeData → chọn
Hide plot tools → Ticks….→ Edid Axes Ticks →
X Axis (chọn step by = 10, 20…);
Y Axis (chọn step by = 10, 20…). Khi đó xuất
hiện lưới vẽ cho phép xác định chính xác trị số
L, T.
+ Giá trị mặc định
+ Giá trị cài đặt
2.3.3. Khảo sát mô hình điều khiển nhiệt độ
ON – OFF.
1. Mục đích.
Khảo sát mô hình điều khiển nhiệt độ ON-
OFF, xét ảnh hưởng của rơle có trễ.
2 Nguyên lý điều khiển on-off(dùng khâu rơle có
trễ)
Hình 1.17. Sơ đồ nguyên lý điều khiển on-of
Phương pháp điều khiển on-of còn được gọi
là phương pháp đóng ngắt hay dùng khâu rơle
có trễ: cơ cấu chấp hành sẽ đóng nguồn để
cung cấp cho năng lượng ở mức tối đa cho thiết
bị tiêu thụ nhiệt nếu nhiệt độ đặt θ đặt lớn hơn
nhiệt độ lò θ phản hồi, ngược lại mạch điều
khiển sẽ ngắt mạch cung cấp năng lượng khi
nhiệt độ đặt nhỏ hơn nhiệt độ thực của lò.
Một vùng trễ được đưa vào để hạn chế tần số
đóng ngắt như sơ đồ khối trên:
nguồn chỉ được đóng khi sai lệch nhiệt độ e lớn
hơn một lượng ∆ và ngắt khi e bé hơn ∆. Như
vậy, nhiệt độ phản hồi θ phản hồi sẽ dao động
quanh giá trị đặt θ đặt và 2∆ còn được gọi là
vùng trễ của rơle.
Khâu rơle có trễ còn gọi là mạch so sánh Smith
trong mạch điện tử, và như vậy ∆ là giá trị thềm
hay ngưỡng.
Điều khiển on-of có ưu điểm là:
-Thiết bị tin cậy, đơn giản, chắc chắn, hệ thống
hoạt động được với mọi tải.
-Tính toán thiết kế ít phức tạp và cân chỉnh dễ
dàng.
Nhưng có khuyết điểm là sai số xác lập sẽ lớn
do hệ chỉ cân bằng động quanh nhiệt độ đặt và
thay đổi theo tải. Khuyết điểm này có thể được
hạn chế khi giảm vùng trễ bằng cách dùng phần
tử đóng ngắt điện tử ở mạch công suất.
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
54
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
Việc điều khiển nhiệt độ với chất lượng cao
có thể thực hiện bằng sơ đồ điều khiển tuyến
tính với hàm truyền hiệu chỉnh thích hợp.
3. Trình tự thí nghiệm.
Bước 1: Dùng SIMULINK để xây dựng hệ
thống điều khiển nhiệt độ on – off như sau:
Hình 1.18. Mô hình hệ thống
điều khiển nhiệt độ Trong đó:
-Step: là tín hiệu hàm nấc thể hiện nhiệt độ đặt
của lò.
-Transfer Fcn – Transfer Fcn1: mô hình lò nhiệt
tuyến tính hóa.
-Khối Relay là bộ điều khiển ON-OFF.
-Ngõ ra của Transfer Fcn1 là nhiệt độ thực của
lò, đưa vào Scope để quan sát.
-Hệ có hồi tiếp âm đơn vị.
-Khối Gain dùng để khuếch đại tín hiệu ngõ
ra khối Relay để quan sát cho rõ. Lưu ý rằng
giá trị này không làm thay đổi cấu trúc của
hệ thống mà chỉ hỗ trợ việc quan sát tín
hiệu.
Bước 2: Chỉnh giá trị của hàm nấc: Step time
=0, Initial value = 0, Final value = 100, giá trị
khối Gain = 50. Chỉnh thời gian mô phỏng Stop
time = 600s. Chỉnh thông số khối Relay theo
bảng sau:
Vùng trễ Ngõ ra cao Ngõ ra thấp
( Switch (Output (Output
on /off point) when on) when off)
+1/-1 1 (công suất 0 (công suất
100%) 0%)
+5/-5 1 (công suất 0 (công suất
100%) 0%)
+10 / -10 1 (công suất 0 (công suất
100%) 0%)
+20 / -20 1 (công suất 0 (công suất
100%) 0%)
Bước 3: Nhấn Run để mô phỏng quá trình.
Khi vùng trễ: +1 / -1; thời gian mô phỏng biến
đổi, bước mô phỏng 0.00001
Hình 1.19.
a. Mô hình hệ thống điều khiển
nhiệt độ với Gian=120
b. Đặc tính quá độ khi vùng trễ là: +1/-1
STT Đại lượng Giá trị Ghi chú
1 Đáp ứng quá độ 117
Cmax
2 Lượng quá điều 17%
chỉnh (σmax%)
3 Sai lệch điều chỉnh 17
trên ∆e1=
4 Sai lệch điều chỉnh -3
dưới ∆e2=
5 Chu kỳ đóng cắt 5,2
(T)
Khi vùng trễ: +5 / -5
Hình 1.20.
a. Mô hình hệ thống điều khiển nhiệt
độ với Gian=120
b. Đặc tính quá độ khi vùng trễ là:
+5/-5
STT Đại lượng Giá trị Ghi
chú
1 Đáp ứng quá độ Cmax 120
2 Lượng quá điều chỉnh 20%
(σmax%)
3 Sai lệch điều chỉnh trên 20
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
55
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
∆e1=
4 Sai lệch điều chỉnh dưới -8
∆e2=
5 Chu kỳ đóng cắt (T) 3,2 Khi vùng
trễ: +10 / -10
Hình 1.21.
a Mô hình hệ thống điều khiển nhiệt độ với
Gian=120
b. Đặc tính quá độ khi vùng trễ là: +10/-10
STT Đại lượng Giá trị Ghi
chú
1 Đáp ứng quá độ 125
Cmax
2 Lượng quá điều 25%
chỉnh (σmax%)
3 Sai lệch điều chỉnh 25
trên ∆e1=
4 Sai lệch điều chỉnh -12
dưới ∆e2=
5 Chu kỳ đóng cắt (T) 2,4
Khi vùng trễ: +20 / -20
Hình 1.22.
a.Mô hình hệ thống điều khiển
nhiệt độ với Gian=120
b Đặc tính quá độ khi vùng trễ là:
+10/-10
STT Đại lượng Giá Ghi chú
trị
1 Đáp ứng quá độ 133
Cmax
2 Lượng quá điều 33%
chỉnh (σmax%)
3 Sai lệch điều 33 chỉnh
trên ∆e1=
4 Sai lệch điều -12 chỉnh
dưới ∆e2=
5 Chu kỳ đóng cắt 2,2
(T)
Bước 4: Kết luận:
-Khi vùng trễ của khâu roley tăng thì đáp ứng
quá độ Cmax, lượng quá điều chỉnh (σmax%), Sai
lệch điều chỉnh đều tăng còn số lần dao động
(n) giảm.
-Để sai số đầu ra xấp xỉ bằng 0 thì ta phải cho
vùng trễ tiến về 0, chu kì đóng ngắt lúc này
cũng xấp xỉ bằng 0.
-Trong thực tế ta dường như không thể thực
hiện được bộ điều khiển như vậy, vì ở giai đoạn
xác lập bộ điều khiển phải đóng ngắt liên tục.
Ta nên lựa chọn vùng trễ thích hợp để có sự
dung hòa giữa sai số và chu kì đóng ngắt, sai
số không quá lớn và bộ điều khiển không phải
đóng ngắt liên tục để tăng tuổi thọ.
2.4 Khảo sát mô hình điều khiển nhiệt độ
PID (phương pháp Ziegler – Nichols).
1.Mục đích.
Khảo sát mô hình điều khiển nhiệt độ
dùng bộ điều khiển PID, các thông số của bộ
PID được tính theo phương pháp Ziegler-
Nichols. Từ đó so sánh chất lượng của hệ
thống ở 2 bộ điều khiển PID với bộ điều khiển
ON-OFF.
2.Nguyên lý điều khiển tuyến
tính:
Khác với nguyên lý on-of chỉ có hai giá
trị công suất ở đầu ra, sơ đồ điều khiển tuyến
tính cung cấp công suất cho tải thay đổi một
cách liên tục theo sai lệch giữa nhiệt độ đặt và
nhiệt độ thực. Bộ hiệu chỉnh xử lý tín hiệu sai
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
56
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
lệch đặt - phản hồi, cho ra tín hiệu điều khiển
làm sai lệch tiến về zero với đặc tính quá độ
mong muốn. Như vậy ở chế độ xác lập, nhiệt độ
lò và công suất cung cấp cho lò sẽ có một giá trị
xác lập, phụ thuộc vào đặc tính hệ thống.
Chất lượng hệ thống như vậy sẽ phụ
thuộc vào thông số của sơ đồ hiệu chỉnh. Một
trong những nguyên lí hiệu chỉnh thường dùng
là PID (vi phân tích phân tỉ lệ), và trong bài thí
nghiệm ta dùng P (điều khiển tỉ lệ) vì không thể
thực hiện các thời hằng của mạch vi tích phân
(ở đây có trị số khá lớn) bằng mạch analog.
Như vậy, khâu hiệu chỉnh chỉ là mạch
khuếch đại có hệ số thích hợp, dung hoà giữa
độ chính xác và chất lượng quá độ vì nếu tăng
hệ số khuếch đại, sai số sẽ giảm nhưng sẽ xuất
hiện dao động và vọt lố ở ngõ ra.
Sơ đồ khối hệ thống điều khiển tuyến tính như
sau:
Hình 1.23. Sơ đồ hệ thống điều khiển tuyến
tính
HC: hàm truyền bộ hiệu chỉnh, trong thí
nghiệm này chỉ là bộ khuếch đại.
Phương pháp điều khiển công suất được
dùng là điều rộng xung. Tải sẽ nhận công suất
trong khoảng Ton của chu kì T không đổi. Công
suất trên tải có thể điều khiển được bằng cách
thay đổi độ rộng xung tương đối a: A=Ton/T.
Và công suất cung cấp cho tải : P=a*Pmax.
Pmax: công suất cực đại ứng với trường hợp
a=1, khi phần tử điều khiển công suất là TRIAC
đóng mạch liên tục.
Vì TRIAC chỉ ngắt mạch khi dòng qua nó về
zero, chu kì T phải đủ lớn để cho TRIAC có thể
dẫn điện trong nhiều chu kì điện áp lưới (tần số
lưới điện là 50 Hz). Trong bài thí nghiệm, T
khoảng 3 giây, bộ thí nghiệm có chỉ thị hệ số a
theo đơn vị % gọi là %công suất.
3. Trình tự thí nghiệm .
- Bước 1: Dùng SIMULINK để xây dựng hệ
thống điều khiển nhiệt độ PID như sau:
Hình 1.24. Mô hình hệ thống PID điều khiển
nhiệt độ Trong đó:
- Step: là tín hiệu hàm nấc thể hiện nhiệt độ đặt
của lò.
- Transfer Fcn -Transfer Fcn1: mô hình lò nhiệt
tuyến tính hóa.
- Khối PID là bộ điều khiển PID.
- Khâu bão hòa Saturation chỉ tín hiệu điều
khiển
- Ngõ ra của Transfer Fcn1 là nhiệt độ thực của
lò, đưa vào Scope để quan sát.
- Khối Gain dùng để khuếch đại tín hiệu ngõ ra
khối Rolay để quan sát cho rõ. Lưu ý rằng giá
trị này không làm thay đổi cấu trúc của hệ
thống mà chỉ hỗ trợ việc quan sát tín hiệu.
- Bước 2: Chỉnh giá trị của hàm nấc: Step time
= 0, Initial value =0, Final value =100, giá trị
khối Gain=50, khâu bão hòa Saturation có
giới hạn là upper limit=1, lower limit=0 tượng
trưng ngõ ra bộ điều khiển có công suất cung
cấp từ 0% đến 100%.
- Bước 3: Tính toán giá trị Tính giá trị các thông
số Kp, Ki, Kd của khâu PID theo phương pháp
Ziegler-Nichols từ thông số L và T tìm được
L ≈18;
T≈177;
K=300
a) Tính các giá trị Kp, Ki, Kd theo L, T, K:
(Khi vùng trễ: +1/-1; gain=50)
Tính được:
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
57
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoAR cPSD|2935381
Kp=1.2T/LK=0.0393; Ki=Kp/2LK=3.642*10-6
;
Kd=0.5KpL/K=1.18*10-3
*Nhận xét: Ta thấy tín hiệu ngõ ra trong
trường hợp này không dao động xung
quanh tín hiệu đặt như ở bộ điều khiển ON-
OFF mà ngõ ra ở xác lập là hằng số. Tuy
nhiên, giá trị này có sai số so với tín hiệu
đặt. Chất lượng quá trình điều khiển có
nhiều ưu điểm hơn so với phương pháp
điều khiển ON-OFF.
Hình 1.25. Đặc tính quá độ khi điều khiển tuyến
tính
KIỂM SOÁT MỰC NƯỚC HỆ BỒN ĐƠN DÙNG BỘ ĐIỀU
KHIỂN PID SỐ
Mô hình hệ bồn nước được sử dụng phổ biến trong các phòng thí nghiệm điều khiển. Các giải thuật điều
khiển thường được áp dụng cho mô hình trên như điều khiển PID, điều khiển mờ… Điều khiển PID có
nhiều ưu điểm như thông dụng trong công nghiệp, không cần biết cấu trúc hệ thống mà có thể điều
chỉnh bằng thực tế. Do đó, bài báo đề cập về điều khiển PID. Bài viết sẽ khảo sát sự thay đổi các giá trị
PID để kiểm tra một mô hình đơn giản dùng cho sinh viên thực tập tại phòng thí nghiệm điều khiển của
Trường Sư phạm Kỹ Thuật Thành phố Hồ Chí Minh. Mục đích bài báo là trình bày việc thiết kế hệ thống
điều khiển rời rạc dùng phương pháp PID số trên mô phỏng và điều khiển mô hình thực “Hệ thống điều
khiển kiểm soát mực nước hệ bồn đơn”.
1.Giới Thiệu
Trong lĩnh vực điện - điện tử, bộ điều khiển
PID được sử dụng khá phổ biến. Bộ điều khiển
PID thiết kế ở hai dạng gồm thiết kế điều khiển
liên tục và thiết kế điều khiển rời rạc. Trong bài
viết này, mô phỏng “Kiểm soát mực nước hệ
bồn đơn” được thực hiện trên phần mềm
Matlab thiết kế ở dạng rời rạc. Đồng thời trong
bài viết này, tác giả đã xây dựng một mô hình
thực “Hệ thống kiểm soát mực nước hệ bồn
đơn” điều khiển bằng vi xử lý Arduino để quan
sát tính ổn định của hệ thống khi thay đổi các
giá trị PID.
Tín hiệu ngõ vào bộ điều khiển là tín
hiệu liên tục. Thuật toán điều khiển là các khâu
tỷ lệ (Proportional), khâu tích phân (Integral) và
khâu vi phân (Derivative) không làm tín hiệu bị
đứt đoạn. Vì vậy, tín hiệu ngõ ra là tín hiệu liên
tục.
Hình 1. Bộ điều khiển PID kinh điển
2.Nội dung
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
58
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
2.1 Mô hình toán của hệ bồn đơn
Phương trình vi phân mô tả hệ thống bồn nước
đơn
2.2 Hệ thống điều khiển rời rạc
Vào trước năm 1960, khi vi xử lý chưa
phát triển, hầu hết các hệ thống tự động
được thiết kế là hệ thống điều khiển liên
tục. Hệ thống điều khiển liên tục được điều
khiển bởi các mạch điện tử như mạch tỷ
lệ, mạch tích phân, mạch vi phân. Các
mạch tỷ lệ, tích phân, vi phân là cơ sở của
bộ điều khiển PID Hình 1 và khái niệm điều
khiển PID liên tục cũng ra đời. Nhưng từ
sau năm 1960, người ta bắt đầu điều khiển
hệ thống theo dạng số hóa dùng vi xử lý,
các bộ điều khiển hiện đại cũng được thiết
kế và áp dụng nhiều hơn. Để đáp ứng yêu
cầu hiện tại, người ta thiết kế hệ thống
điều khiển rời rạc hay còn gọi là điều khiển
số để phù hợp khi điều khiển bằng vi xử lý.
Bộ điều khiển PID liên tục dần được thay
thế bởi các bộ điều khiển PID số.
Hệ thống điều khiển rời rạc có nhiều ưu
điểm như dễ dàng thay đổi thuật toán điều
khiển, áp dụng các thuật toán điều khiển
phức tạp bằng cách lập trình.
Có nhiều sơ đồ điều khiển khác nhau có
thể áp dụng cho hệ rời rạc, trong đó sơ đồ
điều khiển thông dụng nhất là hiệu chỉnh
nối tiếp với bộ điều khiển GC(z) là bộ điều
khiển sớm trễ pha số,
PID số…
Hàm truyền kín của hệ thống rời rạc có
dạng
Hình 2. Hàm truyền kín của hệ thống rời
rạc Cần xác định hàm truyền GC(z) để hệ thống
thỏa mãn yêu cầu về độ ổn định, chất lượng
quá độ, sai số xác lập.
Hệ thống “Kiểm soát mực nước hệ bồn đơn”
được thiết kế mô phỏng là hệ thống điều khiển
rời rạc dùng phương pháp thiết kế bộ điều
khiển PID số.
Hàm truyền của bộ điều khiển PID số có dạng
Trong đó
T là thời gian lấy mẫu (đơn vị giây)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
59
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
Các giá trị KP, KI , KD thống nhất KP được
lựa chọn bằng phương pháp thực nghiệm.
2.3. Mô phỏng
Hệ thống “Kiểm soát mực nước hệ bồn đơn”
được thiết kế mô phỏng trên phần mềm Matlab
Simulink theo phương trình toán học (1), (2).
Hình 3. Mô phỏng điều khiển PID số cho bồn
đơn trên Matlab Simulink
Các thông số của đại lượng trong mô hình toán
(1), (2) trình bày trong Bảng 2 được lựa chọn
dựa trên mô hình thực tế mà tác giả thiết kế.
Bảng 2. Thông số của các đại lƣợng trong mô
hình toán (1), (2)
Điều khiển tỉ lệ KP có ảnh hưởng làm giảm thời
gian lên nhưng không loại bỏ sai số xác lập.
Điều khiển tích phân KI sẽ loại bỏ sai số xác lập
nhưng có thể làm đáp ứng quá độ không tốt
Điều khiển vi phân KD có tác dụng làm tăng sự
ổn định của hệ thống, giảm vọt lố và cải thiện
đáp ứng quá độ. Các giá trị KP, KD và KI được
lựa chọn theo kinh nghiệm và Bảng 3 được tóm
tắt bên dưới.
Bảng 3. Ảnh hƣởng của việc tăng các thông số
độ lợi của bộ điều khiển PID
Mô phỏng thực hiện so sánh ngõ ra của hệ
thống Hình 4 khi thay đổi các giá trị điều khiển
PI số, PD số, PID số tại điểm đặt xác định mà cụ
thể là 7 cm. Hệ thống được mô phỏng với cùng
một bộ tham số cho ba bộ điều khiển PI, PD và
PID.
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
60
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
Hình 4. Hoạt động của khâu hiệu chỉnh PI
số, PD số, PID số tại điểm đặt 7 cm
Tín hiệu nhiễu ở ngõ ra hệ thống Hình 5 được
đưa vào mô phỏng để kiểm tra tính ổn định của
hệ thống tại điểm đặt 7 cm với các bộ điều khiển
PID, PI và PD.
Hình 5. Mô phỏng hệ thống với tín hiệu nhiễu
ngõ ra
Ngõ ra của hệ thống tại điểm làm việc 7 cm khi
có tín hiệu tạo nhiễu được thể hiện ở Hình 6.
Hình 6. Hoạt động của khâu hiệu chỉnh PI số,
PD số, PID số tại điểm đặt 7 cm khi có nhiễu
Qua Hình 6, khi đưa tín hiệu nhiễu vào hệ thống
thì khâu I có tác dụng kiềm chế sự dao động.
Khi loại bỏ khâu I, với bộ điều khiển PD thì ngõ
ra hệ thống dao động nhiều, biên độ dao động
lớn. Bộ điều khiển PID khi xuất hiện nhiễu có
biên độ dao động nhỏ, vẫn bám quanh điểm làm
việc. Chung quy, bộ điều khiển PID số cho kết
quả ngõ ra của hệ thống ổn định nhất, đảm bảo
mực nước dao động tại điểm đặt 7 cm.
2.4. Điều khiển hệ bồn đơn dùng bộ điều
khiển PID
Mô hình hệ thống “Điều khiển kiểm soát mực nước
hệ bồn đơn” thực tế được thiết kế bằng các linh
kiện điều khiển như Hình 7. Chương trình điều
khiển được lập trình trên phần mềm Arduino IDE.
Các thông số KP, KI , KD được lựa chọn trong
chương trình. Động cơ bơm được bảo vệ bởi
diode chỉnh lưu 1N5407 3 A 800 V. Cực dương
động cơ bơm DC được nối với Cathode của diode
chỉnh lưu 1N5407. Cảm biến siêu âm đọc giá trị trả
về từ mực nước trong bồn hiện tại về vi điều khiển
Arduino. Vi điều khiển xử lý, truyền tín hiệu cho
cầu H, cầu H điều xung cho động cơ bơm để đạt
đến điểm đặt. Cụ thể là khi bắt đầu bơm, xung
được cấp lớn để động cơ hoạt động với điện áp
lớn nhất, khi đạt gần điểm đặt mà cụ thể ở đây là 7
cm thì xung cấp giảm, điện áp giảm. Với mỗi điểm
đặt khác nhau thì thông số KP, KI , KD được lựa
chọn khác nhau. Song song với đó, tiết diện xả của
van cũng là một tố quyết định các thông số KP, KI ,
KD. Các yếu tố hệ số xả của van, điểm đặt cần
được xác định để lựa chọn thông số KP, KI , KD
sao cho hệ thống hoạt động ổn định nhất
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
61
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
hiệu đọc xuất hiện sai lệch. Đồng thời, trong
trường hợp vi xử lý không tính toán nhanh sẽ
không kịp xuất tín hiệu điều khiển trong một chu
kì lấy mẫu điều khiển (tức thời gian lấy mẫu T).
Thời gian lấy mẫu T = 0,1 giây. Tức là cứ sau
0,1 giây thì giá trị mức nước trong bồn hiện tại
sẽ được trả về để xử lý và xuất tín hiệu điều
khiển trong chính chu kì lấy mẫu đó.
2.5. Kết quả thực tế
Qua quá trình thí nghiệm hệ thống “Kiểm soát
mực nước hệ bồn đơn”, so sánh giữa ba bộ
điều khiển số PI, PD, PID. Kết quả thu được thể
hiện trong Hình 8 và Hình 9
Hình 7. Mô hình thực tế của hệ thống
1. Vi xử lý Arduino Uno R3;
2. Cầu H L298N;
3. Cảm biến siêu âm HC-SR05;
4. Động cơ bơm nước 12 VDC;
5. Bồn nước bằng mica;
6. Van xả đường kính 6 mm;
7. Can nhựa 6 lít chứa nước;
8. Adapter 220 VAC/12 VDC;
9. Ống nước;
10. Dây cáp.
Trong quá trình thí nghiệm, điểm đặt được xác
định là 7 cm, khóa van xả được điều chỉnh bằng
với tiết diện xả được thiết kế trên bồn nước thì
khi so sánh kết quả của các bộ điều khiển PI số,
PD số, PID số mới đảm bảo tính chính xác.
Thời gian lấy mẫu T đối với hệ bồn nước đơn
cần lựa chọn phù hợp. Nếu chúng ta lấy thời
gian lấy mẫu T dài thì vi xử lý sẽ không đáp ứng
kịp sự thay đổi của hệ thống nên sẽ không điều
khiển tốt. Nếu chúng ta lấy thời gian lấy mẫu
ngắn thì sai số do nhiễu cảm biến sẽ tăng, tín
Hình 8. Kết quả thu thập từ mô hình thực tế với
điểm đặt h = 7 cm
Hình 9. Kết quả thu thập từ mô hình thực tế với
điểm đặt h = 4 cm
Chúng ta nhận thấy rằng, các kết quả thu được
ở các bộ điều khiển PI số, PD số, PID số đều có
dao động ngõ ra. Điều này không thể tránh
được trong quá trình điều khiển thực tế vì do
các yếu tố khác nhau nên gây ra dao động trên
mặt nước.
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
62
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
Bảng 5 và Bảng 6 sẽ lần lượt trình bày chất
lượng hệ thống tại điểm làm việc 7 cm và 4 cm
khi áp dụng ba bộ điều khiển PID, PI và PD trên
mô hình thực.
Qua quan sát bằng đồ thị Hình 8 và 9 và nhận
xét bằng các chỉ tiêu chất lượng, đáp ứng ngõ
ra của hệ thống tại điểm đặt 4 cm có chất lượng
tốt hơn điểm làm việc 7 cm. Hệ bồn đơn là một
hệ thống có quán tính lớn, thời gian đáp ứng
càng nhanh thường dẫn đền vọt lố cao. Tại
điểm làm việc 7 cm, với bộ điều khiển PID, thời
gian đáp ứng nhanh nên hệ thống đã sinh ra vọt
lố, sau một khoảng thời gian thì hệ thống đạt giá
trị xác lập. Trong khi đó, tại điểm đặt 4 cm thì
thời gian đáp ứng và độ vọt lố đã được dung
hòa nên ngõ ra hệ thống với bộ điều khiển PID
có chất lượng tốt hơn.
Nhìn chung với bộ điều khiển PID số cho đáp
ứng ngõ ra hệ thống đạt chất lượng tốt hơn so
với 2 bộ điều khiển còn lại.
3. Kết luận thi nghiệm
Trong bài viết này, tác giả đã xây dựng hệ thống “Kiểm soát mực nước hệ bồn đơn” theo
phương pháp điều khiển rời rạc kết hợp với đó là so sánh ba bộ điều khiển PID số, bộ điều khiển PD số
và bộ điều khiển PI số bằng mô phỏng trên phần mềm Matlab và áp dụng trên mô hình thực.
Hệ thống bồn nước đơn là một hệ chậm, để điều khiển hệ thống trong thời gian thực cần quan
tâm cải thiện về phần công suất của hệ thống. Vi điều khiển Arduino có tốc độ xử lý là 16 MHz, cảm biến
HC-SR05 có tốc độ xử lý là 40 KHz. Thời gian lấy mẫu của hệ thống là 100 ms thì vi điều khiển và cảm
biến hoàn toàn có thể đáp ứng. Phần quan tâm cần cải thiện là động cơ bơm của hệ thống. Động cơ
được sử dụng trong mô hình có giá thành rẻ, chất lượng chưa tốt, với thời gian lấy mẫu 100 ms thì động
cơ đáp ứng ổn định. Khi thay thế thời gian lấy mẫu nhanh thì động cơ không đáp ứng kịp thời làm ảnh
hưởng kết quả ngõ ra. Nếu thay thế thời gian lấy mẫu chậm hơn thì kết quả không thay đổi tốt hơn so
với ban đầu. Chính vì vậy, để có thể điều khiển trong thời gian thực cần chú ý đến động cơ có chất
lượng tốt hơn.
Nhìn chung, khi sử dụng bộ điều khiển PID số, người điều khiển cần quan tâm đến việc lựa chọn
các giá trị KP, KI , KD sao cho phù hợp với đối tượng cần điều khiển. Quá trình thực nghiệm cần được
chú trọng để lựa chọn các thông số cho bộ điều khiển PID số sao cho ngõ ra của hệ thống ổn định nhất.
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
63
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoAR cPSD|2935381
PHẦN 4: KẾT LUẬN
Điều khiển tự động đóng vai trò quan trọng trong sự phát triển của khoa học và kỹ thuật. Lĩnh
vực này hữu hiệu khắp nơi từ hệ thống phi thuyền không gian, hệ thống điều khiển tên lửa, máy bay
không người lái, người máy, tay máy trong các quy trình sản xuất hiện đại, và ngay cả trong đời sống
hàng ngày: điều khiển nhiệt độ, độ ẩm...
Phát minh đầu tiên khởi đầu cho việc phát triển của lĩng vực điều khiển tự động là bộ điều tốc ly
tâm để điều chỉnh nhiệt độ máy hơi nước của Jame Watt năm 1874. Các công trình đáng chú ý trong
bước đầu phát triển lý thuyết điều khiển là của các nhà khoa học Minorsky, Hazen, Nyquist...năm 1922.
Minorky thực hiện hệ thống điều khiển tự động các con tàu và chứng minh tính ổn định của hệ thống có
thể được xác định từ phương trình vi phân mô tả hệ thống. Năm 1932, Nyquist đã đưa ra một nguyên tắc
tương đối đơn giản để xác định tính ổn định của hệ thống vòng kìn dựa trên cơ sở đáp ứng vòng hở đối
với các tính hiệu vào hình sin ở trạng thái xác lập. Năm 1934, Hazen đã giới thiệu thuật ngữ điều chỉnh
cơ tự động (servo mechanism) cho những hệ thống điều khiển định vị vâà thảo luận đến việc thiết kế hệ
thống relay điều chỉnh động cơ với ngõ vào tín hiệu thay đổi.
Trong suốt thập niên 40 của thế kỷ 20 phương pháp đáp ứng tần số đã giúp cjo các kỹ sư thiết
kế các hệ thống vòng kín tuyến tính thỏa các yêu cầu chất lượng điều khiển.
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
64
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoAR cPSD|2935381
Từ cuối thập niên 40 cho đến đầu thập niên 50 phương pháp quỹ đạo nghiệm của Evan được phát triển
khá toàn vẹn.
Phương pháp quỹ đạo nghiệm và đáp ứng tần số được xem là cốt lõi của lý thuyết điều khiển cổ
điển cho phép ta thiết kế được những hệ thống ổn định và thỏa các chỉ tiêu chất lượng điều khiển.
Những hệ thống này được chấp nhận nhưng chưa phải là tối ưu, hoàn thiện nhất. Cho tới cuối thập niên
50 của thế kỷ 20 việc thiết kế một hay nhiều hệ thống dần dần được chuyển qua việc thiết kế một hệ
thống tối ưu với ý nghĩa đầy đủ hơn. Khi các máy móc hiện đại ngày càng phức tạp hơn với nhioều tín
hiệu vào và ra thì việc mô tả hệ thống điều khiển hiện đại này đòi hỏi một lượng rất lớn các phương trình.
Lý thuyết điều khiển cổ điển liên quan các hệ thống một ngõ vào và một ngõ ra trở nên bất lực để phân
tích các hệ thống nhiều đầu vào, nhiều đầu ra. Kể từ khoảng năm 1960 trở đi nhờ máy tính sốcho phép
ta phân tích các hệ thống phức tạp trong miền thời gian, lý thuyết điều khiển hiện đại phát triển để đối
phó với sự phức tạp của các hệ thống hiện đại. Lý thuyết điều khiển hiện đại dựa trên phân tích trong
miền thới gian và tổng hợp dùng các biến trạng thái, cho phép giải các bài toán điều khiển có các yêu
cầu chặt chẽ về độ chính xác, trọng lượng và giá thành của các hệ thống trong lĩnh vực kỹ nghệ không
gian và quân sự.
Sự phát triển gần đây của lý thuyết điều khiển hiện đại là trong nhiều lĩnh vực điểu khiển tối ưu
của các hệ thống ngẫu nhiên và tiền định. Hiện nay máy vi tính ngày càng rẽ, gọn nhưng khả năng xử lý
lại rất mạnh nên nó được dùng như là một phần tử trong các hệ thống điều khiển. Những áp dụng gần
đây của lý thuyết điều khiển hiện đại vào ngay cả những ngành kỹ thuật như: sinh học, y học, kinh tế,
kinh tế xã hội.
*Tài liệu tham khảo
- Nguyễễn Thị Phươ ng Hà (chủ biễn),Huỳnh Thái HoàngĐ-ạ i Cương Lý Thuyễết Điễều Khiể nự T ộĐ ng–Đại
Học Quốếc Gia TP. Hốề Chí Minh - 2005
- Nguyễễn Thị Phươ ng Hà –Lý Thuyễết Điễều Khiể n ệHi nạĐ– Điạ i Học Quốếc Gia TP. Hốề Chí Minh -
2012 - Huỳnh Thái Hoàng - Hệ ThốếngĐiễều Khiể n Thống Minh- Đạ i học Quốếc gia TP. Hốề Chí Minh
2006 - Nguyễễn Văn ơS n T-ạp chí Đạ i học THỦ DẦẦU MỘ T, sốế 6(25) - 2015,Đai Học Thủ Dầều Mộ t
- Võ Minh Tài, Nguyễễn Phong ưL u, Nguyễễn Văn ĐốngảHTi,ạp Chí Khoa học Sốế 40(10-2019),Đạ i Học Đốềng Tháp -
Nguyễễn Phùng Quang – MATLAB & Simulink dành cho ỉk ưs Điễều Khiể nựT ộĐ ngNXB- KH&KT Hà Nội 2004
- TS. Lương Văn Vạn - Đễề ươc ng bài giả ng MATLAB & Simulink - Đạ i ọh c SPKT Vĩnh ongL
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
65
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
lOMoARcPSD|293 538 1
-
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620
66
Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)

More Related Content

PDF
Dieu khien so
PDF
Đề tài: Cảnh báo sinh viên thông qua hệ thống quét vân tay, 9đ
PDF
Bài tập thiết kế hệ thống scada và bài giải dùng plc
DOC
Luận văn: Xây dựng hệ điều khiển mờ cho động cơ điện một chiều
PDF
Truyen dien dong
PDF
Tài liệu lập trình plc s7 200 full-01_2011_v1
PDF
Toàn tập về orcad
DOCX
Luận văn: Tìm hiểu nghiên cứu về truyền thông profibus PA, HOT
Dieu khien so
Đề tài: Cảnh báo sinh viên thông qua hệ thống quét vân tay, 9đ
Bài tập thiết kế hệ thống scada và bài giải dùng plc
Luận văn: Xây dựng hệ điều khiển mờ cho động cơ điện một chiều
Truyen dien dong
Tài liệu lập trình plc s7 200 full-01_2011_v1
Toàn tập về orcad
Luận văn: Tìm hiểu nghiên cứu về truyền thông profibus PA, HOT

What's hot (20)

PDF
[BTL] Kiểm tra tính ổn định của hệ thống liên tục
DOCX
Các phương pháp thiết kế bộ điều khiển PID.docx
DOCX
Đề tài: Mô hình toán học của động cơ đồng bộ kích thích, HAY
PPT
Bai giang ROBOT cong nghiep
PDF
Đề tài: Hệ thống điều khiển tốc độ động cơ DC sử dụng bộ PID
DOCX
Robot bám đường ứng dụng thuật toán PID - Line follow robot with PID . Chu Qu...
DOCX
Đề tài: Thiết kế bộ điều khiển tốc độ động cơ một chiều, HOT
PDF
Công thức Máy điện 1 - Chương 3 - Máy điện một chiều
PDF
Điều khiển khí nén thuỷ lực.pdf
DOC
Bài giảng kỹ thuật điều khiển tự động
PDF
Giáo trình Điều khiển Tự động của Nguyễn Thế Hùng
DOC
Mô phỏng động cơ điện 1 chiều
PDF
Bien doi lapalce
PDF
Đồ Án Thiết Kế Hệ Thống Dẫn Động Xích Tải (Kèm File Autocad Full)
DOCX
Đồ án chi tiết máy _ 1 cấp bánh răng côn.
PDF
he-thong-bai-tap-plc-co-ban
PDF
Giai phuong trinh vi phan bang bien doi laplace
PDF
Đề tài: Thiết kế hệ thống truyền động cơ khí, HAY, 9đ
PDF
Điều khiển cân bằng hệ con lắc ngược.pdf
PDF
Bài giảng về máy điện
[BTL] Kiểm tra tính ổn định của hệ thống liên tục
Các phương pháp thiết kế bộ điều khiển PID.docx
Đề tài: Mô hình toán học của động cơ đồng bộ kích thích, HAY
Bai giang ROBOT cong nghiep
Đề tài: Hệ thống điều khiển tốc độ động cơ DC sử dụng bộ PID
Robot bám đường ứng dụng thuật toán PID - Line follow robot with PID . Chu Qu...
Đề tài: Thiết kế bộ điều khiển tốc độ động cơ một chiều, HOT
Công thức Máy điện 1 - Chương 3 - Máy điện một chiều
Điều khiển khí nén thuỷ lực.pdf
Bài giảng kỹ thuật điều khiển tự động
Giáo trình Điều khiển Tự động của Nguyễn Thế Hùng
Mô phỏng động cơ điện 1 chiều
Bien doi lapalce
Đồ Án Thiết Kế Hệ Thống Dẫn Động Xích Tải (Kèm File Autocad Full)
Đồ án chi tiết máy _ 1 cấp bánh răng côn.
he-thong-bai-tap-plc-co-ban
Giai phuong trinh vi phan bang bien doi laplace
Đề tài: Thiết kế hệ thống truyền động cơ khí, HAY, 9đ
Điều khiển cân bằng hệ con lắc ngược.pdf
Bài giảng về máy điện
Ad

Similar to Hướng dẫn sử dụng MATLAB Simulink và ứng dụng điều khiển các hệ thống tự động.doc (20)

DOC
Thiết kế điều khiển tốc độ động cơ 1 chiều bằng bộ điều khiển pid.doc
DOC
Xây Dựng Mô Hình Các Phần Tử.doc
PDF
Bai thi Nghiem ky thuat dien tu
PDF
Xây dựng mô hình gián đoạn của động cơ một chiều kích từ độc lập
PDF
Matlab cho sv_tbd-dt_8-2007
PDF
SIMULINK –POWER SYSTEM BLOCKSET TRONG THÍ NGHIỆM TRUYỀN ĐỘNG ĐIỆN.pdf
PDF
D1.1-Chương 1_Mổ-Phỏng_Mô_HÌnh_Hệ_Thống.pdf
PDF
Chuong1
PPTX
THỰC HÀNH XỬ LÝ TÍN HIỆU SỐ [Autosaved].pptx
PDF
Thuc hanh mat lab tong hop
PPTX
Bai giang ky thuat laaaap trinh giap tiep
PDF
bai giang Matlab
PPT
Thuchanh Ktdk-matlab
PDF
Huong danmatlab simulink
PDF
Bai gi ng_tin_ng_d_ng_2_matlab_7_-1_-
PDF
Thinghiemxlths 121102232414-phpapp02
PDF
Thi nghiem xlths
PDF
Tailieu.vncty.com lab dsp
PDF
Lap trinh matlab_co_ban_1731
PDF
matlab co ban
Thiết kế điều khiển tốc độ động cơ 1 chiều bằng bộ điều khiển pid.doc
Xây Dựng Mô Hình Các Phần Tử.doc
Bai thi Nghiem ky thuat dien tu
Xây dựng mô hình gián đoạn của động cơ một chiều kích từ độc lập
Matlab cho sv_tbd-dt_8-2007
SIMULINK –POWER SYSTEM BLOCKSET TRONG THÍ NGHIỆM TRUYỀN ĐỘNG ĐIỆN.pdf
D1.1-Chương 1_Mổ-Phỏng_Mô_HÌnh_Hệ_Thống.pdf
Chuong1
THỰC HÀNH XỬ LÝ TÍN HIỆU SỐ [Autosaved].pptx
Thuc hanh mat lab tong hop
Bai giang ky thuat laaaap trinh giap tiep
bai giang Matlab
Thuchanh Ktdk-matlab
Huong danmatlab simulink
Bai gi ng_tin_ng_d_ng_2_matlab_7_-1_-
Thinghiemxlths 121102232414-phpapp02
Thi nghiem xlths
Tailieu.vncty.com lab dsp
Lap trinh matlab_co_ban_1731
matlab co ban
Ad

More from Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864 (20)

DOC
Yếu Tố Tự Truyện Trong Truyện Ngắn Thạch Lam Và Thanh Tịnh.doc
DOC
Từ Ngữ Biểu Thị Tâm Lí – Tình Cảm Trong Ca Dao Người Việt.doc
DOC
Quản Lý Hoạt Động Dạy Học Các Môn Khoa Học Tự Nhiên Theo Chuẩn Kiến Thức Và K...
DOC
Quản Lý Thu Thuế Giá Trị Gia Tăng Đối Với Doanh Nghiệp Ngoài Quốc Doanh Trên ...
DOC
Thu Hút Nguồn Nhân Lực Trình Độ Cao Vào Các Cơ Quan Hành Chính Nhà Nước Tỉnh ...
DOC
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thương Mại ...
DOC
Vaporisation Of Single And Binary Component Droplets In Heated Flowing Gas St...
DOC
Quản Lý Hoạt Động Dạy Học Các Trường Thpt Trên Địa Bàn Huyện Sơn Hà Tỉnh Quản...
DOC
Tác Giả Hàm Ẩn Trong Tiểu Thuyết Nguyễn Việt Hà.doc
DOC
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Ngắn Hạn Tại Ngân Hàng Công Thƣơng Chi...
DOC
Quản Lý Nhà Nước Về Nuôi Trồng Thủy Sản Nước Ngọt Trên Địa Bàn Thành Phố Hải ...
DOC
Song Song Hóa Các Thuật Toán Trên Mạng Đồ Thị.doc
DOC
Ứng Dụng Số Phức Trong Các Bài Toán Sơ Cấp.doc
DOC
Vai Trò Của Cái Bi Trong Giáo Dục Thẩm Mỹ.doc
DOC
Quản Lý Hoạt Động Giáo Dục Ngoài Giờ Lên Lớp Ở Các Trường Thcs Huyện Chư Păh ...
DOC
Thu Hút Vốn Đầu Tư Vào Lĩnh Vực Nông Nghiệp Trên Địa Bàn Tỉnh Gia Lai.doc
DOC
Quản Lý Hoạt Động Dạy Học Ngoại Ngữ Tại Các Trung Tâm Ngoại Ngữ - Tin Học Trê...
DOC
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thƣơng Mại ...
DOC
Tạo Việc Làm Cho Thanh Niên Trên Địa Bàn Quận Thanh Khê, Thành Phố Đà Nẵng.doc
DOC
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Trung Và Dài Hạn Tại Ngân Hàng Thương ...
Yếu Tố Tự Truyện Trong Truyện Ngắn Thạch Lam Và Thanh Tịnh.doc
Từ Ngữ Biểu Thị Tâm Lí – Tình Cảm Trong Ca Dao Người Việt.doc
Quản Lý Hoạt Động Dạy Học Các Môn Khoa Học Tự Nhiên Theo Chuẩn Kiến Thức Và K...
Quản Lý Thu Thuế Giá Trị Gia Tăng Đối Với Doanh Nghiệp Ngoài Quốc Doanh Trên ...
Thu Hút Nguồn Nhân Lực Trình Độ Cao Vào Các Cơ Quan Hành Chính Nhà Nước Tỉnh ...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thương Mại ...
Vaporisation Of Single And Binary Component Droplets In Heated Flowing Gas St...
Quản Lý Hoạt Động Dạy Học Các Trường Thpt Trên Địa Bàn Huyện Sơn Hà Tỉnh Quản...
Tác Giả Hàm Ẩn Trong Tiểu Thuyết Nguyễn Việt Hà.doc
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Ngắn Hạn Tại Ngân Hàng Công Thƣơng Chi...
Quản Lý Nhà Nước Về Nuôi Trồng Thủy Sản Nước Ngọt Trên Địa Bàn Thành Phố Hải ...
Song Song Hóa Các Thuật Toán Trên Mạng Đồ Thị.doc
Ứng Dụng Số Phức Trong Các Bài Toán Sơ Cấp.doc
Vai Trò Của Cái Bi Trong Giáo Dục Thẩm Mỹ.doc
Quản Lý Hoạt Động Giáo Dục Ngoài Giờ Lên Lớp Ở Các Trường Thcs Huyện Chư Păh ...
Thu Hút Vốn Đầu Tư Vào Lĩnh Vực Nông Nghiệp Trên Địa Bàn Tỉnh Gia Lai.doc
Quản Lý Hoạt Động Dạy Học Ngoại Ngữ Tại Các Trung Tâm Ngoại Ngữ - Tin Học Trê...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thƣơng Mại ...
Tạo Việc Làm Cho Thanh Niên Trên Địa Bàn Quận Thanh Khê, Thành Phố Đà Nẵng.doc
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Trung Và Dài Hạn Tại Ngân Hàng Thương ...

Recently uploaded (20)

PDF
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 11 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
PPTX
2. tràn khí màng phổi bệnh học nộii.pptx
PDF
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 11 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
PDF
bo-trac-nghiem-toan-11 dành cho cả năm học
PDF
BÀI HỌC ÔN TẬP CHO THI NỘI DUNG MÔN HOẠCH ĐỊNH
PDF
TeétOrganicChemistryFromVietNamVeryHardd
PPTX
Bài 9.4 TUYẾN SINH DỤC NAM VÀ NU CẤU TẠO VÀ CHỨC NĂNG
DOCX
Set menu 3 món rất hay và hiện đại dành cho người
PDF
BỘ TÀI LIỆU CHINH PHỤC ĐỈNH CAO TIẾNG ANH NĂM 2026 CHUYÊN ĐỀ ÔN HỌC SINH GIỎI...
PPTX
Flashcard giải pháp đơn giản – trực quan – hiệu quả, giúp học từ vựng theo t...
PDF
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
PDF
12894-44864-1-CE-1037-1038_Văn bản của bài báo.pdf
PPT
SINH 8 TUYẾN YÊN TUYẾN GIÁP CÂU TẠO VÀ CHỨC NĂNG
DOCX
Chủ nghĩa xã hội khoa học - Đề Cương Cuối Kỳ.docx
PDF
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 12 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
PDF
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
PPTX
Giáo án Lý Luận Chung về Hành chính Nhà nước cập nhật mới....
PDF
12894-44864-1-CE-1037-1038_Văn bản của bài báo.pdf
PDF
Public economy và vai trò trong phân bổ nguồn lực, cung cấp hàng hóa công, đi...
PPTX
17. ĐẠI CƯƠNG GÃY XƯƠNG bệnh học ngoại.pptx
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 11 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
2. tràn khí màng phổi bệnh học nộii.pptx
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 11 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
bo-trac-nghiem-toan-11 dành cho cả năm học
BÀI HỌC ÔN TẬP CHO THI NỘI DUNG MÔN HOẠCH ĐỊNH
TeétOrganicChemistryFromVietNamVeryHardd
Bài 9.4 TUYẾN SINH DỤC NAM VÀ NU CẤU TẠO VÀ CHỨC NĂNG
Set menu 3 món rất hay và hiện đại dành cho người
BỘ TÀI LIỆU CHINH PHỤC ĐỈNH CAO TIẾNG ANH NĂM 2026 CHUYÊN ĐỀ ÔN HỌC SINH GIỎI...
Flashcard giải pháp đơn giản – trực quan – hiệu quả, giúp học từ vựng theo t...
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
12894-44864-1-CE-1037-1038_Văn bản của bài báo.pdf
SINH 8 TUYẾN YÊN TUYẾN GIÁP CÂU TẠO VÀ CHỨC NĂNG
Chủ nghĩa xã hội khoa học - Đề Cương Cuối Kỳ.docx
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 12 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
Giáo án Lý Luận Chung về Hành chính Nhà nước cập nhật mới....
12894-44864-1-CE-1037-1038_Văn bản của bài báo.pdf
Public economy và vai trò trong phân bổ nguồn lực, cung cấp hàng hóa công, đi...
17. ĐẠI CƯƠNG GÃY XƯƠNG bệnh học ngoại.pptx

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

  • 1. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoAR cPSD|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
  • 2. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoAR cPSD|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
  • 3. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 LÊ MINH THÀNH 0 lOMoAR cPSD|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ể hoà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)
  • 4. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 MAI LÊ THÀNH NHÂN 1 lOMoAR cPSD|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………………………………
  • 5. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 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 toá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 (nguyenphihung1009@gmail.com)
  • 6. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoAR cPSD|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 toá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ố……………………………………………………………………………………
  • 7. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 3 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 8. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoAR cPSD|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…………………………………………………………………………
  • 9. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 4 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 10. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoAR cPSD|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 quá 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 quá 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 toá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 ………………………………
  • 11. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 5 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 12. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoAR cPSD|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………………………………………………………………………………………………
  • 13. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 6 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 14. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoAR cPSD|2935381 PHẦN 1: SƠ LƯỢC VỀ MATLAB I. Phần mềm Matlab 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ý toá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 chuyên gia toá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ể. - Đị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. - Đối với ngôn ngữ lập trình thông thường để giải bài toán cơ học người ta phải thực hiện qua các bước sau: +Xây dựng mô hình cơ học → Xây dựng mô hình toán học → áp dụng phương pháp toán +Xây dựng thuật toán → Lập trình - Trong Matlab ta không cần quan tâm nhiều đến việc sử dụng phương pháp toán II. Phạm vi ứng dụng Matlab đóng vai trò như một công cụ tính toán mạnh cho phép nhanh chóng tính ra trị số 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. Malab cung cấp các công cụ xử lý các mảng dữ liệu: véc tơ và ma trận, cho phép tính toán ra kết quả của các biểu thức với dữ liệu đầu 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. + Các phép nội suy để xử lý dữ liệu trong bảng. + Thuật giải bài toán tối ưu. + Phép tích phân vi phân. + Công cụ đồ hoạ . 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. Ngoài ra còn có các module ứng dụng riêng phục vụ cho nghiên cứu sâu như: + 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 + Simulink cho phép mô phỏng các cơ cấu máy + Stateflow: để nghiên cứu các dòng chảy khí hay chất lỏng + Fuzzy logic: nghiên cứu lôgic mờ + …v.v III. Cài đặt phần mềm Matlab
  • 15. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 7 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 16. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 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 3: Nhập Enter File Installation Key 09806-07443-53955-64350-21751-41297 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 quá trình cài đặt hoà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>binwin64matlab_st artup_pluginslmgrimpl thay thế file cũ để hoàn tất kích hoạt.
  • 17. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 8 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 18. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoAR cPSD|2935381 PHẦN 2: GIỚI THIỆU VỀ MATLAB VÀ PHẠM VI ỨNG DỤNG
  • 19. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 9 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 20. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoAR cPSD|2935381 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 Để 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 Menu Toolbar ( Menu (Thanh Công Cụ) Bar lệnh) Cửa sổ mục chứ a thư hiện thời Command Cửa sổ l ệnh) Window Cửa sổ lư u trữ các lệnh đã thực hiện ( Hình 1: Giao diện Matlap) ✻ 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: 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, ngoài ra có một số lệnh thực hiện riêng của Matlab. 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...). 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
  • 21. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 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ó,...) ✻ Cửa sổ 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 toá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 luôn 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 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. 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 đó. 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 toà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 toàn bộ lưu trữ các biến có trong bộ nhớ hiện thời của máy tính. Gõ help <tên lệnh>, trên cửa sổ sẽ hiện cho cách thức sử dụng lệnh đó. 1.2 Cách thức sử dụng phần mềm Matlab a. Tính toá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. Đư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 toán ta chỉ cần gọi tệp này vào Matlab. Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 22. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 b. Lập trình ứng dụ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. Để 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. Để 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. 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 toán biểu thức số: 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 phép tính: Cộng +, Trừ -, Nhân *, Chia /, Luỹ thừa ^ và dấu ngoặc ưu tiên phép tinh. 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... 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 Các hằng số đã định nghĩa: realmax, eps,realmin, pi, inf Khi viết biểu thức, kết quả tính toán sẽ được lưu trữ vào trong biến có tên mặc định là ans. 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: <tên biến> = <biểu thức> hoặc <tên biến> = <biểu thức>: Trong đó: 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. ở 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 tra giá trị hiện thời của biến ta chỉ cần gõ tên biến. 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 FileShow Work Space Để xoá 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á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 Phím xoá lùi, phím del, end, pageup, pagedown.. 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,... d. Quy định việc hiển thị kết quả số ra màn hình Dùng lệnh format: Các chế độ chính sau đây: FORMAT Chế độ mặc định có ý nghĩa như FORMAT SHORT FORMAT SHORT Ghi chế độ thập phân với 5 chữ số sau dấu phẩy FORMAT LONG Ghi chế độ thập phân với 15 chữ số sau dấu phẩy FORMAT SHORT E Chế độ ghi số e với 5 chữ số thập phân.
  • 23. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 11 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 24. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 FORMAT LONG E Chế độ ghi số e với 15 chữ số thập phân.. FORMAT + Sử dụng dấu +, - ghi trước số 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 Trong Matlab, ta thường dùng một số loại tệp chính: a. Tệp *.m (m. file): Tệp này có nhiều chức năng: 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 Là chương trình ứng dụng dùng ngôn ngữ lập trình của Matlab 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. c. Một số dạng tệp khác: 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...) 2.2. Các lệnh xử lý tệp .mat 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 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 ghi các biến trong môi trường làm việc của Matlab b. Lệnh Load hoặc FileLoad Work Space 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 FileLoad 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. 2.3. Đường dẫn 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. 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". Để 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 FileSet Path a. Lệnh path: 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 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 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 d. Sử dụng menu lệnh: FileSet Path
  • 25. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 12 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 26. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 Lệnh FileSet 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. *Để thêm vào đường dẫn thường trực ta thực hiện các thao tác sau: Nháy chuột vào Path/ Add to Path, 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 FileSave Path Vào Menu FileExit 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: 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 PathRemove From path Vào Menu FileExit Browser để thoát khỏi hộp thoại Với các phiên bản Matlab đời cao (từ 6.5 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 thoát khỏi Matlab, đường dẫn cũng tự động được xóa khỏi bộ nhớ) 2.4. Các lệnh xử lý m. file Để 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. Để 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ụ Để 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
  • 27. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 13 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 28. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoAR cPSD|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: - Số: là ma trận có kích thước 1x1 (1 hàng, 1 cột) - Véctơ: là ma trận có số hàng, hoặc số cột bằng 1 + 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 - Ma trận số (mảng số): là ma trận có kích thước mxn (m hàng, n cột) trong đó các phần tử của ma trận đều là dữ liệu dạng số. - 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ự. 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 Các nguyên tắc chung Các phần tử của mảng được bao trong dấu ngoặc vuông: [ ] 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" Ví dụ: Nếu ta gõ: C=[3.5 4.3 5.0] , ta sẽ nhận được véc tơ hàng có ba phần tử là 3.5, 4.3 và 5.0 và trên màn hình của Matlab sẽ hiện ra: C = 3.5000 4.3000 5.0000 Nếu ta nhập vào: V=[3.5; 4.3; 5.0], hoặc V=[3.5000 4.3000 5.0000] Ta sẽ nhận được véc tơ cột có ba phần tử là 3.5, 4.3 và 5.0 và trên màn hình của Matlab sẽ hiện ra: V = 3.5000 4.3000 5.0000 Câu lệnh: M=[134;537;214] Sẽ cho kết quả ma trận 3 hàng, 3 cột M = 1 3 4 5 3 7 2 1 4 Chú ý: Các phần tử trong mỗi hàng khi nhập vào phải như nhau 1.2 Dùng toán tử " : " Cú pháp: <Tên biến>=<Begin>: <Step>: <Limit> Sẽ tạo ra véc tơ hàng có phần tử đầu tiên là giá trị <Begin>, gia số giữa các phần tử là <Step>, giá trị phần tử cuối cùng không vượt quá <Limit> Chú ý: Nếu bỏ qua trị số của <Step>, máy sẽ nhận gia số =1 Ví dụ: Nếu nhập vào sau dấu nhắc dòng lệnh Y=1:2:10 Ta nhận được véc tơ hàng: Y = 13579 Nếu nhập vào sau dấu nhắc dòng lệnh: Y=1:9 Ta nhận được véc tơ: Y = 123456789 1.3 Dùng hàm linspace và logspace: Cú pháp: <tên biến>=linspace(<MinVal>, <MaxVal>, <Num>) Hàm sẽ tạo ra véc tơ hàng có số phần tử bằng <Num>, gia số giữa các phần tử như nhau và bằng (MaxVal-MinVal)/(Num-1), phần
  • 29. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 14 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 30. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 tử đầu tiên có giá trị bằng MinVal, phần tử cuối cùng có giá trị bằng MaxVal Ví dụ: Dùng hàm: linspace(1,11,6) Ta nhận được véc tơ ans = 1357911 Ứng dụng: Hàm linspace rất tiện dụng trong việc xác định véc tơ các giá trị trên trục hoành khi vẽ đồ thị Hàm logspace Có cú pháp tương tự như hàm linspace, tuy nhiên các phần tử biến thiên theo quy luật hàm số mũ với gia số của các số mũ tăng đều và bằng: (MaxVal-MinVal)/(Num-1). Ví dụ: logspace(1,6,6) Sẽ cho kết quả: ans = 10 100 1000 10000 100000 1000000 1.4 Sử dụng các mảng chuẩn 1.4.1 Ma trận có các phần tử bằng 0 Ứng dụng: Ma trận có các phần tử bằng 0 thường dùng trong các trường hợp sau: 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 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 = 0 0 0 0 0 0 1.4.2. Ma trận có các phần tử bằng 1 Ứng dụng: Ma trận có các phần tử bằng 1 thường dùng trong các trường hợp sau: Dùng làm ma trận mồi trong phép tính tích các phần tử tương ứng của nhiều ma trận (dùng vòng lặp) Dùng để tạo ma trận có các phần tử bằng nhau (dùng khi thực hiện phép tính cộng hoặc trừ từng phần tử của ma trận với cùng một số). Sử dụng hàm ones: Cú pháp: <Tên biến>=ones (<RowNum>, <ColumnNum>) Tạo ra ma trận với các phần tử 1, có số hàng là <RowNum>, số cột là <ColumnNum>. Ví dụ: M=ones(3,4) Sẽ cho kết quả M = 1111 1111 1111 M=3.5*ones(3,2) Sẽ cho kết quả M = 3.5 3.5 3.5 3.5 3.5 3.5 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 I=eye(4) Sẽ tạo ra ma trận I = 1000 0100
  • 31. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 15 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 32. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 0010 0001 1.4.4. Tạo các mảng đường chéo ứng dụng Mảng đường chéo thường gặp ở các ma trận độ cứng và ma trận khối lượng trong tính toán bền Dùng hàm diag Cú pháp: <tên biến>=diag(v) <tên biến>=diag(v,n) ở đây: V là một véc tơ hàng, hoặc cột. hoặc có thể là ma trận n là số nguyên chỉ đường chéo nào của ma trận sẽ đặt các phần tử của véc tơ V Nếu V là một véc tơ, hàm sẽ cho kết quả là ma trận vuông có các phần tử trên đường chéo chỉ định là các phần tử của véc tơ V Nếu V là một ma trận, sẽ trả kết quả là véc tơ cột của các phần tử nằm trên đường chéo của ma trận V Nếu không chỉ ra n, các phần tử của V sẽ nằm trên đường chéo chính Ví dụ: V=[1 3 5 3]; M=diag(V) Sẽ cho kết quả M = 1000 0300 0050 0003 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 00500 00030 V=[3 4 6;5 6 7;8 9 6]; M=diag(V) Cho kết quả: M = 3 6 6 1.4.5. Mảng các số ngẫu nhiên ứng dụng: Mảng các số ngẫu nhiên dùng nhiều trong đồ hoạ hoặc tạo các nhiễu trong mô phỏng và sử lý số liêụ thực nghiệm Sử dụng lệnh rand: <tên biến>= rand(số hàng, số cột) Tạo ra mảng các số ngẫu nhiên với số hàng, cột chỉ định 1.5 Mảng tạo từ tệp Nếu ta ghi các mảng trong một tệp dạng m.file (theo đúng quy cách tạo mảng trong Matlab như trình bày ở trên), ta hoàn toàn có thể gọi mảng vào môi trường làm việc của Matlab bằng cách nhập tên của m.file sau dấu nhắc của Matlab và ấn Enter. Điều này rất thuận tiện khi ta dữ liệu 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 M1,2 M2,2
  • 33. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 16 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 34. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 Ví dụ: M1=M(:,1) 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 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 Ví dụ: M1=M([2 4],[3:end]) Sẽ tạo ra ma trận M1 từ hàng 2 và 4 của ma trận M, mỗi hàng lấy ra từ phần tử thứ 3 đến phần tử cuối cùng 2.2 Các ứng dụng của việc truy cập các phần tử của mảng 2.2.1. Lấy các phần tử của mảng ra để tính toán Ví dụ: S=V(2)^2+V(5)^2 Sẽ tính tổng bình phương các giá trị của phần tử thứ 2 và thứ 5 của véc tơ V S=M(1,2)-M(2,3) Sẽ tìm ra hiệu của hai phần tử ở hàng 1 cột 2 và hàng 2 cột 3 của ma trận M 2.2.2. Thay đổi giá trị của từng phần tử của mảng Ví dụ: Để tạo ra ma trận M =[ 1 0 0 ], 00 3 0 0 0 ta thực hiện theo các bước sau: - 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ở Ví dụ: Để lấy ra hàng đầu tiên của ma trận M ta dùng lệnh: V=M(1,:) Để tạo ra véc tơ mới bằng cách bỏ đi phần tử đầu tiên của véc tơ V, ta dùng lệnh: V1=V(2:end); 2.2.4. Loại bỏ bớt các phần tử của mảng: Để 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: "[ ]" Ví dụ: nếu ta có ma trận M= 2 3 4 5 3 7 3 2 8 Sau khi dùng phép gán: M(:,1)=[ ] Ta nhận được: M = 3 4 3 7 2 8 2.2.5. Hợp mảng mới từ các mảng thành phần (nối mảng) Để tạo mảng từ các mảng thành phần ta dùng dấu "[ ]" bên trong cần chỉ rõ các phần tử đưa vào mảng, nếu các phần tử nằm trên 1 hàng, chúng cách nhau bằn dấu cách (bước trống), để xuống dòng ta dùng dấu ; Ví dụ: Nếu ta có 2 véc tơ: V1=[3 5 7 9], V2=[4 6 8 2 7 3] Khi dùng lệnh: V=[V1(2:end) V2([1 3 4])] Ta sẽ nhận được: V = 579482 III. Các phép tính thực hiện trên mảng 3.1 Các phép toán thông thường 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 mảng mới sẽ bằng tổng từng phần tử tương ứng của các mảng thành phần Điều kiện: Các mảng M1, M2,... phải có cùng kích thước. 3.1.2: Phép trừ Cú pháp: M=M1 - M2 - M3-...
  • 35. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 17 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 36. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 ý + Cộng (không có toán tử.+) - Trừ (không có toá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ử M(i,j)=M1(i,j)-M2(i,j)-M3(i,j)-.. Điều kiện: Các mảng M1, M2,... phải có cùng kích thước. 3.1.3. Phép nhân Cú pháp: M=A*B ý 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: Điều kiện: Số cột của ma trận A phải bằng số hàng của ma trận B. 3.1.4 Phép luỹ thừa Cú pháp: M=A^n, trong đó n là số nguyên dương Có kết quả như là phép nhân n ma trận A với nhau: Điều kiện: Các ma trận A phải là ma trận vuông 3.1.5 Phép chia hai ma trận Cú pháp: M=A/B ý nghĩa: Phép chia ma trận hoàn toàn giống như phép nhân với ma trận nghịch đảo: M=A/B M=A*B-1 Điều kiện: Các ma trận A, B phải là các ma trận vuông cùng kích thước 3.2. Sử dụng các toán tử với dấu "." 3.2.1. Ý nghĩa: Các toán tử có dấu "." (xem bảng dưới ) sẽ cho phép thao thác trên từng phần tử của mảng 3.2.2 Các ví dụ: VD1: Xác định véc tơ S, với các phần tử được lOMoAR cPSD|2935381 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ử của nó được xác định bằng biểu thức: V(i)=2*Y(i)-b, với Y =[3.5 6.2 7.0 5.4 6.2], b=1.5 ở đây ta sử dụng biểu thức véc tơ: S=2*Y-b*ones(1,5) VD3: giải hệ phương trình: {4 X 1+7 X3=5 3 X1+5 X2−4 X3= 12 2 X 1+5 X 2+ X3=4 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: X=eye(3,3)/M*Y X = 3.0000 -0.2000 1.0000 3.3. Các hàm dùng trên mảng 3.3.1 Các hàm dùng chung: Tất cả các hàm tính toán trên dữ liệu số đều có thể thực hiện trên dữ liệu mảng, và quả là mảng có cùng kích cỡ Ví dụ: Để vẽ đồ thị của hàm số: Y = sin2 ( X ) +2 cos( 2 X ) ; X=0 1+cos2 ( X ) đến Pi Ta sử dụng các lệnh sau: X=linspace(0,pi,20); Y=(sin(X).^2+2*cos(2*X))./ (ones(1,20)+cos(X).^2); plot(X,Y) 3.2 Các hàm dùng cho việc xử lý dữ liệu a. Hàm size cú pháp:
  • 37. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 18 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 38. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 S=size(A): đưa ra véc tơ hàng chỉ số lượng hàng và cột của ma trận [r,c]=size(A) gán số hàng cho r, số cột cho c 4 0 7 Ví dụ: Nếu ta có ma trận M = 3 5 − 4 2 5 1 Nếu gọi lệnh: S=size(M), ta nhận được: S = 3 3 b. Hàm length cú pháp: S=length(V): đưa ra kết quả là 1 giá trị số bằng tổng số phần tử có trong vectơ V c. Hàm min, max Cú pháp: min(A) max(A) Nếu A là một véc tơ, hàm sẽ trả kết quả là giá 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à một véc tơ hàng với các phần tử là min (max) của các phần tử trong mỗi cột trong ma trận A d. Hàm sum Cú pháp: sum(A) Nếu A là một véc tơ, hàm sẽ trả kết quả là tổng các phần tử của véc tơ Nếu A là một ma trận, hàm sẽ trả kết quả là một véc tơ hàng với các phần tử là tổng các phần tử của mỗi cột trong ma trận A e. Hàm cumsum Cú pháp: B = cumsum(A) B = cumsum(A,dim) Mô tả: Nếu A là một véc tơ, B = cumsum(A) sẽ đưa ra kết quả là véc tơ B có các phần tử là tổng tích luỹ của các phần tử của véc tơ A: được xác định bằng công thức: 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 phần tử của nó tương ứng là tổng tích luỹ của các phần tử trên từng cột của ma trận A. B = cumsum(A,dim) Sẽ đưa ra kết quả là ma trận B có cùng kích thước với A, các phần tử 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ỳ thuộc vào trị số của <dim>. Ví dụ cumsum(A,1) sẽ tính dọc theo các cột, cumsum(A,2) sẽ tính dọc theo các hàng. Thí dụ cumsum(1:5) = [1 3 6 10 15] A=[123;456]; cumsum(A) 1 2 3 5 7 9 cumsum(A,2) 1 3 6 4915 f. Hàm diff Tính toán độ lệch giữa các phần tử trong mảng Cú pháp Y = diff(X) Y = diff(X,n) Mô tả: Y = diff(X) tính ra độ lệch giữa các phần tử kề nhau của véc tơ X. *Nếu X là véc tơ kết quả đưa ra là véc tơ ít hơn X 1 phần tử: [X(2)-X(1) X(3)-X(2)... X(n)-X(n-1)] *Nếu X là ma trận, hàm diff(X) đưa ra kết quả là ma trận cột các độ lệch: [X(2:m,:)-X(1:m-1,:)] Y = diff(X,n) Đưa ra véc tơ độ sai lệch bậc n: như vậy diff(X,2) cho ra cùng kết quả với diff(diff(X)).
  • 39. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 19 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 40. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoAR cPSD|2935381 CHƯƠNG 3. ĐỒ HỌA TRONG MATLAB 3.1. Những vấn đề chung Một đồ thị hoàn chỉnh bao gồm những thành phần sau: - Đường cong biểu diễn mối quan hệ các giá trị - Tên của đồ thị - Các trục toạ độ - Các chú thích khác trên đồ thị Sau đây chúng ta xem xét từng thành phần trong môi trường làm việc của Matlab. 3.2. Đường cong biểu diễn mỗi quan hệ của các giá trị Thông thường chúng ta đã biết các loại đồ thị 2 chiều và 3chiều. Trong bài này chúng ta chỉ nghiên cứu đến loại đồ thị phẳng (2chiều) còn chỉ giới thiệu về đồ thị 3 chiều. 3.2.1. Đồ thị 2 chiều a) Lệnh plot: Cú pháp 1: plot(Y) plot(X,Y) Giải thích: - Nếu Y là một véc tơ, hàm plot(y) sẽ in ra đồ thị Y phụ thuộc vào chỉ số của nó trong véc tơ. - Nếu X, Y là hai véc tơ cùng độ lớn hàm plot(X,Y) sẽ in ra đồ thị hàm Y(X) - Nếu đối số trong hàm bao gồm nhiều bộ X, Y, Hàm sẽ đưa ra được nhiều đồ thị trên màn hình và Matlab sẽ tự động hiển thị các đồ thị với các màu khác nhau. Ví dụ: để vẽ đồ thị hàm Sin với trị số hoành độ từ 0 đến 2 Pi ta dùng các dòng lệnh sau: X=0:Pi/100:2*Pi; Y=Sin(X); plot(X,Y) Cú pháp 2: plot(X1,Y1,X2,Y2,X3,Y3) Giải thích: Cú pháp 2 cho phép vẽ các đường cong Y1(X1), Y2(X2), Y3(X3)... trên cùng 1 hệ trục tọa độ. Yêu cầu: các cặp véc tơ (X1,Y1), (X2,Y2), (X3,Y3)... phải có cùng kích thước. Ví dụ: Vẽ nhiều đường cong trên cùng một hệ trục Nếu ta có: y1= sin(x); y2=sin(x-0.25); y3=sin(x- 0.5) Để có thể so sánh đồ thị pha y1(x), y2(x), y3(x) trên cùng một hệ trục ta cũng dùng lệnh plot Hàm: plot(x, y,x,y2,x,y3) sẽ đưa ra bộ đồ thị như hình vẽ Để làm nổi bật hay để phân biệt các đường cong cho tiện theo dõi hay trình bày, ta cũng có thể chỉ định kiểu đường nét, màu sắc và kiểu đánh dấu các điểm nút Cú pháp 3: plot(x,y,'color_style_marker') - Giải thích: trong lệnh trên, color_style_marker là một bộ qui định màu sắc, kiểu đường và kiểu đánh dấu các điểm nút. Chúng được phân cách trong dấu nháy đơn. - Một số chữ cái qui định kiểu màu: 'c', 'm', 'y', 'r', 'g', 'b', 'w' và 'k'. Chúng tương ứng với các màu xanh da trời, tím đỏ, vàng, đỏ, xanh lá cây, xanh nước biển, trắng và đen. - Các ký tự chỉ kiểu đường bao gồm '-' đối với nét liền, '- -' đối với đường gạnh, ':' đường chấm, '-.' đường chấm gạch, và 'none' khi không vẽ đường. - Các ký tự để đánh dấu điểm bao gồm: '+', 'o', '*', và 'x'. Ví dụ: câu lệnh plot(x,y,'y:+') vẽ ra đồ thị là đường chấm chấm màu vàng có dấu + đanh dấu các điểm nút. Một số chú ý: - Lệnh plot sẽ tự động mở ra một cửa sổ đồ hoạ mới. Nếu cửa sổ này đã tồn tại lệnh plot mặc định sẽ sử dụng cửa sổ này. Để mở một cửa sổ mới và đưa nó thành hiện thời ta dùng lệnh figure. - Để đưa một cửa sổ đã mở thành hiện thời ta dùng câu lệnh figure(n), trong đó n là số trên thanh tiêu đề của cửa sổ.
  • 41. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 20 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 42. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 - Vẽ thêm đường cong mới vào một đồ thị đã có: Lệnh hold cho phép bạn thêm đường cong vào đồ thị đã có. Nếu bạn đặt chế độ hold on Matlab sẽ không xoá đồ thị đã có và vẽ thêm đường cong mới khi gọi lệnh vẽ. Ví dụ: Để vẽ 3 đường cong y1, y2, y3 như ví dụ ở trên ta cũng có thể viết bằng 3 lệnh plot riêng biệt, chỉ cần thêm lệnh hold on: hold on plot(x,y1) plot(x,y2) plot(x,y3) b) Lệnh subplot: Hàm subplot sẽ chia cửa sổ đồ hoạ ra nhiều phần để hiển thị nhiều đồ thị trên cùng một cửa sổ Cú pháp: subplot(m,n,p) Trong đó m,n,p là các số nguyên, sẽ chia cửa sổ đồ hoạ ra m hàng và n cột và đưa phần cửa sổ thứ p thành hiện thời. Chỉ số các cửa sổ con được xác định từ phải qua trái và từ trên xuống dưới. Ví dụ: Để vẽ 3 đường cong y1, y2, y3 ở ví dụ trên nhưng trên 3 đồ thị trong cùng một cửa sổ đồ hoạ, ta thực hiện lệnh subplot subplot(1,3,1) plot(x,y1) subplot(1,3,2) plot(x,y2) subplot(1,3,3) plot(x,y3) 3.2.2. Đồ thị 3 chiều (dạng lưới và bề mặt) 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 Để hiển thị hàm 2 biến z=f(x,y), hãy tạo các ma trận x và y chứa đựng các hàng và cột lặp. Sau đó sử dụng các ma trận này để tính ra đồ thị của hàm * Hàm meshgrid chuyển phạm vi được định nghĩa bằng một véc tơ hoặc hai véc tơ x, y thành các ma trận X, Y dùng để tính ra giá trị của hàm. Các hàng của X là các bản sao của véc tơ x, các cột của Y là copy của véc tơ y. Cú pháp: [X,Y] = meshgrid(x,y) [X,Y] = meshgrid(x) [X,Y,Z] = meshgrid(x,y,z) Thí dụ: Hàm [X,Y] = meshgrid(1:3,10:14) Tạo hai mảng x và y sau X = 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 Y = 10 10 10 11 11 11 12 12 12 13 13 13 14 14 14 * Hàm Mesh Cú pháp 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ị hoà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')
  • 43. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 21 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 44. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 title(…,'PropertyName',PropertyValue,…) Giải thích: - 'string': Là tên của đồ thị mà chúng ta cần (Nhập từ bàn phím) - '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) 3.3. Các trục toạ độ 3.3.1. Điều khiển các trục toạ độ Sử dụng hàm axis: Cú pháp; axis square: Tạo cho toà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ị 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 3.3.2. Các chú thích trên trục toạ độ 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ó 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.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 Cú pháp: text(x,y,'string') text(x,y,z,'string') text(...,'PropertyName',PropertyValu e,...) Giải thích: Trong lệnh text ở trên: x,y, z là tọa độ vị trí ghi dòng chú thích - string: Tên của dòng chú thích 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) 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',<property value>...). ở đâ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 bên trong dấu ' ') - <property value> là giá trị của thuộc tính 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 3.5.2. Các ký tự đặc biệt
  • 45. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 22 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 46. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 Trong các chuỗi của đối số của các hàm viết chữ trong chế độ đồ hoạ ta có thể đưa vào các ký tự điều khiển để xuất ra các chữ cái hy lạp, ký hiệu toán học, và kiểu font. Các mã điều khiển được đặt sau dấu '' Chúng ta có thể điều khiển trực tiếp kiểu font chữ bằng các ký tự điều khiển:fontname 3.5.4. Các tuỳ chọn của lệnh plot Trong lệnh plot ta có thể đưa vào các tuỳ chọn ở dạng: plot(...,'PropertyName',PropertyValue,...) Trong đó 'PropertyName' là tên các thuộc tính, PropertyValue là giá trị của thuộc tính mà ta muốn gán: 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ẽ phải đặt trong dấu {}. kế tiếp phần điều khiển 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 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); thị: Tên thuộc ý nghĩa tính 'LineWidt điều khiển bề dầy h' của nét vẽ đồ thị Điều khiển màu 'MarkerE của nét vẽ biểu dgeColor' tượng đánh dấu điểm 'MarkerSi Kích thước của biểu tượng đánh ze' dấu điểm 'MarkerFa Điều khiển màu ceColor' của biểu tượng đánh dấu điểm kiểu giá trị số nguyên các ký tự chỉ màu ví dụ:'g','y'... số nguyên các ký tự chỉ màu ví dụ:'g','y'... plot(t,y) axis([-pi pi -1 1]) xlabel('-pi leq itt leq pi') ylabel('sin(t)') title('Graph of the sine function') text(1,-1/3,'it{Note the odd symmetry.}') Đưa ra đồ thị như hình vẽ: 3.6. Một số lệnh viết chữ khác 3.6.1 Lệnh gtext Cú pháp: gtext('string') Mô tả gtext 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
  • 47. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 23 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 48. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 [x,y] = ginput Cho phép chọn số điểm không hạn chế. 3.7. In ấn đồ thị Tuỳ chọn Print của menu FILE và lệnh print đều dùng để in đồ thị. Tuỳ chọn Print sẽ gọi ra hộp thoại cho phép người dùng chọn các tuỳ chọn về in ấn giống như ở các phần mềm khác, còn lệnh print cung cấp chúng ta các khả năng mềm dẻo hơn và cho phép điều khiển việc in đồ thị từ m. file. Kết quả có thể gửi trực tiếp ra máy in hoặc được xếp xắp trong một tệp xác định. Các định dạng đầu ra hết sức khác nhau được cung cấp ở đây (kể cả PostScript) Thí dụ: câu lệnh sau đây ghi hình ảnh của màn hình đồ hoạ ra tệp Postscript cấp 2 có tên là magicsquare.eps: print -depsc2 magicsquare.eps Một điều hết sức quan trọng là cần phải biết trước khả năng của máy in trước khi dùng lệnh print. Ví dụ như tệp Postscript cấp 2 thường là gọn hơn và tô bóng nhanh hơn khi in so với tệp Postscript cấp 1. Tuy nhiên không phải tất cả các máy in đều có khả năng làm việc với tệp Postscript cấp 2 CHƯƠNG 4. LẬP TRÌNH ỨNG DỤNG TRONG MATLAB I. Các loại dữ liệu dùng trong Matlab - Matlab sử dụng các chế độ ghi dữ liệu số 1. Dữ liệu số: thập phân thông thường.
  • 49. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 24 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 50. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 - Có kiểu ghi dùng chữ cái e để xác định số mũ cơ số 10. Ví dụ: 1.60210e-20 =1.60210* 1020 - Các số được lưu trữ trong bộ nhớ có giới hạn là 16 chữ số sau dấu phẩy và giá trị giới hạn nằm trong khoảng −10308 đến 10308 . Một số hằng số thường dùng trong Matlab pi = 3.14169265 i,j = các đơn vị của số ảo esp = độ chính xác tương đối của số thực, 2−52 Inf = Vô cùng lớn NaN = Không phải là số 2. Các phép tính trên số phức 2.1 Nhập dữ liệu Số phức được nhập ở dạng Phần thực + phần ảo i Ví dụ: x= 2+3i 2.2 các phép tính thực hiện trên số phức - Phép cộng: Sử dụng toán tử +, - Phép trừ: Sử dụng toán tử -, - Phép nhân: Sử dụng toán tử *, - Phép chia: Sử dụng toán tử / Ví dụ: Nếu X= 3 +4i, Y=5+6i, ta sẽ có: X+Y ans =8.0000 +10.0000i X*Y ans =-9.0000 +38.0000i X-Y ans =-2.0000 - 2.0000i X/Y ans =0.6393 + 0.0328i 2.3 Các hàm xử lý số phức a. Hàm real Lấy ra giá trị phần thực của số phức Ví dụ: Nếu ta có X=3 +4i, real(X) sẽ cho giá trị 3 b. Hàm imag Lấy ra phần ảo của số phức Ví dụ: với X lấy giá trị như trên, imag(X) sẽ cho giá trị 4 c. Hàm conj Tìm số phức liên hợp của số phức đã cho Ví dụ: với X lấy giá trị như trên, conj(X) sẽ cho giá trị 3-4i 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 * Phép gán: <tên biến>='chuỗi' * Tham chiếu đến dữ liệu dạng chuỗi Chuỗi là một véc tơ hàng có số phần tử bằng số chữ cái trong chuỗi để tham chiếu đến từng chữ cái ta chỉ cần gọi phần tử tương ứng của chuỗi Các ví dụ: nếu gán x='String Mat' Khi gọi x(1), ta nhận được ans = S nếu gọi x(1:6), ta sẽ nhận được ans = String 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: * Nhập trực tiếp: nhập theo nguyên tắc giống mảng với các phần tử là số, tuy nhiên yêu cầu các chuỗi có chiều dài như nhau, trong trường hợp các chuỗi có chiều dài khác nhau, ta phải thêm bước trống vào cuối chuỗi. Ví dụ: x=['first ' 'second' 'third '] x = first second third * Dùng hàm: char Cú pháp: char('chuỗi 1', 'chuỗi 2',....) Chú ý: hàm char sẽ chèn cả các chuỗi rỗng vào mảng Ví dụ: x=char('first','second', '', 'third') sẽ cho kết quả là véc tơ cột có 4 phần tử x = first second third 3.2.2 Tạo mảng hoặc véc tơ hàng các chuỗi
  • 51. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 25 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 52. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 Dùng mảng khối: -Mảng khối được nhập như mảng thông thường, chỉ khác là mảng được bao bằng dấu { } Các phần tử của mảng khối sẽ là các chuỗi ví dụ: x={'first' 'second' 'third'} x = 'first' 'second' 'third' Nếu gọi: x(1), ta nhận được ans = 'first' 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 a. Chuyển từ số sang chuỗi: Các hàm int2str, num2str, mat2str * Hàm int2str: chuyển số nguyên sang chuỗi. Cú pháp: str = int2str(N) Mô tả: str = int2str(N) Chuyển số nguyên sang chuỗi với định dạng của số nguyên. N có thể là một số nguyên riêng lẻ hoặc mảng các số nguyên. Các giá trị thực sẽ được làm tròn trước khi chuyển đổi. Thí dụ: int2str(2+3) là chuỗi '5'. int2str(3.5) =4 * Hàm num2str Chuyển đổi từ số thực sang chuỗi Cú pháp str = num2str(A) str = num2str(A,precision) str = num2str(A,format) Mô tả Hàm num2str chuyển đổi các số thực sang chuỗi. Hàm này được dùng nhiều khi cần đưa vào đồ thị các nhãn hoặc tiêu đề bằng các giá trị số thực. str = num2str(a) chuyển đổi mảng A thành chuỗi str với 4 chữ số sau dấu phảy và số mũ nếu cần thiết. str = num2str(a,precision) chuyển đổi mảng A thành chuỗi str với độ chính xác được quy định bằng 'precision'. đối số precision quy định số chữ số sau dấu phảy, mặc định là 4. str = num2str(A,format) chuyển đổi mảng A sử dụng định dạng quy định bằng 'format'. (xem lệnh fprint). num2str(pi) là 3.142. num2str([1/3 3/6]) là 0.33333 0.5 num2str(3/7,5) cho kết quả là: 0.42857 * Hàm mat2str Cú pháp: str = mat2str(A) str = mat2str(A,n) Mô tả str = mat2str(A) Chuyển ma trận A thành chuỗi, phù hợp với dữ liệu đầu vào của hàm eval, sử dụng độ chính xác cao nhất. str = mat2str(A,n) Chuyển đổi ma trận A thành chuỗi với n chữ số sau dấu phảy. Chú ý: Hàm mat2str chỉ được thực hiện trên các giá trị số, véc tơ hoặc mảng chữ nhật. Thí dụ: Xét ma trận: A = 1 2 3 4 Câu lệnh b = mat2str(A) cho kết quả: b = [1 2 ;3 4 ] b. Chuyển từ chuỗi sang số, thực hiện các phép tính: hàm eval Cú pháp: eval('Chuỗi') [a1,a2,a3,...] = eval('Chuỗi') Mô tả: eval('Chuỗi') thực hiện biểu thức được mô tả trong 'chuỗi'. Bạn có thể tạo ra 'chuỗi' bằng cách nối kết các chuỗi con và các biến trong ngoặc vuông.
  • 53. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 26 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 54. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 [a1,a2,a3,...] = eval('Chuỗi') thực thi biểu thức trong 'chuỗi' và đưa ra các kết quả trong các biến đầu ra chỉ định. Thí dụ: y=eval('5+6-7'), cho kết quả y =4 Nếu ta có x='5+6-sin(pi)', hàm y=eval(x) sẽ cho kết quả: y =11 eval(['sin(pi/2)' '+' 'cos(pi)']), cho kết quả là 0 c. Hàm sprintf Cú pháp: s = sprintf(format,A,...) Mô tả: s = sprintf(format,A,...) Định dạng các dữ liệu trong ma trận A, trên cơ sở của chuỗi quy định mẫu định dạng 'format' và trả kết quả cho biến dạng chuỗi s. Câu lệnh sprintf cũng có ý nghĩa tương tự như fprint, điểm khác chỉ ở chỗ câu lệnh fprint thường dùng để xuất dữ liệu ra tệp. Chuỗi format quy định các ghi chú, căn chỉnh, số chữ số, bề rộng của trường. Nó có thể chứa các dữ liệu số, chữ và các ký tự điều khiển theo cấu trúc sau: Bảng dưới đây sẽ mô tả các ký tự không nhìn thấy được sử dụng trong định dạng của lệnh sprintf. Các ký tự thoát ký tự Mô tả b Xoá lùi f Kéo giấy n Xuống dòng t lùi vào một bước tab Backslash '' dấu " %% dấu % Các quy định chuyển đổi ký tự điều Mô tả khiển %c Ký tự riêng lẻ %d chế độ ghi số thập phân dùng dấu chấm động %e ghi bằng số e (sử dụng e) %E ghi bằng số e (sử dụng E) %f Cho phép quy định số chữ số xuất ra Chế độ ghi ngắn gọn %e, %f, Các chữ %g số 0 phía sau không được in ra %G Giống %g, nhưng sử dụng E thay cho e %s Ghi chuỗi ký tự Các ký tự khác Các ký tự khác có thể chèn vào mã quy định ở vị trí giữa % và ký tự điều khiển. Ký tự Mô tả Thí dụ Dấu Left-justifies the converted %-5.2d (-) argument in its field. Dấu Luôn in dấu (+ hoặc -) trước %+5.2d (+) số xuất ra. Số Đưa vào các số 0 thay cho %05.2d (0) các khoảng trống. Số Quy định số lượng chữ số ít nguy %6f nhất được in ra. ên Số với Số với dấu. xác định số dấu lượng chữ số được in sang %6.2f chấm phải dấu chấm phân cách. động) Thí dụ Lệnh Kết quả sprintf('%0.5g', 1.618 (1+sqrt(5))/2) sprintf('%0.5g',1/eps) 4.5036e+15 sprintf('%15.5f',1/eps) 4503599627370496.00000 sprintf('%d',round(pi)) 3 sprintf('%s','hello') hello sprintf('The array is The array is 2x3 %dx%d.',2,3) sprintf('n') Xuống dòng d. Hàm sscanf Đọc chuỗi theo định dạng quy định, hàm có ý nghĩa như là hàm ngược của sprintf. Cú pháp A = sscanf(s,format) A = sscanf(s,format,size) Mô tả
  • 55. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 A = sscanf(s,format) Đọc dữ liệu từ chuỗi s, chuyển đổi nó phù hợp với định dạng được quy 27 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 56. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 định trong format và trả ra kết quả cho ma trận a. A = sscanf(s,format,size) Đọc số phần tử quy định trong size và chuyển đổi nó phù hợp với định dạng quy định trong format. size có thể lấy các giá trị sau: n Đọc n phần tử và trả véc tơ cột inf Đọc đến cuối tệp và trả kết quả ra véc tơ cột. [m,n] Đọc đủ số phần tử để điền vào ma trân m x n phần tử. Nếu ma trận A là kết quả chỉ của việc sử dụng các ma trận chuyển đổi, và size không ở dạng [M,N], véc tơ hàng sẽ được trả. Thí dụ: Các câu lệnh s = '2.7183 3.1416'; A = sscanf(s,'%f') Tạo ra véc tơ cột có hai phần tử chứa giá trị của pi và e. 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 Cú pháp: <tên biến>=input('lời nhắc') <tên biến>=input('lời nhắc', 's') Mô tả: <tên biến>=input('lời nhắc') Sẽ hiển thị lời nhắc và chờ người dùng nhập dữ liệu, các dữ liệu này sẽ được gán cho <tên biến>. <tên biến>=Input('lời nhắc', 's') thường dùng khi nhập chuỗi: nếu dùng cú pháp thứ nhất để nhập chuỗi thì ta cần đặt chuỗi trong dấu ' ', còn ở cú pháp 2 ta có thể nhập trực tiếp nội dung của chuỗi. Chú ý: Nếu ta ấn enter khi xuất hiện lời nhắc, Matlab sẽ trả kết quả là ma trận rỗng. 1.2. Nhập từ hộp thoại: Lệnh inputdlg Cú pháp: answer = inputdlg(prompt) answer = inputdlg(prompt,title) answer = inputdlg(prompt,title,lineNo) answer = inputdlg(prompt,title,lineNo,defAns) Mô tả: Prompt: là các dòng nhắc trên các trường dữ liệu, được nhập ở dạng mảng khối các chuỗi lời nhắc Title: là tiêu đề của hộp thoại, nhập vào ở dạng chuỗi LineNo: là số nguyên quy định số dòng cho mỗi trường nhập dữ liệu DefAns: là một mảng khối các chuỗi gán giá trị mặc định Các dữ liệu nhập vào được gán cho answer dưới dạng mảng khối các chuỗi Ví dụ prompt = {'Nhập số hàng ma trận:','Nhập số cột ma trận'}; title = 'Hộp thoại nhập ma trận'; lines= 1; def = {'20','20'}; answer = inputdlg(prompt,title,lines,def); Sẽ đưa ra hộp thoại: Nếu nhập ở hai hộp các giá trị 40 và 30, sau đó nháy OK, ta nhận được: answer={'20' '30'} Chú ý:
  • 57. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 28 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 58. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 Kết quả nhập vào được gán cho biến ở dạng mảng khối các chuỗi, chính vì vậy để có thể sử dụng được các giá trị này ta phải dùng hàm char để chuyển đổi về mảng thông thường, sau đó dùng các hàm sscanf hoặc eval để chuyển dữ liệu về dạng số. 1.3. Nhập dữ liệu từ tệp: Lệnh fread Cú pháp: [A,count] = fread(fid,size,precision Dữ liệu đọc được sẽ ghi vào mảng A, count sẽ ghi lại số phần tử được đọc Fid là chỉ số của tệp được mở lấy ra từ lệnh fopen Size: định dạng số phần tử được lấy ra. Có các loại định dạng sau: - n: Đọc n phần tử và ghi ra ở dạng véc tơ cột. - inf: Đọc đến cuối mảng, các phần tử đưa vào ma trận cột. - [m,n]:Đọc đủ số phần tử để điền vào ma trận m x n, các phần tử điền vào theo trật tự các cột, nếu không đủ số phần tử điền, máy thêm vào phần tử 0. Preciscion: Dạng của phần tử 'char' Character; 8 bits 'schar' Signed character; 8 bits 'uchar' Unsigned character; 8 bits 'int8' Integer; 8 bits 'int16' Integer; 16 bits 'int32' Integer; 32 bits 'int64' Integer; 64 bits 'uint8' Unsigned integer; 8 bits 'uint16' Unsigned integer; 16 bits 'uint32' Unsigned integer; 32 bits 1.4. Lệnh fopen: Mở tệp để ghi hoặc đọc dữ liệu Cú pháp: fid = fopen('filename','permission') Permission: quy định chế độ mở, có thể lấy các giá trị: 'r': mở ra để đọc 'w': mở ra để ghi, nếu tệp đã có, nó sẽ xoá toàn bộ nội dung tệp và ghi lại 'a': mở ra để ghi thêm Filename: là tên của tệp sẽ mở được đặt trong dấu ' ' Kết quả sẽ trả ra chỉ số của tệp được mở (con trỏ tham chiếu đến tệp) và gán cho biến fid. 1.5 Lệnh đóng tệp, fclose Cú pháp: status = fclose(fid), đóng tệp chỉ định status = fclose('all'), đóng tất cả các tệp đang mở 1.6 Lệnh fscanf: Nhập dữ liệu từ tệp định dạng mã ascci Cú pháp: A = fscanf(fid,format) [A,count] = fscanf(fid,format,size) ở cú pháp thứ nhất, fscanf sẽ đọc dữ liệu từ tệp có con trỏ fid theo định dạng quy định bằng chuỗi format. Số phần tử được đọc thành công sẽ được trả cho biến count Ví dụ: Ta có tệp dữ liệu có tên là 'd:datadl.dat' có các số liệu sau: 1.345 4.123 4.567 2.456 2.675 6.876 4.576 3.456 Đoạn chương trình sau sẽ đọc dữ liệu từ tệp xếp thành ma trận (4,2) và gán cho biến M f=fopen('d:datadl.dat','r'); M=fscanf(f,'%f',[4,2]); fclose(f); 2. Các lệnh xuất dữ liệu 2.1. lệnh disp: Hiển thị văn bản hoặc mảng cú pháp: disp(A) Mô tả disp(X) Hiển thị giá trị các mảng mà không đưa ra tên mảng, nếu x chứa chuỗi, chuỗi sẽ được in ra màn hình. 2.2. Lệnh fprintf: Ghi lại dữ liệu Cú pháp:
  • 59. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 29 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 60. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 count = fprintf(fid,format,A,...) fprintf(format,A,...) Mô tả: count = fprintf(fid,format,A,...) định dạng các dữ liệu ở phần thực của ma trận A dưới sự điều khiển của chuỗi định dạng 'format' và ghi vào tệp tham chiếu bằng con trỏ 'fid'. Hàm fprintf trả số lượng byte được ghi ra. fid là chỉ số của tệp được mở ra để ghi dữ liệu, nhận được từ lệnh fopen. Nếu bỏ qua fid, kết quả sẽ in ra màn hình. format là chuỗi quy định định dạng sẽ xuất ra (xem lệnh sprintf) 2.3. Lệnh fwrite: Ghi dữ liệu ra tệp ở dạng mã nhị phân. Cú pháp: count = fwrite(fid,A,precision) Mô tả: count = fwrite(fid,A,precision) ghi các phần tử của ma trận A vào tệp tham chiếu bởi 'fid'. Chuyển đổi các giá trị của MATLAB với độ chính xác được quy định trong 'precision'. Dữ liệu được ghi theo trật tự cột, count sẽ đếm số phần tử được ghi thành công vào tệp. đối số 'fid' là con trỏ tệp nhận được từ lệnh fopen. III. Các lệnh phân nhánh 1. Lệnh if 1.1 Cú pháp: Lệnh If Cú pháp 1: if Biểu thức lôgíc Các biểu thức tính; end Cú pháp 2: if Biểu thức lôgíc Các biểu thức tính 1 else Các biểu thức tính 2 end Cú pháp 3: if Biểu thức lôgíc 1 Các biểu thức tính 1 elseif Biểu thức lôgíc 2 Các biểu thức tính 2 else Các biểu thức tính 3 end Trong các cú pháp đưa ra ở trên: - Các biểu thức lô gíc viết theo quy tắc được trình bày ở dưới đây - Các biểu thức tính chứa các dòng lệnh của Matlab Trong cú pháp 1: Máy sẽ kiểm tra biểu thức logic: nếu biểu thức lôgic đúng, máy sẽ thực hiện các lệnh trong if (nằm giữa if và end), còn nếu biểu thức lô gíc sai máy sẽ bỏ qua các câu lệnh trong if và thực hiện các câu lệnh kế tiếp câu lệnh if Trong cú pháp 2: nếu biểu thức lôgic đúng máy sẽ thực hiện các câu lệnh trong Các biểu thức tính 1, còn nếu biểu thức lôgic sai máy sẽ thực hiện các câu lệnh Các biểu thức tính 2. Trong cú pháp 3: Nếu biểu thức lôgíc 1 đúng, máy sẽ thực hiện Các biểu thức tính 1. Nếu biểu thức lôgíc 1 sai, máy sẽ kiểm tra biểu thức lôgíc 2: nếu biểu thức lôgic này đúng, máy sẽ thực hiện các biểu thức tính 2, còn các trường hợp khác máy sẽ thực hiện các biểu thức tính 3. 1.2 Các toán tử logic Mat lab cho phép sử dụng các toán tử lôgic sau: S Toán T ý nghĩa thí dụ T tử kiểm tra liệu hai biểu 1 = = thức có bằng nhau A=B không 2 > Lớn hơn A>B 3 < Nhỏ hơn A<B 4 <= Nhỏ hơn hoặc bằng A<=B 5 >= Lớn hơn hoặc bằng A>=B 6 ~= Khác A~=B
  • 61. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 30 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 62. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 7 & Và lôgic A&B 8 | Hoặc lôgic A|B 9 Not Phủ định Not(A) 1.3 Các hàm logíc Kiểm tra liệu mảng X có rỗng không, cho giá trị đúng (1) khi X rỗng nguợc lại cho kết quả sai (0) b. Hàm isequal(a,b...) k = isequal(A,B,...) sẽ trả giá trị đúng lôgic(1), nếu các mảng đối số có cùng dạng, cùng kích cỡ và có cùng nội dung. Hàm này thường dùng khi so sánh hai hay nhiều mảng, nó sẽ không gây lỗi khi 2 mảng có kích thước khác nhau. c. Hàm ischar(x) Cho kết quả đúng nếu x là dữ liệu dạng chuỗi. d. Các hàm strcmp(s1,s2), strcmp(s1, s2, n) Hàm strcmp(s1,s2) so sánh hai chuỗi s1, s2. Nếu hai chuỗi giống nhau sẽ trả kết quả đúng Hàm strcmp(s1,s2,n) cho kết quả đúng nếu n ký tự đầu tiên của hai chuỗi như nhau. Chú ý: Trong trường hợp đối số trong các hàm lôgic là ma trận, máy sẽ thử từng cặp phần tử trong ma trận, nếu đúng trả giá trị 1, nếu sai trả giá trị 0 và kết quả nhận được là ma trận các giá trị 1 và 0. Để so sánh được hai ma trận phải có cùng kích thước. 2. Lệnh switch Cú pháp: switch Biểu thức switch case Biểu thức case 1 Các biểu thức tính 1 case Biểu thức case 2 Các biểu thức tính 2 ... otherwise Các biểu thức tính khác end Khi lệnh switch được gọi, nó sẽ tính toán giá trị biểu thức switch Sau đó giá trị của biểu thức này sẽ được so với mỗi một biểu thức case theo trình tự được ghi trong câu lệnh, nếu 2 phép so sánh đưa ra kết quả đúng, nhóm các câu lệnh tương ứng sẽ được thực hiện, sau đó thoát khỏi lệnh và thực hiện các câu lệnh sau switch. Nếu tất cả các biểu thức case đều không phù hợp với giá trị của biểu thức switch. Nhóm lệnh dưới otherwise sẽ được thực hiện. IV. Các vòng lặp 1. Vòng lặp xác định: for Cú pháp: for <biến>= mảng Các biểu thức tính; end Vòng lặp for sẽ thực hiện các câu lệnh lặp với số lần bằng số cột của mảng, trong mỗi lần lặp <biến> sẽ mang giá trị là một véc tơ hàng tương ứng của mảng Thí dụ: Tạo mảng có các phần tử a(i,j)=1/(i+j- 1) a = zeros(n,n) % Preallocate matrix for i = 1:n for j = 1:n a(i,j) = 1/(i+j -1); end end 2. Vòng lặp không xác định: while Cú pháp: while <biểu thức logíc > Các biểu thức tính end Khi thực hiện câu lệnh, máy sẽ kiểm tra biểu thức lôgíc, nếu giá trị biểu thức là đúng, các câu lệnh trong vòng lặp sẽ được thực hiện, sau khi thực hiện xong sẽ quay trở về kiểm tra lại giá trị của biểu thức logic. Nếu giá trị của biểu thức lô gíc là sai, vòng lặp sẽ kết thúc. Thí dụ: Tìm nghiệm của phương trình x3 - 2x - 5 = 0 trong khoảng [0,3] theo phương pháp dây cung. 3. Lệnh break: Thoát khỏi vòng lặp một cách cưỡng bức Cú pháp:
  • 63. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 31 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 64. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 break Mô tả: break Dừng việc thực thi vòng lặp for hoặc while. Khi có nhiều vòng lặp lồng vào nhau, break sẽ chỉ thoát khỏi vòng lặp gần nhất. 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 - Hàm được viết trong m file, tên của m file được bắt đầu bằng ký tự chữ hoặc số và có phần mở rộng là.m. - Dòng trên cùng của hàm m file phải chứa từ khoá function và viết theo đúng quy cách quy định trong Matlab.function [biến ra1, biến ra 2...] = <Tên hàm>(biến vào 1, biến vào 2..) - Tên của m file phải trùng với <tên hàm>. Ví dụ: tệp stat.m chứa nội dung sau tính ra độ lệch chuẩn của véc tơ x = [x1 x2... xn] function [mean,stdev] = stat(x) n = length(x); mean = sum(x)/n; stdev = sqrt(sum((x-mean).^2/n)); Chúng ta có thể định nghĩa một hàm con trong hàm khác bằng cách gọi ra từ khoá function bên dưới thân của hàm chính. Ví dụ dưới đây sẽ định nghĩa hàm con avg bên trong tệp stat.m: function [mean,stdev] = stat(x) n = length(x); mean = avg(x,n); stdev = sqrt(sum((x- avg(x,n)).^2)/n); function mean = avg(x,n) mean = sum(x)/n; Khi Matlab không nhận ra một tên hàm, nó sẽ tìm kiếm tên tệp trùng với tên hàm, nếu tìm ra nó sẽ dịch và đưa vào bộ nhớ. Trong trường hợp tổng quát nếu ta nhập một tên vào Matlab, nó sẽ kiểm tra theo trình tự sau: 1. Kiểm tra xem đó có phải là tên biến 2. Kiểm tra xem đó có phải là tên hàm nội trú trong Matlab. 3. Kiểm tra xem đó có phải là hàm m. file Khi gọi một m.file từ dòng nhắc hoặc trong m.file khác đưa hàm vào bộ nhớ, và nó sẽ lưu lại ở đó cho tới khi ta thoát khỏi Matlab hoặc dùng lệnh clear. 2. Các đối số vào, ra Chú ý - Hàm m-file có thể không chứa đối số nào - Hàm có thể được gọi với số đối số ra hoặc vào ít hơn số đối số được khai báo trong hàm - Khi hàm được gọi ra các biến sử dụng trong hàm chỉ tồn tại tạm thời trong vùng bộ nhớ dành cho hàm - Hàm trong Matlab có thể chứa không hạn chế thông số đầu vào, khi đó biến đầu vào cuối cùng của hàm phải được khai báo là varargin, khi đó biến đầu vào được coi như một mảng khối có vô số phần tử. Tương tự hàm cũng có thể chứa vô hạn các thông số ra khi ta khai báo bằng varargout. - Câu lệnh varagin và varagout Cho phép định nghĩa vô số biến vào và ra của hàm trong Matlab Cú pháp: function varargout = foo(n) y = function bar(varargin) Mô tả: Hàm varargout = foo(n) sẽ trả một số lượng không hạn chế các biến ra từ hàm foo.m. Hàm y = function bar(varargin) Chấp nhận vô số biến đầu vào của hàm bar.m Các câu lệnh varargin và varargout chỉ được sử dụng bên trong hàm m.file để chứa biến tuỳ chọn vào hoặc ra của hàm. Chúng phải được định nghĩa như là một biến cuối cùng trong danh sách các biến khai báo ở câu lệnh function. CHƯƠNG 5. MÔ PHỎNG CÁC HỆ THỐNG ĐỘNG LỰC BẰNG SIMULINK
  • 65. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 32 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 66. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 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ố - Mô phỏng hệ thống là một trong những công cụ được sử dụng rộng rãi nhất dùng cho công việc phân tích, thiết kế ở nhiều lĩnh vực khác nhau. Mô phỏng trong máy tính là việc giải quyết bằng phương pháp số các hệ phương trình vi phân mô phỏng mô hình nghiên cứu. - Trong nhiều tài liệu đã đề cập tới các phương pháp giải bằng giải tích các phương trình vi phân. Phương pháp này rất hiệu quả trong việc phân tích các mô hình tuyến tính (bậc 1 hoặc bậc 2). Tuy nhiên trong kỹ thuật cần có các phương pháp tinh để giải quyết 3 vấn đề chủ yếu: - Các mô hình phi tuyến: - Các mô hình tuyến tính bậc cao - Các hàm kích động bất kỳ 2. Giới thiệu về các phần mềm mô phỏng - Trước kia, các phần mềm mô phỏng với mục đích chung dùng cho kỹ sư được phát triển ở dạng thư viện được dịch trước các thuật toán tích phân, cho phép người dùng nối kết với các chương trình FORTRAN mô tả các hệ phương trình. Những phần mềm này thông thường cung cấp các "đầu - cuối" và bộ hậu xử lý làm giảm nhẹ gánh nặng cho người lập trình, cung cấp khả năng dễ dàng điều khiển việc thực thi quá trình phân tích và xuất kết quả ở dạng đồ hoạ. Các phần mềm CSMP và ACSL thuộc loại này. - Với sự xuất hiện của giao diện đồ hoạ, một phương pháp tiếp cận mới của các phần mềm mô phỏng, công việc mô phỏng trên máy tính đã đơn giản hơn nhiều. Trong phương pháp tiếp cận này, việc mô phỏng được thực hiện bằng cách phát triển các sơ đồ khối mô phỏng, sử dụng thư viện các khối đã được định nghĩa từ trước ví dụ như: khối tích phân, khối tổng, khối nhân hệ số... Các sơ đồ khối chứa đựng các cấu trúc dữ liệu định nghĩa các phương trình vi phân của hệ thống. -Các phần mềm mô phỏng thường cung cấp một số lượng lớn các khối chức năng chứa đựng các đặc tính phi tuyến thường gặp, các hàm nhiều biến và đặc biệt là các hàm do người dùng định nghĩa. Người dùng cũng có thể chọn các thuật toán tích phân từ một danh sách do phần mềm cung cấp và có thể điều khiển nhiều khía cạnh khác nhau của thuật giải. Cuối cùng các phần mềm mô phỏng cung cấp cho chúng ta các các công cụ đồ hoạ mạnh để dễ dàng hiển thị kết quả nhận được. - Các phần mềm mô phỏng thường cung cấp một số lượng lớn các khối chức năng chứa đựng các đặc tính phi tuyến thường gặp, các hàm nhiều biến và đặc biệt là các hàm do người dùng định nghĩa. Người dùng cũng có thể chọn các thuật toán tích phân từ một danh sách do phần mềm cung cấp và có thể điều khiển nhiều khía cạnh khác nhau của thuật giải. Cuối cùng các phần mềm mô phỏng cung cấp cho chúng ta các các công cụ đồ hoạ mạnh để dễ dàng hiển thị kết quả nhận được. - Trong thực tế chúng ta có thể sử dụng nhiều phần mềm khác nhau để tiến hành mô phỏng trên máy tính các hệ thống động lực, tuy nhiên tất cả các công việc mô phỏng trên máy tính đều bao hàm những công việc sau: a) Xây dựng mô hình toán học: - Điều này được hoàn thành bằng hệ phương trình vi phân mô tả hệ thống và thể hiện các quy luật chung về vật lý b) Xác định giá trị các thông số của mô hình: - Các thông số của mô hình liên quan tới các giá trị mà thông thường không bị thay đổi trong quá trình mô phỏng. Các thông số cơ bản của các hệ cơ khí là khối lượng và độ cứng của lò xo. Trong thực tế các thông số của mô hình cũng có thể thay đổi theo thời gian, nhưng thông thường chúng thay đổi với tốc độ chậm
  • 67. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 33 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 68. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 hơn nhiều so với các biến động lực được tính toán trong quá trình mô phỏng. c) Xác định các điều kiện đầu: - Khi giải hệ phương trình bằng phương pháp giải tích chúng ta đã biết được ý nghĩa quan trọng của điều kiện đầu. Trong mô phỏng việc xác định điều kiện đầu vẫn giữ nguyên tính chất quan trọng như vậy. d) Tín hiệu đầu vào: -Thông thường các hệ thống phản ứng với 1 hoặc nhiều tín hiệu đầu vào, việc mô phỏng cũng cần có yêu cầu như vậy e) Xác định kết quả sẽ xuất ra: . -Mô phỏng thường không cần chỉ định các kết quả xuất ra. Kết quả xuất ra thường là các quá trình phụ thuộc vào thời gian của các biến vật lý của hệ thống. f) Xác định các thông số điều khiển quá trình mô phỏng: - Các thông số điều khiển quá trình mô phỏng là các giá trị và các tuỳ chọn. Các giá trị này sẽ chỉ ra cách thức thực hiện các phương pháp số trong quá trình mô phỏng. Thông thường đó là bước thời gian, khoảng tích phân, sai số cho phép và việc lựa chọn thuật toán tích phân. II. Trình tự thực hiện một quá trình mô phỏng. 1. Xây dựng cấu trúc mô phỏng: Sơ đồ khối - Như chúng ta đã biết, quá trình tích phân là cốt lõi của quá trình mô phỏng, và các khối tích phân hình thành cơ sở trung tâm của sơ đồ khối. Chính vì vậy việc xây dựng các sơ đồ khối bắt đầu bằng việc đưa vào số lượng chính xác các khối tích phân và sử dụng thư viện các khối để xây dựng các phương trình cân bằng. Cách thức nối kết các khối trong sơ đồ tổng thể và từ đó quá trình mô phỏng có thể thay đổi tuỳ thuộc vào phần mềm được chọn. 2. Xác lập giá trị các thông số của mô hình - Ngay sau khi mô hình được xây dựng xong, giá trị của các thông số được xác lập. Trong SIMULINK, điều này được thực hiện bằng cách nháy đúp chuột vào biểu tượng khối và điền các thông số thích hợp vào hộp thoại được hiện ra. Một phương án khác là chúng ta có thể nhập tên biến, và các biến này sẽ được xác lập trong môi trường của MATLAB trước khi mô phỏng. Biện pháp này hết sức hiệu quả đặc biệt trong việc nghiên cứu sự thay đổi các thông số. -Trong một số hệ phức tạp, thông số của mô hình phân tích có thể phụ thuộc vào thời gian hoặc giá trị của biến trạng thái, khi đó chúng ta phải viết các m-file hoặc s-file để mô tả sự biến đổi đó, sau đó sử dụng khối Matlab function để gọi các chương trình con này vào chương trình mô phỏng. 3. Xác lập các điều kiện đầu - Việc xác lập điều kiện đầu cũng hoàn toàn giống như việc xác lập các thông số của sơ đồ khối, có nghĩa là chúng ta sẽ nhãy đúp chuột vào khối tương ứng và nhập vào giá trị điều kiện đầu (hoặc tên biến trong môi trường MATLAB ) vào mục thích hợp trong hộp thoại hiện ra. - Trong một số trường hợp, hoạt động của hệ thống được chia ra nhiều pha, mỗi pha lại có một điều kiện đầu khác nhau (ví dụ như bài toán va chạm). Trong trường hợp này thay cho việc đưa điều kiện đầu vào trong các khối tích phân, chúng ta đưa điều kiện đầu vào khối từ bên ngoài 4. Các kích động đưa vào hệ thống - Trong các phần trước chúng ta đã biết, cấu trúc mô phỏng được định nghĩa bằng sơ đồ khối, giá trị các thông số của mô hình và điều kiện đầu. Ba thành phần này bao hàm số lượng tối thiểu các thông tin cần thiết để thực thi quá trình mô phỏng. Do vậy nếu các thông số đầu vào từ bên ngoài không được định nghĩa, quá trình mô phỏng sẽ chỉ đưa ra có thành phần tự do hoặc thuần nhất của nghiệm - Simulink và các phần mềm khác cung cấp một thư viện hết sức đa dạng các kiểu kích thích từ bên ngoài. Các tín hiệu vào đơn giản như: kích
  • 69. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 34 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 70. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 động hình sin, các sóng răng cưa, sóng chữ nhật được định nghĩa trong các thư viện khối. Các kích động khác như xung chữ nhật, có thể tạo ra bằng cách sử dụng 2 khối tín hiệu bước và 1 khối nối tổng. Khối tín hiệu bước thứ nhất xác định vị trí bắt đầu của xung, khối tín hiệu bước thứ 2 xác lập vị trí kết thúc của xung và cộng vào bước thứ nhất sau khi nhân với -1 - Cuối cùng các kích động đầu vào phức tạp cũng có thể được tạo ra từ các dữ liệu lưu trữ trong môi trường MATLAB. Điều này cho phép chúng ta sử dụng tín hiệu đầu vào từ những kết quả tính toán từ một chương trình khác. 5. Lựa chọn cách thức xuất kết quả - Công dụng cơ bản của việc sử dụng mô phỏng máy tính là nghiên cứu phản ứng của hệ thống với các tín hiệu kích động và các điều kiện đầu. quá trình này được ngầm hiểu là việc tìm ra một hoặc nhiều biến hệ thống thông qua kết quả của quá trình mô phỏng. Các phần mềm mô phỏng cung cấp nhiều phương thức kiểm tra các kết quả của quá trình mô phỏng (màn hình, lưu trữ biến trong môi trường làm việc, tệp dữ liệu...) 6. Điểu khiển việc thực thi quá trình mô phỏng. - Trong quá trình mô phỏng, sau khi xây dựng được sơ đồ mô phỏng một nhiệm vụ hết sức quan trọng của người dùng là xác lập các thông số điều khiển. Thực tế hầu hết các phần mềm mô phỏng đều cung cấp một bộ các thông số điều khiển cách thức mà phần mềm mô phỏng giải phương trình vi phân, nếu chúng ta không có lựa chọn gì khác, máy sẽ chọn bộ thông số mặc định còn nếu như chúng ta nắm vững được bản chất và ý nghĩa của các thông số này, chúng ta có thể điều khiển các chương trình mô phỏng thực thi theo mục đích cụ thể của mình - Đối với phần lớn các ứng dụng, 5 thông số sau sẽ điều khiển việc thực thi quá trình mô phỏng: a) Thời gian mô phỏng: - Thời gian mô phỏng thường được xác lập bằng các trị số: thời điểm bắt đầu (start time) và thời điểm kết thúc (stop time). Thời điểm bắt đầu là thời điểm xác lập các điều kiện đầu trong các khối tích phân mặc định có giấ trị bằng 0. - Chú ý : thời gian mô phỏng là thời gian làm việc thực tế của hệ thống không phải là thời gian cần thiết để chạy chương trình mô phỏng. ví dụ như thời gian mô phỏng đặt là 10 s, tuy nhiên để chạy chương trình mô phỏng có thể mất một vài giờ. b) Thuật toán tích phân (thuật giải) - Trong các chương trình mô phỏng người ta sử dụng rất nhiều thuật giải khác nhau để giải các dạng hệ phương trình vi phân khác nhau. Một thuật giải này có thể rất hiệu quả đối với dạng phương trình này nhưng lại không thể dùng được đối với các loại phương trình khác. Để đảm bảo được độ chính xác của kết quả và tốn ít thời gian chạy máy nhất chúng ta cần phải chọn được thuật giải hợp lý nhất. - Chúng ta có thể chọn thuật giải với bước thời gian cố định và bước thời gian thay đổi. Các thuật giải với bước thời gian thay đổi có thể biến đổi giá trị của bước thời gian trong quá trình mô phỏng, cung cấp khả năng điều khiển sai số cũng như kiểm tra việc cắt qua điểm 0 của nghiệm tìm được. Ngược lại thuật giải với bước tích phân cố định không thể điều khiển sai số cũng như kiểm tra việc cắt điểm 0 của nghiệm. Phần dưới đây chúng ta sẽ giới thiệu các thuật giải được dùng trong SIMULINK. Các thuật giải này cũng sẽ được dùng trong các chương trình mô phỏng khác (có thể dưới tên gọi khác đi một chút) Thuật giải mặc định: - Trong Simulink nếu người dùng không chọn thuật giải, thuật giải mặc định sẽ được sử dụng tuỳ thuộc vào loại mô hình đang phân tích: - Nếu mô hình phân tích ở trạng thái liên tục, thuật giải ODE45 được sử dụng. ODE45 là
  • 71. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 35 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 72. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 thuật giải đa chức năng tuy nhiên nếu hệ thống phân tích là hệ cứng và thuật giải này không cho được kết quả có thể chấp nhận, hãy thử dùng thuật giải ODE15S. - Nếu mô hình phân tích không ở trạng thái liên tục, SIMULINK sẽ sử dụng thuật giải với bước tích phân thay đổi có tên là "thuật rời rạc" (discrete) và hiển thị lời nhắc chỉ ra rằng thuật giải ODE45 không được sử dụng. Các thuật giải với bước tích phân thay đổi: Trong SIMULINK chúng ta có thể lựa chọn nhiều thuật giải với bước tích phân thay đổi như: ODE45, ODE23, ODE113, ODE15S, ODE23S và thuật giải "discrete": ODE45 là thuật giải dựa trên công thức Runge-Kuta bậc bốn, năm. Đó là thuật giải một bước: để tính ra y(tn) chỉ cần có giá trị nghiệm tại một thời điểm trước đó y( t n−1 ). Nói chung ODE45 là thuật giải được sử dụng nhiều nhất và được áp dụng như là phép thử đầu tiên khi chúng ta chưa chọn được thuật giải phù hợp. ODE23 cũng dựa trên cơ sở công thức Runge- Kuta(2,3). Thuật giải này có thể hiệu quả hơn thuật giải ODE45 với độ chính xác không yêu cầu cao và đối với hệ cứng trung bình. ODE23 cũng là thuật giải một bước. ODE113 là thuật giải Adams-Bashforth-Moulton với bậc thay đổi. Nó có thể hiệu quả hơn thuật ODE45 ở độ chính xác tương đối cao. ODE113 là thuật giải nhiều bước có nghĩa là để xác định giá trị nghiệm ở một thời điểm cần có giá trị nghiệm tại nhiều thời điểm trước đó. ODE15S là thuật giải dựa trên công thức đạo hàm số có bậc thay đổi (NDFs). Đây là công thức tương tự như công thức đạo hàm lùi (BDFs) - được biết đến với tên gọi "phương pháp Gear" nhưng hiệu quả hơn nhiều. Tương tự như thuật giải ODE113, thuật ODE15S cũng là thuật giải nhiều bước. Đối với các hệ thống "cứng", khi mà thuật giải ODE45 không sử dụng được, hoặc sử dụng kém hiệu quả, hãy thử sử dụng ODE15S. ODE23S được xây dựng trên cơ sở công thức Rosenbrock bậc 2, và đây là thuật giải một bước, nên nó có thể hiệu quả hơn giải thuật ODE15S khi mà yêu cầu về độ chính xác không cao. Thuật giải này cũng được dùng ở một vài hệ cứng khi mà thuật giải ODE15S tỏ ra không hiệu quả. Ode23t áp dụng quy tắc hình thang với phép nội suy "tự do". Chúng ta sử dụng thuật giải này chỉ đối với các hệ thông tương đối cứng. Ode23tb sử dụng công thức Runge-Kuta ẩn (TR-BDF2) với giai đoạn đầu sử dụng quy tắc hình thang và giai đoạn hai sử dụng Công thức vi phân lùi bậc hai. Về cấu trúc cả hai bước đều sử dụng cùng một ma trận lặp. Cũng giống như thuật giải Ode23s, thuật giải này cũng hiệu quả hơn Ode15s khi yêu cầu về độ chính xác không cao. Phương pháp rời rạc "Discrete" được sử dụng khi Simulink xác định được hệ thống ở trạng thái không liên tục. Các thuật giải với bước cố định Ode5 là phiên bản với bước cố định của thuật giải Ode45 Ode4 sử dụng công thức Runge - Kuta bậc 4 Ode3 là phiên bản với bước cố định của thuật giải Ode23 Ode2 sử dụng công thức tích phân của Heun, được biết đến như là công thức Euler cải tiến. c) Độ lớn của bước tích phân - Đối với các thuật giải với bước thay đổi chúng ta có thể lựa chọn giá trị lớn nhất của bước tích phân hoặc giá trị gợi ý của bước tích phân đầu tiên. Mặc định các thông số này được xác lập một cách tự động
  • 73. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 36 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 74. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 - Đối với các thuật giải với bước cố định chúng ta có thể xác lập chiều dài bước tích phân. Mặc định là giá trị Auto. Giá trị lớn nhất của bước tích phân: - Giá trị mặc định được xác định theo giá trị của thời gian bắt đầu và kết thúc quá trình mô phỏng hmax = t stop −t start Thông thường giá 50 trị mặc định này phù hợp với phần lớn các trường hợp. Trừ khi người dùng xác định được rằng giá trị này có thể gây ra sai lệch về hình dạng kết quả chúng ta có thể xác lập lại giá trị mới - Nếu hệ phân tích có ứng xử biến đổi theo chu kỳ hoặc gần theo chu kỳ, chúng ta có thể xác lập giá trị lớn nhất của bước tích phân theo giá trị của chu kỳ (ví dụ =1/4 chu kỳ). Để thay đổi số lượng điểm xuất chọn điều khiển kết quả xuất ra khác (ví dụ như SIMULINK sử dụng tham số "Refine Output" Độ lớn bước tích phân khởi tạo (Initial step size) - Độ lớn của bước khởi tạo thông thường được các thuật giải tự xác định trên cơ sở kiểm tra trạng thái đạo hàm tại thời điểm bắt đầu phân tích. Nếu giá trị bước khởi tạo được người dùng xác lập, máy sẽ thử sử dụng giá trị này nhưng sẽ sử dụng bước nhỏ hơn nếu độ chính xác không đảm bảo. Bước thời gian bé nhất - Thông số này xác lập giới hạn dưới của bước thời gian sử dụng cho thuật toán bước thời gian tự thích nghi, nó được xác lập bởi người dùng trên cở sở của hàng loạt các nhân tố kể cả hiệu quả tính toán. Người sử dụng cần phải chờ thời gian dài để kết thúc quá trình mô phỏng nếu như xác lập bước thời gian quá bé. d) Sai số: - Các thuật giải nói chung đều sử dụng kỹ thuật điều khiển lỗi cục bộ chuẩn để kiểm soát lỗi tại mỗi bước tính. Trong mỗi bước tính, các thuật giải sẽ tính ra các giá trị của biến trạng thái tại điểm cuối mỗi bước và đồng thời xác định sai số cục bộ để ước lượng sai số của các biến trạng thái này. Sau đó sẽ so sánh giá trị sai số này với sai số cho phép (là hàm số của thông số rtol- sai số tương đối và abstol - sai số tuyệt đối). Nếu giá trị sai số ước lượng lớn hơn giá trị cho phép, máy sẽ giảm giá trị bước tính và lặp lại quá trình ở trên. Sai số tương đối: - Xác định giá trị sai số một cách tương đối so với giá trị của biến trạng thái tại mỗi điểm tích phân. Giá trị của nó bằng tỷ số của giá trị sai số tuyệt đối và giá trị của biến trạng thái tương ứng tại điểm xét. Trong SIMULINK mặc định sai số tương đối được chọn là 0.001 Sai số tuyệt đối: - Là giá trị ngưỡng của sai số, chỉ ra giá trị sai số cho phép khi giá trị của biến trạng thái tiến dần tới không. Trong SIMULINK, nếu chúng ta sử dụng chế độ lựa chọn sai số mặc định, giá trị sai số tuyệt đối sẽ là 10-6 . e) Các tuỳ chọn xuất kết quả - Các tuỳ chọn xuất kết quả điều khiển lượng dữ liệu (số điểm) sẽ được chương trình mô phỏng đưa ra. Trong SIMULINK chúng ta có các tuỳ chọn xuất kết quả sau đây: Refine Output (chế độ xuất dữ liệu mịn) Produce additional Output (xuất thêm dữ liệu ở các điểm bổ sung) Produce specified Output only (xuất dữ liệu chỉ tại những điểm yêu cầu) Refine Output : - Sẽ làm mịn dữ liệu xuất ra bằng cách thêm vào các dữ liệu kết quả trung gian khi mà dữ liệu đưa ra bởi SIMULINK quá thô. Tuỳ chọn này sẽ cho phép người dùng nhập vào một số nguyên chỉ ra số điểm trung gian cần thêm vào giữa 2 mốc tích phân kề nhau. - Để nhận được kết quả xuất ra mịn hơn chúng ta nên thay đổi hệ số độ mịn (refine factor) thay cho việc chia nhỏ bước tích phân. Với việc thay
  • 75. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 37 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 76. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 đổi hệ số độ mịn, chúng ta không làm tăng thời gian chạy máy vì việc thay đổi này không ảnh hưởng tới độ lớn của bước tích phân. - Việc thay đổi độ mịn của dữ liệu xuất ra đặc biệt thích hợp và hiệu quả khi chúng ta sử dụng thuật giải ODE45 vì thuật giải này có khả năng đưa ra các bước tích phân khá lớn và như vậy nếu đưa các kết quả tích phân ra ngoài màn hình ở dạng đồ thị, chúng ta có thể nhận được hình dạng sai khác nhiều so với thực tế. Produce additional Output: - Lựa chọn này sẽ cho phép người dùng chỉ định chính xác các điểm trung gian cần lấy kết quả. Khi lựa chọn chế độ này, Simulink sẽ đưa ra véc tơ thời gian mà tại đó nó sẽ xuất kết quả ra. Người dùng cần phải nhập vào một biểu thức của Matlab để đưa ra các điểm thời gian bổ sung. Các kết quả bổ sung sẽ được tạo ra bằng cách sử dụng một công thức mở rộng tại các thời điểm bổ sung. Khác với việc thay đổi hệ số độ mịn, tuỳ chọn này sẽ thay đổi chiều dài bước tích phân cho phù hợp với véc tơ thời gian được bổ sung. Produce specified Output only: - Tuỳ chọn này sẽ yêu cầu Simulink xuất ra dữ liệu kết quả chỉ tại các thời điểm chỉ định. Nó sẽ làm thay đổi độ lớn của bước tích phân cho phù hợp với véc tơ thời gian yêu cầu. Tuỳ chọn này được dùng chủ yếu khi chúng ta cần phải so sánh các kết quả mô phỏng khác nhau để đảm bảo rằng dữ liệu xuất ra giữa các lần mô phỏng là ở cùng một thời điểm. III. Sử dụng SIMULINK trong mô phỏng các hệ động lực 1. Các thao tác cơ bản - SIMULINK là một phần mềm đồ hoạ, định hướng sơ đồ khối dùng để mô phỏng các hệ động lực. Đây là sản phẩm nằm bên trong MATLAB và sử dụng nhiều hàm của MATLAB, và cũng có thể trao đổi qua lại với môi trường của MATLAB để tăng thêm khả năng mềm dẻo của nó. - Với SIMULINK chúng ta có thể xây dựng mô hình toán học của hệ thống giống như khi ta vẽ sơ đồ khối. SIMULINK có một thư viện với nhiều khối chức năng khác nhau. Từ thư viện này ta có thể chọn các phần tử cơ sở cho mô hình hệ thống phân tích. Thêm vào đó có nhiều cách để thêm khối chức năng vào hệ thống. Ngay sau khi mô hình được xây dựng, ta có thể thực hiện quá trình mô phỏng theo nhiều cách khác nhau. Nhiều phương pháp tích phân có thể được sử dụng và người dùng cần định nghĩa giới hạn của bước thời gian, các tiêu chuẩn hội tụ. Các kết quả mô phỏng có thể được hiển thị qua các khối “màn hiện sóng” của SIMULINK hoặc chuyển sang môi trường làm việc (bộ nhớ) của MATLAB, ở đây ta có thể dùng các lệnh đồ hoạ mạnh hơn để hiển thị kết quả. - Phần còn lại của chương này sẽ giới thiệu một cách sơ lược việc sử dụng SIMULINK để xử lý một bài toán mô phỏng đơn giản. Điều này rất cần thiết cho các sinh viên muốn tiếp cận với SIMULINK. Tuy nhiên để có đầy đủ kiến thức về SIMULINK cần phải tham khảo thêm trợ giúp trực tuyến của phần mềm hoặc phần hướng dẫn sử dụng khi cài đặt phần mềm
  • 77. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 38 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 78. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 - Để xây dựng mô hình ta phải khởi động MATLAB (nháy đúp chuột vào biểu tượng MATLAB trên màn hình), tại dòng nhắc của MATLAB ta gõ simulink (hoặc nháy chuột vào biểu tượng simulink trên thanh công cụ) để kích hoạt chương trình SIMULINK, cửa sổ thư viện của simulink sẽ hiện ra. Nháy chuột vào biểu tượng “New” để mở ra cửa sổ mới xây dựng mô hình mô phỏng, hoặc "Open" để mở 1 file mô phỏng trước đó (tương tự như các phần mềm chạy trong Windows). - Việc xây dựng mô hình bắt đầu từ việc mở thư viện các khối của simulink bằng cách nháy chuột vào mục simulink và sau đó chọn các nhóm thích hợp. - Trong MATLAB 7.0 thư viện của Simulink phân làm 8 nhóm: Commontly Used Block, Continuous, Discontinuities, Discrete, Logic and Bit Operations, Look-up Tables, Math Operations, Model Verification, Model- Wide Utilities, Ports & SubSystems, Signal Attributes, Signal Routing, Sinks, Source, User-Defined Functions, Additional Math & Discrete - Các nhóm trên chứa rất nhiều khối chức năng cho phép thực hiện các phép tích toán phân tích động lực học trên các khối toán học chuẩn. Bao gồm từ các dạng tín hiệu đầu vào, các phép toán xử lý, các hàm chuânt, các hàm do người sử dụng tự xây dựng, cho đến quản lý các dữ liệu đầu ra. - Các thao tác cơ bản khi thực hiện trên Simulink: - Để Copy một khối từ thư viện vào của sổ mô hình, hãy chọn khối, rê chuột để kéo khối đã chọn và thả vào cửa sổ mô hình. Trong cửa sổ mô hình, nếu muốn copy một khối, hãy ấn phím Ctrl và rê chuột kéo khối sang vị trí đặt bản copy. Để xoá khối hãy chọn nó và ấn phím Delete. - Thao tác tiếp theo là nối các khối thành mô hình phản ánh hệ thống được mô tả bằng toán học ở trên. Dựa trên phương trình trạng thái toán học xác lập ban đầu, chúng ta cần nối các tín hiệu vào cho từng khối, và chỉ định đích cho tín hiệu ra (tính toán tiếp theo hoặc xuất kết quả...) - Bước cuối cùng là đổi tên các khối để có thể dễ dàng đọc và hiểu sơ đồ khối mô phỏng được xây dựng. Hãy nháy chuột lên tên của mô hình và biên tập lại. Chúng ta ghi mô hình vào đĩa bằng cách nháy chuột vào biểu tượng Save trên thanh công cụ và đặt tên tệp trong hộp thoại hiện ra và nháy vào Save - Để gán các giá trị cho thông số của mô hình chúng ta phải kích đúp chuột vào khối tương ứng. Trước khi chạy chương trình mô phỏng, hãy xác lập các thông số điều khiển quá trình mô phỏng: Trên thực đơn kéo xuống (pulldown menu) của cửa sổ mô hình hãy chọn Simulation/Parameter (hoặc ấn Ctrl + E). 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 1) Khối Derivative (Đạo hàm)
  • 79. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 39 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 80. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 Khối tính đạo hàm gồm 1 tín hiệu vào và 1 tín hiệu ra 2) Khối intergrator (tính tích phân) - Khối tính tính phân gồm 1 tín hiệu vào và 1 tín hiệu ra. Chú ý khi sử dụng khối tích phân có thể phải khai báo điều kiện đầu cho tín hiệu (mặc định giá trị của điều kiện đầu bằng 0). Khi nháy đúp chuột vào biểu tượng của khối, sẽ đưa ra 1 cửa sổ, điều kiện đầu được nhập tại dòng "Initial condition" như hình dưới: - Khối Look-Up Table được sử dụng rộng rãi khi tín hiệu vào có những điều kiện giá trị đặc biệt tại từng thời điểm. Nó gồm 2 tín hiệu: 1 tín hiệu vào (thông thường là thời gian) và 1 tín hiệu ra. Ví dụ, nếu chúng ta đã có dữ liệu về các thời điểm vận tốc (véc tơ "vv") được xác định tại các thời điểm (véctơ "tt") thì tín hiệu vào là thời gian (khối "clock") và các thông số khai báo của khối Look-up table được chỉ ra trong hình dưới 2) Khối Matlab Fcn (các hàm sẵn có của Matlab ) 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 1) Khối Look-Up Table (nhận tín hiệu từ vectơ đã có) Thông số trong khối này được chỉ ra trong ô "Matlab function": nó cho phép chúng ta sử dụng các hàm chuẩn sẵn có trong Matlab (hình dưới). Chú ý phân biệt khi nhập lệnh (tên hàm) phải là hàm sẵn có trong Matlab.
  • 81. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 40 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 82. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 Khối này thực hiện phép cộng các đại lượng, được thể hiện thông qua các tín hiệu vào (có 2 hoặc nhiều tín hiệu vào), kết quả đưa ở 1 tín hiệu ra. Khi nhấp đúp chuột vào khối sẽ cho ra bảng thông số như hình vẽ dưới cho phép người dùng định dạng số tín hiệu vào và hình thức thể hiện khối. 3) Khối Fcn (khai báo 1 hàm theo qui cách của MATLAB) - Đây là 1 khối cho phép mô tả công thức toán học một cách đơn giản mà trong thư viện chuẩn của Matlab chưa có, nó cũng gồm 1 tín hiệu vào và 1 tín hiệu ra. Thông số của hàm (định nghĩa hàm) được khai báo trong ô "Expression" như hình vẽ dưới 2.2. Nhóm các khối thực hiện thao tác toán học (Math) 1) Khối Sum (Cộng) - Trong dòng "Icon shape": lựa chọn hình thức thể hiện là hình tròn (round) hoặc hình chữ nhật (rectangular) tuỳ theo ý muốn của người dùng. - Trong ô "List of signs": nhập số lượng và phép tính (cộng/trừ). Ví dụ trên hình vẽ nếu cần 2 đại lượng cộng với nhau thì ta cần nhập 2 dấu "+". 2) Khối Gain (nhân với 1 hằng số) Khối này gồm 2 tín hiệu (1 vào, 1 ra), thực hiện phép nhân đại lượng vào với 1 hằng số "x" được khai báo trong khối, giá trị của x có thể được nhập trực tiếp hoặc là 1 hằng số được khai báo sẵn khi chạy trong cửa sổ lệnh của Matlab. Cách nhập thông số của khối thể hiện bên dưới.
  • 83. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 41 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 84. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 3) Khối Math Function (các hàm cơ bản trong Matlab) Đây là khối cho phép thực hiện 1 số hàm cơ bản trong Matlab, ý nghĩa cũng giống như Matlab function. Ưu điểm là người sử dụng lựa chọn trong danh sách các hàm có sẵn mà không cần nhớ tên hàm. Nhược điểm là số lượng hàm còn ít. Để gọi hàm cần lựa chọn hàm trong ô "Function" như hình vẽ dưới đây. 4) Khối Dot Product (thực hiện phép nhân tích vô hướng của 2 vectơ) Khối này có 2 tín hiệu vào là 2 vẽ tơ và 1 tín hiệu ra là giá trị vô hướng 5) Khối Product (thực hiện phép nhân 2 vectơ) Khối này thực hiện phép nhân các phần tử tương ứng của 2 vectơ (giống như toán tử "."). Nó có thể có 2 hoặc nhiều tín hiệu vào và 1 tín hiệu ra. Số lượng tín hiệu vào được khai báo trong ô "Number of inputs" như hình dưới đây Ngoài ra, trong nhóm Math còn có nhiều khối hàm toán học khác: abs, sin, ... Trên đây chỉ là một số khối cơ bản hay sử dụng nhất mà thôi. 2.4. Nhóm các khối xử lý tín hiệu 1) Khối Sub System (môđun con) Sub system là một hệ thống nhánh (môđun con) trong cả bài toán cụ thể. Subsystem có thể được tạo ra theo 2 cách: - Cách 1: Trong 1 ô cửa sổ đang mở của Simulink, đánh dấu tất cả các khối, sau đó bấm chuột phải, rồi lựa chọn "Creat subsystem". - Cách 2: Sử dụng khối "Sub System" Khối Subsystem có thể có nhiều cổng (tín hiệu) vào hoặc ra, tuỳ theo ý muốn của người sử dụng. Các tín hiệu vào (Input) và các tín hiệu ra
  • 85. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 42 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 86. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 (Output) được qui định khi đặt các cổng (In và Out) (xem thêm phần nhóm Sinks, cổng vào, ra) 2) Khối In (khai báo cổng vào trong Subsystem) Đây là khối thực hiện việc khai báo cổng vào cho Subsystem. Mỗi tín hiệu vào Subsystem cần phải có 1 khối In3) Khối Out (khai báo cổng ra trong Subsystem) Đây là khối thực hiện việc khai báo cổng ra cho Subsystem. Mỗi tín hiệu ra Subsystem cần phải có 1 khối Out. 4) Khối Mux (Trộn tín hiệu) Khối Mux cho phép trộn nhiều tín hiệu vào thành 1 tín hiệu ra tổng hợp. Số tín hiệu vào được khai báo khi nhấp đúp chuột vào biểu tượng khối. 5) Khối Demux (Phân rã tín hiệu) Ngược với khối Mux là khối Demux, nó cho phép phân rã 1 tín hiệu vào tổng hợp thành nhiều tín hiệu ra. Chú ý khi trộn tín hiệu vào là bao nhiêu tín hiệu riêng lẻ hay tổng hợp thì khi phân rã cũng bấy nhiêu tín hiệu như vậy. 7) Khối Goto (Ghi lại tín hiệu với tên định sẵn) lOMoAR cPSD|2935381 Khối Goto cho phép ghi lại tên tín hiệu với tên định sẵn tuỳ theo người sử dụng. Khối này thường sử dụng khi không muốn lưu trữ nhiều Subsystem, cũng như để tránh việc nối chồng chéo các tín hiệu giữa các Subsystem với nhau. Sự kết hợp của 2 khối Goto và From sẽ rất hiệu quả, giúp cho người sử dụng dễ quan sát và liên kết các khối được chính xác. Tên của tín hiệu được định tuỳ theo người sử dụng, cho ở trong ô "Tag" như hình vẽ dưới: 8) Khối From (Nhận tín hiệu với tên định sẵn) Như đã trình bày ở trên, khi tín hiệu có tên định trước, có thể gọi chính xác tín hiệu đó làm đầu vào mà không cần nối tín hiệu. Tên của tín hiệu được định tuỳ theo người sử dụng bằng cách lựa chọn các tín hiệu đã có sẵn tên trong bảng (được định ra sau khi sử dụng khối Goto), cho ở trong ô "Tag" hoặc lựa chọn khi bấm "Select tag" như hình vẽ dưới:
  • 87. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 43 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 88. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 2.4. Nhóm các khối thực hiện chức năng xuất kết quả (Sinks) 1) Khối Display (hiển thị kết quả ra màn hình) Khối này cho phép hiển thị các kết quả của quá trình mô phỏng ra màn hình, kết quả được đưa vào từ 1 tín hiệu vào. 2) Khối Out (đưa tín hiệu ra) Chức năng của khối này đã trình bày ở trên. 3) Khối Scope (hiển thị kết quả bằng đồ thị trong Simulink) Khối này thể hiện kết quả tính toán theo thời gian mô phỏng. Kết quả tính sẽ được thể hiện như hình dưới đây. Trong đó khi nhấp đúp vào biểu tượng "Autoscale" cho phép chúng ta quan sát một cách tổng thể toàn bộ kết quả. Các nút Zoom in và zoom out cho phép phóng to, thu nhỏ để quan sát các kết quả thu được từ quá trình mô phỏng 4) Khối To Workspace (đưa kết quả tính toán lưu trữ vào bộ nhớ chương trình) Khối này thực hiện việc đưa tín hiệu vào môi trường làm việc (bộ nhớ) của chương trình Matlab. Kết quả được lưu trữ trong bộ nhớ tạm thời khi Matlab đang hoạt động. Từ đó có thể có tác động tiếp theo đến tín hiệu (kết quả) xuất ra (như vẽ đồ thị, lưu trữ, xuất dữ liệu...). Khi nhấp đúp vào biểu tượng khối, tên của biến (tín hiệu xuất ra được nhập trong ô "Variable name" như hình vẽ dưới đây.
  • 89. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 44 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 90. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 2.5. Nhóm các khối thực hiện chức năng nhập dữ liệu (Sources) 1) Khối Constant (tín hiệu nhập vào là hằng số) Khối này đưa tín hiệu (kích động) đầu vào là hằng số theo thời gian. Khi nhấp đúp vào biểu tượng của khối, cho phép nhập giá trị của tín hiệu trong ô "Constant value" như hình vẽ dưới. 2) Khối In (nhập tín hiệu vào qua cổng vào) Chức năng của khối này đã trình bày ở trên 3) Khối Clock (nhập tín hiệu vào là thời gian) Tín hiệu vào được nhập là thời gian, tương ứng với thời điểm tích phân, rất hiệu quả khi tín hiệu vào là một hàm thời gian hay quá trình nội suy theo thời gian. 4) Khối From Workspace (nhập tín hiệu từ biến trạng thái trong bộ nhớ) biến được nhập trong ô "Data" như hình vẽ dưới đây 5) Khối Signal Buider (nhập tín hiệu dạng đặc biệt) Tín hiệu vào được nhập dưới dạng đặc biệt nhờ khối signal buider. Khi nhấp đúp chuột vào biểu tượng khối sẽ hiện ra cửa sổ như hình vẽ dưới. Chúng ta có thể thêm, bớt hoặc thay thế kiểu dạng tín hiệu khi bấm vào menu signal như trên hình đề có được tín hiệu dạng hàm sin, hình thang hay các hằng số… 3. Điều khiển thực thi quá trình mô phỏng Dữ liệu nhập vào là tên biến đang lưu trữ trong bộ nhớ của matlab trong quá trình chạy. Khi nhấp đúp chuột vào biểu tượng khối, tên của
  • 91. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 45 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 92. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 Để điều khiển các thông số thực hiện quá trình mô phỏng, nhấp chuột vào "SimulationConfiguration Parameters", khi đó sẽ hiện ra cửa sổ cho phép điều khiển các thông số cho quá trình mô phỏng. chọn sai số tính càng nhỏ thì kết quả tính càng chính xác, tuy nhiên thời gian tính toán càng lâu. Do đó việc lựa chọn thông số nên để ở thời gian mặc định, nếu thời gian tính toán nhanh thì có thể tăng độ chính xác để kiểm tra giá trị tính toán 4. Cấu trúc của một sơ đồ Simulink Sơ đồ Simulink được cấu trúc bằng các khối chức năng và các đường truyền tín hiệu liên kết chúng lại với nhau. Các khối chức năng được tích hợp sẵn trong các thư viện. Trong đồ án này sử dụng các khối thư viện như sau: a. Thư viện các khối Sources (Khối phát tín hiệu): Thư viện này gồm các khối tạo nguồn tín hiệu khác nhau Trong thư viện Sources có các khối được thể hiện như trong bảng 1 Bảng 1. Một số khối chức năng trong thư viện nhóm Sources của Matlab Simulink Trong hộp thoại xác lập chế độ mô phỏng, chúng ta có thể nhập các thông số điều khiển quá trình tính toán: - Ô "Start time": thời gian bắt đầu mô phỏng - Ô "Stop time": thời gian kết thúc mô phỏng - Ô "Relative tolerance": sai số tương đối - Ô "Absolute tolerance": sai số tuyệt đối - Ô "Type": xác lập kiểu chia bước tích phân: "Variable-Step"; chia bước tự động do máy tính, "Fixed-Step" chia bước do người sử dụng qui định. - Trong "Solver option" có thể lựa chọn kiểu tích phân (thông thường lựa chọn kiểu ode45, ode15s hoặc ode113) … Trong các thông số của quá trình mô phỏng, thông thường hay điều khiển thời điểm kết thúc quá trình tích phân và các sai số tính toán. Khi b. Thư viện các khối Sinks: Trong thư viện này có các khối của để thể hiện hoặc xuất kết quả các tín hiệu ra. Thư viện Sinks gồm một số khối chức năng được thể hiện ở bảng 2: Bảng 2. Một số khối chức năng trong thư viện nhóm Sinks c. Thư viện các khối Continuous: Trong thư viện này có các khối của hệ thống liên tục tuyến tính, các khối biểu diễn các hàm tuyến tính chuẩn được thể hiện ở bảng 3
  • 93. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 46 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 94. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 Bảng 3. Một số khối chức năng trong thư viện nhóm Continuous d. Thư viện các khối Signal & System: Thư viện các khối Signal & System có các khối biểu diễn tín hiệu và hệ thống. Các khối chính như trong bảng 4. Bảng 4. Một số khối chức năng trong thư viện nhóm Signal & System e. Thư viện các khối Math: Thư viện Math có các khối biểu diễn hàm toán học được thể hiện bảng 5. Bảng 5. Một số khối chức năng trong thư viện nhóm Math g. Thư viện các khối Funtion & Tables: Khi thực hành mô phỏng hệ thống phức tạp có nhiều phần tử nối ghép lại với nhau, có thể tạo ra các mô đun độc lập để mô phỏng các hệ thống con trong sơ đồ chung rồi nối ghép các mô đun đó lại. Việc cấu trúc thành các mô đun mô phỏng độc lập như vậy làm cho sơ đồ mô phỏng có tính hệ thống, dễ theo dõi, quan sát, kiểm tra cũng như dễ dàng thay đổi các giá trị thông số trong quá trình khảo sát. 5. Trình tự thực hiện quá trình mô phỏng -Xây dựng hệ phương trình vi phân mô tả sự hoạt động và thể hiện các quy luật chung về tính chất vật lý của hệ thống được gọi là xây dựng mô hình toán học của hệ thống. Các phương trình này mô tả được quan hệ ràng buộc giữa các thông số cấu trúc, các thông số trạng thái của hệ thống với các tham số của tác động bên ngoài -Bước tiếp theo để giải mô hình toán là xây dựng sơ đồ mô phỏng trên máy tính bằng công cụ Simulink trong môi trường Matlab theo trình tự các bước sau: - Lựa chọn các khối chức năng phù hợp trong thư viện của các khối chính để mô phỏng các thành phần trong hệ phương trình vi phân đã được xây dựng. - Sau khi đã có các khối chức năng, tiến hành các đường truyền tín hiệu bằng cách nối chúng lại với nhau theo đúng trình tự và chức năng trong cấu trúc của hệ thống cần khảo sát. - Nhập giá trị các thông số vào các khối chức năng của mô hình. - Thiết lập các điều kiện trong quá trình mô phỏng: Đó là các điều kiện đầu cho các bước tính toán, các khối chức năng. - Xác định các thông số điều khiển quá trình mô phỏng: Cần chú ý đến các thông số điều chỉnh như: thời gian mô phỏng, thuật toán tích phân, độ lớn của bước lấy tích phân, sai số cho phép và các tuỳ chọn xuất kết quả - Chạy chương trình và xuất kết quả mô phỏng, có thể dùng khối Scope để hiển thị hoặc dùng lệnh vẽ đồ thị “plot” của Matlab. - Đánh giá, nhận xét: sau khi chạy chương trình nhận được kết quả, căn cứ vào kết quả mô phỏng để so sánh với kết quả khảo nghiệm. Nếu không đúng thì phải kiểm tra lại từng bước, từ các phương trình vi phân mô tả toán học của quá trình đến việc lựa chọn các khối chức năng, nhập xuất dữ liệu và sự liên kết giữa các khối. Đến khi kết quả phù hợp với
  • 95. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 47 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 96. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoAR cPSD|2935381 ý nghĩa vật lý của quá trình khảo sát thì quá trình mô phỏng thành công. 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 1.1. Mục đích SIMULINK là một công cụ rất mạnh của Matlab để xây dựng các mô hình một cách trực quan và dễ hiểu. Để mô tả hay xây dựng hệ thống ta chỉ cần liên kết các khối có sẵn trong thư viện của SIMULINK lại với nhau. Sau đó, tiến hành mô phỏng hệ thống để xem xét ảnh hưởng của bộ điều khiển đến đáp ứng quá độ của hệ thống và đánh giá chất lượng hệ thống. 1.2. Giới thiệu Simulink Để thực hiện các yêu cầu trong bài thí nghiệm này, sinh viên cần phải chuẩn bị kỹ và hiểu rõ các khối cơ bản cần thiết trong thư viện của SIMULINK. Sau khi khởi động Matlab 7.0, ta gõ lệnh simulink hoặc nhấn vào nút simulink trên thanh công cụ thì cửa sổSIMULINK hiện ra: 1.2.1. Các khối sử dụng trong bài thí nghiệm Khối nguồn tín hiệu vào Sources Khối Step (ở thư viện SimulinkSources) có chức năng xuất ra tín hiệu hàm nấc. Double click vào khối này để cài đặt các thông số: Step time: khoảng thời gian ngõ ra chuyển sang mức Final value kể từ lúc bắt đầu mô phỏng. Cài đặt giá trị này bằng 0. - Initial value: Giá trị đầu. Cài đặt bằng 0. Final value: Giá trị cuối. Cài đặt theo giá trị ta muốn tác động tới
  • 97. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 48 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 98. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 hệ thống. Nếu là hàm nấc đơn vị thì giá trị này bằng 1. - Sample time: thời gian lấy mẫu. Cài đặt bằng 0 Khối Repeating Sequence (ở thư viện SimulinkSources) là khối phát tín hiệu lặp lại. Tuỳ theo giá trị lập trình mà nó có thể phát ra tín hiệu xung vuông, tam giác hay răng cưa với biên độ và tần số thay đổi được. Ví dụ: để phát xung tam giác có biên độ 5V, chu kỳ10s, ta khai báo như sau. Time values: [0 2.5 5 7.5 10] Output values: [0 5 0 -5 0] Khối tải– Thiết bị khảo sát ngõ ra (Sink). Khối Mux (ở thư viện SimulinkSignals Routing) là bộ ghép kênh nhiều ngõ vào 1 ngõ ra, từ ngõ ra này ta đưa vào Scope để xem nhiều tín hiệu trên cùng một cửa sổ. Double click vào khối này để thay đổi số kênh đầu vào (trong mục Number of inputs) Khối Scope (ở thư viện SimulinkSinks) là cửa sổ xem các tín hiệu theo thời gian, tỉ lệ xích của các trục được điều chỉnh tự động để quan sát tín hiệu một cách đầy đủ Các khối xử lý – Khối động học. Khối Sum (ở thư viện SimulinkMath Operations) là bộ tổng (cộng hay trừ) các tín hiệu, thường dùng để lấy hiệu số của tín hiệu đặt với tín hiệu phản hồi. Double click để thay đổi dấu của bộtổng. Khối Gain (ở thư viện SimulinkMath Operations) là bộ tỉ lệ. Tín hiệu sau khi qua khối 49
  • 99. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 này sẽ được nhân với giá trị Gain. Double click để thay đổi giá trị độ lợi Gain Khối Transfer Fcn (ở thư viện SimulinkContinuous) là hàm truyền của hệ tuyến tính. Double click để thay đổi bậc và các hệ số của hàm truyền. Cài đặt các thông số: - Numerator: các hệ số của đa thức tử số - Denominator: các hệ số của đa thức mẫu số Khối Relay (ở thư viện SimulinkDiscontinuities) là bộ điều khiển rơle 2 vị trí có trễ (còn gọi là bộ điều khiển ON-OFF). Các thông số: - Switch on point: nếu tín hiệu đầu vào lớn hơn giá trị này thì ngõ ra của khối Relay lên mức ‘on’ -Switch off point: nếu tín hiệu đầu vào nhỏ hơn giá trị này thì ngõ ra của khối Relay xuống mức ‘off’ Output when on: giá trị của ngõ ra khi ở mức ‘on’ -Output when off: giá trị của ngõ ra khi ở mức ‘off’ Nếu tín hiệu đầu vào nằm trong khoảng (Switch on point, Switch off point) thì giá trị ngõ ra giữ nguyên không đổi Khối PID controller (ở thư viện Simulink ExtrasAdditional Linear) là bộ điều khiển PID với hàm truyền KP: hệ số tỉ lệ (proportional term) KI: hệ số tích phân (integral term) KD: hệ số vi phân (derivative term) -Khối Saturation (ở thư viện SimulinkDiscontinuities) là một Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 100. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 khâu bão hòa. Các thông số cài đặt: -Upper limit: giới hạn trên. Nếu giá trị đầu vào lớn hơn Upper limit thì ngõ ra luôn bằng giá trị Upper limit -Lower limit: giới hạn dưới. Nếu giá trị đầu vào nhỏ hơn Lower limit thì ngõ ra luôn bằng giá trị Lower limit -Khâu bão hoà dùng để thể hiện giới hạn biên độ của các tín hiệu trong thực tế như: áp ra cực đại của bộ điều khiển đặt vào đối tượng, áp nguồn…. 1.2.2 Các bước để xây dự ng ứng dụng mới Sau khi khởi động Matlab, gõ lệnh >> simulink hoặc nhấn vào nút simulink trên thanh công cụ thì cửa sổ SIMULINK hiện ra (như ở hình vẽ Trang 1). Click vào biểu tượng như hình dưới (Simulink icon) Hình 1.1. Khởi động từ thanh công cụ Từ cửa sổ lệnh, đánh lệnh simulink và enter Cửa sổ thư viện Simulink sẽ hiển thị: Hình 1.2. Cửa sổ thư viện Simulink Tạo một mô hình mới bằng cách: - Click vào icon New model hoặc gõ Ctrl-N Hình 1.3. Tạo một mô hình mới bằng cách: Hình 1.4. Cửa sổ xây dựng mô hình Tạo các khối: từ thư viện Simulink chọn khối cần dùng, nhấp chuột vào và kéo ra ra cửa sổ mô hình Hình 1.5. Tạo các khối từ thư viện Simulink Lưu trữ mô hình bằng lệnh Save (File - Save) hoặc nhấp vào icon Save
  • 101. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 50 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 102. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 Hình 1.6. Lưu trữ mô hình Dịch chuyển các khối đơn giản bằng cách nhấp vào khối đó và kéo thả Hình 1.7. Dịch chuyển các khối Xoay các khối đơn giản bằng cách nhấp vào khối đó kết hợp với tổ hợp (trl+R) Mô phỏng mô hình: Dùng lệnh Start (Menu Simulation-Start) hoặc nhấp chuột vào icon Start Hình 1.8. Mô phỏng mô hình Xem tín hiệu từ Scope: nhấp đôi vào khối Scope Hình 1.9. Xem tín hiệu từ Scope Chỉnh thông số của một khối bằng cách nhấp đôi vào khối cần chỉnh, sau đó thay đổi các thông số theo yêu cầu Trước khi mô phỏng mô hình Simulink, chúng ta cần đặt các thông số mô phỏng bằng cách chọn menu Simulation-Configuration Parameters Hình 1.10. Cửa sổ Configuration Parameters Ở cửa sổ Configuration Parameters, chúng ta có thể đặt một số thông số như Start time, Stop time(second – giây), và phương pháp giải Solver, Solver options,.. sau đó nhấn nút OK Hình 1.11. Đặt các thông số mô phỏng 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 Lò nhiệt có đầu vào là điện áp (hay công suất) cung cấp cho dây điện trở và ngõ ra là nhiệt độ bên trong lò. Để lập hàm truyền lò nhiệt ta phải khảo sát phương trình vi phân mô tả các quan hệ nhiệt độ và năng lượng. Đây là một bài toán phức tạp nếu muốn mô tả chính xác hàm truyền phi tuyến của hệ thống. Một cách gần đúng, ta có thể xem môi trường nung là đồng chất, đẳng nhiệt. Từ phương trình cân bằng năng lượng: điện năng cung cấp sẽ được dùng để bù vào năng lượng nhiệt truyền ra bên ngoài và tích nhiệt vào môi
  • 103. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 51 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 104. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 trường nung, ta tính được hàm truyền lò là bậc nhất, có dạng như sau: Trong đó: P: công suất cung cấp. θ: là độ tăng nhiệt nhiệt độ đầu ra so với nhiệt độ môi trường. K: là hệ số tỉ lệ cho biết quan hệ vào ra ở chế độ xác lập. T: là hằng số thời gian, thể hiện quán tính nhiệt hệ thống. 2.2 Mô hình của Ziegler-Nichols Mô hình hàm truyền lò điện cho thấy quá trình quá độ với đầu vào hàm nấc có dạng hàm mũ. Thực tế cho thấy mô hình lò nhiệt trên chỉ là gần đúng, hệ thống có bậc cao hơn nhưng quá trình quá độ đầu vào hàm nấc vẫn không có quá điều chỉnh, có dạng như hình sau khi cho nhiệt độ đầu bằng 0. Hình 1.12. Xác định các thống số L, T Theo Ziegler-Nichols thì một hệ thống như vậy có thể được biểu diễn dưới dạng hàm truyền sau : bao gồm một khâu quán tính hệ số khuếch đại K và hằng số thời gian T, và khâu trễ thời gian L, các thông số này có thể lấy được khi kẻ tiếp tuyến ở điểm uốn cho đồ thị quá độ hàm nấc như hình vẽ bên. Hệ số khuếch đại K được tính như sau: Khi nhiệt độ ban đầu khác không, K được tính từ độ tăng nhiệt độ đầu ra so với môi trường. Để áp dụng cho hệ tuyến tính, ta lấy khai triển Taylor của e-LS, hàm truyền trở nên : Tóm lại, Ziegler-Nichols xấp xỉ hàm truyền lò với hệ bậc nhất có trễ hay hệ tuyến tính bậc hai, và cho phép tìm hàm truyền bằng thực nghiệm khi vẽ quá trình quá độ hệ thống với đầu vào là hàm nấc 2.3. Thí nghiệm 2.3.1. Chuẩn bị thí nghiệm Sinh viên phải chuẩn bị các kiến thức sau trước khi bước vào thí nghiệm: -Tìm hiểu sơ lược Matlab và Simulink. -Mô tả toán học hệ thống điều khiển tự động, đánh giá chất lượng hệ thống điều khiển tự động. -Mô hình hóa đối tượng và xác định thông số bộ điều khiển PID theo phương pháp thứ nhất của Ziegler – Nichols. -Phương pháp điều khiển on-off. Ưu khuyết điểm của điều khiển on-off so với điều khiển sớm trễ pha hay PID. -Phương pháp điều khiển PID. Ưu khuyết điểm của điều khiển PID. Cách hiệu chỉnh thông số PID dựa vào đáp ứng quá độ đối với tín hiệu vào hàm nấc đơn vị. 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. 1. Mục đích.
  • 105. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 52 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 106. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 Đặc trưng của lò nhiệt là khâu quán tính nhiệt. Từ khi bắt đầu cung cấp năng lượng đầu vào cho lò nhiệt, nhiệt độ của lò bắt đầu tăng lên từ từ. Để nhiệt độ lò đạt tới giá trị nhiệt độ cần nung thì thường phải mất một khoảng thời gian khá dài. Đây chính là đặc tính quán tính của lò nhiệt. Khi tuyến tính hoá mô hình lò nhiệt, ta xem hàm truyền của lò nhiệt như là một khâu quán tính bậc 2 hoặc như là một khâu quán tính bậc nhất nối tiếp với khâu trễ. Trong bài thí nghiệm này ta xem mô hình lò nhiệt như là một khâu quán tính bậc 2. Trong phần này, sinh viên sẽ khảo sát khâu quán tính bậc 2 cho trước. Dùng phương pháp Ziegler-Nichols nhận dạng hệ thống sau đó xây dựng lại hàm truyền. So sánh giá trị các thông số trong hàm truyền vừa tìm được với khâu quán tính bậc 2 cho trước này. 2. Trình tự thí nghiệm. - Bước 1. Dùng SIMULINK để xây dựng mô hình lò nhiệt vòng hở như sau. Hình 1.13. Mô hình khảo sát vòng hở Trong đó: +Step: là tín hiệu hàm nấc thể hiện phần trăm công suất cung cấp cho lò nhiệt. Giá trị của hàm nấc từ 0‚1 tương ứng công suất cung cấp 0%‚100% +Transfer Fcn – Transfer Fcn1: mô hình lò nhiệt tuyến tính hóa. +Đầu ra của Transfer Fcn1 là nhiệt độ thực của lò, đưa vào Scope để quan sát. Bước 2. Chỉnh giá trị của hàm nấc: Step time = 0; Initial value = 0; Final value = 1; Chỉnh thời gian mô phỏng Stop time = 600s. Bước 3: Nhấp chuột vào ô Parameters, vào trang Data History và tiến hành cài đặt các thông số như hình bên dưới: Hình 1.14. Cài đặt thông số mô hình khảo sát - Bước 4: Nhấn Run để mô phỏng quá trình -Bước 5: Double click vào khối Scope. Cửa sổ Scope hiện ra như sau. Hình 1.15. Cửa sổ Scope - Bước 6: Vào cửa sổ Command Window để nhập các dòng lệnh sau. >>plot(ScopeData.time,ScopeData.signals.valu es) % Vẽ lại đáp ứng. >> grid on % Kẻ lưới. (chú ý, cần chạy lại mô hình) - Bước 7: Lúc này cửa sổ Figure hiện ra với hình vẽ giống như hình vẽ ở cửa sổ Scope. Vào menu Insert/Line, Insert/Text để tiến hành kẽ tiếp tuyến và chú thích cho hình vẽ. Kết quả cuối cùng như hình bên dưới:
  • 107. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 53 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 108. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 Hình 1.16. Cửa sổ Figure-xác định các hệ số L,T hệ thống -Bước 8: Vào menu [File]→[Export] để lưu thành file *.bmp -Bước 9: Dựa vào đáp ứng ta có L ≈18, T≈177 Dựa vào đáp ứng xác định trị số L, T -Để xác định chính xác trị số L, T ta làm như sau: Trên cơ sở flide ScopeData → chọn Hide plot tools → Ticks….→ Edid Axes Ticks → X Axis (chọn step by = 10, 20…); Y Axis (chọn step by = 10, 20…). Khi đó xuất hiện lưới vẽ cho phép xác định chính xác trị số L, T. + Giá trị mặc định + Giá trị cài đặt 2.3.3. Khảo sát mô hình điều khiển nhiệt độ ON – OFF. 1. Mục đích. Khảo sát mô hình điều khiển nhiệt độ ON- OFF, xét ảnh hưởng của rơle có trễ. 2 Nguyên lý điều khiển on-off(dùng khâu rơle có trễ) Hình 1.17. Sơ đồ nguyên lý điều khiển on-of Phương pháp điều khiển on-of còn được gọi là phương pháp đóng ngắt hay dùng khâu rơle có trễ: cơ cấu chấp hành sẽ đóng nguồn để cung cấp cho năng lượng ở mức tối đa cho thiết bị tiêu thụ nhiệt nếu nhiệt độ đặt θ đặt lớn hơn nhiệt độ lò θ phản hồi, ngược lại mạch điều khiển sẽ ngắt mạch cung cấp năng lượng khi nhiệt độ đặt nhỏ hơn nhiệt độ thực của lò. Một vùng trễ được đưa vào để hạn chế tần số đóng ngắt như sơ đồ khối trên: nguồn chỉ được đóng khi sai lệch nhiệt độ e lớn hơn một lượng ∆ và ngắt khi e bé hơn ∆. Như vậy, nhiệt độ phản hồi θ phản hồi sẽ dao động quanh giá trị đặt θ đặt và 2∆ còn được gọi là vùng trễ của rơle. Khâu rơle có trễ còn gọi là mạch so sánh Smith trong mạch điện tử, và như vậy ∆ là giá trị thềm hay ngưỡng. Điều khiển on-of có ưu điểm là: -Thiết bị tin cậy, đơn giản, chắc chắn, hệ thống hoạt động được với mọi tải. -Tính toán thiết kế ít phức tạp và cân chỉnh dễ dàng. Nhưng có khuyết điểm là sai số xác lập sẽ lớn do hệ chỉ cân bằng động quanh nhiệt độ đặt và thay đổi theo tải. Khuyết điểm này có thể được hạn chế khi giảm vùng trễ bằng cách dùng phần tử đóng ngắt điện tử ở mạch công suất.
  • 109. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 54 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 110. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 Việc điều khiển nhiệt độ với chất lượng cao có thể thực hiện bằng sơ đồ điều khiển tuyến tính với hàm truyền hiệu chỉnh thích hợp. 3. Trình tự thí nghiệm. Bước 1: Dùng SIMULINK để xây dựng hệ thống điều khiển nhiệt độ on – off như sau: Hình 1.18. Mô hình hệ thống điều khiển nhiệt độ Trong đó: -Step: là tín hiệu hàm nấc thể hiện nhiệt độ đặt của lò. -Transfer Fcn – Transfer Fcn1: mô hình lò nhiệt tuyến tính hóa. -Khối Relay là bộ điều khiển ON-OFF. -Ngõ ra của Transfer Fcn1 là nhiệt độ thực của lò, đưa vào Scope để quan sát. -Hệ có hồi tiếp âm đơn vị. -Khối Gain dùng để khuếch đại tín hiệu ngõ ra khối Relay để quan sát cho rõ. Lưu ý rằng giá trị này không làm thay đổi cấu trúc của hệ thống mà chỉ hỗ trợ việc quan sát tín hiệu. Bước 2: Chỉnh giá trị của hàm nấc: Step time =0, Initial value = 0, Final value = 100, giá trị khối Gain = 50. Chỉnh thời gian mô phỏng Stop time = 600s. Chỉnh thông số khối Relay theo bảng sau: Vùng trễ Ngõ ra cao Ngõ ra thấp ( Switch (Output (Output on /off point) when on) when off) +1/-1 1 (công suất 0 (công suất 100%) 0%) +5/-5 1 (công suất 0 (công suất 100%) 0%) +10 / -10 1 (công suất 0 (công suất 100%) 0%) +20 / -20 1 (công suất 0 (công suất 100%) 0%) Bước 3: Nhấn Run để mô phỏng quá trình. Khi vùng trễ: +1 / -1; thời gian mô phỏng biến đổi, bước mô phỏng 0.00001 Hình 1.19. a. Mô hình hệ thống điều khiển nhiệt độ với Gian=120 b. Đặc tính quá độ khi vùng trễ là: +1/-1 STT Đại lượng Giá trị Ghi chú 1 Đáp ứng quá độ 117 Cmax 2 Lượng quá điều 17% chỉnh (σmax%) 3 Sai lệch điều chỉnh 17 trên ∆e1= 4 Sai lệch điều chỉnh -3 dưới ∆e2= 5 Chu kỳ đóng cắt 5,2 (T) Khi vùng trễ: +5 / -5 Hình 1.20. a. Mô hình hệ thống điều khiển nhiệt độ với Gian=120 b. Đặc tính quá độ khi vùng trễ là: +5/-5 STT Đại lượng Giá trị Ghi chú 1 Đáp ứng quá độ Cmax 120 2 Lượng quá điều chỉnh 20% (σmax%) 3 Sai lệch điều chỉnh trên 20
  • 111. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 55 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 112. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 ∆e1= 4 Sai lệch điều chỉnh dưới -8 ∆e2= 5 Chu kỳ đóng cắt (T) 3,2 Khi vùng trễ: +10 / -10 Hình 1.21. a Mô hình hệ thống điều khiển nhiệt độ với Gian=120 b. Đặc tính quá độ khi vùng trễ là: +10/-10 STT Đại lượng Giá trị Ghi chú 1 Đáp ứng quá độ 125 Cmax 2 Lượng quá điều 25% chỉnh (σmax%) 3 Sai lệch điều chỉnh 25 trên ∆e1= 4 Sai lệch điều chỉnh -12 dưới ∆e2= 5 Chu kỳ đóng cắt (T) 2,4 Khi vùng trễ: +20 / -20 Hình 1.22. a.Mô hình hệ thống điều khiển nhiệt độ với Gian=120 b Đặc tính quá độ khi vùng trễ là: +10/-10 STT Đại lượng Giá Ghi chú trị 1 Đáp ứng quá độ 133 Cmax 2 Lượng quá điều 33% chỉnh (σmax%) 3 Sai lệch điều 33 chỉnh trên ∆e1= 4 Sai lệch điều -12 chỉnh dưới ∆e2= 5 Chu kỳ đóng cắt 2,2 (T) Bước 4: Kết luận: -Khi vùng trễ của khâu roley tăng thì đáp ứng quá độ Cmax, lượng quá điều chỉnh (σmax%), Sai lệch điều chỉnh đều tăng còn số lần dao động (n) giảm. -Để sai số đầu ra xấp xỉ bằng 0 thì ta phải cho vùng trễ tiến về 0, chu kì đóng ngắt lúc này cũng xấp xỉ bằng 0. -Trong thực tế ta dường như không thể thực hiện được bộ điều khiển như vậy, vì ở giai đoạn xác lập bộ điều khiển phải đóng ngắt liên tục. Ta nên lựa chọn vùng trễ thích hợp để có sự dung hòa giữa sai số và chu kì đóng ngắt, sai số không quá lớn và bộ điều khiển không phải đóng ngắt liên tục để tăng tuổi thọ. 2.4 Khảo sát mô hình điều khiển nhiệt độ PID (phương pháp Ziegler – Nichols). 1.Mục đích. Khảo sát mô hình điều khiển nhiệt độ dùng bộ điều khiển PID, các thông số của bộ PID được tính theo phương pháp Ziegler- Nichols. Từ đó so sánh chất lượng của hệ thống ở 2 bộ điều khiển PID với bộ điều khiển ON-OFF. 2.Nguyên lý điều khiển tuyến tính: Khác với nguyên lý on-of chỉ có hai giá trị công suất ở đầu ra, sơ đồ điều khiển tuyến tính cung cấp công suất cho tải thay đổi một cách liên tục theo sai lệch giữa nhiệt độ đặt và nhiệt độ thực. Bộ hiệu chỉnh xử lý tín hiệu sai
  • 113. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 56 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 114. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 lệch đặt - phản hồi, cho ra tín hiệu điều khiển làm sai lệch tiến về zero với đặc tính quá độ mong muốn. Như vậy ở chế độ xác lập, nhiệt độ lò và công suất cung cấp cho lò sẽ có một giá trị xác lập, phụ thuộc vào đặc tính hệ thống. Chất lượng hệ thống như vậy sẽ phụ thuộc vào thông số của sơ đồ hiệu chỉnh. Một trong những nguyên lí hiệu chỉnh thường dùng là PID (vi phân tích phân tỉ lệ), và trong bài thí nghiệm ta dùng P (điều khiển tỉ lệ) vì không thể thực hiện các thời hằng của mạch vi tích phân (ở đây có trị số khá lớn) bằng mạch analog. Như vậy, khâu hiệu chỉnh chỉ là mạch khuếch đại có hệ số thích hợp, dung hoà giữa độ chính xác và chất lượng quá độ vì nếu tăng hệ số khuếch đại, sai số sẽ giảm nhưng sẽ xuất hiện dao động và vọt lố ở ngõ ra. Sơ đồ khối hệ thống điều khiển tuyến tính như sau: Hình 1.23. Sơ đồ hệ thống điều khiển tuyến tính HC: hàm truyền bộ hiệu chỉnh, trong thí nghiệm này chỉ là bộ khuếch đại. Phương pháp điều khiển công suất được dùng là điều rộng xung. Tải sẽ nhận công suất trong khoảng Ton của chu kì T không đổi. Công suất trên tải có thể điều khiển được bằng cách thay đổi độ rộng xung tương đối a: A=Ton/T. Và công suất cung cấp cho tải : P=a*Pmax. Pmax: công suất cực đại ứng với trường hợp a=1, khi phần tử điều khiển công suất là TRIAC đóng mạch liên tục. Vì TRIAC chỉ ngắt mạch khi dòng qua nó về zero, chu kì T phải đủ lớn để cho TRIAC có thể dẫn điện trong nhiều chu kì điện áp lưới (tần số lưới điện là 50 Hz). Trong bài thí nghiệm, T khoảng 3 giây, bộ thí nghiệm có chỉ thị hệ số a theo đơn vị % gọi là %công suất. 3. Trình tự thí nghiệm . - Bước 1: Dùng SIMULINK để xây dựng hệ thống điều khiển nhiệt độ PID như sau: Hình 1.24. Mô hình hệ thống PID điều khiển nhiệt độ Trong đó: - Step: là tín hiệu hàm nấc thể hiện nhiệt độ đặt của lò. - Transfer Fcn -Transfer Fcn1: mô hình lò nhiệt tuyến tính hóa. - Khối PID là bộ điều khiển PID. - Khâu bão hòa Saturation chỉ tín hiệu điều khiển - Ngõ ra của Transfer Fcn1 là nhiệt độ thực của lò, đưa vào Scope để quan sát. - Khối Gain dùng để khuếch đại tín hiệu ngõ ra khối Rolay để quan sát cho rõ. Lưu ý rằng giá trị này không làm thay đổi cấu trúc của hệ thống mà chỉ hỗ trợ việc quan sát tín hiệu. - Bước 2: Chỉnh giá trị của hàm nấc: Step time = 0, Initial value =0, Final value =100, giá trị khối Gain=50, khâu bão hòa Saturation có giới hạn là upper limit=1, lower limit=0 tượng trưng ngõ ra bộ điều khiển có công suất cung cấp từ 0% đến 100%. - Bước 3: Tính toán giá trị Tính giá trị các thông số Kp, Ki, Kd của khâu PID theo phương pháp Ziegler-Nichols từ thông số L và T tìm được L ≈18; T≈177; K=300 a) Tính các giá trị Kp, Ki, Kd theo L, T, K: (Khi vùng trễ: +1/-1; gain=50) Tính được:
  • 115. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 57 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 116. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoAR cPSD|2935381 Kp=1.2T/LK=0.0393; Ki=Kp/2LK=3.642*10-6 ; Kd=0.5KpL/K=1.18*10-3 *Nhận xét: Ta thấy tín hiệu ngõ ra trong trường hợp này không dao động xung quanh tín hiệu đặt như ở bộ điều khiển ON- OFF mà ngõ ra ở xác lập là hằng số. Tuy nhiên, giá trị này có sai số so với tín hiệu đặt. Chất lượng quá trình điều khiển có nhiều ưu điểm hơn so với phương pháp điều khiển ON-OFF. Hình 1.25. Đặc tính quá độ khi điều khiển tuyến tính KIỂM SOÁT MỰC NƯỚC HỆ BỒN ĐƠN DÙNG BỘ ĐIỀU KHIỂN PID SỐ Mô hình hệ bồn nước được sử dụng phổ biến trong các phòng thí nghiệm điều khiển. Các giải thuật điều khiển thường được áp dụng cho mô hình trên như điều khiển PID, điều khiển mờ… Điều khiển PID có nhiều ưu điểm như thông dụng trong công nghiệp, không cần biết cấu trúc hệ thống mà có thể điều chỉnh bằng thực tế. Do đó, bài báo đề cập về điều khiển PID. Bài viết sẽ khảo sát sự thay đổi các giá trị PID để kiểm tra một mô hình đơn giản dùng cho sinh viên thực tập tại phòng thí nghiệm điều khiển của Trường Sư phạm Kỹ Thuật Thành phố Hồ Chí Minh. Mục đích bài báo là trình bày việc thiết kế hệ thống điều khiển rời rạc dùng phương pháp PID số trên mô phỏng và điều khiển mô hình thực “Hệ thống điều khiển kiểm soát mực nước hệ bồn đơn”. 1.Giới Thiệu Trong lĩnh vực điện - điện tử, bộ điều khiển PID được sử dụng khá phổ biến. Bộ điều khiển PID thiết kế ở hai dạng gồm thiết kế điều khiển liên tục và thiết kế điều khiển rời rạc. Trong bài viết này, mô phỏng “Kiểm soát mực nước hệ bồn đơn” được thực hiện trên phần mềm Matlab thiết kế ở dạng rời rạc. Đồng thời trong bài viết này, tác giả đã xây dựng một mô hình thực “Hệ thống kiểm soát mực nước hệ bồn đơn” điều khiển bằng vi xử lý Arduino để quan sát tính ổn định của hệ thống khi thay đổi các giá trị PID. Tín hiệu ngõ vào bộ điều khiển là tín hiệu liên tục. Thuật toán điều khiển là các khâu tỷ lệ (Proportional), khâu tích phân (Integral) và khâu vi phân (Derivative) không làm tín hiệu bị đứt đoạn. Vì vậy, tín hiệu ngõ ra là tín hiệu liên tục. Hình 1. Bộ điều khiển PID kinh điển 2.Nội dung
  • 117. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 58 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 118. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 2.1 Mô hình toán của hệ bồn đơn Phương trình vi phân mô tả hệ thống bồn nước đơn 2.2 Hệ thống điều khiển rời rạc Vào trước năm 1960, khi vi xử lý chưa phát triển, hầu hết các hệ thống tự động được thiết kế là hệ thống điều khiển liên tục. Hệ thống điều khiển liên tục được điều khiển bởi các mạch điện tử như mạch tỷ lệ, mạch tích phân, mạch vi phân. Các mạch tỷ lệ, tích phân, vi phân là cơ sở của bộ điều khiển PID Hình 1 và khái niệm điều khiển PID liên tục cũng ra đời. Nhưng từ sau năm 1960, người ta bắt đầu điều khiển hệ thống theo dạng số hóa dùng vi xử lý, các bộ điều khiển hiện đại cũng được thiết kế và áp dụng nhiều hơn. Để đáp ứng yêu cầu hiện tại, người ta thiết kế hệ thống điều khiển rời rạc hay còn gọi là điều khiển số để phù hợp khi điều khiển bằng vi xử lý. Bộ điều khiển PID liên tục dần được thay thế bởi các bộ điều khiển PID số. Hệ thống điều khiển rời rạc có nhiều ưu điểm như dễ dàng thay đổi thuật toán điều khiển, áp dụng các thuật toán điều khiển phức tạp bằng cách lập trình. Có nhiều sơ đồ điều khiển khác nhau có thể áp dụng cho hệ rời rạc, trong đó sơ đồ điều khiển thông dụng nhất là hiệu chỉnh nối tiếp với bộ điều khiển GC(z) là bộ điều khiển sớm trễ pha số, PID số… Hàm truyền kín của hệ thống rời rạc có dạng Hình 2. Hàm truyền kín của hệ thống rời rạc Cần xác định hàm truyền GC(z) để hệ thống thỏa mãn yêu cầu về độ ổn định, chất lượng quá độ, sai số xác lập. Hệ thống “Kiểm soát mực nước hệ bồn đơn” được thiết kế mô phỏng là hệ thống điều khiển rời rạc dùng phương pháp thiết kế bộ điều khiển PID số. Hàm truyền của bộ điều khiển PID số có dạng Trong đó T là thời gian lấy mẫu (đơn vị giây)
  • 119. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 59 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 120. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 Các giá trị KP, KI , KD thống nhất KP được lựa chọn bằng phương pháp thực nghiệm. 2.3. Mô phỏng Hệ thống “Kiểm soát mực nước hệ bồn đơn” được thiết kế mô phỏng trên phần mềm Matlab Simulink theo phương trình toán học (1), (2). Hình 3. Mô phỏng điều khiển PID số cho bồn đơn trên Matlab Simulink Các thông số của đại lượng trong mô hình toán (1), (2) trình bày trong Bảng 2 được lựa chọn dựa trên mô hình thực tế mà tác giả thiết kế. Bảng 2. Thông số của các đại lƣợng trong mô hình toán (1), (2) Điều khiển tỉ lệ KP có ảnh hưởng làm giảm thời gian lên nhưng không loại bỏ sai số xác lập. Điều khiển tích phân KI sẽ loại bỏ sai số xác lập nhưng có thể làm đáp ứng quá độ không tốt Điều khiển vi phân KD có tác dụng làm tăng sự ổn định của hệ thống, giảm vọt lố và cải thiện đáp ứng quá độ. Các giá trị KP, KD và KI được lựa chọn theo kinh nghiệm và Bảng 3 được tóm tắt bên dưới. Bảng 3. Ảnh hƣởng của việc tăng các thông số độ lợi của bộ điều khiển PID Mô phỏng thực hiện so sánh ngõ ra của hệ thống Hình 4 khi thay đổi các giá trị điều khiển PI số, PD số, PID số tại điểm đặt xác định mà cụ thể là 7 cm. Hệ thống được mô phỏng với cùng một bộ tham số cho ba bộ điều khiển PI, PD và PID.
  • 121. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 60 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 122. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 Hình 4. Hoạt động của khâu hiệu chỉnh PI số, PD số, PID số tại điểm đặt 7 cm Tín hiệu nhiễu ở ngõ ra hệ thống Hình 5 được đưa vào mô phỏng để kiểm tra tính ổn định của hệ thống tại điểm đặt 7 cm với các bộ điều khiển PID, PI và PD. Hình 5. Mô phỏng hệ thống với tín hiệu nhiễu ngõ ra Ngõ ra của hệ thống tại điểm làm việc 7 cm khi có tín hiệu tạo nhiễu được thể hiện ở Hình 6. Hình 6. Hoạt động của khâu hiệu chỉnh PI số, PD số, PID số tại điểm đặt 7 cm khi có nhiễu Qua Hình 6, khi đưa tín hiệu nhiễu vào hệ thống thì khâu I có tác dụng kiềm chế sự dao động. Khi loại bỏ khâu I, với bộ điều khiển PD thì ngõ ra hệ thống dao động nhiều, biên độ dao động lớn. Bộ điều khiển PID khi xuất hiện nhiễu có biên độ dao động nhỏ, vẫn bám quanh điểm làm việc. Chung quy, bộ điều khiển PID số cho kết quả ngõ ra của hệ thống ổn định nhất, đảm bảo mực nước dao động tại điểm đặt 7 cm. 2.4. Điều khiển hệ bồn đơn dùng bộ điều khiển PID Mô hình hệ thống “Điều khiển kiểm soát mực nước hệ bồn đơn” thực tế được thiết kế bằng các linh kiện điều khiển như Hình 7. Chương trình điều khiển được lập trình trên phần mềm Arduino IDE. Các thông số KP, KI , KD được lựa chọn trong chương trình. Động cơ bơm được bảo vệ bởi diode chỉnh lưu 1N5407 3 A 800 V. Cực dương động cơ bơm DC được nối với Cathode của diode chỉnh lưu 1N5407. Cảm biến siêu âm đọc giá trị trả về từ mực nước trong bồn hiện tại về vi điều khiển Arduino. Vi điều khiển xử lý, truyền tín hiệu cho cầu H, cầu H điều xung cho động cơ bơm để đạt đến điểm đặt. Cụ thể là khi bắt đầu bơm, xung được cấp lớn để động cơ hoạt động với điện áp lớn nhất, khi đạt gần điểm đặt mà cụ thể ở đây là 7 cm thì xung cấp giảm, điện áp giảm. Với mỗi điểm đặt khác nhau thì thông số KP, KI , KD được lựa chọn khác nhau. Song song với đó, tiết diện xả của van cũng là một tố quyết định các thông số KP, KI , KD. Các yếu tố hệ số xả của van, điểm đặt cần được xác định để lựa chọn thông số KP, KI , KD sao cho hệ thống hoạt động ổn định nhất
  • 123. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 61 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 124. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 hiệu đọc xuất hiện sai lệch. Đồng thời, trong trường hợp vi xử lý không tính toán nhanh sẽ không kịp xuất tín hiệu điều khiển trong một chu kì lấy mẫu điều khiển (tức thời gian lấy mẫu T). Thời gian lấy mẫu T = 0,1 giây. Tức là cứ sau 0,1 giây thì giá trị mức nước trong bồn hiện tại sẽ được trả về để xử lý và xuất tín hiệu điều khiển trong chính chu kì lấy mẫu đó. 2.5. Kết quả thực tế Qua quá trình thí nghiệm hệ thống “Kiểm soát mực nước hệ bồn đơn”, so sánh giữa ba bộ điều khiển số PI, PD, PID. Kết quả thu được thể hiện trong Hình 8 và Hình 9 Hình 7. Mô hình thực tế của hệ thống 1. Vi xử lý Arduino Uno R3; 2. Cầu H L298N; 3. Cảm biến siêu âm HC-SR05; 4. Động cơ bơm nước 12 VDC; 5. Bồn nước bằng mica; 6. Van xả đường kính 6 mm; 7. Can nhựa 6 lít chứa nước; 8. Adapter 220 VAC/12 VDC; 9. Ống nước; 10. Dây cáp. Trong quá trình thí nghiệm, điểm đặt được xác định là 7 cm, khóa van xả được điều chỉnh bằng với tiết diện xả được thiết kế trên bồn nước thì khi so sánh kết quả của các bộ điều khiển PI số, PD số, PID số mới đảm bảo tính chính xác. Thời gian lấy mẫu T đối với hệ bồn nước đơn cần lựa chọn phù hợp. Nếu chúng ta lấy thời gian lấy mẫu T dài thì vi xử lý sẽ không đáp ứng kịp sự thay đổi của hệ thống nên sẽ không điều khiển tốt. Nếu chúng ta lấy thời gian lấy mẫu ngắn thì sai số do nhiễu cảm biến sẽ tăng, tín Hình 8. Kết quả thu thập từ mô hình thực tế với điểm đặt h = 7 cm Hình 9. Kết quả thu thập từ mô hình thực tế với điểm đặt h = 4 cm Chúng ta nhận thấy rằng, các kết quả thu được ở các bộ điều khiển PI số, PD số, PID số đều có dao động ngõ ra. Điều này không thể tránh được trong quá trình điều khiển thực tế vì do các yếu tố khác nhau nên gây ra dao động trên mặt nước.
  • 125. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 62 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 126. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 Bảng 5 và Bảng 6 sẽ lần lượt trình bày chất lượng hệ thống tại điểm làm việc 7 cm và 4 cm khi áp dụng ba bộ điều khiển PID, PI và PD trên mô hình thực. Qua quan sát bằng đồ thị Hình 8 và 9 và nhận xét bằng các chỉ tiêu chất lượng, đáp ứng ngõ ra của hệ thống tại điểm đặt 4 cm có chất lượng tốt hơn điểm làm việc 7 cm. Hệ bồn đơn là một hệ thống có quán tính lớn, thời gian đáp ứng càng nhanh thường dẫn đền vọt lố cao. Tại điểm làm việc 7 cm, với bộ điều khiển PID, thời gian đáp ứng nhanh nên hệ thống đã sinh ra vọt lố, sau một khoảng thời gian thì hệ thống đạt giá trị xác lập. Trong khi đó, tại điểm đặt 4 cm thì thời gian đáp ứng và độ vọt lố đã được dung hòa nên ngõ ra hệ thống với bộ điều khiển PID có chất lượng tốt hơn. Nhìn chung với bộ điều khiển PID số cho đáp ứng ngõ ra hệ thống đạt chất lượng tốt hơn so với 2 bộ điều khiển còn lại. 3. Kết luận thi nghiệm Trong bài viết này, tác giả đã xây dựng hệ thống “Kiểm soát mực nước hệ bồn đơn” theo phương pháp điều khiển rời rạc kết hợp với đó là so sánh ba bộ điều khiển PID số, bộ điều khiển PD số và bộ điều khiển PI số bằng mô phỏng trên phần mềm Matlab và áp dụng trên mô hình thực. Hệ thống bồn nước đơn là một hệ chậm, để điều khiển hệ thống trong thời gian thực cần quan tâm cải thiện về phần công suất của hệ thống. Vi điều khiển Arduino có tốc độ xử lý là 16 MHz, cảm biến HC-SR05 có tốc độ xử lý là 40 KHz. Thời gian lấy mẫu của hệ thống là 100 ms thì vi điều khiển và cảm biến hoàn toàn có thể đáp ứng. Phần quan tâm cần cải thiện là động cơ bơm của hệ thống. Động cơ được sử dụng trong mô hình có giá thành rẻ, chất lượng chưa tốt, với thời gian lấy mẫu 100 ms thì động cơ đáp ứng ổn định. Khi thay thế thời gian lấy mẫu nhanh thì động cơ không đáp ứng kịp thời làm ảnh hưởng kết quả ngõ ra. Nếu thay thế thời gian lấy mẫu chậm hơn thì kết quả không thay đổi tốt hơn so với ban đầu. Chính vì vậy, để có thể điều khiển trong thời gian thực cần chú ý đến động cơ có chất lượng tốt hơn. Nhìn chung, khi sử dụng bộ điều khiển PID số, người điều khiển cần quan tâm đến việc lựa chọn các giá trị KP, KI , KD sao cho phù hợp với đối tượng cần điều khiển. Quá trình thực nghiệm cần được chú trọng để lựa chọn các thông số cho bộ điều khiển PID số sao cho ngõ ra của hệ thống ổn định nhất.
  • 127. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 63 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 128. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoAR cPSD|2935381 PHẦN 4: KẾT LUẬN Điều khiển tự động đóng vai trò quan trọng trong sự phát triển của khoa học và kỹ thuật. Lĩnh vực này hữu hiệu khắp nơi từ hệ thống phi thuyền không gian, hệ thống điều khiển tên lửa, máy bay không người lái, người máy, tay máy trong các quy trình sản xuất hiện đại, và ngay cả trong đời sống hàng ngày: điều khiển nhiệt độ, độ ẩm... Phát minh đầu tiên khởi đầu cho việc phát triển của lĩng vực điều khiển tự động là bộ điều tốc ly tâm để điều chỉnh nhiệt độ máy hơi nước của Jame Watt năm 1874. Các công trình đáng chú ý trong bước đầu phát triển lý thuyết điều khiển là của các nhà khoa học Minorsky, Hazen, Nyquist...năm 1922. Minorky thực hiện hệ thống điều khiển tự động các con tàu và chứng minh tính ổn định của hệ thống có thể được xác định từ phương trình vi phân mô tả hệ thống. Năm 1932, Nyquist đã đưa ra một nguyên tắc tương đối đơn giản để xác định tính ổn định của hệ thống vòng kìn dựa trên cơ sở đáp ứng vòng hở đối với các tính hiệu vào hình sin ở trạng thái xác lập. Năm 1934, Hazen đã giới thiệu thuật ngữ điều chỉnh cơ tự động (servo mechanism) cho những hệ thống điều khiển định vị vâà thảo luận đến việc thiết kế hệ thống relay điều chỉnh động cơ với ngõ vào tín hiệu thay đổi. Trong suốt thập niên 40 của thế kỷ 20 phương pháp đáp ứng tần số đã giúp cjo các kỹ sư thiết kế các hệ thống vòng kín tuyến tính thỏa các yêu cầu chất lượng điều khiển.
  • 129. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 64 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 130. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoAR cPSD|2935381 Từ cuối thập niên 40 cho đến đầu thập niên 50 phương pháp quỹ đạo nghiệm của Evan được phát triển khá toàn vẹn. Phương pháp quỹ đạo nghiệm và đáp ứng tần số được xem là cốt lõi của lý thuyết điều khiển cổ điển cho phép ta thiết kế được những hệ thống ổn định và thỏa các chỉ tiêu chất lượng điều khiển. Những hệ thống này được chấp nhận nhưng chưa phải là tối ưu, hoàn thiện nhất. Cho tới cuối thập niên 50 của thế kỷ 20 việc thiết kế một hay nhiều hệ thống dần dần được chuyển qua việc thiết kế một hệ thống tối ưu với ý nghĩa đầy đủ hơn. Khi các máy móc hiện đại ngày càng phức tạp hơn với nhioều tín hiệu vào và ra thì việc mô tả hệ thống điều khiển hiện đại này đòi hỏi một lượng rất lớn các phương trình. Lý thuyết điều khiển cổ điển liên quan các hệ thống một ngõ vào và một ngõ ra trở nên bất lực để phân tích các hệ thống nhiều đầu vào, nhiều đầu ra. Kể từ khoảng năm 1960 trở đi nhờ máy tính sốcho phép ta phân tích các hệ thống phức tạp trong miền thời gian, lý thuyết điều khiển hiện đại phát triển để đối phó với sự phức tạp của các hệ thống hiện đại. Lý thuyết điều khiển hiện đại dựa trên phân tích trong miền thới gian và tổng hợp dùng các biến trạng thái, cho phép giải các bài toán điều khiển có các yêu cầu chặt chẽ về độ chính xác, trọng lượng và giá thành của các hệ thống trong lĩnh vực kỹ nghệ không gian và quân sự. Sự phát triển gần đây của lý thuyết điều khiển hiện đại là trong nhiều lĩnh vực điểu khiển tối ưu của các hệ thống ngẫu nhiên và tiền định. Hiện nay máy vi tính ngày càng rẽ, gọn nhưng khả năng xử lý lại rất mạnh nên nó được dùng như là một phần tử trong các hệ thống điều khiển. Những áp dụng gần đây của lý thuyết điều khiển hiện đại vào ngay cả những ngành kỹ thuật như: sinh học, y học, kinh tế, kinh tế xã hội. *Tài liệu tham khảo - Nguyễễn Thị Phươ ng Hà (chủ biễn),Huỳnh Thái HoàngĐ-ạ i Cương Lý Thuyễết Điễều Khiể nự T ộĐ ng–Đại Học Quốếc Gia TP. Hốề Chí Minh - 2005 - Nguyễễn Thị Phươ ng Hà –Lý Thuyễết Điễều Khiể n ệHi nạĐ– Điạ i Học Quốếc Gia TP. Hốề Chí Minh - 2012 - Huỳnh Thái Hoàng - Hệ ThốếngĐiễều Khiể n Thống Minh- Đạ i học Quốếc gia TP. Hốề Chí Minh 2006 - Nguyễễn Văn ơS n T-ạp chí Đạ i học THỦ DẦẦU MỘ T, sốế 6(25) - 2015,Đai Học Thủ Dầều Mộ t - Võ Minh Tài, Nguyễễn Phong ưL u, Nguyễễn Văn ĐốngảHTi,ạp Chí Khoa học Sốế 40(10-2019),Đạ i Học Đốềng Tháp - Nguyễễn Phùng Quang – MATLAB & Simulink dành cho ỉk ưs Điễều Khiể nựT ộĐ ngNXB- KH&KT Hà Nội 2004 - TS. Lương Văn Vạn - Đễề ươc ng bài giả ng MATLAB & Simulink - Đạ i ọh c SPKT Vĩnh ongL
  • 131. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 65 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)
  • 132. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 -
  • 133. DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 66 Downloaded by EBOOKBKMT VMTC (nguyenphihung1009@gmail.com)