Professional Documents
Culture Documents
ĐỒ Á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
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.
MỤC LỤC
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
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
- 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
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.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.
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
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:
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.
int8, uint8, int16, uint16, int32, uint32: số nguyên 8-, 16- hay 32-
bit có / không có dấu.
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.
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.
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
- 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 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
+ Khối Dot product: Tính tích vô hướng của các vector đầu vào.
- 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.
+ 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
- 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
1.5
0.5
0
y
-0.5
-1
-1.5
-2
0 1 2 3 4 5 6
x
y/(x 2 + y 2 + 1)
0.5
-0.5
5
5
0
0
-5
y -5
x
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
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.
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.
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
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:
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
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
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
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
1 1
=> WI = Kp(1 + ) = 0.3798(1 + )
Te. s 0.03625 s
Kp = 0.3798 ; Ki = 10.4772
Sơ đồ mô phỏng Simulink
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
- 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
- Nhận xét:
+ Hệ thống đã ổn định:
+ Độ quá điều chỉnh: 4.19 %
+ Thời gian quá độ: 0.0787 s
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.
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
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
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.
[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.