Các khối chức năng có sẵn thường dùng trong phần mềm MATLAB SIMULINK

Một phần của tài liệu MÔ PHỎNG QUÁ TRÌNH CHUYỂN TIẾP CỦA ĐỘNG CƠ D240 TRÊN PHẦN MỀM BOOST KẾT NỐI VỚI MATLAB SIMULINK (Trang 59 - 72)

CHƯƠNG 3. KẾT NỐI GIỮA PHẦN MỀM BOOST VÀ MATLAB SIMULINK

3.1. GIỚI THIỆU VỀ MATLAB SIMULINK

3.1.1. Các khối chức năng có sẵn thường dùng trong phần mềm MATLAB SIMULINK

Tất cả các khối chức năng đều được xây dựng theo một mẫu giống nhau. Mỗi khối có một hay nhiều đầu vào/ra (trừ trường hợp ngoại lệ: các khối thuộc thư viện Sources và Sinks), có tên và ở trung tâm hình khối hình chử nhật có biểu tượng (hàm truyền đạt, đồ thị đặc tính hay tên files) thể hiện đặc điểm riêng của khối. Người sử dụng có thể tùy ý thay đổi tên của khối, tuy nhiên mỗi tên chỉ được dùng một lần duy nhất trong phạm vi cửa sổ của màn hình mô phỏng. Khi nháy kép phím chuột trái trực tiếp vào khối ta sẽ mở cửa sổ tham số Block Parameters (trừ các khối Scope, Slider Gain, Subsystem) và có thể nhập thủ công các tham số đặc trưng của khối.

Simulink phân biệt (không phụ thộc vào thư viện con) hai loại thuộc khối chức năng:

Khối ảo (virtual)khối thực (not virtual). 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 bớt một khối thực sẽ làm thay đổi đặc tính động học của hệ thống đang được mô hình Simulink mô tả (ví dụ như khối tích phân Intergrator hay hàm truyền đạt Transfer Fcn của thư viện Continuous, khối Sum hay khối Product của thư viện con Math). Ngược lại, khối ảo không có khả năng thay đổi đặc tính của hệ thống, chúng chỉ làm thay đổi diện mạo của mô hình Simulink (khối Mux, Demux hay enable thuộc thư viện Signal Routing Ports & Subsystems).

Sau đây là một vài các khối chức năng có sẵn và hay sử dụng trong thư viện của Matlab Simulink:

=============================================================

Thư viện Continuous Integrator

Khối Integrator lấy tích phân tín hiệu đầu vào của khối. Giá trị ban đầu được khai báo hoặc trực tiếp tại hộp thoại Block Parameter hoặc thông qua chọn giá trị internal tại ô Initial condition source để sau đó điền giá trị ban đầu lấy từ nguồn bên ngoài khối.

Đầu ra của khối Integrator có thể được một tín hiệu bên ngoài lặp về (reset) một giá trị ban đầu. Tại ô External reset ta có thể chọn dạng tín hiệu reset (ví dụ: rising có nghĩa là sườn lên). Khi chọn External reset một trong các giá trị thì khối Integrator sẽ tự động thêm một đầu vào dành cho tín hiệu reset.

Nếu cần chặn biên độ tín hiệu ở đầu ra, ta kích hoạt ô Limit output và khai báo giá trị tối đa dòng (Upper hay Lower) saturation limit. Kích hoạt ô Show saturation port ta có thể lấy được tín hiệu bảo hoà tương ứng (1: tại đầu ra khi coc bão hoà dương, -1: khi có bão hoà âm, 0: cho các giá trị lưng chừng giữa hai ngưỡng bão hoà). Nếu kích hoạt ô Show state port, trên biểu tượng của khối sẽ xuất hiện thêm một đầu ra (state port) cho phép trích tín hiệu trạng thái của khối Integrator. Biến trạng thái của khối thực chất đồng nhất về giá trị với biến đầu ra, tuy nhiên Simulink tính hai biến đó (biến ra và biến trạng thái) tại những thời điểm ít nhiều có khác nhau. Nếu mô hình Simulink có chứa các biến trạng thái rất chênh lệch nhau về kích cở giá trị thì khi ấy nên khai báo tham số Absolute tolerance riêng rẽ thêm cho từng khối Integrator của mô hình.

