You are on page 1of 60

BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC ĐIỆN LỰC


KHOA CÔNG NGHỆ TỰ ĐỘNG

ĐỒ ÁN MÔN HỌC
MÔ HÌNH HÓA MÔ PHỎNG
Đề tài: Tìm hiểu về phần mềm mô phỏng Matlab &
Simulink

Giảng viên hướng dẫn : Ths. LÊ QUỐC DŨNG


Sinh viên thực hiện : CHU VĂN TUẤN
Ngành : CÔNG NGHỆ TỰ ĐỘNG
Lớp : D8CNTD2
Khoá : 2013 – 2018

Hà Nội, tháng năm 2017


Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

LỜI MỞ ĐẦU
Thời đại của công nghệ thông tin phát triển mạnh mẽ, cùng với nó là hàng
loạt các phần mềm hỗ trợ kèm theo, thì MATLAB & SIMULINK là một phần
mềm mà ứng dụng của nó trong điều khiển tự động quả là không nhỏ. MATLAB
& SIMULINK là một ngôn ngữ mô phỏng đa năng. Nó tạo môi trường để
SIMULINK thực hiện và để liên kết SIMULINK với bên ngoài. Trong lòng
MATLAB đã tích hợp sẵn rất nhiều công cụ chuyên dùng để giải các bài toán
khác nhau như: nhận dạng các đối tượng động học, điều khiển tối ưu, điều khiển
bền vững, điều khiển mờ, xử lý số tín hiệu. Do đó, việc tìm hiểu vầ nắm vững
kiến thức về cơ sở lý thuyết điều khiển tự động và công cụ phần mềm mô phỏng
MATLAB & SIMULINK là hết sức cần thiết. Với đề tài " Ứng dụng phần mềm
MATLAB & SIMULINK để khảo sát các chỉ tiêu chất lượng của hệ thống điều
khiển tự động tuyến tính liên tục " , nhóm chúng em đã vận dụng được những ưu
điểm của phần mềm này trong việc giải quyết các yêu cầu của bài toán điều
khiển tự động, Đặc biệt, việc phân tích, đánh giá chất lượng của hệ thống và
thiết kế bộ điều khiển cho hệ thống với mục đích làm cho hệ thống có những đặc
tính như mong muốn là mục tiêu cuối cùng của các nhà kỹ thuật. Sau quá trình
học tập rèn luyện và nghiên cứu tại trường, chúng em đã tích luỹ được vốn kiến
thức để thực hiện đề tài của mình. Đến nay chúng em đã hoàn thành đề tài này
với nội dung như sau:
- CHƯƠNG 1: LỊCH SỬ HÌNH THÀNH VÀ PHÁT TRIỂN CỦA MATLAB.
- CHƯƠNG 2: CƠ SỞ SIMULINK.
- CHƯƠNG 3: GIỚI THIỆU CÁC CHỨC NĂNG CHÍNH.
- CHƯƠNG 4: CÁC VÍ DỤ MINH HỌA TÍNH NĂNG CỦA PHẦN MỀM
Hà Nội, ngày tháng năm 2016
Sinh viên
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

LỜI CẢM ƠN
Trong quá trình thực hiện đề tài mă ̣c dù gă ̣p phải rất nhiều những vấn đề
khó khăn song với sự hướng dẫn của thầy Ths. LÊ QUỐC DŨNG cùng với sự
chỉ bảo của các thầy cô giáo Khoa Công Nghệ Tự Động và sự lỗ lực không
ngừng, đến nay em đã hoàn thành đề tài. Tuy nhiên, do kiến thức của em còn
hạn chế, nên không thể tránh khỏi những thiếu sót. Vì vậy em rất mong nhận
được những ý kiến đóng góp chân thành từ phía thầy Ths. LÊ QUỐC DŨNG
cùng với sự chỉ bảo của các thầy cô giáo Khoa Công Nghệ Tự Động và các bạn
đọc để đề tài này của em ngày càng hoàn thiện và phát triển lên mức cao hơn
trong thời gian gần nhất.

Em xin chân thành cảm ơn!


Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

Đánh giá và nhận xét của GV hướng dẫn


……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………

Giáo viên hướng dẫn


Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

Ths. Lê Quốc Dũng

MỤC LỤC

CHƯƠNG 1: LỊCH SỬ HÌNH THÀNH VÀ PHÁT TRIỂN CỦA MATLAB...............1


1.1 Lịch sử hình thành và phát triển của Matlab & Simulink................................1
1.2 Ngôn ngữ lập trình................................................................................................2
1.3 Phạm vi ứng dụng của Matlab.............................................................................2
CHƯƠNG 2: GIỚI THIỆU CƠ BẢN VỀ MATLAB & SIMULINK.............................5
2.1 Các khái niệm cơ bản trong Matlab....................................................................5
2.1.1 Một số phím chuyên dụng và lệnh thông dụng............................................5
2.1.2 Biến trong MATLAB.....................................................................................5
2.1.3 Các phép toán trong MATLAB....................................................................7
2.1.4 Số phức và các phép toán về số phức.........................................................11
2.1.5 Sử dụng các lệnh file lệnh (lập trình m-file)..............................................11
2.2 Cơ sở về Simulink................................................................................................15
2.2.1 Khởi động Simulink.....................................................................................15
2.2.2 Các thao tác cơ bản với Simulink...............................................................17
2.2.3 Tín hiệu và các loại dữ liệu..........................................................................18
2.2.4 Thư viện của Simulink.................................................................................19
CHƯƠNG 3: CÁC CHỨC NĂNG CHÍNH CỦA MATLAB & SIMULINK...............27
3.1 Giới thiệu một số toolbox về tính toán số, phân tích dữ liệu, hiển thị đồ thị…. .27
3.1.1 Symbolic toolbox...............................................................................................27
3.1.2 Control system toolbox – Công cụ khảo sát, thiết kế hệ thống điều khiển. .30
3.1.3 Optimization toolbox – Công cụ tính toán tìm tối ưu....................................31
3.1.4 Signal processing toolbox – Công cụ xử lý tín hiệu........................................31
3.2 Giới thiệu về lập trình Matlab................................................................................31
3.2.1 Sơ lược lập trình Matlab..................................................................................31
CHƯƠNG 4: CÁC VÍ DỤ MINH HỌA...........................................................................33
4.1 MÔ PHỎNG ĐỘNG CƠ MỘT CHIỀU KÍCH TỪ ĐỘC LẬP BẰNG PHẦN
MỀM MATLAB/SIMULINK.......................................................................................33
4.2 ỨNG DỤNG BỘ ĐIỀU KHIỂN PID ĐIỀU KHIỂN ĐỘNG CƠ MỘT
CHIỀU.............................................................................................................................36
4.2.1 Thông số động cơ..........................................................................................36
4.2.2 Xây dựng sơ đồ cấu trúc..............................................................................36
4.2.3 Mô phỏng hệ thống...........................................................................................38
4.3 SỬ DỤNG CÔNG CỤ SISOTOOL THIẾT KẾ HỆ THỐNG........................40
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

4.4 THIẾT KẾ BỘ ĐIỀU KHIỂN MỜ DẠNG PID ĐỂ ỔN ĐỊNH HỆ THỐNG


ĐIỆN 44
4.4.1 Giới thiệu.......................................................................................................44
4.4.2 Mô hình hệ thống.........................................................................................44
4.4.3 Thiết kế bộ điều khiển..................................................................................45
4.4.4 Mô phỏng......................................................................................................49
DANH MỤC TÀI LIỆU THAM KHẢO..........................................................................51
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

CHƯƠNG 1: LỊCH SỬ HÌNH THÀNH VÀ PHÁT TRIỂN CỦA MATLAB


1.1 Lịch sử hình thành và phát triển của Matlab & Simulink
MATLAB là 1 phần mềm ứng dụng chạy trong môi trường Windows do
hãng MathWorks sản xuất và cung cấp. Có thể coi Matlab là ngôn ngữ của kỹ
thuật. Nó tích hợp các công cụ rất mạnh phục vụ tính toán, lập trình, thiết kế, mô
phỏng,... trong một môi trường rất dễ sử dụng trong đó các bài toán và các lời
giải được biểu diễn theo các ký hiệu toán học quen thuộc.
Matlab là viết tắt từ "MATrix LABoratory", được Cleve Moler phát minh
vào cuối thập niên 1970, và sau đó là chủ nhiệm khoa máy tính tại Đại học New
Mexico. MATLAB, nguyên sơ được viết bởi ngôn ngữ Fortran, cho đến 1980 nó
vẫn chỉ là một bộ phận được dùng nội bộ của Đại học Stanford.
Năm 1983, Jack Little, một người đã học ở MIT và Stanford, đã viết lại
MATLAB bằng ngôn ngữ C và nó được xây dựng thêm các thư viện phục vụ
cho thiết kế hệ thống điều khiển, hệ thống hộp công cụ (tool box), mô phỏng...
Jack xây dựng MATLAB trở thành mô hình ngôn ngữ lập trình trên cơ sở ma
trận (matrix-based programming language). Steve Bangert là người đã viết trình
thông dịch cho MATLAB. Công việc này kéo dài gần 1½ năm. Sau này, Jack
Little kết hợp với Moler và Steve Bangert quyết định đưa MATLAB thành dự án
thương mại - công ty The MathWorks ra đời thời gian này - năm 1984.
Phiên bản đầu tiên MATLAB 1.0 ra dời năm 1984 viết bằng C cho MS-DOS
PC được phát hành đầu tiên tại IEEE Conference on Design and Control (Hội
nghị IEEE về thiết kế và điều khiển) tại Las Vegas, Nevada. Ban đầu Matlab
được phát triển để hỗ trợ sinh viên sử dụng hai thư viện LINPACK và
EISPACK dùng cho đại số tuyến tính (viết bằng Fortran) mà không cần biết lập
trình Fortran.
Năm 1986, MATLAB 2 ra đời trong đó hỗ trợ UNIX.
Năm 1987, MATLAB 3 phát hành.
Năm 1990 Simulink 1.0 được phát hành gói chung với MATLAB.
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

