THỰCTẬPCƠSỞĐIỀUKHIÊNTỰĐỘNG MỘT SỐ LỆNH CƠ BẢN CỦA MATLAB Vector Mỗi phần tử (element) vector cách khoảng trống (space) chúng nằm dấu ngoặc vuông Tạo vector a cách nhập vào cửa sổ lệnh MATLAB (MATLAB command window) sau: a = [1 6] Tạo vector với phần tửtừ đến 20 cách đơn vị (cách thường xuyên dùng để tạo vector thời gian): t = 0:2:20 Cộng thêm vào phần tử vector a để có vector b: b=a+2 Cộng/trừ hai vector chúng có độ dài nhau: c=a+b d=a–b Hàm số (function) Để thuận tiện hơn, MATLAB bao gồm nhiều hàm tiêu chuẩn (standard functions) Mỗi hàm đoạn code nhằm thực chức cụ thể MATLAB chứa tất hàm tiêu chuẩn sin, cos, log, exp, sqrt, … Các số thường gặp pi, and i hay j bậc hai -1, tích hợp vào MATLAB Nhập vào: sin(pi/4) Để biết cách sử dụng hàm, gõ vào cửa sổ lệnh MATLAB help + hàm Ví dụ: help sin Vẽ đồ thị (plotting) Việc vẽ đồ thị dễ dàng với MATLAB Ví dụ, để vẽ đồ thị sóng sin theo thời gian: - Tạo vector thời gian (time vector) (dấu “;” cho MATLAB biết ta không muốn thấy tất giá trị) - Tính giá trị sin theo thời gian - Các lệnh sau hàm plot (title, xlabel, ylabel) thêm thích vào đồ thị t = 0:0.25:7; y = sin(t) plot(t,y) title('Sóng sin hàm theo thời gian') xlabel('Thời gian (s)') ylabel('Độ lớn') Đa thức (polynomial) Trong MATLAB, đa thức biểu diễn vector Để tạo đa thức MATLAB, nhập hệ số (coefficience) đa thức vào vector theo thứ tự giảm dần (descending order) Ví dụ, để biểu diễn đa thức s4+3s3-15s2-2s+9 MATLAB, nhập vào vector sau x = [1 -15 -2 9] MATLAB dịch vector với độ dài n+1 đa thức bậc n Do đó, đa thức hệ số nào, người dùng phải điền vào vị trí thích hợp vector Ví dụ, s4+1 biểu diễn MATLAB như: y = [1 0 1] Ta tìm giá trị (value) đa thức hàm polyval Ví dụ, để tìm giá trị đa thức s=2, z = polyval([1 0 1],2) Ta tìm nghiệm (root) đa thức lệnh roots roots([1 -15 -2 9]) Nhân (multiply) hai đa thức với sử dụng lệnh conv: a = [1 2]; b = [1 8]; c = conv(a,b) Chia (divide) hai đa thức c cho b lệnh deconv: [aa, R]=deconv(c, b) Kết (result) lưu biến aa phần thừa (remainder) lưu biến R Hãy nhập đa thức sau vào MATLAB: 8s3-6s2-2s+18 s6+6s4+11s2-2s Tìm nghiệm đa thức Tìm giá trị hai đa thức với s = Nhân hai đa thức với Kiểm tra lại phép nhân cách thay s=3 vào đa thức vừa có Đa thức sử dụng biến s (polynomials using s variable) Một cách khác để biểu diễn đa thức sử dụng biến Laplace s MATLAB Phương pháp sử dụng chủ yếu suốt trình hướng dẫn Định nghĩa biến số s MATLAB thực sau: s = tf('s') Do đó, đa thức s4+3s3-15s2-2s+9 nhập vào: poly = s^4+3*s^3-15*s^2-2*s+9 Thay sử dụng hàm roots, ta sử dụng hàm zero để tìm nghiệm đa thức zero(poly) Ta nhân hai đa thức với sử dụng biến số s Ví dụ: x = s+2; y = s^2+4*s+8; z = x*y Hãy nhập đa thức sau vào MATLAB sử dụng biến s: 5s4 +5s3-8s2+15s+1 5s6+s3-18s2+7s Tìm nghiệm đa thức sử dụng lênh zero Ma trận Biểu diễn ma trận MATLAB giống vector, ngoại trừ việc hàng phần tử tách dấu chấm phẩy (;) B = [1 4; 8; 10 11 12] Ma trận MATLAB biến đổi theo nhiều cách Tìm ma trận chuyển vị B cách: C = B' Nhân phần tử tương ứng ma trận với cách sử dụng toán tử * E = [1 2; 4] F = [2 3; 5] G = E.*F Tìm nghịch đảo ma trận lệnh inv X = inv(E) Tìm giá trị riêng ma trận lệnh eig eig(E) Lưu ý rằng, giá trị riêng ma trận giống với nghiệm đa thức đặc trưng ma trận đó: roots(p) = eig(E) roots(p) Sử dụng m file Tạo hàm lưu vào file (vd “sum”): function [ x ] = sum( a, b ) x = a +b; end • Gọi hàm trực tiếp từ cửa sổ lệnh: sum(1,2) Lưu ý: Hàm báo lỗi hay cho kết không hàm “sum” định nghĩa sẵn MATLAB Để sửa lại lỗi này, đặt lại tên hàm tên file (vd “sum1”) • Gọi hàm từ m file khác (vd “Call_sum1.m”) x = 1; y = 2; z = sum1(x,y) Sau đó, gọi file Call_sum1 từ cửa sổ lệnh GIỚI THIỆU VỀ SIMULINK Simulink mở rộng đồ họa (graphical extension) cho MATLAB để mơ hình hóa mơ hệ Một thuận lợi Simulink khả mơ hình hóa hệ khơng tuyến tính, việc mà hàm truyền làm Một thuận lợi khác Simulink khả tiếp nhận điều kiện ban đầu Khi hàm truyền xây dựng, điều kiện ban đầu giả định Trong Simulink, hệ thống vẽ sơ đồ khối (block diagram) Nhiều phần tửsơ đồ khối có sẵn, hàm truyền (transfer function), điểm tổng (summing junctions) … thiết bị đầu vào đầu ảo (virtual input/output devices) phát (generator) máy sóng (oscilloscope) Simulink tích hợp với MATLAB liệu truyền dễ dàng hai chương trình Trong phần hướng dẫn phần tiếp theo, ta áp dụng Simulink ví dụ từ MATLAB để mơ hình hệ, xây dựng điều khiển, mơ hệ Khởi động Simulink Tạo cửa sổ Trong Simulink, mơ hình tập hợp khối để biểu diễn hệ Ngoài việc tạo mơ hình từ đầu (from scratch), file mơ hình lưu trước mở từ File menu hay nhập tên file vào cửa sổ lệnh MATLAB Những phần tửCó hai lớp lớn phần tử Simulink: khối (blocks) đường (lines) Các khối sử dụng để tạo (generate), điều chỉnh (modify), kết hợp (combine), cung cấp (output) tín hiệu Các đường sử dụng để truyền tín hiệu (signal) từ mơt khối đến khối khác Khối Khối có nhiều lớp tổng thể thư viện Simulink: Nguồn (source): sử dụng để tạo nhiều kiểu tín hiệu Bộ nhận (sink): sử dụng để cung cấp hiển thị tín hiệu Khối liên tục (continuous): phần tử hệ thống liên tục theo thời gian (hàm truyền, mơ hình khơng gian trạng thái, điềukhiển PID, v.v) Khối rời rạc (discrete): phần tử hệ thống thời gian rời rạc, tuyến tính (hàm truyền rời rạc (discrete transfer function), mơ hình khơng gian trạng thái rời rạc (discrete state-space model), v.v) Phép tính tốn học (math operations): chứa nhiều phép tốn thơng dụng (độ lợi (gain), tổng (sum), tích (product), giá trị tuyệt đối (absolute value), v.v) Cổng hệ (ports & Subsystems): chứa khối hữu ích để xây dựng hệ thống Khối có đến nhiều điểm đầu vào đến nhiều điểm đầu Các điểm đầu vào khơng sử dụng thị hình tam giác mở nhỏ (open triangle) Các điểm đầu không sử dụng thị tam giác nhỏ Đường (lines) Đường truyền tín hiệu theo hướng mũi tên (arrow) Đường phải ln ln truyền tín hiệu từ điểm đầu khối đế điểm đầu vào khối khác Một ngoại lệ quy luật đường rẽ nhánh từ đường khác Đường khơng thể cấp tín hiệu vào đường khác; đường phải kết hợp thông qua khối điểm tổng (summing junction) Một tín hiệu tín hiệu đại số (scalar signal) hay tín hiệu vector Đối với hệ đầu vào, đầu (SISO), tín hiệu đại số thường sử dụng Đối với hệ nhiều đầu vào, nhiều đầu (MIMO), tín hiệu vector thường sử dụng, gồm hay nhiều tín hiệu đại số Đường sử dụng để truyền tín hiệu đại số vector giống Loại tín hiệu mang đường định bởi khối đầu đường Một ví dụ Hãy tạo mơ hình đơn giản gồm khối: step, transfer function, scope Step khối source mà từ tín hiệu đầu vào dạng bước (step input signal) bắt nguồn Tín hiệu truyền thơng qua đường theo hướng mũi tên đến hàm truyền (thuộc khối Continuous) Khối hàm truyền điều chỉnh tín hiệu đầu vào cấp tín hiệu truyền tới tới Scope (thuộc khối Sink) Scope khối nhận sử dụng để hiển thị tín hiệu giống máy sóng (oscilloscope) Khối phức tạp khối Scope Hãy click đôi lên để thấy cửa sổ Khi mơ thực hiện, tín hiệu cấp vào scope hiển thị lên cửa sổ Click vào Run, Play hay nhập Ctrl-T vào cửa sổ lệnh để tiến hành chạy mơ Nhìn vào cửa sổ Scope, ta thấy đáp ứng step không bắt đầu t=1s Thay đổi khối Một khối thay đổi cách click đơi Click đơi vào hàm truyền thay đổi hệ sốtửsố mẫu số để có hàm truyền hình: Click đơi vào khối step Các tham số mặc định khối tín hiệu step xảy thời điểm 1s, từ giá trị ban đầu đến giá trị Hãy thay đổi giá trị này, chạy mô lại quan sát kết Vì hàm truyền có đáp ứng nhanh, nén lại thành phần hẹp cửa sổ scope Đây không thật vấn đề scope, với thân mô Simulink mô hệ 10 giây hệ đạt đến trạng thái ổn định (steady state) sau giây Để điều chỉnh, ta cần thay đổi tham số mơ Trong cửa sổ mơ hình, chọn Model configuration parameters (thơng số cấu hình cho mơ hình) từ menu Simulation (mơ phỏng) hay bấm Ctrl+E Hộp hội thoại (dialog box) sau xuất hiện: Có nhiều tùy chọn để điều chỉnh thông số mô phỏng; ta quan tâm tới thời gian bắt đầu thời gian dừng (start time stop time), mà cho Simulink biết khoảng thời gian thực việc mô Điều chỉnh thông số mô phỏng: start time từ → 0.8s; stop time từ 10 → 2s Chạy mô lại quan sát cửa sổ Scope ... ta áp dụng Simulink ví dụ từ MATLAB để mơ hình hệ, xây dựng điều khiển, mô hệ Khởi động Simulink Tạo cửa sổ Trong Simulink, mơ hình tập hợp khối để biểu diễn hệ Ngồi việc tạo mơ hình từ đầu (from... nhiều tùy chọn để điều chỉnh thông số mô phỏng; ta quan tâm tới thời gian bắt đầu thời gian dừng (start time stop time), mà cho Simulink biết khoảng thời gian thực việc mô Điều chỉnh thông số... việc mà hàm truyền khơng thể làm Một thuận lợi khác Simulink khả tiếp nhận điều kiện ban đầu Khi hàm truyền xây dựng, điều kiện ban đầu giả định Trong Simulink, hệ thống vẽ sơ đồ khối (block diagram)