Derivative

Phép tính đạo hàm tín hiệu đầu vào được thực hiện nhờ khối Derivative. Tín hiệu tìm được ở đầu ra có dạng ∆u/∆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ểnf trước đó. Giá trị ban đầu của biến ra là 0.

State-space

Khối State-Space là mô hình trạng thái của một hệ tưyến tính.

Được mô tả bởi hệ phương trình sau đây:

X =Ax + Bu Y = Cx + Du

Bậc của hệ do kích cở của ma trận trạng thái A quyết định. Nếu Nx là biến số trạng thái, Nu là biến số vào và Ny là biến số ra, các tham số của hệ phải có kích cở như sau:

A(NxìNx), B(NxìNu), C(NyìNy) và D(NyìNu). Khai bỏo như vậy ta sẽ quyết định Nu là bề rộng của vector tín hiệu vào và Ny là bề rộng của vector tín hiệu ra.

Transfer Function và Zero-Pole

=============================================================

Nhờ khối Tranfer Fcn ta có thể mô hình hoá hàm truyền đạt của một hệ tuyến tính. Khối Tranfer Fcn có đặc điểm hoàn toàn tương đương với lệnh tf(num,den) của Control System Toolbox.

Tham số của khối là các hệ số của đa thức tử số (Numerator) và mẫu số (Denominator), khai báo theo thứ tự mũ của s giảm dần.

Bậc của mẫu số phải lớn hơn hoặc bậc của tử số.

Tại ô Numerator ta cũng có thể khai báo ma trận. Bề rộng cảu vector tín hiệu ra sẽ tuỳ thuộc vào số dòng của ma trận đã được khai. Các tín hiệu vào chỉ được chấp nhận là scalar.

Ngược lại với Transfer Fcn, khối Zero-Pole sẽ tạo nên các tham số Zero, Poles và Gain một hàm truyền đạt dưới dạng hệ số hoá theo điểm không, điểm cực (m=số lượng điểm không, n=số lượng điểm cực). Số lượng điểm cực phải lớn hơn số điểm không. Các điểm không, điểm cực phức phải là liên hợp. Khối Zero-Pole tương đương với lệnh zpk(z,p,k) của Control System Toolbox.

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 giá trị khai tại Initial input tới đầu ra.

Với khối Variable Trasport Delay ta 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ứ thời gian trể sẽ được đưa đến đầu thứ hai (đầu vào phía dưới) của khối. Tại ô Maximum delay ta phải khai một giá trị trễ tối đa, có tác dụng giới hạn giá trị điều khiển tín hiệu thời gian trễ.

Thư viện Discrete

Thư viện Discrete phục vụ mô phỏng động học các hệ thống gián đoạn về thời gian.

Các khối phục vụ xuất, nhập số liệu, các hàm mô tả được sử dụng bình thường trong hệ gián đoạn. Các khối này có thể tự động nhận thừa kế chu kỳ trích mẫu của các khối nối phía trước chúng. Tất cả các khối thuộc thư viện đều có một khâu trích mẫu ở đầu vào.

Unit Delay

Khối Unit Delay có tác dụng trích mẫu tín hiệu vào và cất giữ giá trị thu được trong một chu kỳ trích mẫu. Vì vậy, khối có đặc điểm như một phần tử cơ bản của hệ gián đoạn. Khối có thể được sử dụng như một khâu quá độ từ tần số trích mẫu thấp sang tần số trích mẫu cao.

Discrete – Time Integrator

=============================================================

Khối Discrete – Time Integrator (tích phân gián đoạn) về cơ bản cũng như khối Integrator (tích phân liên tục). Bên cạnh chu kỳ trích mẫu ta còn phải chọn cho mỗi khối thuật toán tích phân (tích phân Euler tiến, tích phân Euler lùi hay tích phân hình thang). Sau khi đã chọn thuật toán tích phân, Biểu tượng (Icon) của khối lại thay đổi tương ứng.

Discrete Filter (scalar)

Khối Discrete Filter là một khối lọc có hàm truyền đạt được Matlap quy định sẵn.

Discrete Transfer Function (scalar)

