ĐỒ ÁN MÔN HỌC
GVHD: LÊ QUỐC DŨNG
LỜI NÓI ĐẦU
Những năm 1970 trở về trước, công cụ để nghiên cứu mô phỏng còn thô sơ. Tới
năm 1970 đã có một sự phát triển mới, đặc biệt trong lĩnh vực điều khiển vũ trụ, công
nghiệp và quốc phòng. Sang thập kỷ 80 khi kỹ thuật vi xử lý và máy tính được ứng dụng
rộng rãi trong nghiên cứu và ứng dụng của mô phỏng – mô hình hóa lại chuyển qua một
cách mạng mới. Đó là hướng sử dụng có máy tính.
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ợ theo thì MATLAB và SIMULINK là một phần mềm mà ứng dụng của
nó trong mô phỏng – mô hình hóa 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 long MATLAB
đã tích hợp sẵn rất nhiều công cụ chuyên dùng để giải các bài toán khác nhau như: nhận
dạng các đối tượng động học, điều khiển tối ưu, điều khiển bền vững, điều khiển mờ, xử
lý tín hiệu…. Mô phỏng các hệ thống điều khiển tự động trong MATLAB cho phép ta sử
dụng các mô hình toán học khác nhau của hệ thống hoặc đối tượng cần khảo sát như:
dùng hàm truyền đạt, dùng hàm trạng thái, dùng mô hình sơ đồ cấu trúc như trong
SIMULINK. MATLAB cho phép ta khảo sát cá hệ thống điều khiển tự động trong miền
tần số và miền thời gian. Việc thiết kế các bộ điều khiển cũng được tiến hành trong miền
thời gian và bằng cả phương pháp tần số. MATLAB còn cho phép liên kết tối đa môi
trường để có thể tổ chức mô phỏng với mô hình bán tự nhiên, mô phỏng trong thời gian
thực, và mô phỏng các hệ thống lớn.
Một kỹ sư tự động hóa cần phải có khả năng phân tích và thiết kế hệ thống. Do đó,
việc tìm hiểu và nắm vững kiến thức về cơ sở lý thuyết điều khiển tự động và công cụ
phần mềm mô phỏng MATLAB & SIMULNIK là hết sức cần thiết.
Với để tài “ Tìm hiểu các phần mềm mô phỏng MATLAB & SIMULINK” 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. Đặ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
SVTH: NGUYỄN THỊ MINH THÚY – D6-CNTĐ
Page 1
ĐỒ ÁN MÔN HỌC
GVHD: LÊ QUỐC DŨNG
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.
Với sự giúp đỡ nhiệt tình của thầy Lê Quốc Dũng cùng các thầy cô trong trường
đến nay đồ án môn học của em đã hoàn thành. Vì kinh nghiệm năng lực còn nhiều hạn
chế nên đồ án không tránh khỏi những thiếu sót. Em kính mong được sự góp ý của các
thầy cô trong khoa, nhà trường để đồ án của em hoàn thiện hơn.
Em xin chân thành cảm ơn!
Hà Nội, tháng 3 năm 2015
Sinh viên: Nguyễn Thị Minh Thúy
SVTH: NGUYỄN THỊ MINH THÚY – D6-CNTĐ
Page 2
ĐỒ ÁN MÔN HỌC
GVHD: LÊ QUỐC DŨNG
CHƯƠNG I
SỰ HÌNH THÀNH VÀ PHÁT TRIỂN CỦA MATLAB-SIMULINK
1.1.
Giới thiệu chung
Mô hình hóa- Mô phỏng là kĩ thuật cho phép xây dựng mô hình của hệ vật lí và
thực hiện thực nghiệm trên mô hình đó.Nó có vai trò quan trọng là cho phép quan sát quá
trình, đáp ứng động của hệ thống thiết kế trước khi thực nghiệm trên thiết bị thực, là công
cụ hữu hiệu với chi phí thấp cho nghiên cứu, dễ sử dụng, dễ thay đổi phương án…Có
nhiều phướng pháp để mô phỏng và mô hình hóa.Phương pháp mô phỏng được ứng dụng
vào nhiều lĩnh vực khác nhau. Ngày nay người ta đã phát triển nhiều phần mềm chyên
dụng dùng cho mô hình hóa và mô phỏng. Một trong những phần mềm được ứng dụng
rộng rãi nhất hiện nay là MATLAB – SIMULINK được dùng để mô phỏng các hệ thống
động học. Phần mềm này cung cấp cho các kĩ sư, các cán bộ kĩ thuật công cụ tính toán
mạnh, một phương tiện mô phỏng, phân tích và tổng hợp các hệ thống động học.
MATLAB (Matrix Laboratory) là một môi trường tính toán trên ma trận rất mạnh.
Matlab được tích hợp một số Toolbox, đó là thư viện của các hàm hỗ trợ cho Matlab giải
các ứng dụng riêng biệt như: hệ thống điều khiển, xử lí tín hiệu, tối ưu hóa, nhận dạng,
điều khiển bền vững v.v…
SIMULINK( trước đây gọi là SIMULAB) là một môi trường mô phỏng dựa trên
nền Matlab và các Toolbox hệ thống điều khiển (Control System) và xử lí tín hiệu
( Signal Processing). Vì vậy Simulink được coi là phần mở rộng của Matlab được dùng
để mô phỏng hệ thống động học. Simulink cho phép lập trình ở dạng sơ đồ cấu trúc cho
nên rất thuận tiện trong việc mô phỏng và khảo sát các hệ thống điều khiển tự động.
1.2.
Lịch sử của sự hình thành và phát triển
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.
SVTH: NGUYỄN THỊ MINH THÚY – D6-CNTĐ
Page 3
ĐỒ ÁN MÔN HỌC
GVHD: LÊ QUỐC DŨNG
Năm 1983, Jack Little, một người đã học ở MIT và Stanford, đã viết lại MATLAB
bằng ngôn ngữ C và nó được xây dựng thêm các thư viện phục vụ cho thiết kế hệ thống
điều khiển, hệ thống hộp công cụ (tool box), mô phỏng... Jack xây dựng MATLAB trở
thành mô hình ngôn ngữ lập trình trên cơ sở ma trận (matrix-based programming
language).
Steve Bangert là người đã viết trình thông dịch cho MATLAB. Công việc này kéo dài
gần 1½ năm. Sau này, Jack Little kết hợp với Moler và Steve Bangert quyết định đưa
MATLAB thành dự án thương mại - công ty The MathWorks ra đời thời gian này năm 1984.
Phiên bản đầu tiên MATLAB 1.0 ra dời năm 1984 viết bằng C cho MS-DOS PC
được phát hành đầu tiên tại IEEE Conference on Design and Control (Hội nghị IEEE về
thiết kế và điều khiển) tại Las Vegas, Nevada. Ban đầu Matlab được phát triển để hỗ trợ
sinh viên sử dụng hai thư viện LINPACK và EISPACK dùng cho đại số tuyến tính (viết
bằng Fortran) mà không cần biết lập trình Fortran.
Năm 1986, MATLAB 2 ra đời trong đó hỗ trợ UNIX.
Năm 1987, MATLAB 3 phát hành.
Năm 1990 Simulink 1.0 được phát hành gói chung với MATLAB.
Năm 1992 MATLAB 4 thêm vào hỗ trợ 2-D và 3-D đồ họa màu và các ma trận truy tìm.
Năm này cũng cho phát hành phiên bản MATLAB Student Edition (MATLAB ấn bản cho
học sinh).
Năm 1993 MATLAB cho MS Windows ra đời. Đồng thời công ty này có trang web
là www.mathworks.com
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, 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.[1]
SVTH: NGUYỄN THỊ MINH THÚY – D6-CNTĐ
Page 4
ĐỒ ÁN MÔN HỌC
GVHD: LÊ QUỐC DŨNG
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
CHƯƠNG II
CƠ SỞ VỀ MATLAB VÀ SIMULINK
MATLAB là một chương trình phần mềm lớn về lĩnh vực toán số. Tên bộ chương
trình chính là chữ viết tắt của MATrix LABoratory, thể hiện định hướng của chương
trình là những phép tính vector và ma trận. Phần cốt lõi của chương trình bao gồm một số
hàm toán, các chức năng nhập/xuất cũng như các khả năng điều khiển chu trình mà nhờ
đó có thể dựng lên các Scripts.
Trong phần này bao gồm các Toolbox liên quan đến Điều khiển – Tự động hóa
như: Control system toolbox, Signal processing toolbox, Optimization toolbox, Stateflow
blockset, Power system blockset, Real – Time workshop và Simulink. Simulink là một
toolbox có vai trò đặc biệt quan trọng, vai trò của một công cụ mạnh phục vụ mô hình
hóa và mô phỏng các hệ thống kĩ thuật – vật lý trên cơ sở sơ đồ cấu trúc dạng khối. Cùng
với Simulink, Stateflow Blockset tạo cho ta khả năng mô hình hóa và mô phỏng các
automat trạng thái hữu hạn.
2.1.
Những bước đi đầu tiên với Matlab
2.1.1. Giới thiệu chương trình Matlab:
SVTH: NGUYỄN THỊ MINH THÚY – D6-CNTĐ
Page 5
ĐỒ ÁN MÔN HỌC
GVHD: LÊ QUỐC DŨNG
Hình 2.1: Giao diện của Matlab
Chương trình Matlab là một chương trình viết cho máy tính PC nhằm hỗ trợ cho
các tính toán khoa học và kĩ thuật với các phần tử cơ bản là ma trận trên máy tính cá nhân
do công ty “The Mathworks” viết ra.
Thuật ngữ Matlab là do hai từ MATRIX và LABOORATORY ghép lại. Chương
trình này hiện đang được sử dụng nhiều trong nghiên cứu các vấn đề tính toán của các bài
toán kĩ thuật như: Lí thuyết điều khiển tự động, kĩ thuật thống kê xác suất, xử lí số các tín
hiệu, phân tích dữ liệu, dự báo chuỗi quan sát v..v…
MATLAB được điều khiển bởi các tập lệnh, tác động qua bàn phím. Nó cũng cho
phép một khả năng lập trình với cú pháp thông dịch lệnh – còn gọi là Script file. Các lệnh
hay bộ lệnh của Matlab lên đến số hàng trăm và ngày càng được mở rộng bởi các phần
Toolsbox (thư viện trợ giúp) hay thông qua các hàm ứng dụng được xây dựng từ người
sử dụng. Matlab có hơn 25 Toolbox để trợ giúp cho việc khảo sát những vấn đề có liên
quan trên. Toolbox Simulink là phần mở rộng của Matlab, sử dụng để mô phỏng các hệ
thống động học một cách nhanh chóng va tiện lợi.
Matlab 3.5 trở xuống hoạt động trong môi trường MS-DOS.
SVTH: NGUYỄN THỊ MINH THÚY – D6-CNTĐ
Page 6
ĐỒ ÁN MÔN HỌC
GVHD: LÊ QUỐC DŨNG
Matlab 4.0,4.2,5.1,5.2,… hoạt động trong môi trường Windows. Các version
4.0,4.2 muốn hoạt động tốt phảo sử dụng cùng với Window 6.0. Hiện tại đã có version
5.31. Chương trình Matlab có thể chạy liên kết với các chương trình ngôn ngữ cấp cao
như C, C++, Fortran… Việc cài đặt Matlab thật dễ dàng và ta cần chú ý đến việc dùng
thêm vào các thư viện trợ giúp hay muốn liên kết phần mềm này với một vài ngôn ngữ
cấp cao.
Còn các version khác thì làm việc trên hệ điều hành UNIX.
Việc khởi động MATLAB trên mỗi hệ thống là khác nhau. Trong môi trường
WINDOW hay MACINTOSH, chương trình thường được khởi động thông qua việc nhắp
chuột trên các icon hay còn gọi là biểu tượng. Còn với môi trường UNIX, MSDOS, việc
khởi động thông qua dòng lệnh:
:\ MATLAB enter
Sau khi khởi động Matlab, môi trường tích hợp với những cửa sổ chính như hình
dưới:
Hình 2.2: Màn hình Matlab
SVTH: NGUYỄN THỊ MINH THÚY – D6-CNTĐ
Page 7
ĐỒ ÁN MÔN HỌC
GVHD: LÊ QUỐC DŨNG
Cửa sổ thư mục hiện tại Curent Directory Browser: Nhờ cửa sổ này người sử dụng
nhanh chóng nhận biết, chuyển đổi thư mục hiện tại của môi trường công tác, mở File,
tạo thư mục mới.
Cửa sổ môi trường công tác Workspace Browser: Tất cả các biến, các hàm tồn tại
trong môi trường công tác đều được hiển thị tại cửa sổ này với đầy đủ các thông tin như:
tên loại biến/ hàm, kích thước tùy theo byte và loại dữ liệu. Ngoài ra còn có thể cất vào
các bộ nhớ các dữ liệu đó, hoặc sử dụng các chức năng Array Editor (soạn thảo mảng) để
thay đổi các biến
Cửa sổ Command Windows: Đây là cửa sổ chính của Matlab. Tại đây ta thực hiện
toàn bộ việc nhập dữ liệu và xuất kết quả tính toán. Dấu nhấp nháy “>>” báo hiệu chương
trình sắp hoạt động
Mỗi lần nhập dữ liệu được kết thúc bằng động tác nhấn phím ENTER. Nguyên tắc “
nhân, chia thực hiện trước cộng, trừ” và thức tự ưu tiên của dấu ngoặc vẫn như thường.
Số có giá trị lớn thường được nhập với hàm e mũ (có thể viết E). Có thể kết thúc chương
trình bằng cách đóng màn hình Matlab, hoặc gọi lệnh Quit, Exit hoặc nhấn tổ hợp phím
Ctrl+q
Cửa sổ quá khứ Command History: Tất cả các lệnh đã sử dụng trong Command
Windows được lưu trữ và hiển thị tại đây, có thể lặp lại lệnh cũ bằng cách nháy đúp chuột
vào lệnh đó. Cũng có thể cắt, sao hoặc xóa cả nhóm lệnh hoặc từng lệnh riêng rẽ
2.1.2. Các dạng File sử dụng trong Matlab
Làm việc với Matlab rất đơn giản và thuận tiện. Có hai các làm việc: làm việc cửa
sổ lệnh và làm việc với các M-file. Khi làm việc với của sổ lệnh, sau dấu nhắc của
Matlab “>>” người sử dụng đưa vào các công thức, các hàm, các lệnh để tính toán và
Matlab trả lời ngay sau mỗi lệnh. Cách làm việc này giống như tính toán trên trang giấy,
cho phép người sử dụng thử các phép tính các thuật toán rất thuận tiện.
Làm việc với M-file: Matlab cho phép lập trình, chương trình là một dãy lệnh thực
hiện một số nhiệm vụ tính toán nhất định. Chương trình thực được ghi thành file mở rộng
lag .m với tên file tự đặt trước gọi là M.file. Để chạy chương trình, sau dấu nhắc “>>” ta
gõ tên file không có phần mở rộng. Lúc này Matlab M.file như command file hay script
SVTH: NGUYỄN THỊ MINH THÚY – D6-CNTĐ
Page 8
ĐỒ ÁN MÔN HỌC
GVHD: LÊ QUỐC DŨNG
file và chương trình được thực hiện theo tuần tự các lện đã xác định. Bình thường khi
chạy chương trình các lệnh sẽ không hiển thị trên màn hình.
Matlab có các lệnh cơ bản sau:
+ Các lệnh chung và gỡ rối
+ Các lệnh làm việc với ma trận và vecto
+ Các lệnh làm việc với hàm và đa thức
+ Các lệnh đồ họa 2D và 3D
+ Các lệnh xử lí tín hiệu và phân tích hệ thống
Ngữ pháp lập trình của Matlab rất đơn giản và gần giống các ngôn ngữ bậc cao
khác như C, Basic và Fortran. Sau đây là một số lệnh, hàm và cấu trúc thường dùng trong
lập trình.
+ Các phép toán quan hệ:
“<” nhỏ hơn
“<=” nhỏ hơn hoặc bằng
“==” bằng
“>” lớn hơn
“>=” lớn hơn hoặc bằng
“~=” không bằng
+ Các phép toán logic: AND, OR và NOT
+ Các lệnh điều kiện và vòng lặp: for, while và if-else
Lệnh vòng lặp for có cú pháp như sau:
For biến = biểu thức, lệnh, lệnh,…,end
Các vòng for…end có thể lồng vào nhau
Lệnh vòng lặp while có cú pháp như sau:
While biểu thức, lệnh, lệnh,…end
Lệnh rẽ nhánh có điều kiện if…else…end. Có ba dạng cấu trúc rẽ nhánh và có cú pháp
như sau:
If biểu thức, lệnh, lệnh,…,end
If biểu thức, lệnh, lệnh,…else lệnh, lệnh,…end
If biểu thức 1, lệnh, lệnh,…elseif biểu thức 2, lệnh, lệnh,…end
+ M-file: Script file và Function file
Hai dạng của M-file là Script file và Function file:
SVTH: NGUYỄN THỊ MINH THÚY – D6-CNTĐ
Page 9
ĐỒ ÁN MÔN HỌC
GVHD: LÊ QUỐC DŨNG
+ Script file chứa chương trình gồm một số lệnh để thực hiện nhiệm vụ tính toán đã định.
khi chạy chương trình chỉ cần gõ tên file không có đuôi mở rộng .m.
+ Function file là lệnh mở rộng của matlab, tất cả các lệnh trong toolbox đều có dạng
function. Function có cú pháp như sau:
Function [biến ra1, biến ra 2,…] = filename( biến vào 1, biến vào 2,…)
Khác nhau cơ bản giữa Script và Function là Function chỉ dùng biến riêng của mình và
không tác động tới toàn bộ chương trình. Dòng đầu tiên của Function file phải có chứ
“function”.
2.2.
Khái quát về Simulink
2.2.1. Giới thiệu chung về Simulink
Simulink được coi là phần mở rộng của Matlab. Simulink được dùng để mô
phỏng, mô hình hóa, phân tích các hệ động học. Thông thường dùng để thiết kế hệ thống
điều khiển, thiết kế DSP, hệ thống thông tin và các ứng dụng mô phỏng khác.
Simulink là thuật ngữ mô phỏng dễ nhớ được ghép từ hai từ Simulation và Link.
Simulink cho phép mô tả hệ thống tuyến tính, hệ phi tuyến các mô hình trong miền thời
gian liên tục hay gián đoạn hoặc gồm cả liên tục và gián đoạn.
Để mô hình hóa Simulink cung cấp cho bạn một giao diện đồ họa để sử dụng và
xây dựng mô hình sử dụng thao tác “nhấn và kéo” chuột. Với giao diện đồ họa ta có thể
xây dựng mô hình và khảo sát mô hình một cách trực quan hơn. Đây là sự khác xa các
phần mềm trước đó mà người sử dụng phải đưa vào các phương trình vi phân và các
phương trình sai phân bằng một ngôn ngữ lập trình.
Điểm nhấn mạnh trong việc mô phỏng một quá trình là việc xây dựng được mô
hình. Để sử dụng tốt chương trình này, người sử dụng phải có kiến thức cơ bản về điều
khiển, xây dựng mô hình hóa theo quan điểm của lí thuyết điều khiển và từ đó thành lập
nên mô hình của bài toán.
Người sử dụng có thể thay đổi hoặc tạo ra khối riêng của mình và bổ xung vào thư
viện như một khối ứng dụng mới. Simulink có các thư viện sau: Sources, Sink, Linear,
Nonlinear, Discrete, Connections, Extras.
SVTH: NGUYỄN THỊ MINH THÚY – D6-CNTĐ
Page 10
ĐỒ ÁN MÔN HỌC
GVHD: LÊ QUỐC DŨNG
Mô hình simulink được xây dựng theo kiểu phân cấp điều đó cho phép người sử
dụng có thể xây dựng mô hình theo hướng từ dưới lên trên hoặc từ trên xuống dưới.
Dùng chức năng tạo mặt nạ của Simulink người ta có thể xây dựng các hệ con bằng cách
tạo hộp thoại và biểu tượng mới cho khối. Ứng dụng quan trọng của mặt nạ là tạo ra hộp
thoại để tiếp nhận thông số của các khối trong hệ con, ngoài ra mặt nạ còn làm cho mô
hình đơn giản, rõ ràng và bảo vệ nội dung của khối khỏi sự xâm nhập của người lạ. Khi
thực hiện mô phỏng bằng Simulink người sử dụng vừa có thể quan sát hệ thống ở mức
tổng quan, có thể xem chi tiết hoạt động của từng khối bằng cách nháy đúp chuột vào
khối đó. Các khối Scope và khối hiển thị khác cho phép người sử dụng quan sát kết quả
trong khi đang chạy mô phỏng để biết được ảnh hưởng của các thông số đó đối với kết
quả các mô phỏng.
Simulink có một đặc tính quan trọng là khi ta xây dựng mô hình dạng sơ đồ khối
thì Simulink tự động tạo ra một M.file cho mô hình đó. Hàm này được gọi là S- function.
Cũng giống như các hàm khác trong Matlab, hàm S- function là một file mở, người sử
dụng có thể truy cập và soạn thảo. Lệnh để mở một S-function là sfun. Điều đó có nghĩa
là để có thể soạn thảo chương trình mô phỏng mà không cần thông qua giao diện đồ thị.
Mặt khác Simulink cho phép chuyển đổi từ S- function sang sơ đồ khối và ngược lại.
Như vậy rất thuận tiện cho người sử dụng.
2.2.2. Khởi động Sinulink
Khởi động vào Matlab, sau đó có hai cách vào cửa sổ Simulink
Cách 1: Vào trực tiếp Simulink bằng cách nhấp chuột vào biểu tượng
của Matlab
Cách 2: gõ lệnh
>> Simulink;
Khi khởi động Simulink xong ta được màn hình cửa sổ Simulink. Cửa sổ này
hoạt động liên kết với cửa sổ lệnh Matlab.
Ta thấy cửa sổ Simulink có nhiều khối chức năng (blocks library), trong đó có nhiều
khối chức năng cụ thể.
SVTH: NGUYỄN THỊ MINH THÚY – D6-CNTĐ
Page 11
ĐỒ ÁN MÔN HỌC
GVHD: LÊ QUỐC DŨNG
Hình 2.3: Màn hình cửa sổ thư viện Simulink
•
•
•
•
•
•
•
•
•
Có các thư viện chính của Simulink được phân loại như sau:
Continuous: Hệ thống tuyến tính và liên tục.
Discrete : Hệ thống tuyến tính gián đoạn
Discontinuities: Hệ thống gián đoạn
Logic and Bit Operations: Hoạt động Logic và Bit
Sinks: Các khối thu thập tín hiệu
Lookup Table:
Math Operations
Model Verification
Model Wide Utilities….
SVTH: NGUYỄN THỊ MINH THÚY – D6-CNTĐ
Page 12
ĐỒ ÁN MÔN HỌC
GVHD: LÊ QUỐC DŨNG
Thư viện Simulink bao gồm các khối chuẩn trên, người sử dụng cũng có thể thay
đổi hay tạo ra các khối cho riêng mình. Simulink cũng giống như các phần mềm mô
phỏng thiết kế mạch điện tử như: MicroSim Eval, EWB, Circuit Maker…
2.3.
Thư viện của Simulink
2.3.1. Thư viện Sources
Trong thư viện này bao gồm các nguồn dữ liệ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.
a, Clock
Cung cấp vector theo thời gian
Mở trong suốt quá trình mô phỏng, hiển thị thời gian liên tục mà cuộc mô phỏng
đang xảy ra. Điểm quan trọng là Clock không phải là khối phát thời gian mà chỉ là khối
hiển thị thời gian mô phỏng. Được kết nối với To Workspace để chuyển vector thời gian
vào trong Matlab
b, Constant
Khối này tạo nên một hằng số (không phụ thuộc 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ỡ [1 x n] hay [n x 1] dưới dạng ma trận
c, Step và Ramp
SVTH: NGUYỄN THỊ MINH THÚY – D6-CNTĐ
Page 13
ĐỒ ÁN MÔN HỌC
GVHD: LÊ QUỐC DŨNG
Hai khối này tạo nên các 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.
Hai khối này không chỉ tạo ra một tín hiệu mà còn 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
d, Signal Generator và Pulse Generator
Nhờ Signal Generator ta tạo ra các dạng tín hiệu kích thước 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)
Sóng răng cưa (Sawtood)
Sóng ngẫu nhiên (Random)
Với Pulse 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 Pulse Generator ta còn có khả năng chọn tỉ lệ cho bề rộng xung ( tính bằng
phần tram cho cả chu kì)
e, Repeating sequence
Khối này cho phép tạo nên một tín hiệu tuần hoàn tùy ý. Tham số Time values
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 values phải có kích cỡ phù hợp với chiều dài của tham số
Time values. 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
SVTH: NGUYỄN THỊ MINH THÚY – D6-CNTĐ
Page 14
ĐỒ ÁN MÔN HỌC
GVHD: LÊ QUỐC DŨNG
f, Sine Wave
Khối này được sử dụng để tạo tín hiệu hình Sin cho cả hai loại mô hình: liên tục
(Sample time = 0) và gián đoạn (Sample time = 1)
g, From Workspace
Khối này 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 vào phải có dạng của biểu thức Matlab, khai báo tại dòng
Data
h, From File
Bằng khối này ta có thể lấy số liệu từ một MAT – File có sẵn. MAT – File có thể
là kết quả của một lần mô phỏng trước đó, đã tạo nên và cất đi nhờ khối To File trong sơ
đồ Simulink
2.3.2.Thư viện Sinks
Thư viện này bao gồm các khối xuất chuẩn 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í để 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 độ OXY
SVTH: NGUYỄN THỊ MINH THÚY – D6-CNTĐ
Page 15
ĐỒ ÁN MÔN HỌC
GVHD: LÊ QUỐC DŨNG
a, Scope
Khối Scope ta có thể hiển thị các tín hiệu của quá trình mô phỏng
b, XY Graph
Khối này biểu diễn hai tín hiệu đầu vào trên hệ tọa độ XY dưới dạng đồ họa Mtlab
đầu vào thứ nhất (bên trên) ứng với trục X, đầu thứ hai ứng với trục Y
c,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 (Array), Stracture hay 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
d, To File
Lưu trữ dữ liệu dưới dạng file.
Những thông số: Tên file, tên ma trận.
Dữ liệu ở đây là một ma trận, hàng đầu tiên là một vecto thời gian, những cột khác
nhau là biến ngõ ra.
e, Stop Simulation
SVTH: NGUYỄN THỊ MINH THÚY – D6-CNTĐ
Page 16
ĐỒ ÁN MÔN HỌC
GVHD: LÊ QUỐC DŨNG
Ngừng cuộc mô phỏng lập tức ngay khi ngõ vào bằng không
Khi nhiều tín hiệu vào là đa biến nếu có một thành phần ngõ vào bằng không thì
cuộc mô phỏng sẽ ngừng ngay lập tức.
2.3.3.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 hơn
như lượng giác và logic….
a, Sum và Subtract
Tín hiệu ra của khối Sum là tổng các tín hiệu đầu vào. Khối Sum cũng có thể tính
tổng từng phần tử.
b, Product và Dot Product
Khi 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 của khối
Khối Dot Product tính tích vô hướng của các vector đầu vào. Giá trị đầu ra của
khối tương đương với lệnh Mtalab y = Sum(conj(u1)*u2)
c, Math Function và Trigonometric Function
SVTH: NGUYỄN THỊ MINH THÚY – D6-CNTĐ
Page 17
ĐỒ ÁN MÔN HỌC
GVHD: LÊ QUỐC DŨNG
Hai khối này đều có thể xử lý tín hiệu 2D. 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ực 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
d, Gain và Slider Gain
Khối Gain có tác dụng khuếch đại tín hiệu đầu vào 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ến đó phải tồn tại trong môi
trường Matlab Workspace thì khi ấy Simulink mới tính toán được với biến
Khối Slider Gain cho phép thay đổi khuếch đại vô hướng trong quá trình mô
phỏng
2.2.4.Thư viện Constinuous
a, Integrator
Khối này lấy tích phân tín hiệu đầu vào của khối
Các thông số là điều kiện vào
b, 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 /Δ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ị đầu ra ban đầu là 0
SVTH: NGUYỄN THỊ MINH THÚY – D6-CNTĐ
Page 18
ĐỒ ÁN MÔN HỌC
GVHD: LÊ QUỐC DŨNG
c, Tranfer Fcn và Zero – Pole
Khối Tranfer Fcn cho phép mô hình hóa hàm truyền đạt của một hệ tuyến tính.
Tham số của các khối là các hệ số của các đa thức tử số và mẫu số, khai báo theo thứ tự
số mũ 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ố.
Khối Zero – Pole sẽ tạo nên từ 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
d, Transport Delay và Variable Transport Delay
Khối Transport Delay làm trễ tín hiệu vào khoảng thời gian 0 khai báo tại ô Time
Delay trước khi xuất tới đầu ra. Chỉ đến khi thời gian mô phỏng bắt đầu vượt quá thời
gian trễ (so với lúc bắt đầu mô phỏng), khối Transport Delay mới xuất hiện giá trị khai tại
Initial Input tới đầu ra
Bằng khối Variable Transport Delay có thể điều khiển trễ tín hiệu một cách rất
linh hoạt: tín hiệu chứa thời gian trễ được đưa tới đầu vào thứ hai ( đầu vào phía dưới)
của khối. Tại ô Maxmum Delay ta phải khai một giá trị trễ tối đa, có tác dụng giới hạn
(chặn trên) giá trị của tín hiệu điều khiển thời gian trễ
SVTH: NGUYỄN THỊ MINH THÚY – D6-CNTĐ
Page 19
ĐỒ ÁN MÔN HỌC
GVHD: LÊ QUỐC DŨNG
CHƯƠNG III
ỨNG DỤNG CỦA MATLAB – SIMULINK
3.1.
Ứng dụng Matlab – Simulik để phân tích và khảo sát hệ thống điều khiển tự động
trong miền thời gian và tần số
Trong phần này tôi sẽ trình bày một số lệnh của Matlab dùng để phân tích các hệ điều
khiển kinh điển, các hệ này cũng có trong Control System Toolbox của Matlab
Cho hàm truyền của một hệ điều khiển tự động G(s) = B(s)/A(s)
Trong đó: B(s) – biểu thức tử số (numerator)
A(s) – biểu thức mẫu số (denominator)
Chúng ta quan tâm đáp ứng của hệ thống trong miền thời gian cũng như trong
miền tần số đối với các tín hiệu vào khác nhau như hàm xung, hàm bước nhảy, hàm điều
hòa,…
a, Miền thời gian
Chất lượng của các hệ thống tự điều khiển thường được đánh giá dựa trên đáp ứng
thời gian ứng với các tín hiệu vào khác nhau. Vì vậy đáp ứng thời gian có vai trò quan
trọng trong việc phân tích và tổng hợp hệ thống
Để tìm đáp ứng của hệ G(s) khi tín hiệu vào là hàm bậc thang 1(t) Matlab dùng lệnh “
STEP”. Cú pháp như sau:
>> y = step(num,den,t)
Trước tiên ta phải xác định trục thời gian t là một vectơ. Giá trị đáp ứng ra cũng là
một vecto có cùng kích thước với vecto t. Có thể dùng cá lệnh sau để tìm đáp ứng thời
gian của hệ thống như:
Lệnh IMPULSE
SVTH: NGUYỄN THỊ MINH THÚY – D6-CNTĐ
Page 20
ĐỒ ÁN MÔN HỌC
•
•
GVHD: LÊ QUỐC DŨNG
Công dụng: tìm đáp ứng xung đơn vị.
Cú pháp: [y,x,t] = impulse(a,b,c,d)
[y,x,t] = impulse(num,den)
Lệnh STEP:
• Công dụng: tìm đáp ứng nấc đơn vị.
• Cú pháp: [y,x,t] = step(a,b,c,d)
[y,x,t] = step( num,den)
•
•
•
Lệnh LTITR:
Công dụng: tìm đáp ứng thời gian của hệ tuyến tính bất biến.
Cú pháp: ltitr(a,b,u)
Giải thích:
Đáp ứng đầu ra khi đầu vào là hàm 1(t), khi điều kiện đầu bằng 0, được gọi là đặc tính
quá độ h(t) của hệ thống. Từ đặc tính quá độ có thể xác định được các chỉ tiêu chất lượng
của hệ thống sau:
Độ quá hiệu chỉnh (Percent Overshoot)
Thời gian cực đại (Peak time) là quãng thời gian để đường quá độ đạt giá trị cực
đại
Thời gian tăng (Rise time) là quãng thời gian từ khi đường quá độ đạt 10% đến
90%
Thời gian quá độ (Setting time) là quãng thời gian từ t=0 đến khi đường h(t) đi vào
vùng .
Ví dụ 1: Tìm đáp ứng thời gian của hệ G(s) khi tín hiệu đầu vào là hàm bạc thang đơn vị
1(t) Matlab dùng lệnh Step.
G(s) =
-
-
Khai báo hàm truyền:
>> num = [10];
>> den = [1 2 10];
Thực hiện vẽ biểu đồ:
>> Step(num,den)
SVTH: NGUYỄN THỊ MINH THÚY – D6-CNTĐ
Page 21
ĐỒ ÁN MÔN HỌC
GVHD: LÊ QUỐC DŨNG
Step Response
1.4
1.2
Amplitude
1
0.8
0.6
0.4
0.2
0
0
1
2
3
4
5
6
Time (seconds)
Hình 3.1: Đáp ứng thời gian của hệ ĐKTĐ
b,Miền tần số
Các đáp ứng tần số cho ta cái nhìn trực quan về chất lượng hệ thống do nó cho ta
thấy rõ bản chất vật lý và ảnh hưởng của các phần tử lên chất lượng của hệ thống. Vì vậy
các đáp ứng tần số, hay còn gọi là đặc tính tần số, cho ta công cụ tốt để hiệ chỉnh hệ
thống
Có thể dùng các lệnh sau đây để tìm đáp ứng tần số của hệ thống: bode, nyquist và
•
•
•
•
•
•
Nichols.
Lệnh BODE
Công dụng: tìm và vẽ đáp ứng tần số giản đồ Bode.
Cú pháp:
[mag,phase,w] = bode(a,b,c,d)
[mag,phase,w] = bode(a,b,c,d,iu)
[mag,phase,w] = bode(num,den)
Lệnh FBODE
Công dụng: vẽ đáp ứng tần số giản đồ Bode cho hệ tuyến tính liên tục.
Cú pháp:
[mag, phase, w] = fbode(a,b,c,d)
[mag, phase, w] = fbode(num, den)
Lệnh FREQS
Công dụng: tìm đáp ứng tần số của phép biến đổi Laplace.
Cú pháp: h = freqs (b,a,w)
SVTH: NGUYỄN THỊ MINH THÚY – D6-CNTĐ
Page 22
ĐỒ ÁN MÔN HỌC
GVHD: LÊ QUỐC DŨNG
Lệnh NYQUIST
• Công dụng: Vẽ biểu đồ đáp ứng tần số Nyquist.
• Cú pháp : [re,im,w] = nyquist(a,b,c,d)
[re,im,w] = nyquist(num,den)
Lệnh DNYQUIST
• Công dụng: Vẽ biểu đồ đáp ứng tần số Nyquist của hệ gián đoạn.
• Cú pháp: [re,im,w] = dnyquist(num,den,Ts)
Các lệnh trên sẽ vẽ đồ thị biên độ( đơn vị là dB) và pha( đơi vị là độ). Từ trường
đặc tính tần số ta có thể xác định được các chỉ tiêu chất lượng trong miền tần số như:
-
Cộng hưởng đỉnh Mp, dB, là giá trị cực đại của biên độ;
Tần số cộng hưởng ωr, rad/s, là tần số tại đó xuất hiện cộng hưởng đỉnh;
Tần số cắt ωc, rad/s, là tần số tại đó đường đặc tính tần số biên độ loga cắt trục thực;
Băng thông ωB, rad/s, là giải thông của hệ thống từ tần số bằng không đến tần số mà ở đó
biên độ giảm đi 3dB.
Các chỉ tiêu chất lượng trong miền thời gian và trong miền tần số có quan hệ chặt
chẽ với nhau. Thông thường độ quá hiệu chỉnh lớn thì M p cũng lớn tương ứng. Giá trị
cộng hưởng đỉnh tối ưu là nằm trong khoảng 1.1 1.5. Thời giam quá độ t s lớn thì MP nhỏ
vì vậy hệ thống tác động chậm.
Ví dụ 2: Vẽ giản đồ Bode hệ thống hồi tiếp đơn vị của hàm truyền vòng hở sau:
G(s) =
-
Khai báo hàm truyền
>> w = tf(10,[0.1 1 0]);
Thực hiện vẽ biểu đồ:
>>Bode (w)
SVTH: NGUYỄN THỊ MINH THÚY – D6-CNTĐ
Page 23
ĐỒ ÁN MÔN HỌC
GVHD: LÊ QUỐC DŨNG
Bode Diagram
Magnitude (dB)
50
0
-50
Phase (deg)
-100
-90
-135
-180
-1
10
0
10
10
1
10
2
10
3
Frequency (rad/sec)
Hình 3.2: Đáp ứng tần số của hệ ĐKTĐ
Hệ thống gồm một khâu khuếch đại 10, một khâu tích phân và 1 thành phần cực
kép
Tần số gãy: 10
= 20dB -20log ω
Tần số gãy nhỏ nhất ω = 0,1rad/dec có độ lợi 40dB và độ dốc -20dB/decade (vì khâu tích
phân). Độ dốc này được tiếp tục đến khi gặp tần số gãy kép ω = 10rad/dec tại đây ta cộng
3.2.
thêm -20dB/decade (vì khâu quán tính bậc 1), tạo ra độ dốc -40dB/dec
Ứng dụng của Matlab – Simulink để phân tích và khảo sát hệ thống điều khiển tự
động trong không gian trạng thái;
So với phương pháp biểu diễn hệ thống điều khiển tự động bằng hàm truyền đạt
Laplace, phương pháp biểu diễn bằng phương trình không gian trạng tháu có một số ưu
điểm sau: Hệ phương trình mô tả hệ thống là phương trình bậc nhất nên tương ứng đơn
giản trong tính toán đồng thời các hệ số là các ma trận nên dùng MATLAB để giải rất
thuận tiện. Phương pháp trình không gian trạng thái được viết trực tiếp trong miền thời
gian vì vậy rất thuận tiện cho việc giải bằng máy tính. Các hệ nhiều đầu vào nhiều đầu ra
SVTH: NGUYỄN THỊ MINH THÚY – D6-CNTĐ
Page 24
ĐỒ ÁN MÔN HỌC
GVHD: LÊ QUỐC DŨNG
(MIMO) và các hệ phi tuyến không dừng thường được biểu diễn bằng không gian trạng
thái.
Hệ thống tính dừng (LTI) được mô tả bởi ba mô hình cơ bản là mô hình hàm
-
-
3.3.
tryền, mô hình điểm không – điểm cực – khuếch đại và mô hình không gian trạng thái.
Sau đây là các ví dụ về các dạng mô hình nói trên:
Mô hình hàm truyền (TF)
G(s) =
Ví dụ:
G(s) =
Mô hình hàm truyền đạt được biểu diễn trên matlab như sau:
>> num = [2 0];
>> den = [1 3 20];
>> H = tf(num,den)
Transfer function:
2s
------------s2 +3s +20
Mô hình điểm không – điểm cực – khuếch đại
G(s) =
Với K là hệ số khuếch đại
z1…zn là các điểm không (zeos) của G(s)
p1…pm là các điểm cực (poles) của G(s)
Ứng dụng của Simulink để mô hình hóa, mô phỏng, phân tích và khảo sát các hệ
thống động học
Simulink là phần mở rộng của Matlab dùng để mô hình hóa hệ động học. Giao
diện đồ họa trên màn hình của Simulink cho phép thể hiện hệ thống dưới dạng sơ đồ cấu
trúc rất quen thuộc. Trong quá trình mô phỏng ta có thể trích tín hiệu tại vị trí bất kì của
sơ đồ và hiển thị tín hiệu.
Ứng dụng mô phỏng khảo sát các hệ thống động cơ điện
Trong các hệ thống truyền động tự động thường có yêu cầu về điều chỉnh dòng
điện và tốc độ. Việc tổng hợp các mạch vòng điều chỉnh dòng điện và tốc độ được thực
hiện nhờ việc áp dụng các tiêu chuẩn tối ưu hóa mô đun hoặc mô đun đối xứng. Trên cơ
sở cấu trúc các bộ điều chỉnh tổng hợp được, chúng ta có thể tiến hành khảo sát các đặc
tính của hệ thống trên matlab hoặc simulink. Ví dụ dưới đây sẽ trình bày hệ thống truyền
động điều chỉnh dòng điện và tốc độ động cơ điện một chiều kích từ độc lập.
CHƯƠNG IV
SVTH: NGUYỄN THỊ MINH THÚY – D6-CNTĐ
Page 25