Năm 1992 MATLAB 4 thêm vào hỗ trợ 2-D và 3-D đồ họa màu và các ma
trận truy tìm. Năm này cũng cho phát hành phiên bản MATLAB Student Edition
(MATLAB ấn bản cho học sinh).
Năm 1993 MATLAB cho MS Windows ra đời. Đồng thời công ty này có
trang web là www.mathworks.com
Năm 1995 MATLAB cho Linux ra đời. Trình dịch MATLAB có khả năng
chuyển dịch từ ngôn ngữ MATLAB sang ngôn ngữ C cũng được phát hành
trong dịp này.
Năm 1996 MATLAB 5 bao gồm thêm các kiểu dữ liệu, hình ảnh hóa, bộ truy
sửa lỗi (debugger), và bộ tạo dựng GUI.
Năm 2000 MATLAB 6 cho đổi mới môi trường làm việc MATLAB, thay
thế LINPACK và EISPACK bằng LAPACK và BLAS.
Năm 2002 MATLAB 6.5 phát hành đã cải thiện tốc độ tính toán, sử dụng
phương pháp dịch JIT (Just in Time) và tái hỗ trợ MAC.
Năm 2004 MATLAB 7 phát hành, có khả năng chính xác đơn và kiểu
nguyên, hỗ trợ hàm lồng nhau, công cụ vẽ điểm, và có môi trường phân tích số
liệu tương tác.
Đến tháng 12, 2008, phiên bản 7.7 được phát hành với SP3 cải thiện
Simulink cùng với hơn 75 sản phẩm khác.
Năm 2009 cho ra đời 2 phiên bản 7.8 (R2009a) và 7.9 (R2009b).
Năm 2010 phiên bản 7.10 (R2010a) cũng đã được phát hành.
Matlab được dùng rộng rãi trong giáo dục, phổ biến nhất là giải các bài toán số
trị (cả đại số tuyến tính lẫn giải tích) trong nhiều lĩnh vực kĩ thuật.
1.2 Ngôn ngữ lập trình
Ngôn ngữ lập trình dùng trong hệ tính toán số cũng có tên gọi là Matlab. Nó
thuộc kiểu lập trình thủ tục (với một số đặc điểm của lập trình hướng đối tượng mới
được bổ sung trong các phiên bản gần đây).
1.3 Phạm vi ứng dụng của Matlab
Các ứng dụng điển hình là:- Toán học và tính toán.
- Phát triển thuật toán.
- Tạo mô hình, mô phỏng và tạo giao thức.
- Khảo sát, phân tích số liệu.
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

- Đồ hoạ khoa học kỹ thuật.


- Phát triển ứng dụng, gồm cả xây dựng giao diện
người dùng đồ hoạ GUI.
Matlab là một hệ thống tương tác mà phần tử dữ liệu cơ bản là một mảng
(array) không cần khai báo kích thước. Điều này cho phép bạn giải nhiều bài
toán tính toán kỹ thuật đặc biệt là các bài toán liên quan đến ma trận và véc tơ.
Matlab là viết tắt của hai từ tiếng Anh Matrix Laboratory (Phòng thí nghiệm
ma trận). Ban đầu Matlab được viết chỉ để phục vụ cho việc tính toán ma trận.
Trải qua thời gian dài, nó đã được phát triển thành một công cụ hữu ích, một
ngôn ngữ của kỹ thuật. Trong môi trường đại học, nó là một công cụ chuẩn cho
các khoá học mở đầu và cao cấp về toán học, khoa học và kỹ thuật. Trong công
nghiệp, nó là công cụ được lựa chọn cho việc phân tích, phát triển và nghiên cứu
hiệu suất cao.
Matlab cung cấp một họ các giải pháp theo hướng chuyên dụng hoá được gọi
là các Toolbox (hộp công cụ). Các toolbox cho phép người sử dụng học và áp
dụng các kỹ thuật chuyên dụng cho một lĩnh vực nào đó. Toolbox là một tập hợp
toàn diện các hàm của Matlab (M-file) cho phép mở rộng môi trường Matlab để
giải các lớp bài toán cụ thể. Các lĩnh vực trong đó có sẵn các toolbox bao gồm:
Xử lý tín hiệu, hệ thống điều khiển, logic mờ, mô phỏng,...
Hệ thống Matlab gồm có 5 phần chính:
- Ngôn ngữ Matlab: là một ngôn ngữ ma trận/ mảng cấp cao với các câu lệnh,
hàm, cấu trúc dữ liệu, vào/ ra, các tính năng lập trình hướng đối tượng. Nó cho
phép lập trình các ứng dụng từ nhỏ đến các ứng dụng lớn và phức tạp.
- Môi trường làm việc Matlab: Đây là một bộ các công cụ và phương tiện mà
bạn sử dụng với tư cách là người dùng hoặc người lập trình Matlab. Nó bao gồm
các phương tiện cho việc quản lý các biến trong không gian làm việc Workspace
cũng như xuất nhập khẩu dữ liệu. Nó cũng bao gồm các công cụ phát triển, quản
lý, gỡ rối và định hình M-file, ứng dụng của Matlab.
- Xử lý đồ hoạ: Đây là hệ thống đồ hoạ của Matlab. Nó bao gồm các lệnh cao
cấp cho trực quan hoá dữ liệu hai chiều và ba chiều, xử lý ảnh, ảnh động,... Nó
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

cũng cung cấp các lệnh cấp thấp cho phép bạn tuỳ biến giao diện đồ hoạ cũng
như xây dựng một giao diện đồ hoạ hoàn chỉnh cho ứng dụng Matlab của mình.
- Thư viện toán học Matlab: Đây là tập hợp khổng lồ các thuật toán tính toán từ
các hàm cơ bản như cộng, sin, cos, số học phức,... tới các hàm phức tạp hơn như
nghịch đảo ma trận, tìm trị riêng của ma trận, phép biến đổi Fourier nhanh.
- Giao diện chương trình ứng dụng Matlab API (Application Program Interface):
Đây là một thư viện cho phép bạn viết các chương trình C và Fortran tương
thích với Matlab.
Simulink, một chương trình đi kèm với Matlab, là một hệ thống tương tác
với việc mô phỏng các hệ thống động học phi tuyến. Nó là một chương trình đồ
hoạ sử dụng chuột để thao tác cho phép mô hình hoá một hệ thống bằng cách vẽ
một sơ đồ khối trên màn hình. Nó có thể làm việc với các hệ thống tuyến tính,
phi tuyến, hệ thống liên tục theo thời gian, hệ gián đoạn theo thời gian, hệ đa
biến,...
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

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


2.1 Các khái niệm cơ bản trong Matlab
2.1.1 Một số phím chuyên dụng và lệnh thông dụng
- ↑ Hoặc Ctrl + p : Gọi lại các lệnh đã thực hiện trước đó.
- ↓ Hoặc Ctrl + n : Gọi lại lệnh vừa thực hiện trước đó.
- → Hoặc Ctrl + f : chuyển con trỏ sang bên phải 1 ký tự.
- ← hoặc Ctrl + b: chuyển con trỏ sang trái một ký tự.
- Dấu “;” dùng trong […] để kết thúc một hàng của ma trận hoặc kết thúc
một biểu thức hoặc câu lệnh mà không hiển thị kết quả ra mà hình.
- ↵ nhảy xuống dòng dưới
- Ctrl + A hoặc Home : chuyển con trỏ về đầu dòng.
- Ctrl + E hoặc End: Chuyển con trỏ đến cuối dòng.
- BackSpace: Xoá ký tự bên trái con trỏ.
- Esc: xoá dòng lệnh.
- Ctrl + K : Xoá từ vị trí con trỏ đến cuối dòng.
- Ctrl + C : Dừng chương trình đang thực hiện.
- Clc : lệnh xoá màn hình.
- Clf: Lệnh xoá màn hình đồ hoạ.
- Input: lệnh nhập dữ liệu vào từ bàn phím.
- Demo: lệnh cho phép xem các chương trình mẫu.
- Help: lệnh cho phép xem phần trợ giúp.
- Ctrl – c: Dừng chương trình khi nó bị rơi vào trạng thái lặp không kết
thúc.
- Dòng lệnh dài: Nếu dòng lệnh dài quá thì dùng … ↵ để chuyển xuống
dòng dưới.
2.1.2 Biến trong MATLAB

Đặc điểm của biến trong Matlab:


- Không cần khai báo biến và kiểu của biến. Tuy nhiên trước khi gán một
biến thành một biến khác thì cần đảm bảo rằng biến ở bên phải của phép
gán có một giá trị xác định.
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