Khối Discrete Transfer Function có đặc điểm giống như khối Discrete Filter nhưng hàm truyền đạt khác với Discrete Filter.

Discrete Zero-pole (scalar)

Trong khối Discrete Zero-Pole, thay vì phải khai báo các hệ số, ta khai báo điểm cực-điểm không của hàm truyền đạt và một hệ số khuyếch đại.

Discrete State Space

Khối Discrete State Space mô tả một hệ thống gián đoạn bằng mô hình trạng thái. Khối có đặc điểm giống như khối State Space của các hệ liên tục.

Zero-Order Hold

Khối Zero-Order Hold trích mẫu tín hiệu đầu vào và giữ giá trị thu được đến thời điểm trích mẫu tiếp theo. Nên sử dụng khối Zero-Order hold trong các hệ trích mẫu chưa có một trong các khối gián đoạn được miêu tả ở trên (tức là những khối có sẵn khâu dữ chậm bậc 0).

Memory

Khối Memory xuất ở đầu ra giá trị của đầu vào thuộc bước tích phân vừa qua. Nói cách khác khối Memory cso đặc điểm của một khâu dữ chậm bậc 0, lưu giữ tín hiệu trong khoảng thời gian một bước. Khi mô phỏng với ode15s và ode113 (cả hai đều là phương pháp tích phân đa bước) ta không nên sử dụng khối Memory.

Thư viện Discontinuities

=============================================================

Hit Crossing

Khối Hit Crossing có tác dụng phát hiện thời điểm tín hiệu đầu vào đi qua giá trị khai tại Hit Crossing offset theo hướng khai tại Hit Crossing direction. Nếu ta chọn Show output port, tại thời điểm Crossing đầu ra sẽ nhận giá trị là 1, còn lại là 0. Nếu tại trang Advance của hộp thoại Simulation Parameters ta đặt Boolean logic signals = off, tín hiệu ra sẽ là double, ngoài ra là Boolean.

Rate Limiter và Saturation

Khối Rate Limiter giới hạn đạo hàm bậc nhất cảu tín hiệu đầu vào tại các tham số Rissing slew rate (giới hạn khi tín hiệu vào tăng) và Falling slew rate (giới hạn khi tín hiệu vào giảm)

Khối saturation giới hạn giá trị tối đa của tín hiệu vào về phía dương (Upper limit) và phía âm (Lower limit)

Quantizer

Khối Quantizer chuyển tín hiệu ở đầu vào của khối thành tín hiệu có dạng bậc thang. Chiều cao của bậc do tham số Quantization interval quyết định.

Backlash

Khối Backlash phỏng lại đặc tính của một hệ thống có độ dơ. Độ dơ thuờng xuất hiện trong các kết cấu cơ khí có chứa hộp số, đó chính là độ dơ lắc giữa hai bánh răng khớp nhau của hộp số. Đoọ dơ lắc thường xuyên xuất hiện cho da công thiếu chính xác hay do hao mòn vật liệu. Tham số Deadband width khai báo bề rộng của độ dơ (đối xứng đầu ra).

Khối Backlash có thể có một trong ba trạng thái hoạt động sau:

Kịch dơ theo chiều dương Cách ly

Kịch dơ theo chiều âm Dead Zone

Bằng khối Dead Zone ta có thể mô phỏng các đối tượng với đặc điểm:

Tín hiệu ra có giá trị 0 trong một khoảng (khoảng liệt) nhất định của tín hiệu vào. Giới hạn dưới và trên khoảng liệt do các tham số Start of dead zone và End of dead zone quyết định. Nếu tín hiệu ra sẽ nhận giá trị 0. Khi tín hiệu vào u ≤ Start of dead zone, tín hiệu ra y= u- Start of dead zone. Khi tín hiệu vào u ≥ End of dead zone, tín hiệu ra y=u-End of dead zone.

Coulomb & Viscous Friction

=============================================================

Khối Coulomb & Viscous Friction mô phỏng một hệ có ma sát dính và ma sát trượt. Các dạng ma sát này thường hay tồn tại trong các hệ thống cơ có chuyển động tịnh tiến hay chuyển động xoay tròn.

Relay

