CHƯƠNG 2: SIMULINK
2.2. Thư viện của Simulink
STT Tên khối Biểu tượng Chức năng Tham số 1 Constant Tạo ra một hằng số (không phụ thuộc thời gian) là số thực hoặc số phức.
- Constant Value: khai báo giá trị hằng số
2 Step Tạo tín hiệu dạng
bậc thang
- Step time: thời gian bước nhảy
- Initial value: giá trị đầu của tín hiệu
- Final value: giá trị cuối của tín hiệu
3 Ramp Tạo tín hiệu dốc
tuyến tính
- Slope: độ dốc của tín hiệu - Start time: thời gian bắt đầu tăng của tín hiệu - Initial output: giá trị đầu của tín hiệu
4 Singal generator
Tạo ra các tín hiệu khác nhau (hình sin, răng cưa, xung, random)
- Wave form: chọn dạng tín hiệu
- Amplitue: biên độ tín hiệu - Frequency: tần số tín hiệu (Hz)
5 Pulse
generator
Tạo tín hiệu xung vuông
- Amplitue: biên độ xung - Period: chu kỳ xung
- Pulse width: độ rộng xung (0-100)
6 Repeating sequence
Tạo tín hiệu tuần hoàn tùy ý
- Time values: khai báo thời gian thay đổi của tín hiệu
- Output values: khai báo giá trị thay đổi của tín hiệu 7 Sine wave Tạo ra tín hiệu hình
sin
- Amplitue: biên độ hình sin
- Bias:
- Phase: góc pha đầu - Frequency (rad/s): khai báo tần số góc của tín hiệu
8 From
workspace
Khối có nhiệm vụ lấy số liệu từ cửa sổ workspace để cung cấp cho mô hình simulink
- Data: dữ liệu lấy từ cửa sổ workspace
- Sample time: thời gian trích mẫu của tín hiệu 9 From file Khối có nhiệm vụ
lấy tín hiệu từ một file có sẵn
- file name: khai báo tên file chứa dữ liệu
Hình 2.2. Mô phỏng hiển thị dạng tín hiệu Tham số khai báo:
Khối sine wave:
- Amplitude: 1
- Frequency (rad/s): 0.05
- Phase: 0
Khối Repeating sequence
- Time values: [0 200] - Output values: [0 2.5] Khối xy-scope - x-min: -1 - x-max: 1 - y-min: -1 - y-max: 4
Khai báo thới gian mô phỏng
- start time: 0
- Stop time: 3000
- Max-step: 2
a) Scope 2 b) Scope 1 c) đồ thị xy-grap
hình 2.3. Kêt quả mô phỏng hiển thị dạng tín hiệu 2.2.2. Thư viện sinks
STT Tên khối Biểu tượng
Chức năng Tham số
1 Scope Hiển thị các tín hiệu mô phỏng 2 XY Graph Biểu diễn tín hiệu
đầu vào trên hệ tọa độ xy dưới dạng đồ họa
- x-min; x-max: khai báo dải giá trị vẽ của x
- y-min; y-max: khai báo dải giá trị vẽ của y
3 To
Workspace
Khối có chức năng gửu số liệu ở đầu vào tới môi trường Matlab Workpace dưới dạng array, struture hay
Structure with time
- Variable name: tên biến lưu dữ liệu
- Limit data point to last: số lượng biến lưu được gần nhất
- Decimation: quy định bao nhiêu dữ liệu sẽ bỏ qua khi vẽ đồ thị
- Save format: chọn dạng dữ liệu sẽ lưu
4 To File Cất số liệu dưới dạng mảng hay ma trận ở đầu vào của khối cùng với vecto thời gian dưới dạng một Mat-file
- Filename: khai báo tên file
- Variable name: khai báo tên biến
2.2.3. Thư viện Math STT Tên khối Biểu
tượng
Chức năng Tham số
1 Sum Tính tổng các tín
hiệu vào đưa tới đầu ra
- List of signs: khai báo đầu vào
2 Product Thưc hiện phép
nhân/chia từng phần tử hay nhân ma trận giữa các tín hiệu đầu vào (dạng 1D hay 2D của khối).
- Number of inputs: số đầu vào cần nhân/chia
- multiplication: chọn kiểu nhân. Element-wise tương ứng với phép nhân u1.*u2; Matrix tương ứng với nhân ma trận
3 Dot
product
Thực hiện phép nhân vô hướng với các tín hiệu đầu vào Y = sum(conj(u1).*u2) 4 Math function Thực hiện một số các hàm toán có sẵn và thông dụng trong toán học - Function: lựa chọn hàm toán học 5 Gain Có tác dụng khuếch
đại tín hiệu đầu vào
6 Logical operator
Thực hiện các kết quả của phép toán logic đã chọn
- Operator: chọn phép toán logic
- Number of input port: chọn số lượng đầu vào 7 Relational Operator Thực hiện phép toán để trả về các kết quả logic - Relational operator: chọn phép so sánh
Ví dụ: Mô phỏng một hệ thống đao động tắt dần được cho bởi phương trình
+ = − 3 25 . 0 sin . 80 ) ( 80 1 π t e t f t
Hình 2.4. Sơ đồ mô phỏng tín hiệu
Trước khi tiến hành mô phỏng ta phải có các bước chuẩn bị nhất định: đó là khai báo tham số và phương pháp mô phỏng. Thao tác chuẩn bị được thực hiện ở hộp thoại Simulation \ Confugration Parameters. Tại đó, tất cả các thám số đều đã có một giá trị mặc định (default) phục vụ cho mô phỏng mà không cần chuẩn bị. Tuy nhiên, để thu được kết quả mô phỏng tốt nhất phải thực hiện chuẩn bị, đặt tham số phù hợp với các mô hình Simulink cụ thể.
+ Solver: ta có thể đặt thời điểm bắt đầu và kết thúc, thuật toán tích phân và phương pháp xuất kết quả của mô phỏng.
Hình 2.6. Của sổ Solver
Simulink cung cấp cho ta một số thuật toán (solver) khác nhau để giải bằng phương pháp số phương trình vi phân, đáng ứng một phổ khá rộng các bài toán đặt ra. Đối với hệ gián đoạn ta có thể chọn thuật toán discrete với bước tích phân linh hoạt (variable step) hay cố định (fixed step). Đối với cá hệ liên tục ta có các thuật toán Variable-step khác nhau như ODE23, ODE45 (dựa trên phương pháp Runge-Kutta), ODE2 (phương pháp Heun), ODE1 (phương pháp
Thuật toán Variable-step làm việc với bước tính tích phân linh hoạt, việc giải quyết các phương trình vi phân được bằng đầu với bước tích phần khai báo tại initial step size. Do có khả năng thích nghi bước tích phân, thuật toán solver với Variable-step có thể giám sát biến thiên (giám sát lỗi) của các biến trạng thái từ thời điểm vừa qua tới thời điểm hiện tại. Thêm vào đó, thuật toán có thể nhận biết được các vị trí không liên tục của hàm (zero crossing detection) như các đột biến bước nhảy.
Solver với Fixed-step hoạt động với bước nhảy cố định và việc giám sát các điểm không liên tục là không thể. Song ta lại biết được chính xác số lượng bước tính tích phân và từ đó có thể ước lượng chính xác được thời gian mô phỏng trên mô hình.
+ Data Import/Export (Workpace I/O): việc khai báo thích hợp tại đây ta có thể gửi dữ liệu vào hoặc đọc dữ liệu ra từ môi trường Matlab Workspace mà không cần dùng các khối To Workspace, From Workspace của Simulink. Ngoài ra ta có thể khai báo giá trị ban đầu cho các biến trạng thái.
+ Diagnostics: khai báo các phương thức xử lý của Simulink với các sự kiện xẩy ra trong quá trình mô phỏng. Ta có thể chọn một trong 3 cách xử lý lỗi là: none – không tác động khi lỗi xảy ra, warning – đưa ra cảnh báo khi có lỗi; Error – là lỗi báo dẫn đến dừng mô phỏng.
Hình 2.8. Cửa sổ Diagnostics
+ Real-time workshop: cho phép khai báo các tham số và tùy chọn tạo ra mã code từ mô hình mô phỏng. Tham số đặt trong solver, data Import/Export, Diagnostics và Real-time Workshop có thể có ảnh hưởng tới cả quá trình mô phỏng và quá trình tạo mã code.
Phần lớn trong các phiên bản thì Real-time workshop được chia thành 2 hoặc 3 nhóm bao gồm các chương trình con (subpanes), thành phần (contains) và xây dựng mã ( Build / Generate Code button).
Nút Buil button sẽ tạo ra mã code và xây dựng quá trình. Các phương pháp xây dựng mô hình đã chọn sẽ được thiết lập chính xác khi xây dựng Real
Hình 2.9. Giao diện Real-time workshop 2.2.5. Khởi động và ngừng quá trình mô phỏng
Quá trình mô phỏng được khởi động và dừng thông qua các lệnh start, pause và stop. Thêm vào đó, ta cso thể điều khiển quá trình mô phỏng bằng các dòng lệnh viết tại cửa sổ lệnh, điều này có ý nghĩa đặc biệt khi ta muốn tự động hóa toàn bộ các chu trình mô phỏng, không muốn khởi động, ngừng hay xử lý… bằng tay. Đó là các lệnh set_param và sim.
+ set_param:
set_param (‘sys’, ‘simulation command’, ‘cmd’)
Trong lệnh trên, mô hình mô phỏng sys sẽ được khởi động khi cmd = start, hay ngừng mô phỏng khi cmd = stop. Sau khoảng thời gian nghi pause ta ra lệnh tiếp tục mô phỏng bằng continue. Nếu chọn cmd = update, mô hình sẽ được cập nhật mới. Có thể kiểm tra trình trạng mô phỏng bằng lệnh:
Bên cạnh tác dụng điều khiển quá trình mô phỏng, có thể sử dụng lệnh set-param lập các tham số của khối, các tham số mô phỏng.
+ sim
[t, x, y] = sim(‘model’)
Nếu muốn chuyển giao cả tham số mô phỏng thì gọi [t, x, y] = sim(‘model’, timespan, options, ut)
Bằng lệnh trên ta chủ động được quá trình đạt tham số mô phỏng từ môi trường Matlab (không cần thông qua các trang solver và data Inport/Export). Giá trị trả về là thời gian t, ma trận biến trạng thái x và ma trận biến ra y của mô hình. Các tham số của sim có ý nghĩa như sau: model – tên mô hình của simulink, timespan – viết dưới dạng [tStart tFinal] định nghĩa thời điểm bắt đầu và thời điểm ngừng chạy mô phỏng. Tham số ut – cho phép đọc tập số liệu đã có vào khối Inport, có tác dụng tương đương như khi khai ô input của hộp thoại Data Import/Export.
2.2.6. Hệ thông con (Subsystem)
Hệ thống con giúp cho việc mô phỏng trên Matlab dễ bao quát hơn với các mô hình hệ thống phức tạp. Bên cạnh đó, ta cũng có thể gom các khối có liên quan chức năng đến nhau thành các hệ thống con độc lập. Bằng cách đó, ta thiết kế mô hình mô phong theo một cấu trúc có phân tầng với độ sâu tùy ý.
Để tạo ra hệ thống con có 2 cách:
- Cách 1: Dùng chuột đánh dấu tất cả các khối mà ta muốn gom lại với nhau, sau đó chọn Edit \ Creat subsystem, các khối đánh dấu sẽ được Simulink thay thế bởi một khối Subsystem.
- Cách 2: Dùng khối Subsystem có sẵn trong thư viện. Sau khi gắp nó ra ta xây dựng hệ thống cần thiết trong hệ thống con này rồi ghép nối với hệ
1 Subsystem Được sử dụng để tạo ra các hệ thống con trong mô hình một khối của Simulink. 2 Enabled
subsystem
Khối chứa hệ thống con được kích hoạt bằng xung
3 Triggered subsystem
Khối chứa hệ thống con được kích tại những thời điểm giá trị tín hiệu kích đi qua 0 * Đánh dấu các hệ con (Mask Subsystems)
Khả năng đánh dấy hệ con cho phép làm đơn giản việc tham số hóa của hệ thống. Nhờ đó mà các tham số cần thiết sẽ được thu gom lại trong một hộp thoại Block Parameter duy nhất và các hệ con này sẽ được thu lại chỉ còn là một khối với các đầu vào/ra tương ứng. Đây chính là các để tạo ra thư viện con mới.
Các biến ứng dụng trong hệ con đánh dấu (Subsystem) được gán giá trị cụ thể tại hộp thoại Block Parameter. Các biến này là biến cục bộ, không thể bị truy cập và xử lý trong Workspace. Điều này làm đảm bảo tính độc lập của khối đã đánh dấu và do đó có thể sử dụng chúng lặp lại nhiều lần trong mô phỏng.
Ta xem xét một mô hình thực hiện phương trình toán y = m.x + b Thông thường, ta sẽ tạo hàm con với các khối bên trong như sau;
Hình 2.10. Tạo hàm con y = m.x + b theo cách thông thường
Và khi kích đúp vào hàm con sẽ mở ra hiển thị ở một cửa sổ mớ. Các thành phần thực hiện hàm y = m.x + b cũng hiển thị ra. Và như vậy, các tham số
ra một hộp thoại và một icon cho hàm con. Chỉ với một hộp thoại này, các tham số m và b sẽ được đặt cho toàn bộ hàm.
Để làm được việc vày, trước hết ta xây dựng một hàm con như hình 2.10. Sau đó chọn Edit \ Mask subsystem để hiện ra hộp thoại Mask editor với các mục Icon, parameter, initialization, documentation.
+ Icon : cho phép tạo ra chữ để mô tả hệ thống, phương trình trạng thái, hình ảnh và đồ họa.
- Drawing Commands: là nơi chứa các lệnh để tạo ra biểu tượng của khối. Simulink cung cấp sẵn các lệnh này bao gồm:
o disp : hiển thị một chuỗi ký tự trên icon disp (text)
disp (text, ‘textmode’, ‘on’)
o dpoly : hiển thị hàm truyền đạt lên icon dpoly (num, den)
dpoly (num, den, ‘character’)
o fprintf : hiển thị chuỗi, biến ở trung tâm của icon fprintf(text)
fprintf(format, var)
o image : hiển thị hình ảnh lên icon image(a)
o patch : Vẽ một hình dáng với màu nhất định patch(x, y)
plot(Y)
plot(X1,Y1,X2,Y2,...)
o port_label : Vẽ một biểu tượng lên các cổng xuất nhập port_label(port_type, port_number, label)
port_label(port_type, port_number, label,'texmode','on')
o text : hiển thị một chuỗi text lên một vị trí xác định của icon text(x, y, text)
text(x, y, text, 'horizontalAlignment', halign, 'verticalAlignment', valign)
text(x, y, text, 'texmode', 'on')
Ví dụ, khai báo hiển thị cho icon với 3 dòng lệnh như sau: port_label('input', 1, 'x');
port_label('output',1,'y'); disp('y=m.x+b')
Hình 2.11. Hộp thoại làm việc với Icon
+ Parameters : cho phép tạo và chỉnh sửa các tham số của hệ con được đánh dấu. Trong hộp thoại này gồm 2 phần chính là:
- Dialog Parameter: cho phép lựa chọn và thya đổi các đặc tính cửa tham số đánh dấu.
- Options for selected parameter: cho phép đặt thêm các tùy chọn cho các tham số được lựa chọn trong bảng Dialog Parameter. Mỗi hàng sẽ tương ứng với một tham số khi xuất hiện trong hệ con đánh dấu. Các biến (variable) sẽ được lựa chọn kiểu nhập dữ liệu vào trong mục Type. Nếu Evaluate được đánh dấu thì giá trị nhập và được simulink coi như là một biến và gán nó vào biến tương ứng trong hệ con đánh dấu, ngược lại giá trị nhập vào sẽ được coi là một chuỗi. Trong mục Tunable nếu được đánh dấu sẽ cho phép thay đổi giá trị của hệ thống khi đang chạy mô phỏng.
Hình 2.12. Khai báo tham số cho hệ con đánh dấu
- Các nút chức năng: cho phép thêm, bớt và thay đổi thứ tự xuất hiện của các tham số trong hôp thoại.
Hình 2.13. Hộp thoại parameter
+ Initialization : cho phép nhập vào các lệnh sẽ được thực hiện khởi tạo cho hệ con đánh dấu. Các lệnh này sẽ được thực hiện khi:
- Load mô hình
- Bắt đầu mô phỏng hay update các khối
- Xoay hệ con đánh dấu
- Vẽ lại biểu tượng hệ con (nếu mã code tạo ra icon của hệ con độc lập với các biến định nghĩa trong initialization code)
Hình 2.14. Cửa sổ Initialization
+ Documentation: cho phép định nghĩa hoặc chỉnh sửa các hiển thị trong hộp thoại nhập tham số của khối. Các thực hiện được minh họa như hình 2.15.
Hình 2.15. Cửa sổ Documentation 2.2.7. Thư viện Singal & Systems
1 Mux Có tác dụng dồn nhiều đường tín hiệu lên một kênh, các tín hiệu chập 1D là riêng rẽ nếu, tạo thành một vecto mới. Các tín hiệu chập 2D là dạng ma trận.
- Number of inputs: khai báo số lượng tín hiệu đầu vào cần dồn kênh
2 Demux Tách các tín hiệu
được dồn thành nhiều tín hiệu riêng rẽ.
- Number of output: khai báo số lượng đầu ra cần tách kênh
3 Bus
creator
Chuyển đổi một bộ tín hiệu thành tín hiệu Bus. Điểm khác biệt với Mux là một tín hiệu đầu vào có thể bao gồm nhiều tín hiệu ở trong đó.
- Number of inputs: khai báo số lượng tín hiệu đầu vào cần dồn kênh
4 Bus
selector
Tách tín hiệu đầu vào thành nhiều tín hiệu đầu ra, mỗi đường tín hiệu đầu ra có thể bao gồm nhiều tín hiệu ở trong nó
5 Slector Cho ta khả năng lựa chọn linh hoạt các tín hiệu đầu vào được nối tới đầu ra.
- input type: chọn chế độ tín hiệu đầu vào là dạng véc tơ (1D) hay ma trận (2D) - element: lựa chọn đầu vào
được nối tới đầu ra
6 Hit
crossing
Có tác dụng phát hiện thời điểm tín