- Bất kỳ một phép toán nào gán một giá trị vào một biến sẽ tạo ra biến đó
nếu cần (biến đó chưa xác định) hoặc ghi đè lên giá trị hiện tại nếu nó đã
tồn tại trong Workspace.
- Tên biến bao gồm một chữ cái sau một số bất kỳ các chữ cái, chữ số và
dấu gạch dưới. Matlab phân biệt chữ in hoa và chữ in thường, vì vậy X và
x là hai biến phân biệt.
2.1.2.1 Tên biến:
Là một dãy ký tự bao gồm các chữ cái hay các chữ số hoặc một số ký tự đặc
biệt
dùng để chỉ tên của biến hoặc tên của hàm. Chúng phải được bắt đầu bằng chữ
cái sau đó có thể là các chữ số hoặc một vài ký tự đặc biệt. Chiều dài tối đa của
tên là 31 ký tự.
Bình thường Matlab có sự phân biệt các biến tạo bởi chữ cái thường và chữ
cái in hoa. Các lệnh của Matlab nói chung thường sử dụng chữ cái thường. Việc
phân biệt đó có thể được bỏ qua nếu chúng ta thực hiện lệnh : >> casensen off
2.1.2.2 Một số lệnh với biến:
- clear: lệnh xoá tất cả các biến đã đ-ợc định nghĩa trước trong chương
trình .
- clear biến1, biến 2... : xoá các biến được liệt kê trong câu lệnh.
- Who: hiển thị các biến đã được định nghĩa trong chương trình.
- Whos: hiển thị các biến đã được định nghĩa trong chương trình cùng với
các thông số về biến.
- Size (tên biến đã được định nghĩa): cho biết kích cỡ của biến dưới dạng
ma trận với phần tử thứ nhất là số hàng của ma trận, phần tử thứ 2 là số
cột của ma trận.
- Save: Lưu giữ các biến vào một File có tên là Matlab. mat.
- Load: Tải các biến đã được lưu giữ trong một File đưa vào vùng làm việc.
2.1.2.3 Một số biến đã được định nghĩa trước:
- ans: Answer - tự động gán tên này cho kết quả của một phép tính mà ta
không đặt tên. VD >> [ 1 2] ↵
ans =
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

12
- pi π = 3.1415926535897...
- realmax: đưa ra giá trị của số lớn nhất mà máy tính có thể tính toán được.
- realmin: đưa ra giá trị của số nhỏ nhất mà máy tính có thể tính toán được.
- i, j: Đơn vị ảo của số phức.
- inf: infinity- vô cùng lớn.
- NaN: Not a number – biểu diễn dạng 0/0, ∞ /∞
- eps: Độ chính xác tương đối của dấu phẩy động. Đây là dung sai Matlab
sử dụng trong các tính toán của nó.
2.1.2.4 Biến toàn cục (global variables)
Matlab cho phép sử dụng cùng một biến cho các hàm hoặc giữa các hàm và
chương trình chính của Matlab, điều này được thực hiện thông qua việc khai báo
biến toàn cục:
Global tên1 tên2 tên3 ….
(Tên các biến cách nhau bắng dấu khoảng trống, không sử dụng dấu phẩy).
Việc khai báo biến toàn cục phải đ-ợc thực hiện ở chương trình chính hoặc ở
file lệnh (script) hoặc ở file hàm (function) có sử dụng các biến. Biến toàn cục
có tác dụng cho đến khi kết thúc quá trình tính toán hoặc khi toàn bộ Workspace
được xoá. Không được đưa tên biến toàn cục vào danh sách các đối số của hàm.
Khi sử dụng biến toàn cục các lệnh sau tỏ ra rất cần thiết:
• Clear global : Lệnh này cho phép loại bỏ các biến toàn cục.
• Isglobal(Tên biến) : Lệnh này cho phép kiểm tra xem một biến nào đó có
phải là biến toàn cục hay không. Nếu là biến toàn cục thì giá trị trả về sẽ là 1.
2.1.3 Các phép toán trong MATLAB
2.1.3.1 Phép toán số học:
Matlab có hai kiểu phép toán số học, đó là phép toán ma trận (matrix
arithmetic operation) và phép toán mảng (array arithmetic operation). Phép toán
ma trận được định nghĩa bởi các luật của đại số tuyến tính. Phép toán mảng được
thực hiện tương ứng từng phần tử, chẳng hạn phép nhân mảng hai ma trận A có
các phần tử là a(i,j) và B có các phần tử là b(i,j) được thực hiện bằng cách nhân
tương ứng từng phần tử của A và B:
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

c(i,j) = a(i,j)b(i,j)
Để phân biệt giữa phép toán ma trận và phép toán mảng người ta đưa thêm
vào
trước các toán tử một dấu chấm “.”.
Thứ tự ưu tiên trong phép toán số học:
1. Ngoặc đơn
2. Lũy thừa
3. Nhân, chia
4. Cộng, trừ
2.1.3.2 Các phép toán quan hệ và phép toán logic
a. Các phép toán quan hệ:
Các phép toán quan hệ bao gồm:
- Nhỏ hơn: <
- Nhỏ hơn hoặc bằng: <=
- Lớn hơn: >
- Lớn hơn hoặc bằng: >=
- Bằng: ==
- Không bằng (khác): ~=
Biểu thức có các toán tử quan hệ nhận gia trị đúng là (true) hoặc sai (false).
Trong Matlab, biểu thức đúng sẽ có giá trị là 1, biểu thức sai có gia trị là 0.
b. Các phép toán logic
Các phép toán logic và, hoặc, đảo được thực hiện bởi các toán tử sau:
- Phép và( and): Ký hiệu là &
VD: phép & 2 ma trận cùng cỡ A, B là một ma trận có các phần tử bằng 1 nếu
các phần tử tương ứng của cả 2 ma trận đầu đều khác 0 và bằng 0 nếu 1 trong 2
phần tử tương ứng của 2 ma trận bằng 0.
>>A=[1 2 7; 0 4 9;1 3 5]; B=[0 2 4; 2 4 6; 3 0 7]; C=A&B
C=
0 1 1
0 1 1
1 0 1
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

- Phép hoặc (or) : Ký hiệulà |


VD : phép or 2 ma trận cùng cỡ A,B là một ma trận có các phần tử bằng 0 nếu
các phần tử tương ứng của cả 2 ma trận đầu đều bằng 0 và bằng 1 nếu 1 trong 2
phần tử tương ứng của 2 ma trận khác 0.
>> A=[0 2 7; 0 4 9;1 3 0];
>> B=[0 2 4; 2 4 6; 3 0 0];
>> C=A | B
C=
0 1 1
1 1 1
1 1 0
- Phép đảo( not): Ký hiệu là ~
Ví Dụ : phép đảo của một ma trận là một ma trận có cùng cỡ với các phần tử có
giá trị bằng 1 nếu các phần tử của ma trận đầu có giá trị bằng 0 và bằng 0 nếu
các phần tử của ma trận đầu có giá trị khác 0.
>> A=[0 2 7; 0 4 9;1 3 0]
>> B=~A
B= 1 0 0
1 0 0
1 0 1
2.1.3.3 Các ví dụ
• Ví dụ 1: Giải phương trình bậc hai ax2 + bx + c = 0
Ta biết các nghiệm của ph-ơng trình này có dạng:
−b ± √b 2−4 ac
x=
2a
Vì Matlab là một chương trình tính toán số nên chúng ta phải xác định các
giá trị a, b, c.
Dấu = được sử dụng để gán giá trị của a, b, c như sau ( gõ phím Enter ở cuối
mỗi hàng)
>>a = 2
a=
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

2
>>b = 5;
>>c = -3; %Dấu “;” ở cuối dòng thì Matlab sẽ không hiển thị lại giá trị vừa
nhập.
>> x1= (-b + sqrt(b^2- 4*a*c))/(2*a)
x1 =
0.5000
>> x2= (-b - sqrt(b^2- 4*a*c))/(2*a)
x2 =
-3
• Ví dụ 2: Tính giá trị của đa thức.
>> a = x^3 - 2*x^2 - 6;
>>b = x^2 + 5*x -7;
>>x=3;
>> w = a/b
w=
0.1765
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

2.1.4 Số phức và các phép toán về số phức


Matlab chấp nhận số phức biểu thị bởi hàm đặc biệt i và j, cả hai là toán tử
và các hàm.
2.1.4.1 Biểu diễn số phức:
Tên = Phần thực + phần ảo i hoặc Tên = Phần thực + phần ảo j
Ví dụ:
>> a = 3 +4i ↵
2.1.4.2 Các phép toán đối với số phức:
• Cộng, trừ, nhân số phức:
C1= a1 + b1i ; C2=a2 + b2i
Cộng : c1 + c2
Trừ : c1 - c2
Nhân: c1*c2
Chia: c1/c2
• Các hàm đặc biệt:
real(x) : tìm phần thực của số phức x.
imag(x): tìm phần ảo của số phức x.
conj(x): tìm số phức liên hợp của số phức x.
abs(x): Tìm giá trị tuyệt đối của số phức x ( độ lớn )
angle(x): góc tạo bởi giữa trục thực và ảo.
Ví dụ:
>> a =3.0000 + 4.0000i
a=
3.0000 + 4.0000i
>> thuc = real(a);
>> ao = imag(a);
>> lienhop = conj(a);
>> dolon = abs(a);
>> goc = angle(a);
2.1.5 Sử dụng các lệnh file lệnh (lập trình m-file)
Những lệnh của Matlab có thể được đưa vào một file. Sau đó bạn sẽ hướng
dẫn Matlab làm việc với các lệnh đó. Bây giờ, với ví dụ 1, chúng ta sẽ đưa toàn bộ
các lệnh trên vào một file lấy tên là vidu.m. Tên của file phải được bắt đầu bằng
một ký tự và phần mở rộng là .m. Các bước như sau:
Bước 1: File / New/ M-file, Môi trường soạn thảo Editor / Debugger sẽ xuất hiện
Bước 2: Trên màn hình soạn thảo, ta gõ các lệnh của Matlab.
a = 2;
b = 5;
c = -3;
x1= (-b + sqrt(b^2- 4*a*c))/(2*a)
x2= (-b - sqrt(b^2- 4*a*c))/(2*a)
Bước 3: Ghi lại nội dung tập tin với tên vidu.m rồi thoát khỏi môi trường soạn thảo
để trở về cửa sổ lệnh (Matlab Command window).
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