Tuỳ theo tín hiệu vào (tín hiệu điều khiển), Khối Relay có tác dụng chuyển đổi tín hiệu ra giữa hai giá trị Output when on và Output when off. Relay sẽ đóng mạch (trạng thái ‘on’), nếu tín hiệu vào u ≥ Switch on point, tín hiệu ra y = Output when off.

Giá trị Switch on point luôn phải được chọn lớn hơn hoặc bằng giá trị Switch off point.

Khi Switch on point > Switch off point, khối Relay mô phỏng đường đặc tính Hysteresis.

Khi Switch on point = Switch off point, khối Relay mô phỏng một công tắc chuyển mạch.

Thư viện User-Defined Functions Function

Bằng khối Fcn ta có thể khai báo một hàm của biến vào, dưới dạng một biểu thức viết theo phong cách của ngôn ngữ lập trình C. Nếu viết u, đó là tín hiệu vào scalar hay chỉ là phần tử đầu tiên của vector tín hiệu vào. Nếu viết u(i) hay u[i], đó là phần tử thứ i của tín hiệu vào dạng vector (tín hiệu 1-D).

Biểu thức toán được phép chứa số, các hàm toán, các toán tử số học, toán tử logic hay toán tử so sánh, các dấu ngoặc vuông, ngoặc đơn, các biến đã được định nghĩa trong môi trường Matlab Workspace. Trình tự ưu tiên các phép tính tuân thủ theo đúng ngôn ngữ lập trình C. Các phép tính ma trận không được Fcn hỗ trợ.

Matlab Function

Khối Matlab Function là một dạng mở rộng của khối Fcn. Tại ô Matlab Funtion ta có thể khai báo một biểu thức toán hay một hàm Matlab (viết dưới dạng m-file) của biến đầu vào. Điều cần chú ý là bề rộng của tín hiệu do Matlab xuất ra phải tương ứng với Output width của khối Matlab Fcn. Việc tính toán bằng khối Matlab Fcn tốn rất nhiều thời gian bởi vì mỗi bước Matlap lại phải phân tích cú pháp, chính vì thế nên không nên dùng Matlab Fcn nếu không cần thiết hoặc có thể thay được bằng các khối khác.

S-Function

Khối S-Function tạo điều kiện cho việc sử dụng hàm S (S- Function), hoặc viết dưới dạng Matlab Script (m-file), hoặc dưới dạng ngôn ngữ C vào một số sơ đồ khối của Simulink. Tên của S-function được khai báo tại ô S-function name.

Thư viện Look-Up Tables

Look-Up Table và Look-Up Table (2-D)

=============================================================

Khối Look-Up table tạo tín hiệu ra từ tín hiệu vào cơ sở thông tin cất trong một bảng tra (Vector of input values ì Vector of output values).

Nếu giá trị hiện tại cảu tín hiệu vào trùng với một giá trị thuộc Vector of input values, giá trị tương ứng trong bảng thuộc Vector of output values sẽ được đưa tới đầu ra. Nếu giá trị vào nằm giữa hai giá trị thì Simulink sẽ thực hiện phép nội suy giá trị tương ứng. Nếu giá trị là lớn hơn hay bé hơn giá trị ở Vector of input values thì Simulink sẽ thực hiện việc ngoại suy hai giá trị đầu tiên và cuối cùng.

Khối Look-Up table (2-D) cho phép ta tạo nên một bảng tra hai chiều. Bằng tham số Table ta khai báo một ma trận cất các giá trị đầu ra. Muốn tìm được giá trị của đầu ra ta cần phải biết Row để tìm hàng và Colum để tìm cột của ô giá trị trong ma trận. Tín hiệu đặt ở đầu vào phía trên được so với Row, còn tín hiệu đặt ở đầu vào phía dưới được so với Column.

Thư viện Math Operation

Thư viện con Math Operation có một số khối với chức năng ghép toán học với các tín hiệu khác nhau. Bên cạnh các khối đơn giản nhằm cộng hay nhân tín hiệu, trong Math còn có nhiều hàm toán khác như lượng giác, logíc đã được chuẩn bị sẵn. Sau đây là một số khối cơ bản của Math Operation:

Sum

