Đồ án Tìm hiểu về phần mềm mô phỏng MATLAB & SIMULINK CHƯƠNG I: TÌM HIỂU VỀ LỊCH SỬ HÌNH THÀNH VÀ PHÁT TRIỂN CỦA PHẦN MỀM MATLAB & SIMULINK5 1.1: Lịch sử hình thành và phát triển của Matlab & Simulink5 1.1.1: Lịch sử hình thành5 1.1.2: Ngôn ngữ lập trình6 1.2: Phạm vi ứng dụng của Matlab6 CHƯƠNG II: GIỚI THIỆU CƠ BẢN VỀ MATLAB9 2.1: Làm việc với Matlab9 2.1.1: Chương trình trên Matlab9 2.1.2: Cơ cấu làm việc của matlab9 2.1.3: Câu lệnh, chỉ thị và biến9 2.1.4: Làm việc trong chế độ hội thoại10 2.1.5: Chương trình trên Matlab10 2.2: Giới thiệu một số lệnh cơ bản trên Matlab10 CHƯƠNG 3: GIỚI THIỆU SƠ LƯỢC VỀ CÁC CHỨC NĂNG CHÍNH CỦA PHẦN MỀM18 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ị…18 3.1.1: Symbolic toolbox18 3.1.2: Control system toolbox – Công cụ khảo sát, thiết kế hệ thống điều khiển21 3.1.3: Optimization toolbox – Công cụ tính toán tìm tối ưu21 3.1.4: Signal processing toolbox – Công cụ xử lý tín hiệu21 3.2: Giới thiệu về lập trình Matlab22 3.2.1: Sơ lược lập trình Matlab22 3.2.2: Lập trình Gui trong Matlab22 3.2.2.1: Mở phần mềm22 3.2.2.2: Các công cụ trong cửa sổ Gui23 3.2.2.3: Kéo tha các điều kiện24 3.2.2.4: Thay đổi các thuộc tính của các điều kiện25 3.2.2.5: Viết lệnh cho chương trình26 3.3: Khái quát về Simulink26 3.3.1: Khởi động Simulink26 3.3.2: Đặc điểm của Simulink26 3.3.3: Các thao tác cơ bản sử dụng trong Simulink26 3.4: Tín hiệu và các loại dữ liệu28 3.4.1: Làm việc với tín hiệu28 3.4.2: Làm việc với các loại số liệu28 3.5: Thư viện của Simulink29 3.5.1: Thư viện Sources29 3.5.2: Thư viện Sinks33 3.5.3: Thư viện Math35 3.5.4: Thư viện Constinous37 3.5.5: Thư viện Tables39 CHƯƠNG 4: MỘT SỐ VÍ DỤ MINH HỌA TÍNH NĂNG CỦA PHẦN MỀM41 Đồ án Tìm hiểu về phần mềm mô phỏng MATLAB & SIMULINK Đồ án Tìm hiểu về phần mềm mô phỏng MATLAB & SIMULINK Đồ án Tìm hiểu về phần mềm mô phỏng MATLAB & SIMULINK Đồ án Tìm hiểu về phần mềm mô phỏng MATLAB & SIMULINK Đồ án Tìm hiểu về phần mềm mô phỏng MATLAB & SIMULINK Đồ án Tìm hiểu về phần mềm mô phỏng MATLAB & SIMULINK Đồ án Tìm hiểu về phần mềm mô phỏng MATLAB & SIMULINK Đồ án Tìm hiểu về phần mềm mô phỏng MATLAB & SIMULINK Đồ án Tìm hiểu về phần mềm mô phỏng MATLAB & SIMULINK Đồ án Tìm hiểu về phần mềm mô phỏng MATLAB & SIMULINK Đồ án Tìm hiểu về phần mềm mô phỏng MATLAB & SIMULINK Đồ án Tìm hiểu về phần mềm mô phỏng MATLAB & SIMULINK Đồ án Tìm hiểu về phần mềm mô phỏng MATLAB & SIMULINK Đồ án Tìm hiểu về phần mềm mô phỏng MATLAB & SIMULINK Đồ án Tìm hiểu về phần mềm mô phỏng MATLAB & SIMULINK Đồ án Tìm hiểu về phần mềm mô phỏng MATLAB & SIMULINK Đồ án Tìm hiểu về phần mềm mô phỏng MATLAB & SIMULINK
Trang 1NHẬN XÉT CỦA GIÁO VIÊN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
……….
………
………
………
………
Trang 2LỜI MỞ ĐẦU
Thời đại 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, 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ữ đ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ý tín hiện số…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ác hệ thống điều khiển tự động trong miền tần số và miền thời gian 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.
Đối với một kỹ thuật viên 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ông cụ phần mềm mô phỏng MATLAB & SIMULINK là hết sức cần thiết.
Sau một thời gian thực hiện đề tài, mặc dù chúng em đã gặp nhiều khó khăn
nhưng với sự giúp đỡ của cô Th.S Lê Quốc Dũng và các thầy cô trong khoa CNTD cùng sự cố gắng nỗ lực của bản thân, đề tài “Tìm hiểu về phần mềm mô phỏng
MATLAB & SIMULINK” đã được hoàn thành đúng tiến độ.
Dù đã rất cố gắng và nỗ lực để thực hiện đề tài này, nhưng do kiến thức và thời gian có hạn nên không tránh khỏi những thiếu sót và hạn chế, vì vậy chúng em rất mong nhận được những ý kiến đóng góp của quý thầy cô cùng các bạn.
Sinh viên thực hiện
Nguyễn Minh Tiến
Trang 3MỤC LỤC
Trang 4CHƯƠNG I: TÌM HIỂU VỀ LỊCH SỬ HÌNH THÀNH VÀ PHÁT TRIỂN CỦA PHẦN
MỀM MATLAB & SIMULINK
1.1: Lịch sử hình thành và phát triển của Matlab & Simulink
Matlab là một môi trường tính toán số và lập trình, được thiết kế bởi công ty MathWorks Matlab cho phép tính toán số với ma trận, vẽ đồ thị hàm số hay biểu đồ thông tin, thực hiện thuật toán, tạo ra các giao diện người dùng và liên kết với những chương trình máy tính viết trên ngôn ngữ lập trình khác.
Với thư viện Toolbox, matlab cho phép mô phỏng tính toán, thực nghiệm nhiều mô hình trong thực tế và kỹ thuật.
1.1.1: Lịch sử hình thành
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 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à
Trang 5Nă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.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.2: Phạm vi ứng dụng của Matlab
Matlab là một phần mềm ứng dụng chạy trong môi trường Windows, 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 Có thể nói Matlab là ngôn ngữ của kỹ thuật, đang được các nhà khoa học, các cán bộ kỹ thuật, giảng viên và các sinh viên các trường đại học kỹ thuật ứng dụng 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.
- Đồ họa 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.
- Thiết kế các hệ thống điều khiển trong thời gian thực.
Matlab cung cấp một họ các phương pháp theo hướng chuyên dụng hóa được gọi
là các toolbox (hộp công cụ) Các toolbox cho phép người dùng sử dụng học và áp dụng
Trang 6cá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ạng nơron, mô phỏng
Hệ thống Matlab gồm 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, từ các ứng dụng đơn giản đến các ứng dụng phức tạp.
- Môi trường làm việc của Matlab: Đây là một bộ công cụ và phương tiện mà bạn sử dụng với các 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 wordspace cũng như xuất nhập dữ liệu Nó 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ý đồ họa: Đây là một hệ thống đồ họa của Matlab Nó bao gồm các lệnh cao cấp cho trực quan hóa dữ liệu hai chiều và ba chiều, xử lý ảnh, ảnh động nó cũng cung cấp các lệnh cấp thấp cho phép bạn tùy biến giao diện đồ họa cũng như đi xây dựng một giao diện đồ họa hoàn chỉnh cho ứng dụng Matlab của mình.
- Thư viện toán học Matlab: Đây là một 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, trừ, nhân, chia, sin, cos, số 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 là một chương trình đi kèm 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 trình đồ họa sử dụng chuột để thao tác cho phép mô hình hóa 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ệ thống gián đoạn theo thời gian, hệ thống đa biến
Đối với các hệ thống phức tạp, phi tuyến, ngẫu nhiên, các tham số biến đổi theo thời gian, phương pháp giải tích truyền thống không thể cho ta lời giải chính xác được Lúc này phương pháp mô hình hóa và mô phỏng pháp huy thế mạnh của mình và trong nhiều trường hợp nó là giải pháp duy nhất để nghiên cứu các hệ thống phức tạp.
Trang 7CHƯƠNG II: GIỚI THIỆU CƠ BẢN VỀ MATLAB
2.1: Làm việc với Matlab
2.1.1: Chương trình trên Matlab
Matlab có thể làm việc như một siêu máy tính cầm tay nếu chúng ta cần matlab thực hiện một số lệnh bằng cách đánh trực tiếp trên cửa số lệnh.
Chương trình trong Matlab có thể là: Kịch bản (Scripts) hoặc các hàm (Funcitions)
- Scripts: Dãy lệnh ghi trong một file được đưa vào cửa sổ lệnh và được thực hiện tức thì.
- Funcitions: Các môđun chương trình tiếp nhận dữ liệu vào và trả lại kết quả (VD: hàm sin nhận đầu vào là x và trả lại giá trị sin(x)).
Chương trình có thể được soạn thảo bằng bất kỳ bộ soạn thảo văn bản nào (tuy nhiên Matlab cũng cung cấp bộ soạn thảo chương trình của riêng mình).
2.1.2: Cơ cấu làm việc của matlab
Matlab là ngôn ngữ thông dịch (Interpreted language):
- Các câu lệnh được đánh trực tiếp trong cửa sổ lệnh và được thực hiện tức thì.
- Các biến được phân bố bộ nhớ ngay lần đầu tiên chúng được khởi tạo.
- Muốn thực hiện lại một lệnh chỉ cần gõ lại lệnh đó.
Tất cả các biến được sử dụng trong cửa sổ lệnh được cất dữ vào vùng nhớ làm việc Base Wordspace:
- Có thể gán giá trị mới cho các biến nếu cần thiết.
- Có thể chọn để xóa bỏ một số biến khỏi vùng nhớ làm việc.
- Vùng nhớ làm việc có thể cất dữ một file dữ liệu.
- Phần mở rộng của file dữ liệu là mat (VD: mydata.mat).
- File mở rộng của nhị phân.
- Các file dữ liệu đuôi mat có thể nạp trở lại vào vùng nhớ làm việc.
2.1.3: Câu lệnh, chỉ thị và biến
Tại dấu nhắc của cửa sổ lệnh, người sử dụng có thể gỡ:
- Lệnh (Command):
+ Save mydata (cất giữ vùng nhớ làm việc vào mydata.mat)
+ Whos (hiển thị danh mục các biến trong vùng nhớ làm việc).
Trang 82.1.4: Làm việc trong chế độ hội thoại
Khi sử dụng chế độ hội thoại, người sử dụng đánh trực tiếp câu lệnh vào sau dấu nhắc của Matlab Khi ấn nút Enter, dòng lệnh sẽ được thực hiện.
VD:
>>x=1;
>>4*atan(x)
Sau đó ấn Enter, kết quả sẽ được đưa ra màn hình dưới dạng ans=4.1416
Dấu “;” ở cuối dòng lệnh ngăn Matlab không đưa ra kết quả của phép thao tác.
2.1.5: Chương trình trên Matlab
Một cách làm việc khác với Matlab là ta có thể viết chương trình thực hiện các tính toán Để làm việc này ta cần phải soạn thảo một file văn bản bằng bất kỳ bộ soạn thảo văn bản nào, trong đó có bộ soạn thảo của Matlab File văn bản chứa các câu lệnh được đặt tên với các đuôi là *m, nếu không Matlab sẽ không chấp nhận chương trình Chương trình soạn thảo sẽ được cất giấu trong thư mục làm việc hiện thời của Matlab.
2.2: Giới thiệu một số lệnh cơ bản trên Matlab
2.2.1: Lệnh ANS
a) Công dụng: Là biến chứa kết quả mặc định.
b) Giải thích: Khi thực hiện một lệnh nào đó mà chưa có biến chứa kết quả thì Matlab lấy biến Ans làm biến chứa kết quả đó.
Trang 9c: Chứa thông báo hệ điều hành của máy.
m: Số phần tử của ma trận lớn nhất mà máy có thể làm việc được với Matlab.
cd: Cho biết thư mục hiện hành.
diretory: Đường dẫn đến thư mục muốn làm việc.
cd : Chuyển đến thư mục cấp cao hơn một bậc.
clear: Xóa tất cả các biến khỏi vùng làm việc.
clear name: Xóa tất cả các biến hay hàm được chỉ ra trong name.
clear functions: Xóa tất cả các hàm ra khỏi bộ nhớ phụ.
clear variables: Xóa tất cả các biến ra khỏi bộ nhớ.
clear mex: Xóa tất cả các tập tin mex ra khỏi bộ nhớ.
clear global: Xóa tất cả các biến chung.
Trang 10clear all: Xóa tất cả các biến, hàm và các tập tin mex khỏi bộ nhớ Lệnh này làm cho bộ nhớ trống hoàn toàn.
Filename: Tên tập tin cần xóa.
n: Biến chứa đối tượng đồ họa cần xóa Nếu đối tượng là một cửa sổ sẽ đóng lại và bị xóa.
2.2.9: Lệnh DEMO
a) Công dụng: Chạy chương trình mặc định của Matlab.
b) Cú pháp: demo
c) Giải thích: Demo là chương trình có sẵn trong Matlab, chương trình này minh họa một
số chức năng của Matlab.
Trang 11Dir: Liệt kê các tập tin và thư mục có trong thư mục hiện hành.
Dir name: Đường dẫn đến thư mục cần liệt kê
Trang 12Help topic
c) Giải thích:
Help: Hiển thị vắn tắt các mục hướng dẫn.
topic: Tên lệnh cần được hướng dẫn.
Load: Nạp file matlab.mat.
Load filename: Nạp file filename.mat.
Load filename.extension: Nạp file filename.extension.
Tập tin này phải là tập tin dạng ma trận có nghĩa là số cột của hàng dưới bằng số cột của hàng trên Kết quả ta được một ma trận có số cột và số hàng chính là số cột và hàng của tập tin văn bản trên.
2.2.19: Lệnh LOOKFOR
a) Công dụng: Hiển thị tất cả các lệnh có liên quan đến topic.
b) Cú pháp: look for topic
c) Giải thích: topic là tên lệnh cần được hướng dẫn.
Trang 13Lệnh pack giải phóng không gian bộ nhớ cần thiết, bằng cách nén thông tin trong vùng nhớ xuống cực tiểu Vì Matlab quản lý bộ nhớ bằng phương pháp xếp chồng nên các đoạn chương trình Matlab có thể làm cho vùng nhớ bị phân mảnh Do đó sẽ có nhiều vùng nhớ còn trống nhưng không đủ để chứa các biến lớn mới.
Lệnh pack sẽ thực hiện:
- Lưu tất cả các biến lên đĩa trong các tập tin tạm thời là pack.tmp.
- Xóa tất cả các biến và hàm có trong bộ nhớ.
- Lấy lại các biến từ tập tin pack.tmp.
- Xóa tập tin tạm thời pack.tmp.
Kết quả là trong vùng nhớ các biến được gộp lại hoặc nén lại tối đa nên không bị lãng phí bộ nhớ.
Pack.filename cho phép chọn tên tập tin tạm thời để chứa các biến Nếu không chỉ
ra tên tập tin tạm thời thì Matlab tự lấy tên tập tin đó là pack.tmp.
Nếu đã dùng lệnh pack mà máy vẫn còn báo thiếu bộ nhớ thì bắt buộc phải xóa bớt các biến trong vùng nhớ đi.
Trang 14path: Liệt kê các đường dẫn đang có.
p: Biến trong đường đẫn.
path(p): Đặt đường dẫn mới.
- d là tên vector có 2 phần tử, phần tử thứ nhất là số dòng, phần tử thứ hai là số cột.
- m,n : Biến m chứa số dòng, biến n chứa số cột.
2.2.24: Lệnh TYPE
a) Công dụng: Hiển thị nội dung của tập tin.
b) Cú pháp: type filename
c) Giải thích:
- filename: Tên file cần hiển thị nội dung.
- Lệnh này trình tập tin được chỉ ra.
what: Liệt kê các tập tin m, mat, mex trong thư mục hiện hành.
Dirname: Tên thư mục cần liệt kê.
Trang 15who: Liệt kê tất cả các tên biến đang tồn tại trong bộ nhớ.
whos: Liệt kê tên biến, kích thước, số phần tử và xét các phần tử ảo có khác 0 không whos global và who global: Liệt kệ các biến trong vùng làm việc chung.
Trang 16CHƯƠNG 3: GIỚI THIỆU SƠ LƯỢC VỀ CÁC CHỨC NĂNG CHÍNH CỦA PHẦN
MỀM
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
Để 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ì
VD: Tính đạo hàm của y = sinx 3
>>x = sym(‘x’) % khai báo x là kiểu symbolic
Trang 170 1 2 3 4 5 6 -2
-1.5
-1 -0.5
0 0.5 1 1.5 2
x
x = x, y = sin(x3)
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
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]
VD: Tính
>>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]
c) Giải hệ phương trình bằng hàm solve
Trang 185 -0.5
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…).
Trang 193.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 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.
Trang 20- 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)
3.2.2: Lập trình Gui trong Matlab
- Blank Gui (Default): Hộp thoại gui trống không có diều khiển uicontrols nào cả.
- Gui With Uicontrols: Hộp thoại gui với vài uicontrols như button , chương trình có thể chạy ngay.
- Gui With Axes and Menu: Hộp thoại với một uicontrols axes và button, các menu để hiển thị đồ thị.
- Modal Question Dialog: Hộp thoại đặt câu hỏi yes hoặc no.
- Open Existing Gui: Mở hộp thoại project có sẵn.
Trang 213.2.2.2: Các công cụ trong cửa sổ Gui
Để tạo project ta có thể chọn Blank Gui (Default) và nó sẽ hiện ra cửa sổ
Hình 3.4: Cửa sổ công cụ trong Gui
Giao diện này rất giống với những chương trình lập trình giao diện như Visual Basic, Visual C++…Di chuyển chuột qua các biểu tượng ở bên trái sẽ thấy tên của các điều khiển Một vài tên điều khiển hay dùng là:
- Push Button: Giống như nút command button là các nút bấm như nút ok hay cancel mà
ta vẫn bấm.
- Slider: Thanh trượt và có một con trượt chạy trên đó.
- Radio Button: Nút để lựa chọn.
Ngoài ra còn có các nút điều khiển khác như: Check Box, Edit Text, StaticText, Pop-up Menu, List Box, Axes, Panel, Button Grould, Ativex Control, Toggle Button…
Còn trên thanh menu thì quan trọng nhất là menu tool có:
Run (Ctrl+T): Để chạy chương trình mà ta đã viết, có lỗi sẽ thông báo.
Align Obiejct: Dùng để làm cho các điều khiển sắp xếp gọn đẹp theo ý mình như cùng căn
lề trái…
Grid and Rulers: Dùng để cấu hình về lưới trong giao diện vì nó coi giao diện như một ma trận các ô vuông nhỏ, ta sẽ thay đổi giá trị này để cho các điều khiển có thể thả ở đâu tùy ý.
Menu Editor: Trình bày để tạo menu cho điều khiển.
Tab Order Editor: Sắp xếp tab oder là thứ tự khi ta nhấn phím tab.
Gui Options: Lựa chọn cho giao diện Gui.
Trang 223.2.2.3: Kéo tha các điều kiện
Ta sẽ kéo vào trong giao diện 2 edit box, 1 static box và 1 push botton thì sẽ được:
Hình 3.5: Kéo, thả các điều kiện
Chương trình có 2 chức năng khi nhấn vào nút bấm thì kết quả của phép cộng giữa 2 số được gõ vào 2 ô sẽ hiện lên trong Static Text.
Trang 233.2.2.4: Thay đổi các thuộc tính của các điều kiện
Nháy đúp vào Edit Text bên trái để xuất hiện cửa sổ các thuộc tính của điều kiện.
Có thể sắp xếp theo chức năng hoặc theo thứ tự từ A – Z của tên thuộc tính bằng nút hiện
ở góc bên trái.
Hình 3.6: Cửa sổ các thuộc tính điều kiện
Thuộc tính quan trọng của Edit Box bao gồm:
- Tag: Là thuộc tính để đặt tên điều khiển, dùng tên này có thể thao tác đến các thuộc tính của đối tượng.
- String là xâu ký tự hiện lên Edit Box.
Trang 243.2.2.5: Viết lệnh cho chương trình
Chương trình sẽ có tác dụng khi ta nhấn vào nút Push Botton sẽ hiện lên kết quả ở Static Box Vì thế nên sẽ phải viết hàm này mà khi ta nhấn vào nút Push Box sẽ gọi chính
là hàm Callback Điều kiện nào cũng có hàm Callback, nó tương tự như hàm ngắt trong vi điều khiển.
3.3: Khái quát về Simulink
3.3.1: Khởi động Simulink
Vào Matlab có 2 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 trong menu của Matlab.
Cách 2: Gõ lệnh “Simulink” sau đó ấn enter.
3.3.2: Đặc điểm của Simulink
Simulink phân biệt (không phụ thuộc vào thư viện con) hai loại khối chức năng: khối ảo (virtual) và khối thực (notvirtual) 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 tích phân Integrator hay khối hàm truyền đạt Tranfer Fcn của thư viện Continuous, khối Sum hay khối Product của thư viện 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 đồ họa của mô hình Simulink Đó chính là các khối như Mux, Demucx hay Enable thuộc thư viện con Signal và System Một số chức năng mang đặc tính ảo hay thực tủy thuộc vào vị trí hay cách sử dụng chúng trong mô hình Simulink Các mô hình đó được xếp vào loại ảo
có điều kiện.
3.3.3: Các thao tác cơ bản sử dụng trong Simulink
Simulink gần như chỉ có thể sử dụng được nhờ chuột Bằng cách nháy kép chuột trái vào một trong số các thư viện con thuộc thư viện con đó Hoặc cũng có thể thu được kết quả tương tự bằng cách nháy kép chuột trái của thư viện con, nằm ở phần bên phải của cửa sổ truy cập Library Browser Từ các khối chứa trong thư viện con ta có thể xây dựng được lưu đồ tín hiệu mong muốn Để tạo định dạng (Format) và soạn thảo ta có các khả năng sau đây:
Trang 25- Sao chép (coppy): Bằng cách gắp và thả “drag & drop” nhờ phím chuột phải ta có thể ghép một khối từ thu viện (cũng có thể từ một thư viện khác).
- Di chuyển (move): Ta có thể dễ dàng di chuyển một khối trong phạm vi cửa sổ 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 lựa chọn nhiều khối cùng một lúc.
- Xóa (Delete): 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/Undu hoặc tổ hợp phím Ctrl+Z ta có thể khôi phục lại động tác xóa vừa thực hiện.
- Hệ thống con: Bằng cách đánh dấu lại nhiều khối có quan hệ chức năng, sau đó gom chúng lại thông qua menu Edit/Creat 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 chuyển mũi tên của chuột đến đầu vào cần nối Sau khi thả chuột khỏi đường nối tự động được tạo ra.
Có thể rẽ nhánh tín hiệu bằng cách nháy chuột phải vào một đường nối có sẵn, 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 các đường nối Khi nháy chọn bằng chuột trái ta có thể di chuyển tùy ý các điểm góc hoặc di chuyển song song đoạn thẳng 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 đườ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 (của cả đường dẫn tới đường nối đó) sẽ mở ra Tại đây ta có các lệnh cho phép cắt bỏ, coppy hoặc xóa đường nối.
- Hộp đối thoại (Dialog Box) về đặc tính của khối (Block Properties): Hoặc đi theo menu của cửa sổ mô phỏng Edit/Block Properties của cửa sổ định dạng khối, ta sẽ thu được hộp 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 thoại về đặc tính của tín hiệu (Signal Properties): Có thể tới được hộp thoại như Signal Properties của một đường nối hoặc bằng cách nháy chuột đánh dấu trên cửa sổ
mô phỏng, sau đó đi theo menu Edit/Signal Properties hoặc chọn mục Signal Properties
từ cửa sổ định dạng Trong hộp thoại ta có thể đặt tên cho đường nối hoặc nhập một đoạn văn bản mô tả Tuy nhiên, để đặt tên cho đường nối cũng còn có cách khác đơn giản hơn: Nháy kép chuột trái vào đường nối ta sẽ tự động tới được chê độ nhập văn bản.
Trang 263.4: Tín hiệu và các loại dữ liệu
3.4.1: Làm việc với tín hiệu
Đối với Simulink, khái niệm tín hiệu nhằm chỉ vào dữ liệu xuất hiện ở đầu ra của các khối chức năng trong quá trình mô phỏng: Các dữ liệu đó chạy dọc theo đường nối từ đầu ra của khối chức năng này tới đầu ra của khối chức năng này tới đầu vào của các khối chức năng khác mà không tốn thời gian Tín hiệu trong khuôn khổ Matlab có những đặc điểm riêng do người sử dụng xác định.
Trong Simulink ta phân biệt loại kích cỡ tín hiệu:
- Tín hiệu đơn (Scalar).
- 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 được xác định theo hai chiều [m,n] Cả vector hàng [1n] và vector cột [m1] cũng thuộc về phạm trù ma trận tín hiệu.
Khi tạo một cấu trúc Simunlink, các khối ảo sẽ tạo nên các đường tín hiệu ảo 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 sẽ dễ dàng quản lý hơn Tín hiệu ảo có thể coi là sự tập hợp của nhiều tín hiệu ảo, không ảo hay hỗn hợp của cả 2 loại Trong quá trình mô phỏng, Simulink được sử dụng một thủ tục tên Signal Properties để nhận biết những tín hiệu nào được ghép vào tín hiệu ảo Diễn đạt một cách khác đó là những khối chức năng nào được ghép ở đầu cuối của tín hiệu.
3.4.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 tín hiệu nhất định và nó quyết định đến dung lượng bộ nhớ dành cho tín hiệu Simulink cũng hỗ trợ tất cả các loại số liệu của Matlab:
- Doubel: Chính xác cao, dấu phẩy động.
- Signal: Chính xác vừa, dấu phẩy động.
- Boolean: 0 hoặc 1, logic.
Loại số mặc định sẵn của Simulink là doubel Trong quá trình mô phỏng Simulink
sẽ kiểm tra xem việc đảo giữa các số liệu có đúng hay không nhằm loại trừ 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êtk 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à các tốc độ tính toán phụ thuộc vào loại số liệu được ta chọn.
Trang 27Hình 3.7: Cửa sổ làm việc của Simulink
3.5: Thư viện của Simulink
3.5.1: Thư viện Sources
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ỡ [n1] hay [1n] dưới dạng ma trận.
Hình 3.8: Khối Constant