Bước 4: Tại cửa sổ lệnh ta gõ tên tập tin.


>>vidu.m ↵
2.1.6 Cách tạo một hàm
Mỗi một file hàm của Matlab (M - file) đều được khai báo như sau:
Function [Tên kết quả] = tên hàm (danh sách các biến).
Phần thân của chương trình trong hàm là các lệnh của Matlab thực hiện việc tính
toán giá trị của đại lượng được nêu trong phần tên kết quả theo các biến được
nêu trong phần danh sách biến. Các biến chỉ có tác dụng nội trong hàm vừa được
khai báo. Tên của các biến được cách nhau bằnh dấu phẩy (,).
Ví dụ ta thành lập hàm đổi từ độ sang radian:
function rad = change(do)
rad = do*pi/180; % doi do sang radian
Trong Matlab các dòng ghi chú sau dấu % không có tác dụng thực thi, chúng
đơn giản là những dòng nhắc để người đọc chương trình dễ hiểu mà thôi.
File.m thường lấy tên là tên của hàm, ta đặt tên file hàm vừa lập là change.m.
Nếu muốn đổi 450
sang radian, chỉ cần gõ:
>>rad = change(45)
rad =
0.7854
Ví du: tạo hàm giải phương trình bậc hai, tên tập tin được đặt là bachai.m.
function [x1,x2] = bachai(a,b,c)
delta = b^2-4*a*c;
x1 = (-b + sqrt(delta))/(2*a);
x2 = (-b - sqrt(delta))/(2*a);
>>[x1,x2]=bachai1(4,6,-7)
x1 =
0.77707
x2 =
-2.2707
2.1.7 Cấu trúc câu lệnh điều kiện:
• Lệnh if đơn:
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

Cú pháp: if <biểu thức logic>


Nhóm lệnh;
end
Nếu biểu thức logic đúng nhóm lệnh sẽ đ]ợc thực hiện. Nếu biểu thức logic
sai thì ch]ơng trình chuyển đến lệnh sau end.
VD:
function y=f(a,b,c)
if a<b
disp(' hinh thang nguoc')
end
y=(a+b)*c/2;
Sau đó ghi (save) vào file có tên là ht.m
Quay lại cửa sổ MatLab command Window, gõ vào dòng lệnh sau:
>> ht(2,4,2)
hinh thang nguoc
ans =
6
• Cấu trúc lệnh if lồng nhau:
Cú pháp: if <biểu thức logic1>
Nhóm lệnh 1;
if <biểu thức logic 2>
Nhóm lệnh 2;
end
Nhóm lệnh 3;
end
Nhóm lệnh 4;
Nếu biểu thức logic 1 đúng thì
- Thực hiện nhóm lệnh 1.
- Kiểm tra biểu thức logic 2.
- Nếu đúng thực hiện nhóm lệnh 2
- Nếu sai bỏ qua nhóm lệnh 2
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

- Thực hiện nhóm lệnh 3.


Nếu biểu thức logic 1 sai thì
- Thực hiện nhóm lệnh 4.
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

2.2 Cơ sở về Simulink
2.2.1 Khởi động Simulink
Để có thể làm việc với Simulink, trước hết ta phải khởi động Matlab. Nếu
chạy dưới hệ điều hành Linux, sau khi thực hiện lệnh simulink ta sẽ thu được
cửa sổ thư viện của Simulink. Nếu làm việc dưới Windows, sau khi gọi simulink
ta có cửa sổ tra cứu thư viện như sau:

Các thư viện con Source (các khối nguồn tín hiệu), Sinks (các khối xuất tín
hiệu), Math (các khối ghép nối toán học) và Signals & Systems (các khối tín
hiệu và hệ con) sẽ được giới thiệu trong phạm vi chương này.

Tính chất của các khối chức năng


Tất cả các khối chức năng đều được xây dựng theo một mẫu giống nhau như
sau:
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

Mỗi khối có một hay nhiều đầu vào/ra (trừ trường hợp ngoại lệ: các khối
thuộc hai thư viện con Source và Sinks), có tên và ở trung tâm của hình khối chữ
nhật có biểu tượng thể hiện đặc điểm riêng của khối. Người sử dụng có thể tuỳ ý
thay đổi tên của khối (nháy kép phím chuột trái vào vị trí tên), tuy nhiên, mỗi
tên chỉ có thể sử dụng một lần duy nhất trong phạm vi cửa sổ mô hình mô
phỏng. Khi nháy kép phím chuột trái trực tiếp vào khối ta sẽ mở cửa sổ tham số
Block Parameters (trừ các khối Scope, Slider Gain, Subsystem) và có thể nhập
thủ công các tham số đặc trưng của khối. Khi nhập xong, nháy chuột trái vào nút
OK hay nút Apply để Simulink chấp nhận các tham số vừa nhập. Nếu nháy kép
phím chuột trái vào nút Help ta sẽ mở cửa sổ của tiện ích trợ giúp trực tuyến.
Nháy một lần phím chuột phải trực tiếp vào khối có tác dụng mở menu chứa các
lệnh cho phép soạn thảo và lập định dạng khối.
Simulink phân biệt hai loại khối chức năng: Khối ảo (vitural) và khối thực
(not vitural). Các khối thực đóng vai trò quyết định khi chạy mô phỏng mô hình
Simulink. Việc thêm hay bớt một khối thực sẽ thay đổi đặc tính động học của hệ
thống đang được mô hình Simulink mô tả. Có thể nêu nhiều ví dụ về khối thực
như: khối Sum hay khối Product của thư viện con Math. Ngược lại các khối ảo
không có khả năng thay đổi đặc tính của hệ thống, chúng chỉ có nhiệm vụ thay
đổi diện mạo đồ hoạ của mô hình Simulink. Đó chính là các khối như Mux,
Demux, hay Enable thuộc thư viện con Signal & System. Một số khối chức năng
mang đặc tính ảo hay thực tuỳ thuộc theo vị trí hay cách thức sử dụng chúng
trong mô hình Simulink.

Mô hình Simulink
Từ cửa sổ thư viện khối (Library) hay từ cửa sổ truy cập thư viện (Library
Browser) ta có thể tạo ra các cửa sổ mô phỏng mới bằng cách đi theo menu
File / New / Model, hoặc mở các File có sẵn qua menu File / Open. Một File
Simulink khi được cất giữ sẽ có đuôi .mdl.
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

2.2.2 Các thao tác cơ bản với Simulink


 Sao chép: Bằng cách gắp và thả “Drag & Drop” nhờ phím chuột phải là có
thẻ sao chép một khối từ thư viện con (cũng có thể từ một cửa sổ khác ngoài
thư viện).
 Di chuyển: Ta có thể dễ dàng di chuyển một khối trong phạm vi cửa sổ của
khối đó nhờ phím chuột trái.
 Đánh dấu: Bằng cách nháy phím chuột trái vào khối ta có thể đánh dấu, lựa
chọn từng khối, hoặc kéo chuột đánh dấu nhiều khối một lúc
 Xóa: có thể xóa các khối và các đường nối đã bị đánh dấu bằng cách gọi
lệnh menu Edit / Clear. Bằng menu Edit / Undo hoặc tổ hợp phím Ctrl+Z ta
có thể cứu vãn lại động tác xóa vừa thực hiện.
 Hệ thống con: Bằng cách đánh dấu nhiều khối có quan hệ chức năng, sau
đó gom chúng lại thông qua menu Edit / Create Subsystem, ta có thể tạo ra
một hệ thống con mới.
 Nối hai khối: Dùng phím chuột trái nháy vào đầu ra của một khối, sau đó di
mũi tên của chuột tới đầu vào cần nối. Sau khu thả ngón tay khỏi phím
chuột, đường nối tự động được tạo ra. Có thể rẽ nhánh tín hiệu bằng cách
nháy phím chuột phải vào một đường nối có sẵn và kéo đường nối mới xuất
hiện tới đầu vào cần nối.
 Di chuyển đường nối: Để lưu đồ tín hiệu thoáng và dễ theo dõi, nhiều khi ta
phải di chuyển, bố trí lại vị trí các đường nối. Khi nháy chọn bằng chuột trái
ta có thể di chuyển tuỳ ý các điểm góc hoặc di chuyển song song từng đoạn
thẳng của đường nối.
 Tạo vector đường nối: Để dễ phân biệt giữa đường nối đơn và đường nối
các tín hiệu theo định dạng vector, hoặc ma trận, hoặc mảng, ta có thể chọn
menu Format / Wide nonscalar lines để tăng bề dầy của đường nối.
 Chỉ thị kích cỡ và dạng dữ liệu của tín hiệu: Lệnh chọn qua menu Format /
Signal dimensions sẽ hiện thị kích cỡ của tín hiệu đi qua đường nối. Lệnh
menu Format / Port data types chỉ thị thêm loại dữ liệu của tín hiệu qua
đường nối.
 Định dạng cho một khối: Sau khi nháy phím chuột phải vào một khối, cửa
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