Đầu ra của khối Sum là tổng các tín hiệu đầu vào. Nếu các tín hiệu là scalar, tín hiệu tổng cũng là scalar. Nếu đầu vào có nhiều tín hiệu hỗn hợp, Sum tính tổng của tứng phần tử. Ví dụ nếu tín hiều vào bao gồm ba tín hiệu: 1, sin(x) và [4 4 5 6], tín hiệu ra sẽ có dạng: [5+sin(x), 5+sin(x),6+sin(x),7+sin(x)].

Nếu khối Sum chỉ có một đầu vào dạng vector, khi ấy các phần tử của vector sẽ được cộng thành scalar.

Product và Dot Product

Khối Product thực hiện pháp nhân từng phần tử hay phép nhân ma trận , cũng như phép chia giữa các tín hiệu (dạng 1-D hay 2-D) của khối phụ thuộc vào giá trị đặt của tham số Multiplication và Number of inputs.

Khối Dot product tính tích scalar (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 Matlab y = sum(conj(u1).*u2).

Math Function và Trigonometric Function

Trong khối Math Function có một khố lượng khá lớn hàm toán đã được chuẩn bị sẵn tại ô Function, cho phép ta chọn lựa theo nhu cầu sử dụng.

=============================================================

Tương tự, khối Trigonometric có tất cả các hàm lượng giác quan trọng. Ngược lại với khối Fcn (thư viện con User Defined Function), cả hai khối Math function và Trigonometric Function đều có thể xử lý tín hiệu 2-D.

Gain, Slider Gain, Matrix Gain

Khối Gain có tác dụng khuyếch đại tín hiệu đầu vào (định dạng 1-D hay 2-D) bằng biểu thức khai báo tại ô Gain, biểu thức đó có thể chỉ là một số hay là một biến. Nếu là biến, biến đó phải tồn tại trong môi trường Matlab Workspace, chỉ khi ấy Simulink mới có thể tính toán được với biến. Nhờ thay đổi giá trị của tham số Multiplication ta có thể xác định: phép nhân của biến vào với Gain được thực hiện theo phương thức nhân ma trận hay nhân từng phần tử.

Khối Slider Gain cho phép người sử thay đổi hệ số khuyếch đại scalar trong quá trình mô phỏng.

Khối Matrix Gain cũng giống như Gain, điểm khác chỉ là: phải khai báo các tham số thích hợp để thực hiện phép nhân giữa ma trận Gain với đầu vào.

Logical Operator và Relational Operator

Khối Logical Operator thực hiện kết hợp các biến vào khối theo hàm Logic đã chọn tại ô Operator. Biến ra sẽ nhận các giá trị 1 (TRUE, đúng) hay 0 (FALSE, sai). Nếu các biến có định dạng vector (tín hiệu 1-D) hay ma trận (tín hiệu 2-D), các phần tử của chúng sẽ được kết hợp theo hàm Logic đã chọn, và ở đầu ra sẽ xuất hiện một vector hay ma trận.

Khối Relational Operator thực hiện kết hợp hai tín hiệu đầu vào thành một toán tử so sánh đã chọn tại ô Operator. Biến ra sẽ nhận các giá trị 1(TRUE) hay 0 (FALSE).

Algebraic Constraint

Khối Algebraic Constraint cưỡng tín hiệu vào của khối về 0 và xuất ở đầu ra của khối giá trị của biến z (là giá trị ứng với khi đầu vào là 0). Tuy nhiên, biến ra phải có tác động ngược lại đầu vào thông qua một vòng hồi tiếp thích hợp.

Tại ô dành cho tham số Initial guess ta có thể khia báo một giá trị khởi đầu cho thuật toán vòng quẩn đại số. Bằng cách lựa chọn khéo léo Initial guess ta có thể cải thiện độ chính xác, thậm chí là cách làm duy nhất trong một vài trường hợp gay cấn (critical case).

Thư viện Ports & Subsystems

Hệ thống con (Subsystem) tạo điều kiện cho người sử dụng phân loại, giảm số lượng các khối trong một cửa sổ. Có hai cách để tạo hệ thống con:

Một phần của tài liệu MÔ PHỎNG QUÁ TRÌNH CHUYỂN TIẾP CỦA ĐỘNG CƠ D240 TRÊN PHẦN MỀM BOOST KẾT NỐI VỚI MATLAB SIMULINK (Trang 59 - 72)

w