66
Chương I GIỚI THIỆU SƠ LƯỢC VỀ MATLAB I. TÌM HIỂU VỀ CÔNG TY MATHWORKS: 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ìnhngô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. II. GIỚI THIỆU CƠ SỞ MATLAB: II.1 Giới thiệu chương trình 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 có được là do hai từ MATRIX LABORATORY ghép lại. Chương trình này hiện đang được sử dụng nhiều trong 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ý

Simulink Doan New

Embed Size (px)

Citation preview

Page 1: Simulink Doan New

Chương IGIỚI THIỆU SƠ LƯỢC VỀ MATLAB

I. TÌM HIỂU VỀ CÔNG TY MATHWORKS: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ìnhngô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.

II. GIỚI THIỆU CƠ SỞ MATLAB:II.1 Giới thiệu chương trình 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 có được là do hai từ MATRIX và LABORATORY ghép lại. Chương trình này hiện đang được sử dụng nhiều trong 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, vv…

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ở trộng bởi các phần TOOL BOX ( 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 TOOL BOX để trợ giúp cho việc khảo sát những vấn đề có liên quan trên. TOOL BOX 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 và tiện lợi.

MATLAB 3.5 trở xuống hoạt động trong môi trường MS-DOS.MATLAB 4.0, 4.2, 5.1, 5.2,… hoạt động trong môi trường WINDOW.

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ú ý 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.

Page 2: Simulink Doan New

Hình 1.1 khởi động MATLAB từ môi trường Window

Hình 1.2 Giao diện biểu tượng của Matlab (version 7.5)Việc khởi động MATLAB trên mỗi hệ thống khác nhau. Trong môi trường

WINDOS hay MACINTOSH, chương trình thường được 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, MS-DOS, việc khởi động thông qua dòng lệnh:

:\ MATLAB

Page 3: Simulink Doan New

Giao diện của MATLAB sử dụng hai cửa sổ: cửa sổ lệnh (command window) và cửa sổ đồ thị (Figure window).

Hình 1.3 Giao diện cửa sổ lệnh của MATLAB khi khởi động xong- cửa sổ lệnh dùng để đưa lệnh và dữ liệu vào và đồng thời in ra kết quả.- Cửa sổ đồ thị trợ giúp cho việc truy xuất đồ họa để thể hiện những lệnh hay

kết quả đầu ra dưới dạng đồ họa.

Page 4: Simulink Doan New

Việc ngắt chương trình đang thực hiện hoặc các chương trình không đúng theo yêu cầu đều được thông qua phím nóng Ctrl + C.

Để thoát khỏi chương trình MATLAB ta có thể dùng lệnh>> exit hoặc >> quit ( : Nhấn ENTER)

Hoặc từ menu thả xuống hoặc nhấn vào trên góc phải màn hình của cửa sổ chính MATLAB.

MATLAB được điều khiển bằng những câu lệnh được kết hợp theo một trật tự nhất định và gọi đó là chương trình. Chương trình chứa nhiều câu lệnh và những hàm chức năng để giải những bài toán lớn hơn.

Các câu lệnh trong MATLAB rất mạnh và có những vấn đề chỉ cần một câu lệnh là đủ giải quyết bài toán. Mô phỏng trong MATLAB sẽ cho ta hình ảnh tọa độ không gian hai chiều (2D) và ba chiều (3D).II.2 Các phím chức năng đặc biệt (chuyên dùng) và các lệnh dùng cho hệ thống:Ctrl + P hoặc Gọi lại lệnh vừa thực hiện trước đó từ cửa sổ lệnh

của MATLABCtrl +n hoặc Gọi lại lệnh đã đánh vào trước đóCtrl +f hoặc Chuyển con trỏ sang phải một ký tự Ctrl + b hoặc Chuyển con trỏ sang trái một ký tựCtrl + l hoặc Ctrl + Chuyển con trỏ sang phải một từ

Page 5: Simulink Doan New

Ctrl +r hoặc Ctrl + Chuyển con trỏ sang trái một từCtrl + a hoặc HOME Chuyển con trỏ về đầu dòngCtrl + k Xóa cho đến dòng cuối cùng

Các lệnh hệ thống:Các lệnh trên cũng như sau này được viết từ cửa sổ lệnh của MATLABCasesen off Bỏ thuộc tính phân biệt chữ hoa và chữ thườngCasesen on Sử dụng thuộc tính chữ hoa và chữ thường.Clc Xóa cửa sổ dòng lệnhClf Xóa cửa sổ đồ họa Computer Lệnh in ra một xâu ký tự cho biệt loại máy tínhExit hoặc quit Thoát khỏi chương trình MATLABCtrl + C Dừng chương trình khi nó rơi vào tình trạng lặp không

kết thúcHelp Xem trợ giúpInput Nhập dữ liệu từ bàn phímLoad Tải các biến đã lưu trong một file đưa vào vùng làm

việcPause Ngừng tạm thời chương trìnhSave Lưu các biến vào file có tên là matlab.matDemo Lệnh cho phép xem các chương trình mẫu (minh họa

khả năng làm việc của MATLAB)Edit Lệnh để vào cửa sổ soạn thảo ( dùng để viết một

chương trình)II.3 Biến trong MATLAB:

Tên biến trong MATLAB có thể dài 19 ký tự bao gồm các chữ cái cùng các chữ số cũng như một vài ký tự đặc biệt khác nhưng luôn phải bắt đầu bằng những chữ cái. Tên các hàm đã được đặt cũng có thể được sử dụng làm tên của biến với điều kiện hàm này sẽ không được sử dụng trong suốt quá trình tồn tại của biến cho đến khi có lệnh clear xóa các biến trong bộ nhớ hay clear + tên của biến.

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 hoa. Các lệnh trong 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 % bỏ thuộc tính chữ hoa và chữ thường.Việc kiểm tra sự tồn tại của các biến trong bộ nhớ thông qua bộ lệnh.Who Hiển thị danh sách các biến đã được định nghĩa Whos Hiển thị danh sách các biến đã được định nghĩa cùng kích

thước của chúng và thông báo chúng có phải là số phức không.

Who global Hiển thị các biến cục bộExist(namesrt) Hiển thị các biến phụ thuộc vào cách các biến được định

nghĩa trong chuỗi namestr. Hàm sẽ trả lại giá trị sau:Nếu namestr là tên của một biến

Page 6: Simulink Doan New

Nếu namestr là tên của một file.mNếu namestr là tên của một Mex fileNếu namestr là tên của hàm dịch bởi SimulinkNếu namestr là tên của hàm được định nghĩa trước bởi MATLAB

Độ lớn của biếnĐộ lớn hay chiều dài của biến vector cũng như matran có thể được xác định

thông qua một số hàm có sẵn của MatlabSize (A) cho ra một vector chứa kích thước matran A. phần tử đầu tiên

của vector là số hàng của matran, phần tử thứ hai là số cột của matran.

[m n] = size(A) Trả giá trị độ lớn của matran A vào vector xác định bởi hai biến m và n.

Size (A,p) Đưa ra số hàng của matran A nếu p=1 và số cột của A nếu p≥2

Size (x) Đưa ra vector mô tả độ lớn của vector x. Nếu x là vector hàng m phần tử thì giá trị đầu vector là m và giá trị thứ hai là l. Trường hợp x là vector cột n giá trị thứ nhất sẽ là l và thứ hai là n.

Lengh(A) Trả giá trị chiểu dài của matran A. Giá trị thu được sẽ là m nếu m>n và ngược lại sẽ là n nếu n>m.

II.4. Các lệnh thông dụng trong đồ họa matlab:Matlab rất mạnh trong việc xử lý đồ họa, cho hình ảnh minh họa một cách

sinh động và trực quan trong không gian 2D và 3D mà không cần đến nhiều dòng lệnh.Plot (x,y) Vẽ đồ thị trong tọa độ (x,y)Plot (x,y,z) Vẽ đồ thị theo tọa độ (x,y,z)Title Đưa các tiêu đề vào trong hình vẽ Xlabel Đưa các nhãn theo chiều x của đồ thịYlabel Đưa các nhãn theo chiều y của đồ thịZlabel Đưa các nhãn theo chiều z của đồ thịGrid Hiển thị lưới trên đồ thịPlot (y) Vẽ đồ thị theo y bỏ qua các chỉ số theo y.

Nếu y là số phức (complex) thì đồ thị được vẽ là phần thực và phần ảo của y

Plot (x,y,S) Vẽ theo x,y ; S: là các chỉ số về màu sắc và kiểu đường theo biến str của các đường trên đồ thị được liệt kê ở dưới.

Plot (x,y,z…,S) Vẽ theo x,y,z…;S: là các chỉ số về màu sắc và kiểu đường theo biến Str của các đường được liệt kê ở dưới.

Polar (x,y) Vẽ đồ thị theo hệ trục tọa độ cựcBar Vẽ đồ thị dạng cột

Các chỉ số về màu sắc:

Page 7: Simulink Doan New

Giá trị của biến str trong hàm plot về màu sắc hay kiểu dáng của đường được liệt kê theo bảng dưới đây.

Ví dụ về đồ họa bề mặt (3D)

Ngoài các lệnh co bản trên còn có các lệnh liên quan đến vẽ đồ thị vector, vẽ đồ thị theo hệ trục loga, các lệnh liên quan đến đồ họa bề mặt( 3D), các lệnh liên quan đến việc kiểm soát đồ thị…II.5 . Các dạng file sử dụng trong MATLAB:

II.5.1. Script file (M-file):Các chương trình do người sử dụng soạn thảo ra được lưu trữ trong các file

có phần mở rộng là *.m. File dạng này còn được gọi là Script file. File được dưới dạng ký tự ASCII và có thể sử dụng trong các chương trình soạn thảo nói chung để tạo nó.

Ta có thể chạy các file giống như các lệnh, thủ tục của MATLAB. Tức là gõ tên file không cần có phần mở rộng sau đó Enter. Khi sử dụng nội dung của file không được hiển thị trên màn hình.

Trong simulink sơ đồ mô phỏng cũng được lưu dưới dạng *.m (trong các version 5.x trở lên thì được lưu dưới dạng *.mdl) nhưng được gọi là S-function.

Page 8: Simulink Doan New

Một số lệnh hệ thống tương tác với *.m files thường gặpEcho lệnh cho phép xem các lệnh có trong *.m files khi chúng được thực hiện.Type lệnh cho phép xem nội dung, ngầm định file ở dạng M-fileWhat lệnh này cho biết tất cả các file M- file và Mat – file có trong vùng làm việc hiện hành hay không.Một ví dụ về Scrip file:

II.5.2. Files dữ liệu:Các ma trận biểu diễn thông tin được lưu trữ trong các files dữ liệu. Matlab

phân biệt hai loại file dữ liệu khác nhau Mat – files và ASCII files.Mat- files lưu trữ các dữ liệu ở dạng số nhị phân, còn các ASCII – files lưu các dữ liệu dưới dạng ký tự. Mat – file thích hợp cho dữ liệu được tạo ra hoặc được sử dụng bởi chương trình MATLAB. ASCII- files được sử dụng khi các dữ liệu được chia sẻ (export – import) với các chương trình của MATLAB

ASCII – files có thể được tạo ra bởi các chương trình soạn thảo nói chung hay các chương trình soạn thảo bằng ngôn ngữ máy. Nó có thể được tạo ra bởi chương trình MATLAB bằng cách sử dụng câu lệnh sau đây:

>>save<tên file>.dat<tên ma trận>./ascii;Nhìn chung Matlab rất mạnh trong việc mô phỏng cho các bài toán kỹ thuật. Phần mềm Matlab hiện nay đã trở nên thông dụng và là công cụ đắc lực cho việc giảng dạy, ứng dụng trong nghiên cứu ở các trường đại học.

Page 9: Simulink Doan New

CHƯƠNG IICÁCH KẾT NỐI VÀ CÁC THUỘC TÍNH CỦA BLOCKS

I. KHÁI NIỆM VỀ SIMULINK:Simulink được tích hợp vào matlab( vào khoảng những năm 1990) như một công cụ để mô phỏng hệ thống, giúp người sử dụng phân tích và tổng hợp hệ thống một cách trực quan. Trong Simulink, hệ thống không được mô tả dưới dạng dòng lệnh theo kiểu truyền thống mà ở dưới dạng sơ đồ khối. Với dạng sơ đồ khối này, ta có thể quan sát các đáp ứng thời gian của hệ thống với nhiều tín hiệu vào khác nhau như: tín hiệu bậc thang, tín hiệu since, xung chữ nhật, tín hiệu ngẫu nhiên … bằng cách thực hiện mô phỏng. Kết quả mô phỏng có thể được xem theo thời gian thực trên các Osciloscope trong môi trường simulink, hay trong môi trường Matlab.Simulink hoàn toàn tương thích với Matlab, nhưng nó là một dao diện đồ họa. Vì vậy các hàm trong Matlab đều có thể truy cập được từ simulink, ngay cả các hàm do người sử dụng tạo ra. Ngược lại, các kết quả tìm được trong simulink đều có thể được sử dụng và khai thác trong môi trường Matlab.II. TÌM HIỂU VỀ SIMULINK VÀ CÁC BLOCKS LIBRARY:

II.1 CÁCH KHỞI TẠO SIMULINK VÀ VẼ SƠ ĐỒ MÔ PHỎNG:II.1.1 Khởi tạo SIMULINK:

Để vào Simulink trong Matlab, ta từ cửa sổ lệnh của Matlab đánh dòng 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 của 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ể.

Từ cửa sổ lệnh ta thấy được các khối thư viện: Khối nguồn (Sources), khối đầu đo (Sinks), khối phi tuyến (nonlinear), khối tuyến tính (linear), khối đầu nối (Connections)…

Page 10: Simulink Doan New

Thư viện của simulink 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…

Để vẽ sơ đồ mô phỏng cũng như xây dựng mô hình như thế nào. Việc xây dựng mô hình và các thao tác để xây dựng mô hình. Ta thử thiết kế mô phỏng ví dụ sau (Hình 2.7) để biết được việc vẽ và mô phỏng sơ đồ:

Để vẽ được mô hình này ta phải làm các thao tác sau:1. Từ cửa sổ Matlab đánh lệnh simulink. Cửa sổ thư viện các khối sẽ xuất

hiện 2. Từ cửa sổ thư viện ta nhấp chuột vào File/New/Model hoặc nhấn

Ctrl+N. Màn hình cửa sổ mới Untitled được mở ra (Hình 8). Từ đó ta bắt đầu xây dựng mô hình.

3. chọn các block ở các thư viện thích hợp:

Page 11: Simulink Doan New

Trong sơ đồ này chọn các khối từ các thư viện:+ Thư viện các nguồn tín hiệu (Source): chọn Sin wave.+ Thư viện các khối nhận tín hiệu (Sinks): chọn Scope.+ Thư viện các hàm tuyến tính (Linears): Chọn Integrator.+ Thư viện các đầu nối (Connections): Chọn Mux.

Để chọn một thư viện trong simulinks ta nhấp kép( Duoble Click) vào khối (icon) đó. Simulink sẽ hiện thị một cửa sổ chứa tất cả các khối thư viện đó. Trong thư viện nguồn tín hiệu chứa tất cả các khối đều là nguồn tín hiệu. Thư viện nguồn tín hiệu được trình bày như hình 2.9.

Người sử dụng thêm vào sơ đồ của mình bằng cách ghép khối đó khối đó từ thư viện hay từ mô hình bất kỳ nào khác. Trong ví dụ này ta chọn khối phát sóng hình sin. Đặt con trỏ chuột lên khối ấn và giữ phím trái chuột, kéo khối tới cửa sổ vẽ sơ đồ Untitled.

Page 12: Simulink Doan New

Khi di chuyển khối ta có thể thấy khối và tên của nó di chuyển cùng với con trỏ chuột.

Khi con trỏ chuột di chuyển tới nơi cần đặt khối trong sơ đồ bằng cách nhả phím chuột, một bản copy của khối đã nằm trong màn hình mô phỏng. Khi ta không vừa ý chỗ đặt ta có thể di chuyển khối bằng cách như trên.

Theo cách này chép những khối còn lại vào trong màn hình mô phỏng để tiếp tục xây dựng sơ đồ.

Muốn copy tiếp một khối Sin nữa trong một sơ đồ, ta làm bằng cách dữ phím Ctrl + phím trái chuột và di chuyển tới điểm cần đặt khối, lúc đó một khối đã được copy.

Với tất cả các khối đã ghép vào cửa sổ màn hình mô phỏng sẽ được hiển thị như trên hình 2.11.

Nếu xem kỹ từng khối, chúng ta thấy dấu > ở bên phải của khối là dấu đầu nối dành cho ngõ ra của tín hiệu, còn dấu > ở bên trái là dấu nối dành cho ngõ vào

Page 13: Simulink Doan New

của tín hiệu. Tín hiệu đi từ đầu ra của một khối tới đầu vào của khối khác theo một đường nối giữ hai khối. Khi một khối đã được nối thì biểu tượng > cũng mất đi.

Từ hình 1.11 ta thấy khối Mux có ba cổng vào nhưng ta cần có hai cổng nên ta phải thay đổi thông số của Mux, bằng cách nhấn kép lên khối Mux và thay đổi giá trị thông số “Number of input” là 2 (hình 2.13). Sau đó nhấn phím Apply và đóng cửa sổ Mux. Simulink sẽ điều chỉnh số cổng vào theo giá trị đã nhập.

Bây giờ ta có thể nối các khối lại với nhau. Đầu tiên hãy nối đầu ra khối phát Sin tín hiệu tới đầu vào trên khối Mux. Công việc thực hiện nối các khối, nói chung không theo thứ tự bắt buộc nào cả. Công việc thực hiện nối các sơ đồ cũng giống như các phần mềm thiết kế điện tử nào đó là đặt con trỏ chuột tại đầu nối

Page 14: Simulink Doan New

(ra) của khối này (con trỏ chuột biến thành dấu cộng), giữ con trỏ chuột và kéo tới đầu nối (vào) của khối khác. Trong quá trình nối, đường nối có hình nét đứt và con trỏ sẽ thay đổi thành dấu cộng kép khi lại gần khối cần nối.

Ta có thể nối bằng cách nhả phím chuột khi con trỏ ở bên trong khối. Khi đó đường nối sẽ nối vào cổng gần vị trí con trỏ nhất.

Page 15: Simulink Doan New

Phần lớn các đường nối đi từ đầu ra của một khối tới đầu vào của một khối khác. Có đường nối từ một đường nào đó đi tới đầu vào của một khối ta gọi đó là đường rẽ nhánh.

Việc vẽ đường rẽ nhánh có sự khác biệt so với đường nối chính. Để vẽ được rẽ nhánh ta thực hiện việc như sau:

1. Đặt con trỏ vào điểm cần vẽ đường rẽ nhánh.

2. Ấn phím Ctrl + giữ phím trái chuột, kéo con trỏ chuột tới đầu vào của khối.3. Nhả phím chuột, Simulink sẽ vẽ một đường từ điểm bắt đầu tới cổng vào

của khối.Tuy nhiên chúng ta cũng có thể nối dây từ đầu vào (đầu ra ) của một khối tới đường nối chính, mà không cần giữ phím Ctrl. Tuy nhiên việc nối dây sẽ bất tiện do mối nối hình thành không theo ý muốn hoặc không nối được.

Kết thúc việc nối dây, mô hình được hiển thị như trên hình 2.19.

Page 16: Simulink Doan New

Tuy nhiên trong quá trình nối dây có thể có những đường nối dây không như ý ta muốn, ta có thể bỏ đi hoặc sửa chữa lại bằng cách nhấp chuột vào đoạn dây đó, sau đó ta nhấn phím Delete hoặc di chuyển đoạn dây để sửa lại.

Bây giờ ta mở khối Scope để hiển thị tín hiệu ra và chạy mô phỏng 10s. Đầu tiên ta phải đặt thông số mô phỏng bằng lệnh Parameter trong menu Simulation. Đặt thời gian mô phỏng ( Stop time) là 10.0. Sau đó nhấn Apply để Simulink áp dụng các thông số do ta đặt và đóng hộp hội thoại bằng cách nhấn vào Close.

Page 17: Simulink Doan New

Chọn Start trong menu simulation để chạy mô phỏng và ta Double Click vào khối Scope để xem dạng sóng của tín hiệu.Muốn dừng mô phỏng thì chọn Stop hay Pause từ menu Simulation.

Để lưu sơ đồ này ta chọn Save từ menu File, nhập tên file. File này sẽ chứa mô hình đã vẽ.II.2 CÁC BLOCKS LIBRARY: Sau đây là các BLOCK LIBRARY của Simulink. Giúp cho có cách nhìn khái quát thư viện của simulink.

Page 18: Simulink Doan New
Page 19: Simulink Doan New
Page 20: Simulink Doan New

III. THUỘC TÍNH CỦA MỘT BLOCK VÀ CÁC PHƯƠNG PHÁP GIẢI BÀI TOÁN TRONG SIMULINK.

Như chúng ta đã biết phần tử để xây dựng nên một sơ đồ trong Simulink đó chính là Block. Một Block được quy định bởi hai thuộc tính: Văn phong và cấu trúc.

III.1. Thuộc tính về văn phong được mô tả trong bản Style:

Page 21: Simulink Doan New

Bao gồm : Drop Shadows: Bật tắt bóng của Block. Orientation : Định hướng chọn Block. Sự định hướng này có thể chọn phím

nóng Ctrl + R để xoay 900 hoặc Ctrl +F để xoay 1800 Title : Đặt tên cho Block.

Font : Định dạng font cho Block Color: màu nền, khung màu cho chữ Block.Thuộc tính về cấu trúc được mô tả trong hộp thoại của Block. Mở nó bằng cách Double Click chuột vào biểu tượng Block.Trong hộp hội thoại có những thành phần sau:

Tên khối (block name) Mô tả ngắn gọn về đặt điểm của khối (Brief explenation ) Những mảng thông số (parameter) nếu khối đó cần những thông số. Giải thích về đặc điểm của khối. (help button)

Những mô tả về những cấu trúc thuộc tính của các blocks trong simulink sẽ được mô tả trong chương III.

Page 22: Simulink Doan New

III.2. Các phương pháp giải bài toán mô phỏng trong Simulink:Trong simulink việc giải các bài toán mô phỏng có nhiều phương

pháp giải khác nhau. Sau đây là các cách giải được áp dụng trong simulink. Phương pháp Euler : là phương pháp cổ điển với biến là bước. phương pháp

này khả thi cho bất cứ hệ thống nào có những bước nhỏ. Do đó những bài toán có liên quan tới việc tính toán quá nhiều thì không bao giờ chính xác. Phương pháp này chỉ nên dùng cho việc kiểm tra kết quả.

Phương pháp Runge – Kutta 3 và Runge – Kutta 5: Đây là phương pháp thông dụng áp dụng cho mọi loại bài toán và nó có thể đạt chỉ tiêu chất lượng so với các phương pháp đặc biệt khác. Phương pháp này thích hợp cho hệ liên tục và hệ phi tuyến. Không làm việc với hệ có ma sát.

Phương pháp Adams: là phương pháp tự chỉnh áp dụng cho hệ không có ma sát.

Phương pháp Gear: là phương pháp tự chỉnh áp dụng cho hệ có ma sát. Phương pháp này không làm việc tốt khi hệ bị rối loạn do ngõ vào thay đổi liên tục.

Phương pháp Adams/ Gear: Chọn giữa hai phương pháp Adams và Gear. Phương pháp LinSin: là phương pháp dùng cho hệ tuyến tính. Nếu hệ mang

tính chất tuyến tính nhưng có vài khối phi tuyến thì hệ cũng làm việc tốt.

Page 23: Simulink Doan New

CHƯƠNG IIIBLOCKS LIBRARY

(Các khối chức năng trong thư viện Simulink)Những khối của simulink được mô tả trong chương này. Những mô tả trong

chương này là những mô tả ngắn gọn giúp ích cho việc tra cứu và sử dụng.Theo đó, tất cả các khối được xem như có thể làm việc trong môi trường đa

biến (có hướng) và vô hướng.III.1. SOURCES:

Đây là nhóm bao gồm các khối phát và nhận tín hiệu.

1. CLOCK:Cung cấp vector theo thời gianMở trong suốt thời gian mô phỏng, hiển thị thời gian liên tục mà 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 phép nối với To Workspace để chuyển vector thời gian vào trong Matlab.

2. CONSTANT: Phát ra giá trị là hằng sốNhững thông số : Giá trị constant.

3. SIN WAVE : Khối phát ra sóng có dạng sin.Những thông số: Giá trị biên độ, tần số (rad/s, hezt), pha, thời gian lấy mẫu ( chỉ áp dụng cho hệ gián đoạn).

Page 24: Simulink Doan New

4. Signal Generator:

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 (sawtooth)+sóng ngẫu nhiên( random)

Những thông số : Dạng sóng, giá trị biên độ (giá trị đỉnh), tần số, đơn vị tần số.Những giá trị này có thể thay đổi trong quá trình mô phỏng.5. Repeating sequency:

Lặp lại dạng sóng đã cho một cách tuần tựNhững thông số: vector thời gian và quan hệ giá trị của hàm vector (cùng chiều)

Page 25: Simulink Doan New

Khi mô phỏng thời gian rơi vào trong phạm vi của vector thời gian của ngõ ra thì nó được xem như From Workspace. Nói cách khác, hàm này là phần mở rộng bởi một dạng sóng cơ bản có chu kỳ lặp. Tín hiệu được phát ra với chu kỳ tuần hoàn có biên độ bằng vector.

6. Step input:Phát ra dạng sóng có tính chất hàm bước:

Những thông số: Thời gian chuyển đổi ( Steptime), giá trị đầu, giá trị cuối.Thời gian chuyển đổi có thể âm và điều kiện đầu có thể lớn hơn giá

trị cuối 1 đơn vị.7. Chirp Signal:

Page 26: Simulink Doan New

Phát ra một tín hiệu mà tần số tăng tuyến tính theo thời gian.Những thông số: Tần số ban đầu (Hz), thời gian đích cần đặt (s), tần số tại thời gian đích.Khối này được dùng trong việc phân tích phổ của hệ không tuyến tính. Tần số đặt ban đầu có thể lớn hơn tại tần số đặt cuối cùng. Nhưng sau thời gian đích đã đặt tần số bắt đầu tăng lên.

8. Pulse Genetator:Phát ra một chuỗi xung tuần tự với khoảng thời gian ổn định.Những thông số: Chu kỳ xung, độ rộng xung (hệ số chu kỳ), biên độ xung, thời gian bắt đầu phát xung.

9. Random Number:Bộ phát số ngẫu nhiên (ý theo nghĩa Zero) phân bố chuẩn ( Phân bố Gauss)

Những thông số: Giá trị trung bình, khoảng biến đổi, giá trị bắt đầu phát sinh (seed), thời gian lấy mẫu.Điểm khác biệt của khối này sự khác nhau của giá trị “seed”. Giá trị này có thể là một vector.Trong hệ rời rạc( phụ thuộc vào thời gian) liên quan đến vấn đề số nó thường được dùng hơn khối Band – Limited White Noise.

10. From Workspace:Đọc dữ liệu từ ma trận MATLAB.Những thông số: bảng ma trận.

Page 27: Simulink Doan New

Ma trận này phải chứa ít nhất hai cột, cột đầu tiên phải là vector thời gian (nó phải là giá trị tăng đơn điệu).Nếu giá trị ngõ ra cần thời gian tại giữa hai giá trị đã chọn thì ngõ ra phải là nội suy tuyến tính giữa hai giá trị thời gian yêu cầu hoặc trong ngoặc.

11. From File:Đọc dữ liệu từ một file:

Những thông số: Tên file.Dữ liệu phải giống như một ma trận. Mỗi cột phải phải có giá trị của

n ngõ vào tại thời điểm cho trước ( yếu tố đầu tiên của cột). Sau đó, hàng thứ nhất là một vector thời gian (so với From Workspace hàng và cột ngược nhau).

12. Digital Clock:Cung cấp thời gian cho hệ rời rạc.

Page 28: Simulink Doan New

Những thông số: thời gian mẫu.Khối này không giống khối clock.

13. Band – Limited White Noise:

Phát ra một dãy tín hiệu ồn trắng.Những thông số: phổ năng lượng, thời gian mẫu, giá trị “seed”.III.2. SINKS:

1. Scope:Hiển thị dạng tín hiệu trong suốt thời gian mô phỏng( giống như Oscilloscope )

khối đồ thị scope: hiển thị tín hiệu của quá trình mô phỏng dưới dạng đồ thị2. To Workspace:Lưu trữ dữ liêu dưới dạng một ma trận.

Page 29: Simulink Doan New

Những thông số: Tên ma trận, số mẫu tối đa (maximum) để xuất ra.Mỗi một cột ma trận đại diện cho mỗi giá trị khác nhau dữ liệu được truyền đến MATLAB cho đến khi kết thúc mô phỏng.

Nếu sự mô phỏng cần số bước lớn hơn giá trị maximum một đơn vị thì khối này chỉ lưu giá trị n cuối cùng, với n là giá trị lấy mẫu maximum đã quy định.

Thông số thứ hai của hàng trong maximum là tùy ý (timestep: bước thời gian), Matlab chỉ lưu giá trị n chung. Thường thường vector thời gian không cần khoảng cách đều; thông số thứ ba của maximum cũng được tùy ý nhưng có đặc điểm là phải phù hợp với thời gian lấy mẫu với dữ liệu được thu thập.

Ví dụ nếu ta cài đặt thông số cho maximum…[100, 3, 0.4]

Ngõ ra của ma trận gồm 100 hàng ( số cột tương ứng với chiều dài của khối vào) mà giá trị mỗi lần tích trữ T=3*0.4 giây (s) có nghĩa là tại T-0=0 , T1=1*3*0.4=1.2, T2=2*3*0.4, T3=3*3*0.4=3.6….. Tk=k*3*0.4(s).3. To File:Lưu trữ giữ liệu dưới dạng file.

Page 30: Simulink Doan New

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 vector thời gian, những cột khác là biến ngõ ra (so với To Workspace hàng và cột đảo nhau)Hàng đầu tiên luôn là vactor thời gian ( không cần thiết phải nối đến Clock để hiện ra)4. XY graph:Hai đồ thị của hai tín hiệu sẽ được vẽ trên cửa sổ đồ họa của Matlab.

Những thông số: biên dưới và biên trên của trục5. Stop Simulation: Ngừng cuộc mô phỏng ngay lập tức khi ngõ vào bằng

không

Khi 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.

6. Graph:Vẽ số liệu trên cửa sổ đồ họa.

Những thông số: phạm vi trục thời gian, biên dưới và biên trên của trục ngang, màu sắc của mỗi đường.Nếu thời gian mô phỏng vượt quá thời gian đặt thì đồ thị sẽ bắt đầu được vẽ từ cạnh trái của Graph.

Page 31: Simulink Doan New

III.3.DISCRETE:1. Unit Delay:

Ngõ vào bị trễ bởi một chu kỳ lấy mẫu.

Những thông số : Giá trị đầu ( giá trị giả định trong chu kỳ mô phỏng đầu tiên khi ngõ ra không xác định được), thời gian lấy mẫu.

2. Discrete Zero – Pole:Thực hiện một hàm truyền rời rạc (theo thời gian) ở dạng cực và Zero.

Những thông số: các zero, các cực, độ lợi, thời gian lấy mẫu3. Discrete State – Space:

Page 32: Simulink Doan New

Thực hiện một hệ rời rạc dưới dạng hệ phương trình trạng thái.

Những thông số: Hệ ma trận, điều kiện đầu, thời gian lấy mẫu.4. Discrete Filter:Thực hiện lọc IIR và FIR.

Những thông số: thời gian lấy mẫu. Ngõ ra bị trễ một khoảng thời gian khi ngõ ra được đưa vào giữa hai lần lấy mẫu kế tiếp.5. Discrete Tranfer Fcn:Thực hiện chức năng một hàm truyền rời rạcNhững thông số: hệ số tử và mẫu của hàm truyền , thời gian lấy mẫu

Page 33: Simulink Doan New

6. Zero – Order Hold: (khâu giữ bậc không)Thực hiện hàm giữ và lấy mẫu

Những thông số: thời gian lấy mẫu Khâu này cho biết được cấu trúc của tín hiệu. Tín hiệu được lấy mẫu và giữ cho đến khi tín hiệu kế tiếp được lấy mẫu.7. First – Order Hold: ( khâu giữ bậc một)

8. Discrete – Time Integrator:Thực hiện hàm tích phân gián đoạn.

Page 34: Simulink Doan New

Những thông số: Điều kiện đầu, giới hạn cận dưới và trên, thời gian lấy mẫu.Nó thực hiện một phép biến đổi hàm truyền Z:Ở đây Ts là giá trị thời gian lấy mẫu.

9. GainNhân tín hiệu với một hằng số

Những thông số: Giá trị độ lợiIII.4. LINEAR:

Đây là nhóm tuyến tính trong miền thời gian và laplace.1. Sum:Ngõ ra tổng ( hiệu) các ngõ vào.

Page 35: Simulink Doan New

Những thông số : các dấu của ngõ vào.2. Derivative: Tín hiệu vào được lấy vi phân theo thời gian.

Ở mỗi đoạn lấy vi phân được tính trên cơ sở của tỉ số vi phân đối với giá trị đoạn trước. Kết quả có thể sai nếu đoạn lấy vi phân có thời gian quá lớn.3. Tranfer Fcn:Thực hiện chức năng một hàm truyền.

Page 36: Simulink Doan New

Những thông số: hệ số tử và mẫu của hàm truyền4. Integrator:Tín hiệu vào được lấy tích phân

Những thông số: Điều kiện đầu5. State – SpaceThực hiện một hệ tuyến tính không thay đổi theo thời gian.

Page 37: Simulink Doan New

Những thông số: Hệ ma trận, điều kiện đầu6. Zero – pole:Thực hiện hàm truyền đưới dạng cực và zero

Những thông số: các Zero, các cực, độ lợi7. Matrix Gain:Ngõ vào là một vector thì ngõ ra là một ma trận

Những thông số: Độ lợi của ma trậnChiều của vector vào phải bằng số cột của ma trận. Độ dài của vector ra phải bằng độ lợi của hàng ma trận.8. Inner (dot) productTích vô hướng của vector

Page 38: Simulink Doan New

9. Slider Gain:Tương tác độ lợi.

Những thông số: Giá trị gainNếu có tín hiệu là đa biến thì nó được khuếch đại bởi hệ số đó

III.5.NONLINEAR:1. Abs:Tính giá trị tuyệt đối của ngõ vào.

2. ProductNgõ vào được nhân với nhau (giống SUM)

3. FcnTính toán biểu thức.

Page 39: Simulink Doan New

Ngõ vào phải là một hàm u(I), giá trị phải là đại lượng vô hướng.Khối này khả năng thực hiện cho SISO (single input single output) và MISO (multi input single output).4. Dead Zone Ngõ ra có giá trị là Zero khi ngõ vào nằm trong vùng chết (tắt). Ngoài ra ngõ ra sẽ bằng ngõ vào khi ngõ vào không nằm trong đoạn Dead Zone.

Những thông số: giá trị đầu và cuối của đoạn Dead Zone.Đặc biệt hơn, nếu cận trên và cận dưới của Dead Zone là Dz

+ và Dz-, thì ngõ ra

sẽ là:

5. Backlash: (khâu khe hở)Mô hình xử lý hệ thống có thời gian dự trữ.

Page 40: Simulink Doan New

Những thông số: Độ rộng Dead Zone, giá trị đầu của ngõ ra và vào.Ngõ ra là hằng số khi ngõ vào nằm trong đoạn Dead Zone6. Saturation:Tính toán một khâu bão hòa, nghĩa là giới hạn biên độ của ngõ ra

Những thông số: Giá trị trên và dưới của ngõ ra7. SwichNgõ ra sẽ là giá trị của ngõ vào đầu tiên cho đến khi một giá trị thứ hai lớn hơn giá trị ngưỡng thì ngõ ra mang giá trị ngõ vào thứ hai, sau đó ngõ ra lại bằng giá trị thứ ba.

Page 41: Simulink Doan New

Những thông số: giá trị ngưỡng8. look – up tableThi hành mẫu đồ thị tuyến tính của ngõ vào

Những thông số: giá trị vector của ngõ ra và vào9. 2-D Look – up Table

Thi hành mẫu đồ thị tuyến tính trong tọa độ hai chiều

Page 42: Simulink Doan New

Những thông số: giá trị chỉ số X và Y và quan hệ với giá trị ngõ ra10. Rate Limiter

Giới hạn tốc độ thay đổi của tín hiệu ngõ vào

Những thông số: giá trị tối đa của sự thay đổi11. Relay

Mô phỏng một rơle

Page 43: Simulink Doan New

Những thông số: giá trị ngưỡng của ngõ ra ở trạng thái ON và OFFSự chuyển đổi của ngõ ra giữa hai giá trị đặc biệt. Khi rơle ở vị trí ON, nó giữ nguyên khi giá trị ngõ vào hạ xuống thấp hơn ngưỡng OFF, ngược lại thì rơle ở vị trí OFF

12. MATLAB FcnCho phép gọi một hàm MATLAB trong sơ đồ SIMULINK

Những thông số: Tên hàm, chiều của ngõ ra( -1 mang nghĩa là ngõ ra cùng chiều với ngõ vào)Simulink không có khả năng kiểm tra chiều của hàm MATLAB đó là đặc điểm riêng của khối

13. QuantizerMô phỏng bộ lượng tử

Page 44: Simulink Doan New

Những thông số: khoảng thời gian lượng tử14. Coulombic Friction

Mô phỏng ma sát Coulomb

Những thông số: Giá trị offset ban đầu, tỉ số ma sát thẳng.Lực ma sát có giá trị là zero ở tại thời điểm đặt giá trị offset

15. Logical OperatorNgõ ra mang giá trị 1 nếu toán tử logic ngõ vào mang giá trị đúng, ngược lại mang giá trị 0.

Page 45: Simulink Doan New

Những thông số : Toán tử logic, số cổng vào16. Combinatorial Logic

Những thông số: bảng sự thậtChỉ có phần ngõ ra của bảng sự thật được ghi vào. Ngõ vào phải được hiểu ngầm17. Transport DelayNgõ vào bị trễ bởi một thời gian cho trước

Page 46: Simulink Doan New

Những thông số: Thời gian trễ, điều kiện đầu ( được giả định khi ngõ ra không xác định).18. Variable Transport DelayGiới thiệu một biến thời gian trễ: Ngõ vào thứ hai trễ một khoảng thời gian so với ngõ vào thứ nhất

Những thông số: Thời gian trễ, số mẫu được lưu trữ19. MemoryTín hiệu ngõ vào được lấy tích phân từng phần và được lưu giữ

Những thông số: Điều kiện đầuKhối này được áp dụng cho việc giải các vòng lượng giác.20. Sign

Page 47: Simulink Doan New

Thực thi một hàm dấu

Đó là những thư viện cơ bản, ngoài ra còn các thư viện khác như: thư viện đầu nối vv… Ngoài những thư viện đã có, người sử dụng cũng có thể tạo cho mình một thư viện riêng bằng cách ghép nối các khối lại với nhau tạo thành một nhóm (group) hay viết riêng một chương trình ( gọi là S- function) để chạy mô phỏng trong simulink.

Page 48: Simulink Doan New

CHƯƠNG IVỨNG DỤNG

I. GIỚI THIỆU SƠ LƯỢC LÝ THUYẾT ĐIỀU KHIỂN TỰ ĐỘNGLý thuyết điều khiển tự động là phần chủ yếu của lý thuyết điều khiển. Lý thuyết điều khiển tự động là kiến thức cơ sở của các ngành kỹ thuật tự động trong lĩnh vực điện tử, điện động lực, cơ khí, hàng hải, quốc phòng.I.1. các phần tử cơ bản của hệ thống điều khiển tự động:

Hệ thống điều khiển tự động là hệ thống được xây dựng từ 3 bộ phận chủ yếu:

Thiết bị điều khiển (C) Đối tượng điều khiển (O) Thiết bị đo lường (M)

Trong đó:U: tín hiệu vàoY:tín hiệu raX:tín hiệu điều khiển tác động lên đối tượngE: tín hiệu sai lệchZ: tín hiệu phản hồiI.2. Các nguyên tắc điều khiển cơ bản:

Trong điều khiển tự động có ba nguyên tắc điều khiển cơ bản sau: Nguyên tắc điều khiển sai lệch Nguyên tắc điều khiển theo phương pháp bù nhiễu Hỗn hợp hai nguyên tắc trênNgoài 3 nguyên tắc trên còn có thêm các nguyên tắc

Nguyên tắc điều khiển theo chương trình Nguyên tắc điều khiển thích nghi

I.3. Phân loại hệ thống điều khiển tự động

Page 49: Simulink Doan New

Việc phân loại hệ thống điều khiển tự động theo nguyên tắc khác nhau. Nhưng ta có thể phân loại theo các hệ thống sau:

Hệ thống điều khiển tuyến tính Hệ thống điều khiển phi tuyến Hệ thống điều khiển liên tục Hệ thống điều khiển rời rạc hay hệ thống xung số Hệ ngẫu nhiên Hệ tối ưu Hệ thống thích nghi ( tự chỉnh)

I.4. ÁP DỤNG SIMULINK VÀO THIẾT KẾ VÀ PHÂN TÍCHTrong việc khảo sát những ứng dụng ta thử xây sơ đồ mô phỏng cho hệ dao

động lò xo khối lượng sau:

m: khối lượng ; k: độ cứng lò xoTừ đó ta có sơ đồ khối sau:

Sau đó ta thử xây dựng sơ đồ mô phỏng trong SIMULINK

Page 50: Simulink Doan New

Từ sơ đồ thiết kế ta có thể thêm vào các khối để khảo sát hệ như: hệ số cứng (gain), thay đổi dạng sóng…

Trong các sách bài tập tự động có các khối nhưng không biết được đáp ứng của hệ như thế nào. Việc dùng SIMULINK để khảo sát rất thuận tiện cho việc phân tích bài toán

Page 51: Simulink Doan New

Ở hình 2.35 và 2.36 là sơ đồ khối của động cơ điện và đáp ứng vận tốc quay

Page 52: Simulink Doan New

Trong điều khiển tự động thêm vào khâu các P, PI, PID làm cho hệ thống hoạt động tốt và ổn định hơn.

Các sơ đồ điều khiển và mô phỏng.

Page 53: Simulink Doan New
Page 54: Simulink Doan New
Page 55: Simulink Doan New
Page 56: Simulink Doan New
Page 57: Simulink Doan New
Page 58: Simulink Doan New