sổ định dạng khối sẽ mở ra. Tại mục Format ta có thể lựa chọn kiểu và kích
cỡ chữ, cũng như vị trí của tên khối, có thể lật hoặc xoay khối. Hai mục
Foreground Color và Background Color cho phép ta đặt chế độ mầu bao
quang cũng như mầu nền của khối.
 Định dạng cho đường nối: Sau khi nháy phím chuột phải vào một đường
nối, cửa sổ định dạng đường sẽ mở ra. Tại đây có các lệnh cho phép cắt bỏ,
chép hoặc xoá đường nối.
 Hộp đối thoại về đặc tính của khối: Hoặc đi theo menu của cửa sổ mô
phỏng Edit / Block Properties, hoặc chọn mục Block Properties của cửa sổ
định dạng khối, ta sẽ thu được hộp đối thoại cho phép đặt một vài tham số
tổng quát về đặc tính của khối.
 Hộp đối thoại về đặc tính của tín hiệu: Có thể tới được hộp thoại Signal
Properties của một đường nối hoặc bằng cách nháy chuột đánh dấu đường
nối trên cửa sổ mô phỏng, sau đó đi theo menu Edit / Signal Properties từ
cửa sổ định dạng đường. Trong hộp đối thoại ta có thể đặt tên cho đường
nối một cách đơn giản hơn: Nháy kép phím chuột trái vào đường nối ta sẽ
tự động tới được chế độ nhập văn bản.
2.2.3 Tín hiệu và các loại dữ liệu
2.2.3.1 Làm việc với tín hiệu
Trong Simulink ta phân biệt ba loại kích cỡ tín hiệu:

 Tín hiệu đơn.

 Vector tín hiệu: Còn được gọi là tín hiệu 1-D, vì kích cỡ của tín
hiệu chỉ được xác định theo một chiều với độ dài n.

Ma trận tín hiệu: Còn được gọi là tín hiệu 2-D, vì kích cỡ của tín hiệu được
xác định theo hai chiều [m×n]. Cả vector hàng [1×n] và vector cột [m×1] cũng
thuộc về phạm trù ma trận tín hiệu.
Khi tạo Simulink, các khối ảo sẽ tạo nên các đường tín hiệu ảo, duy nhất
nhằm mục đích làm cho sơ đồ cấu trúc trở nên đỡ rối mắt, người sử dụng dễ
quản lý hơn. Tín hiệu ảo có thể được 51hem51à sự tập hợp hình ảnh của nhiều
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

tín hiệu ảo, không ảo, hay hỗn hợp cả hai loại. Trong quá trình mô phỏng,
Simulink sử dụng một thủ tục tên signal propagation để nhận biết: Những tín
hiệu thực nào được ghép vào 51hem tín hiệu ảo.

Đối với các tín hiệu ảo ta có thể mở hộp thoại Signal Properties và khai
chọn Show propagated signals. Sauk hi khai chọn tên của tín hiệu sẽ tự động
được bổ sung 51hem phần trong ngoặc < >, cho biết các tín hiệu chứa trong đó.

Bus tín hiệu là tập hợp các tín hiệu ảo riêng rẽ. Khi tách Bus bởi bộ phận phân
kênh Demux ta sẽ không thể truy cập vào từng phần tử của mỗi tín hiệu, mà chỉ
có thể truy cập vào từng tín hiệu.

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


Bên cạnh các đặc điểm đã được giới thiệu, mỗi tín hiệu thuộc sơ đồ cấu trúc
Simulink đều được gán một loại số liệu nhất định, và do đó quyết định đến
dung lượng bộ nhớ dành cho một tín hiệu. Simulink cũng hỗ trợ tất cả các loại
số liệu của Matlab.

 double: chính xác cao, dấu phẩy động.

 single: chính xác vừa, dấu phẩy động.

 int8, uint8, int16, uint16, int32, uint32: số nguyên 8-, 16- hay 32-
bit có / không có dấu.

 52oolean: biến logic 0 hoặc 1.

Loại số liệu mặc định sẵn của Simulink là double. Trong quá trình mô
phỏng, Simulink sẽ kiểm tra xem việc đảo giữa các loại số liệu có đúng hay
không, nhằm loại trừ các kết quả sai lầm có thể xảy ra.

Khả năng khai báo, xác định loại số liệu của tín hiệu cũng như của tham số
thuộc các khối chức năng trong Simulink là đặc biệt có ý nghĩa, nếu ta dự định
tạo ra từ mô hình Simulink mã chạy cho các ứng dụng thời gian thực. Nhu cầu
về bộ nhớ và tốc độ tính toán phụ thuộc vào loại số liệu được ta chọn.

2.2.4 Thư viện của Simulink

Thư viện Sources


Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

Trong thư viện này bao gồm các nguồn phát tín hiệu, các khối cho phép nhập
số liệu từ một file hay từ Matlab Workspace. Sau đây ta lần lượt điểm qua ý
nghĩa từng khối
- Constant: Khối này tạo nên một hằng số (không phụ thuộc vào thời gian)
thực hoặc phức. Hằng số đó có thể là vector hay ma trận…ta có thể khai
báo tham số constant value là vector hàng hay cột với kích cỡ [n ×1] hay
[1×n] dưới dạng ma trận.

- Step và Ramp: Nhờ hai khối này ta có thể tạo ra tín hiệu dạng bậc thang
hay dạng dốc tuyến tính dùng để kích thích các mô hình Simulink. Trong
hộp thoại Block Parameters của khối Step ta có thể khai báo giá trị đầu –
giá trị cuối và cả thời điểm bắt đầu của tín hiệu bước nhảy. Đối với Ramp
ta có thể khai báo độ dốc, thời điểm mà giá trị xuất phát của tín hiệu đầu
ra. Chú ý 2 khối Step và Ramp không chỉ tạo ra một tín hiệu mà có thể
tạo ra một tập các tín hiệu được xử lý dưới dạng vector hoặc ma trận.

- Signal Generator và Pulse Generator: Nhờ signal Generator ta tạo ra


các dạng tín iệu kích thích khác nhau.

Cung cấp cho 4 dạng sóng khác nhau (giống như máy phát sóng):
+ Sóng sin.
+ Sóng vuông (square).
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

+ Sóng răng cưa (sawtooth).


+ Sóng ngẫu nhiên (random).
Với Pluse Generator tạo chuỗi xung hình chữ nhật. Biên độ và tần số có thể khai
báo tùy ý. Đối với Pluse Generator ta còn có khả năng chọn tỉ lệ cho độ rộng
xung (tính bằng phần trăm cho cả chu kỳ).

- Repeating Sequence: Khối này cho phép ta tạo nên một tín hiệu tuần
hoàn tùy ý. Tham số Time Value phải là một vector thời gian với các giá
trị đơn điệu tăng. Vector biến ra Output Value phải có kích cỡ chiều dài
phù hợp với chiều dài của tham số Time Value. Giá trị lớn nhất của
vector thời gian quyết định chu kỳ lặp lại của vector biến ra.

- Sine Wave: Khối này được sử dụng để tạo tín hiệu hình sin cho cả 2 loại
mô hình liên tục (tham số Sample Time = 0) và gián đoạn (tham số
Sample Time = 1)
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

- From Workspace: Có nhiệm vụ lấy số liệu từ cửa sổ Matlab Workspace


để cung cấp cho mô hình Simulink. Các số liệu lấy có phải dạng của biểu
thức Matlab khai báo tại dòng data.

- From file: Bằng khối này ta có thể lấy số liệu từ 1 Mat-file có sẵn. Mat-
file có thể là kết quả của một lần mô phỏng trước đó, đã được tạo nên và
cất đi nhờ khối To file trong sơ đồ Simulink.
Thư viện Sinks
Thư viện này bao gồm các khối xuất của Simulink. Ngoài khả năng hiển thị
đơn giản bằng số, còn có các khối dao động kín để biểu diễn các tín hiệu phụ
thuộc thời gian hay biểu diễn hai tín hiệu trên hệ tọa độ XY.
- Scope: Nhờ khối này ta có thể thấy các tín hiệu trong quá trình mô
phỏng.
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

- XY Graph: Khối này biểu diễn 2 tín hiệu đầu vào trên hệ tọa độ XY
dưới dạng đồ họa Matlab, đầu vào thứ nhất (bên trái) ứng với trục X, đầu
vào thứ 2 ứng với trục Y.

- To Workspace: Khối này gửi số liệu ở đầu vào của khối tới môi trường
Matlab Workspace dưới dạng mảng (Arry), Stracture with time và lấy
chuỗi kí tự khai tại Variable name để đặt tên cho tập số liệu được ghi.
- To file: Khối này giúp ta cất tập số liệu (mảng hay ma trận) ở đầu vào
của khối cùng với vector thời gian dưới dạng Mat-file. Arry định dạng
giống như định dạng mà khối From file cần vì vậy số liệu do To file cất
có thể được From file đọc trực tiếp mà không cần xử lí gì.
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

Thư viện Math


Thư viện này có một số khối có chức năng ghép toán học các tín hiệu khác
nhau, có những khối đơn giản chỉ nhằm cộng hay nhân tín hiệu còn có các hàm
phức tạp như lượng giác và logic…Sau đây ta xét chức năng của một số khối
quan trọng trong thư viện này.
- Sum: Tín hiệu ra của khối là tổng của các tín hiệu đầu vào (ví dụ như tín
hiệu đầu vào các tín hiệu hình sin thì tín hiệu ra cũng là các tín hiệu hình
sin). Khối Sum cũng có thể tính tổng từng phần tử.

Hình 3.20: Khối Sum


- Product và Dot Product:
+ Khối Product: Thực hiện phép nhân từng phần tử hay nhân ma trận cũng như
phép chia giữa các tín hiệu vào (dạng 1-D hay 2-D) của khối ví dụ nếu một khối
Product có tham số Number of inputs = */*, với 3 tín hiệu vào là 5, sin(x) và [4
4 5 6] khi ấy tín hiệu đầu ra có dạng [20/sinx 20/sinx 25/sinx 30/sinx].

+ Khối Dot product: Tính tích vô hướng của các vector đầu vào.

- Math Function và Trigonometric Function: Cả 2 khối này đều có thể


xử lý tín hiệu 2-D. Khối Math Function có một lượng lớn các hàm toán
đã được chuẩn bị sẵn cho phép ta lựa chọn theo nhu cầu sử dụng. Còn
khối Trigonometric Function có tất cả các hàm lượng giác quan trọng.
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

- Gain và Slider Gain: Khối Gain có tác dụng khuếch đại tín hiệu đầu vào
(định dạng 1-D hay 2-D) bằng biểu thức khai báo tại ô Gain. Biểu thức đó
chỉ có thể là một biến hay một số biến. Biểu thức đó phải tồn tại trong
môi trường Matlab Workspace thì khi ấy Simulink mới tính toán được
biến mới.

Thư viện Constinous


- Integrator: Khối này để tích phân tín hiệu đầu ra của khối. Giá trị ban
đầu được khai báo trực tiếp tại hộp thoại Block Parameters hoặc thông
qua chọn giá trị Internal tại ô Initial Condition Source để sau đó điền giá
trị ban đầu vào dòng viết của ô Initial Condition. Đầu ra của khối
Intergrator có thể được một tín hiệu bên ngoài lập về một giá trị ban đầu
biến trạng thái của khối. Biến trạng thái của khối thực chất đồng nhất về
giá trị với biến đầu ra nhưng với Simulink tính hai biến đó (biến ra và
biến trạng thái) tại những thời điểm ít nhiều có khác nhau. Nếu mô hình
Simulink chứa các biến trạng thái chênh lệch nhau về kích cỡ giá trị, khi
ấy nên khai báo tham số Absolute Tolerance riêng rẽ thêm cho từng khối
Integrater của mô hình, mặc dù đã khai báo Absolute Tolerance chung tại
hộp thoại Simulink Parameters. Việc khai báo thêm sẽ buộc Simulink
đảm bảo đúng giá trị sai số yêu cầu đối với từng khối.
- Derivative: Khố i này cho phép tính đạ o hà m tín hiệu đầ u và o. Tín
hiệu tím đượ c ở đầ u ra có dạ ng ∆ u /∆ t vớ i ∆ là biến thiên củ a đạ i
lượ ng cầ n tính kể từ bướ c tích phâ n liền trướ c đó . Giá trị củ a đầ u ra
ban đầ u là 0.
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

- Transfer Fcn và Zero-Pole:


+ Khối Transfer Fcn cho phép có thể mô hình hóa hàm truyền đạt của một hệ
tuyến tính. Tham số của khối là các hệ số của đa thức tử số và mẫu số, khai báo
theo thứ tự số mũ của s giảm dẫn. Bậc của mẫu số phải lớn hơn hoặc bằng bậc
của tử số. Ví dụ nếu nhập tử số [5 7 3 1] và mẫu số [6 8 3 2 1] khối sẽ tạo ra hàm
truyền đạt.
W(s) = y(s)/u(s) = (5s^3 + 7s^2 + 3s + 1)/(6s^4 + 8s^3 + 3s^2 + 2s +1)

+ Khối Zero-Pole sẽ tạo nên từ các tham số Zeros, Poles và Gain một hàm
truyền đạt dưới dạng hệ số hóa theo điểm không, điểm cực.
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

CHƯƠNG 3: CÁC CHỨC NĂNG CHÍNH CỦA MATLAB & SIMULINK


Phần mềm bao gồm 3 bộ công cụ quan trọng nhất đó là:
- Tính toán số, lập trình, phân tích dữ liệu, hiển thị đồ thị…
- Mô phỏng bằng khối, thiết kế mô hình, hệ thống nhúng…

- Phân tích, kiểm tra liên quan đến lập trình C, C++ và các bộ kit chứng chỉ
DO, IEC.

3.1 Giới thiệu một số toolbox về tính toán số, phân tích dữ liệu, hiển thị đồ
thị…
3.1.1 Symbolic toolbox

Symbolic toolbox là một thư viện toán học kiểu ký tự. Được phát triển từ
symbolic maple của trường đại học Waterloo, Canada.
Bảng 3.1: Một số hàm thông dụng của symbolic
Tên hàm Chức năng Têm hàm Chức năng
diff Đạo hàm fourier Biến đổi fourier
int Tích phân ifourier Biên đổi fourier ngược
taylor Khai triển taylor laplace Biến đổi laplace
det Định thức của ma trận ilaplace Biến đổi laplace ngược
numden Tử và mẫu của phân số ezplot Vẽ hàm plot
subs Thay biến sum bằng trị số ezpolar Vẽ hàm, tọa độ cực polar
dsolve Giải phương trình vi phân ezmesh Vẽ mặt lưới mesh
solve Giải phương trình đại số ezsurf Vẽ mặt surf

Để biến đổi một số, một hàm hay một đối tượng nào đó thành kiểu symbolic
ta có thể sử dụng một trong các cách sau:
>>S = sym(A)
>>x = sym(x)
>>syms x y z % khai báo kết hợp → x, y, z là biến symbolic
a) Tính đạo hàm bằng hàm diff của symbolic: Nếu s là biểu thức của symbolic
thì
diff(S) % đạo hàm của S theo biến tự do
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

diff(S,’v’) % đạo hàm của S theo biến v


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

1.5

0.5

0
y

-0.5

-1

-1.5

-2

0 1 2 3 4 5 6
x

Hình 3.1: Đồ thị đạo hàm của y


b) Tính vi phân bằng hàm int của symbolic:
Nếu s là biểu thức của symbolic thì
int(S) % tích phân không xác định của S theo biến mặc nhiên (muốn
biết biến mặc nhiên này ta dùng hàm findsym)
int(S,v) % tích phân không xác định của S theo v
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

int(S,a,b) % tích phân xác định của S trên cận [a,b]


int(S,v,a,b) % tích phân xác định của S theo v trên cận [a,b]
1
2 x2 (19+12 x 2)
VD: Tính ∫ dx
0 7 (x2 +1)
>>syms x
>>S = 2*x^2*(19+12x^2)/7(x^2+1)
>>y = int(S,x,0,1) % tích phân s theo x trên cận [0,1]
>>subs(y) % đổi sang kiểu số
c) Giải hệ phương trình bằng hàm solve
>>help solve
>>syms x y
>>[x,y] = solve(‘x^2*sin(x^2)-3*y = 7’, ‘x + y = 1’)
x=
2.5754700796522256500419539196399
y=
-1.575470079652225650019539196399
d) Vẽ mặt 3D bằng hàm ezsurf
y
VD: Vẽ mặt S = f(x,y) = trên miền xác định -5 < x < 5, -2 π < y< 2 π
1+ x2 + y 2
>> syms x y
>> s=y/(1+x^2+y^2)
s=
y/(x^2 + y^2 + 1)
>> ezsurf(s,[-5 5 -2*pi 2*pi])
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

y/(x 2 + y 2 + 1)

0.5

-0.5
5
5
0
0
-5
y -5
x

Hình 3.2: Mặt S trong không gian 3 chiều

3.1.2 Control system toolbox – Công cụ khảo sát, thiết kế hệ thống điều
khiển

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

3.1.3 Optimization toolbox – Công cụ tính toán tìm tối ưu

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

3.1.4 Signal processing toolbox – Công cụ xử lý tín hiệu

Các phương pháp xử lý tín hiệu trước hết phục vụ chế biến, lọc và phân tích
các số liệu thu thập được. Thông thường các số liệu đó tồn tại dưới dạng giá trị
đo và để có thể xử lý được Matlab cần đọc vào dưới dạng vector. Trong điều
khiển tự động có rất nhiều bài toán phụ thuộc các phạm trù như nận dạng quan
sát và điều khiển thích nghi…cần các giá trị đo đã qua xử lý thích hợp. Chính vì
vậy Signal processing toolbox có một ý nghĩa đặc biệt đối với lĩnh vực xử lý tín
hiệu nói cung và điều khiển tự động hóa nói riêng.

3.2 Giới thiệu về lập trình Matlab


3.2.1 Sơ lược lập trình Matlab

Môi trường Matlab là môi trường lập trình được xem là sinh ra để dùng tính
toán kỹ thuật. Mặc dù ở mỗi chuyên ngành hẹp vẫn có những phần mềm tiện lợi
hơn Matlab, nhưng Matlab vẫn được cho điểm cao nhờ có nhiều lợi thế như:
- Không đòi hỏi biết nhiều thủ tục, giúp mọi người học ngôn ngữ dễ dàng hơn.
Không phức tạp hơn C để người lập trình trên thế giới vốn quen với ngôn ngữ C
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

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

CHƯƠNG 4: CÁC VÍ DỤ MINH HỌA


4.1 MÔ PHỎNG ĐỘNG CƠ MỘT CHIỀU KÍCH TỪ ĐỘC LẬP BẰNG
PHẦN MỀM MATLAB/SIMULINK

Yêu cầu đặt ra: Vẽ đặc tính dòng điện và tốc độ của động cơ một chiều kích
từ độc lập. Các thông số định mức của động cơ như sau:

Công suất định mức: Pđm = 1.5kW; Dòng điện định mức: Iđm = 8.7A;

Điện áp định mức: Uđm = 200V; Tốc độ định mức: nđm = 1440 v/p;

Phương trình cân bằng điện áp mạch phần ứng có dạng biến đổi Laplace như
sau:

U(p) = Ru.I(p)(1+p.Tu) + Kϕω

Phương trình cân bằng mô men điện từ và mô men tải:

Kϕ .I(p) – Mc(p) = Ipω(p)

Từ các thông số định mức có thể tính toán các thông số cơ bản khác:

1000 Pđm
η đm = Rư = 0.5(1 - ηđm )Uđm/Iđm
U đm I đm

U 9,55(U đm −I đm Rư )
Lư = γ Kϕ đm =
pωI nđm

Sơ đồ cấu trúc động cơ điện một chiều kích từ độc lập


Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

Mô hình Simulink của động cơ một chiều kích từ độc lập


Đặc tính dòng điện và tốc độ động cơ một chiều như sau:

Đặc tính dòng điện


Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

Đặc tính tốc độ


Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

4.2 ỨNG DỤNG BỘ ĐIỀU KHIỂN PID ĐIỀU KHIỂN ĐỘNG CƠ MỘT
CHIỀU
4.2.1 Thông số động cơ
Chọn Ud = Uđm = 110 V Id = Iđm = 12 A Rd = R∑ = 0.96 Ω
L∑ = 0.0348 H
Đơn vị đo :
nđm = 1500v/p = 25v/s
GD2 = 0.055kg.m2 = 0.55 N.m2

U đm−I đm . R Σ 110−12 x 0.96


Ce= = = 3.94 (N.m/A)
nđm 25

30 30
Cm = C = 3.94 = 37.62 (N.m/A)
π e π
Ld LΣ 0.0348
Te = = = = 0.03625 ( s)
Rd RΣ 0.96
GD 2 . RΣ 0.55 x 0.96
Tm = = = 9.5x10-6 ( s)
375.C e .C m 375 x 3.94 x 37.62
M = Cm.Id = Cm.Iđm=37.62x12= 451.44( N.m)
GD2 0.55
Mc = M - = 451.44 - = 451.43 N.m
375 375
Mc 451.43
Ic = = = 11.99 A
Cm 36.72
4.2.2 Xây dựng sơ đồ cấu trúc
Chọn mạch điều khiển trong bộ biến đổi là mạch chỉnh lưu cầu 1 pha:
Chỉnh lưu cầu 1 pha được sử dụng khá rộng rãi trong thực tế, nhất là với điện áp
trên 10 V, dòng tải có thể đến 100 Ampe. Ưu điểm của mạch là có thể không
cần biến áp. Nhược điểm của nó là có hai điốt tham gia dẫn dòng: điốt nhóm lẻ
dẫn dòng ra tải, nhóm điốt chẵn dẫn dòng từ tải về nguồn. Như vậy sẽ có sụt áp
do hai điốt gây ra, chính lý do này làm cho mạch cầu không thích hợp với chỉnh
lưu điện áp thấp dưới 10V khi dòng tải lớn.
Tính toán thông số của bộ chỉnh lưu:
Chọn Uđk = 10 V; Ud = Uđm = 110 V
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

TCL = 𝛕 = 5 (ms) = 0.005 (s)


Ud 110
KCL = = = 11
Uđk 10
10
β= = 0.833
12
K CL 11
Hàm truyền của bộ chỉnh lưu: WCL¿ =
T CL . S+1 0.005 s+ 1
Với I C= 0, bỏ qua suất điện động ta có sơ đồ cấu trúc

u(t) K CL y(t)
WI
- T CL . S+1

Thay số liệu:
β
u(t) 11 1.042
WI 0.005 S+ 1 0.03625 S+ 1
y(t)
-
0.833
Biến đổi về phản hồi (-1)
K CL 1
u(t) 1 y(t)
WI β T CL . s+1 Rd
β -
T e s+ 1

Ta có:
K CL
W= Rd
β
( T ¿¿ CL. s +1)(T e s+ 1) ¿

Theo tiêu chuẩn Môdul tối ưu ta phải tổng hợp hệ thống sao cho bù được các
khâu có hằng số thời gian lớn. Trong hệ chỉ còn lại khâu có hằng số thời gian
nhỏ và hàm truyền hệ kín phải thoả mãn điều kiện:
W H (s) 1
W K ( s)= = 2 2
1+ W H ( s ) 1+ 2 τ σ s+2 τ σ s
1 1
W H (s ) = 2 2=
2 τ σ s+2 τ σ s 2 τ σ s(1+ τ σ s )
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

Ở đây đối với đối tượng điều khiển là khâu quán tính bậc 2 thì bộ điều khiển
modul tối ưu là bộ điều khiển PI:
Như vậy ta phải tìm khâu hiệu chỉnh W I sao cho:
K CL
1 1
Rd .W I = 2 τ s(1+ τ s ) = 2 τ s(1+ τ s)
β σ σ CL CL
( T ¿¿ CL. s +1)(T e s+ 1) ¿
T e s +1 Te
1
W I = K CL = K CL (1+ T . s )
. β .2 . τ CL . s 2 . β . τ CL e
Rd Rd

Thay số tính toán từ phần I ta có:


Te 0.03625
Kp = K CL = 11 0.833 x 0.005 = 0.3798
2 . β . τ CL 2
Rd 0 .96

1 1
=> WI = Kp(1 + ) = 0.3798(1 + )
Te. s 0.03625 s

4.2.3 Mô phỏng hệ thống

Kp = 0.3798 ; Ki = 10.4772

Sơ đồ mô phỏng Simulink

Ta có đường đặc tính


Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

Hiệu chỉnh hệ thống


Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

 Độ quá điều chỉnh: 4.33% < 10%


 Thời gian quá độ: 0.0152 s
 Thời gian đạt giá trị xác lập: 0.042 s
 Nhật xét: Hệ thống đạt yêu cầu
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

4.3 SỬ DỤNG CÔNG CỤ SISOTOOL THIẾT KẾ HỆ THỐNG


Bước 1: Khai báo đối tượng điều khiển
Bước 2: Mở công cụ sisotool
Bước 3: Nhập đối tượng điều khiển vào sisotool
Trong hộp thoại [Control] chọn [Architecture]

Nhập dữ liệu cho đối tượng điều khiển: Chọn [System Data] -> Browse
Trong thẻ Import model for ta chọn các khối G,H,C,F trong hệ thống điều khiển
để nhập dữ liệu
+ Đối tượng điều khiển: G
+ Cảm biến: H
+ Khâu hiệu chỉnh C
Chọn [Import] --> [OK]
Chọn hộp thoại SISO Design Task lúc này xuất hiện các đồ thị đặc tính của hệ
thống sau khi được nhập dữ liệu: Quỹ đạo nghiệm số của hệ thống mở (OL1),
biểu đồ Bode của hệ thống mở, biểu đồ Bode của hệ kín (CL1).
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

Bước 4: Thiết kế bộ điều khiển P, PI, PID


Trở lại hộp thoại Control and Estimation Tools Manager --> [Automated
Tuning], trong thẻ [Design method] chọn [PID tuning]

Từ hộp thoại Control and Estimation Tools Manager --> [Automated


Tuning], chọn bộ điều khiển PI. Chọn [Update Compensator]
Ta thu được kết quả PI chưa hiệu chỉnh:
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

- Nhận xét:
+ Hệ thống đã ổn định:
+ Độ quá điều chỉnh: 11.4 %
+ Thời gian quá độ: 0.104 s
Ta hiệu chỉnh lại thông số của bộ PI
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

Đáp ứng của hệ thống sử dụng bộ điều khiển PI đã hiệu chỉnh

- Nhận xét:
+ Hệ thống đã ổn định:
+ Độ quá điều chỉnh: 4.19 %
+ Thời gian quá độ: 0.0787 s

4.4 THIẾT KẾ BỘ ĐIỀU KHIỂN MỜ DẠNG PID ĐỂ ỔN ĐỊNH HỆ


THỐNG ĐIỆN
4.4.1 Giới thiệu
Tần số dao động thấp là một vấn đề phổ biến trong các hệ thống điện năng
lớn. Trong một hệ thống điện, rối loạn gây ra bởi biến động tải sẽ dẫn đến những
thay đổi của tần số hoạt động mong muốn. Các yêu cầu về kiểm soát tần số
trong một hệ thống điện liên kết với nhau được thực hiện bởi hệ thống điều
khiển tần số tải tự động ALFC. Bộ điều khiển thông minh là một bộ điều khiển
logic mờ để ổn định tần số.
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

Các thuật toán điều khiển dựa trên logic mờ đã được thực hiện trong nhiều
quá trình. Việc áp dụng các kỹ thuật kiểm soát như vậy đã được thúc đẩy bởi
những lý do sau đây: 1) cải thiện mạnh mẽ hơn các thuật toán điều khiển tuyến
tính thông thường; 2) điều khiển thiết kế đơn giản cho các mô hình hệ thống khó
khăn; 3) đơn giản thực hiện nghiên cứu. Một vài nghiên cứu đã được thực hiện
trong quá khứ về việc kiểm soát tần số của tải trong hệ thống điện liên kết với
nhau.
Một số chiến lược kiểm soát đã được đề xuất dựa trên các lý thuyết điều
khiển tuyến tính thông thường. Theo các nhà nghiên cứu, hệ thống biến cấu trúc
điều khiển duy trì sự ổn định của tần số hệ thống. Tuy nhiên, phương pháp này
cần một số thông tin về trạng thái của hệ thống, mà những cái này rất khó để xác
địng hoàn toàn. Phương pháp điều khiển PID thông thường sẽ không đạt được
một hiệu suất cao. Điều khiển logic mờ trình bày một công cụ tốt để đối phó với
các hệ thống phức tạp, phi tuyến tính và không xác định thời gian và biến thể.
Trong bài viết này, các quy tắc cho các hệ số được chọn là giống hệt nhau để
cải thiện hiệu suất hệ thống. Việc so sánh các đề xuất FGPID và PID thông
thường cho thấy độ vọt lố và thời gian xác lập với bộ điều khiển FGPID đề xuất
là tốt hơn so với bộ điều khiển PID
4.4.2 Mô hình hệ thống
Trong một mạng kết nối với nhau, một sự xáo trộn trong một đường dây
hoặc thay đổi trong tải, dẫn đến tần số trên các hệ thống lân cận thay đổi gây ra
vấn đề nghiêm trọng trong toàn bộ mạng lưới hệ thống điện. FLC là rất quan
trọng trong việc vận hành hệ thống điện và điều khiển để cung cấp đầy đủ điện
năng với chất lượng tốt.
Hệ thống điện liên kết với nhau một cách tự nhiên bao gồm các cấu trúc
phức tạp và đa biến với nhiều khối điều khiển khác nhau. Hệ thống điện được
chia thành các khu vực kiểm soát kết nối bằng đường dây. Trong mỗi khu vực
kiểm soát, các máy phát điện có nhiệm vụ phải tạo thành một nhóm thống nhất.
Nó có nghĩa là sự chuyển động của rotor của chúng có liên quan chặt chẽ. Các
thí nghiệm trên hệ thống điện cho thấy dòng điện và tần số của khu vực bị ảnh
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

hưởng bởi những thay đổi tải tại điểm hoạt động. Vì thế, mỗi khu vực cần được
kiểm soát dòng điện và tần số hệ thống.
Đó dao động tần số thoáng qua mà không có một sự gia tăng lớn trong mức
độ và tốc độ điều khiển phải được giảm. Ngoài ra, số lượng các tín hiệu LFC gửi
đến hệ thống điện mà không ảnh hưởng đến đối tượng khác phải giảm. Kể từ khi
tải thay đổi nhỏ bị ảnh hưởng bởi công suất tác dụng, và các tần số, trong khi
công suất phản kháng chỉ bị ảnh hưởng bởi độ lớn của điện áp dây, một vòng lặp
điều khiển riêng biệt có thể được sử dụng để kiểm soát tần số. Nói chung, việc
kiểm soát tải tần số được thực hiện bởi hai hành động kiểm soát khác nhau trong
hệ thống điện hai khu vực kết nối với nhau: (a) sự kiểm soát tốc độ sơ cấp và (b)
hành động kiểm soát tốc độ bổ sung hay thứ cấp. Tốc độ của đáp ứng giới hạn
bởi thời gian trễ tự nhiên của tuabin và chính hệ thống của nó. Tùy thuộc vào
các loại tuabin, vòng lặp sơ cấp thường đáp ứng trong vòng 2-20 s.
Mối quan hệ giữa tốc độ và tải trọng có thể được điều chỉnh bằng cách thay
đổi một tín hiệu đặt đầu vào. Trong thực tế, việc thay đổi tín hiệu đặt của tải có
thể thực hiện bằng cách thay đổi tốc độ động cơ. Đầu ra của mỗi khối ở một tần
số hệ thống nhất định có thể thay đổi chỉ bằng cách thay đổi tín hiệu đặt của tải.
Việc kiểm soát này là đáng kể chậm hơn và đi vào hoạt động chỉ khi kiểm soát
tốc độ sơ cấp đã thực hiện công việc của mình. Thời gian đáp ứng có thể nằm
trong một phút. Các hệ thống điều tốc được sử dụng để điều chỉnh tần số. Bộ
điều tốc điều chỉnh van / cổng tuabin để đưa tần số trở lại với giá trị danh nghĩa
hoặc theo lịch trình.
4.4.3 Thiết kế bộ điều khiển
Một hệ thống điện 2 khu vực không kiểm soát được biểu diễn ở hình dưới,
trong đó f là tần số của hệ thống (Hz), Ri là hằng số quy định(Hz/đơn vị), Tg là
hằng số thời gian tốc độ (s), Tt là hằng số thời gian tuabin (s) và Tp là hằng số
thời gian của hệ thống (s). Mục tiêu của việc thiết kế bộ điều khiển được đề xuất
là để cải thiện hiệu suất hệ thống điện dưới sự xáo trộn tải bình thường và khác
nhau. Để duy trì tần số hệ thống trong một hệ thống điện liên kết với nhau, điều
khiển được thiết kế sử dụng một phương pháp điều khiển PID mờ để cải thiện sự
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

ổn định hệ thống điện. Toàn bộ hệ thống có thể được mô hình hóa như một hệ
thống đa biến trong các hình thức:
ẋ = Ax + Bu + Ed (1)
x(t) = [ ∆ f1 ∆ pg1 ∆ pv1 ∆ ptie12 ∆ f2 ∆ pv2 ]T
u(t) = [u1 u2 ]T
Trong đó A, B, E là các ma trận trạng thái hệ thống, phân phối và ma trận
nhiễu loạn.

A two-area interconnected power system

Các đầu ra hệ thống, mà phụ thuộc vào khu vực kiểm soát lỗi (ACE) được
hiển thị trong hình. 2, được cho bởi:
y(t) = [y1(t) y2(t)] = [ACE1 ACE2] = cx(t) (2)
Mục tiêu chính là để giảm thiểu các sai số điều khiển khu vực (ACE) mà ổn
định tần số hệ thống cho một sự xáo trộn tải đột ngột. Hàm mục tiêu của bộ điều
khiển tần số tải trọng được đưa ra bởi: ACEi = β∆ Fi + ∆ ptiei (3)
Trong đó i là số vùng, ∆ F là độ thay đổi tần số, ∆ ptie là độ thay đổi công suất
đường dây và β là hệ số dịch.
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

Two-area power system with controller

Fuzzy logic controller


Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

Membership functions for FGPI Controller of (a) ACE,


(b) ΔACE, (c) KP, Ki. KD

Xác định các thông số điều khiển với các quy tắc, logic mờ theo tỷ lệ, tích
phân và vi phân điều khiển (FGPID) được thành lập. Cơ chế suy luận tương tự
được thực hiện bởi bảy quy tắc cho hai bộ điều khiển FGPID. Các quy tắc thích
hợp sử dụng trong nghiên cứu này được đưa ra trong Bảng 1.
Bảng 1: FUZZY LOGIC RULES FOR FGPI CONTROLLERS

ACE ∆ACE
LN MN SN Z SP MP LP
LN LP LP LP MP MP SP Z
MN LP MP MP MP SP Z SN
SN LP MP SP SP Z SN MN
Z MP MP SP Z SN MN MN
SP MP SP Z SN SN MN LN
MP SP Z SN MN MN MN LN
LP Z SN MN MN LN LN LN
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

fuzzy logic rules for FGPI controller

4.4.4 Mô phỏng

Mô phỏng được thực hiện bằng cách sử dụng PID thông thường và các bộ
điều khiển FGPID đề xuất áp dụng cho hai khu vực hệ thống điện liên kết với
nhau. Các thông số cùng một hệ thống, đưa ra trong Bảng 2 đã được sử dụng
trong tất cả các bộ điều khiển để so sánh. Hai tiêu chí thực hiện đã được lựa
chọn trong mô phỏng. Các đồ thị độ lệch tần số đầu tiên được vẽ bằng phần
mềm Matlab Simulink. Ở đây, thời gian xác lập và độ vọt lố của độ lệch tần số
của bộ điều khiển được so sánh với nhau.

Bảng 2: TWO-AREA POWER SYSTEM PARAMETERS


Tg = 0.08 B1 = 0.425
R1 = 2.4 B2 0.425
R2 = 2.4 T12 = 0.086
Tp = 20 KP = 120
Tt = 0.3 a12 = -1
Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

Ta có kết quả mô phỏng dưới đây:

So sánh đáp ứng đầu ra của 2 bộ điều khiển


Đồ án môn học Mô hình hóa mô phỏng GVHD: Ths. LÊ QUỐC DŨNG

DANH MỤC TÀI LIỆU THAM KHẢO


[1]. Bùi Quốc Khánh, Nguyễn Văn Liễn, Nguyễn Thị Hiền ( 2004 ), Truyền động
điện, NXB Khoa học và kỹ thuật, Hà Nội.
[2]. Bùi Quốc Khánh, Nguyễn Văn Liễn, Phạm Quốc Hải, Dương Văn Nghi
( 2004 ), Điều chỉnh tự động truyền động điện, NXB Khoa học và kỹ thuật, Hà Nội.
[3]. Trần Khánh Hà, (1997), Máy điện I, NXB Khoa học và kỹ thuật, Hà Nội.

[4]. Nguyễn Phùng Quang, ( 2004 ), MATLAB và Simulink dành cho kỹ sư điều khiển tự
động, NXB Khoa học và kỹ thuật, Hà Nội.

[5]. Matlab toàn tập

You might also like