Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 128 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
128
Dung lượng
1,14 MB
Nội dung
Phần I : Cơ sở MATLAB MATLAB chương trình phần mềm lớn lĩnh vực tốn số Tên chương trình chữ viết tắt từ MATrix LABoratory, thể định hướng chương trình phép tính vector ma trận Phần cốt lõi chương trình bao gồm số hàm toán , chức nănng nhập /xuất khả điều khiển chu trình mà nhờ dựng Scripts Trong phần bao gồm Toolbox liên quan tới Điều Khiển –Tự Động hóa như: Control System Toolbox, Signal Processing Toolbox, Optimization Toolbox, Stateflow Blockset, Power System Blockset , Real – Time Workshop va SIMULINK SIMULINK toolbox có vai trị bặc biệt quan trọng: Vài trị cơng cụ mạnh phục vụ mơ hình hóa mơ hệ thống Kỹ thuật – Vật lý sở sơ đồ cấu trúc dạng khối Cùng với SIMULINK , Statefow Blockset tạo cho ta khả mơ hình hóa mô automat trạng thái hữu hạn 1.1 Những bước dầu tiên với MATLAB 1.1.1 Màn hình MATLAB Sau khỏi động MATLAB , mơi trường tích hợp với cửa sổ hình : - Cửa sổ Launch Pad : Cửa sổ cho phép người sử dụng truy cập nhanh công cụ MATLAB, Phần Help (trợ giúp) Online Documents (tài liệu trực tuyến), mở Demos (chương trình trình diễn) - Cửa sổ thư mục Current Directory Browser : Nhờ cửa sổ người sử dụng nhanh chóng nhận biết, chuyển đổi thư mục môi trường công tác, mở File, tạo thư mục - Cửa sổ môi trường công tác Workspace Browser : Tất biến, hàm tồn môi trường công tác hiển thị cửa sổ nàyvới đầy đủ thơng tin như: Tên loại biến/hàm, kích thước tùy theo Bytes loại liệu Ngoài cịn cất vào nhớ liệu , sử dụng chức Array Editor (soạn thảo mảng) để thay đổi biến - Cửa sổ lệnh Command Windows : Đây cửa sổ MATLAB Tại ta thực toàn việc nhập liệu xuất kết tính tốn Dấu nhấp nháy >> báo hiệu chương trình hoạt động: - Mỗi lần nhập liệu kết thúc động tác nhấn phím ENTER Nguyên tắc “ nhân, chia thực trước cộng , trừ “ thư tự ưu tiên dấu ngoặc bình thường Số có giá trị lớn thường nhập với hàm e mũ (có thể viết E) Có thể kết thúc chương trình cách đóng hình MATLAB , gọi lệnh quit, exit nhấn tổ hợp phím Ctrl+q - Cửa sổ khứ Command History : Tất cá lệnh sử dụng Command Windows lưu giữ hiển thị đây, lặp lại lệnh cũ bắng cách nháy chuột kép vào lệnh Cũng cắt, xóa nhóm lệnh lệnh riêng rẽ 1.1.2 Tiện ích trợ giúp (Help) MATLAB Tiện ích trợ giúp MATLAB vô phong phú Tùy theo nhu cầu , gọi Help [command] để xem nội dung hỗ trợ lệnh command trực tiếp Command Windows sử dụng cơng cụ truy cập Help Có thể gọi sổ Help cách gọi Menu , gọi lệnh helpwin hay doc trực tiếp sổ Command Windows Bằng lệnh loockfor searchstring ta tìm chuỗi ký tự searchstring dịng đầu MATLAB File thư mục MATLAB >> help log LOG Natural logarithm LOG(X) is the natural logarithm of the elements of X Complex results are produced if X is not positive See also LOG2, LOG10, EXP, LOGM Overloaded methods help gf/log.m help sym/log.m help fints/log.m help designdev/log.m >> Các lệnh liên quan tới tiện ích help tập hợp bảng sau: help[command] Help Tiện ích Help trực tuyến MATLAB cửa sổ lệnh Commmand Workspace Tiện ích Help trực tuyến MATLAB cửa Sổ truy cập Help helpwin[command] doc[command] T− liệu trực tuyến MATLAB cửa sổ truy lookforsearchstring cập Help Tìm chuỗi ký tự searchstringtrong dòng MATLAB Files th− mục MATLAB 1.1.3 Các Thông th−ờng , kết cảu biến đ−ợc gán cho ans Sủ dụng thẻ định biến g gán giá dấu ta có nghĩa biến , đồng thời gán giá trị cho biến dó Khi nhập củatrịmột mà khơn trị , ta tên thu giả hiệnbiến biến Tất biến biến global Workspace Tên biến chứa tới 32 chữ , gạch ngang thấp (_) chữ số Chữ viết hoa to chữ viết nhỏ phân biệt Việc nhập giá trị thực thành chuỗi dòng , cách dấu (;) Nếu sử dụng dấu phẩy(,) để tách lệnh giá trị xuất hình : >> x=25; y=10; >> x x= 25 >> a=x+y,A=x/y a= 35 A= 2.5000 Một số biến : pi , i , j inf MATLAB dùng đêr số hay ký hiệu, ta phải tránh sử dụng chúng Đối với phép tính bất định (ví dụ 0/0), hình xuất kết NaN (Not a Number) esp cho ta biết cấp xác tương đối biểu diễn số với dấu phẩy động (ví dụ : esp = 2.2204e-016): >> 1/0 Warning: Divide by zero (Type "warning off MATLAB:divideByZero" to suppress this warning.) ans = Inf Inf: infinite (vô cùng) >> 0/0 Warning: Divide by zero (Type "warning off MATLAB:divideByZero" to suppress this warning.) NaN = +-*/^ ; , esp i j inf NaN pi NaN: not – defined (bất định ) Các ký hiệu Gán giá trị cho biến Các phép tính Nhập giá trị (cịn giữ vai trị dấu cách nhập nhiều giá trị dòng ) Dấu cách xuất nhiều giá trị dịng Cấp xác t−ơng đối sử dụng giá trị dấu phẩy động Tốn tử ảo Vơ ( Ơ ) Not a Number Hằng số 1.1.4 Các hàm tốn học Chương trình MATLAB có sẵn nhiều hàm toán tập hợp bảng sau Tất hàm bảng có khả sử dụng tính vector Các hàm tốn sqrt(x) exp(x) log(x) log10(x) abs(x) sign(x) real(x) imag(x) phase(x) Căn bậc hai Hàm mũ số e Logarit tự nhiên Logarit số thập phân Giá trị tuyệt đối Hàm dấu Phần thực Phần ảo Góc pha số phức sin(x) cos(x) tag(x) Hàm sin Hàm cos Hàm tg rem(x,y) round(x) ceil(x) floor(x) sum(v) prod(v) min(v) max(v) mean(v) Các hàm lượng giác atan(x) atan2(x,y) sinc(x) Số dư phép chia x/y Làm tròn số Làm tròn lên Làm tròn xuống Tổng phần tử vectorcác phần tử vector Tích Phần tử vector bé Phần tử vector lớn Giá trị trung bình cộng Hàm arctg ±900 Hàm arctg ±1800 Hàm sin( x)/ ( x) 1.2 Vector ma trận MATLAB có số lệnh đặc biệt để khai báo sử lý vector ma trận Cách đơn giản để khai báo , tạo lên vector ma trận nhập trực tiếp Khi nhập trực tiếp phần tử hàng cách dấu phẩy vị trí cách bỏ trống 1, hàng cách dấu (;) ngắt dòng >> vector=[3 5] vector = >> matran=[vector; 3] matran = Vector có phần tử tiếp diễn với bược định , nhập cách đơn giản nhờ Toán tử (:) sau (start: increment; destination) “(xuất phát : bước; đích)” Nếu nhập start destination , MATLAB tự động đặt increment +1 Cũng nhập vector tuyến tính vector có phân hạng logarithm cách dùng lệnh linspace(start, destination, number) “(Trong number số lương phần tử vector)” Ta nhập lệnh logspace, start mũ thập destination đ−ợc nhập số phân , ví dụ : thay nhập 100 = (102)ta cần nhập >> long=1:5 long = >> deep = 10:-2:2 deep = 10 >> longer=linspace(1,15,5) longer = 1.0000 4.5000 8.0000 11.5000 15.0000 >> licreace=logspace(1,2,5) licreace = 10.0000 17.7828 31.6228 56.2341 100.0000 Bằng hàm ones(line,column)và zeros(line, column) ta tạo ma trận có phần tử Hàm eye(line) tạo ma trận đơn vị, ma trận toàn phương với phần tử thuộc đường chéo , tất phần tử lại Kích cỡ ma trận hồn tồn phụ thuọc người nhập: >> M= ones(2, 3) M= 1 1 1 Việc truy cập phần tử vector ma trận thực cách khai báo số phần tử , cần lưu ý : số bé không phảI Đặc biệt , cần xuất hàng hay cột , sử dụng tốn tử (:) đứng , điều có nghĩa : phải xuất phần tử hàng hay cột : >> matran(2,2) ans = >> matran(2,:) ans =2 MATLAB có lệnh hữu ích , phục vụ tạo ma trận với chức tín hiệu thử : rand(m,n) Khi gọi ta thu ma trận m hàng n cột với phần tử mang giá trị ngẫu nhiên: >> mt_ngaunhien=rand(2,3) mt_ngaunhien = 0.4565 0.8214 0.6154 0.0185 0.4447 0.7919 Khai báo vector ma trận [x1 x2 …; x3 x4 …] Nhập giá trị cho vector ma start: increment: destinationToán tử (:) linspace (start,destination ,number) Khai báo logspace tuyến tính (start,destination cho vector Khai ,number) báo logarithm eye(line) cho vector Khai báo ma trận đơn vị ones(line,column) zeros(line,column) Khai báo ma rand(line,column) trận với phần tử Khai báo ma trận với phần tử Khai báo ma trận với phần tử nhập 1.2.1 Tính tốn với vector ma trận Nhiều phép tính áp dụng cho vector ma trận Ví dụ : Phép nhân với ký hiệu(*) dùng để tính tích vector ma trận Việc chuyển vị vector ma trận thực nhờ lệnh transpose (‘) Nếu vector ma trận phức , ta dùng thêm lệnh ctranspose (‘) để tìm giá trị phức liên hợp Đối với giá trị thực hai lệnh >> M*matran ans = 8 Nếu phép tính * / ^ cần thực cho phần tử vector ma trận , ta phải đặt thêm vào trước ký hiệu phép tình ký hiệu (.) Phép tính biến vô hướng thực cho phần tử : >> M / matran ans = 0.3333 0.2500 0.2000 1.0000 0.5000 0.3333 Phép tính có hiệu lực ma trận có phần tử phức: >> matranphuc = [1+i 1-i; ] matranphuc = 1.0000 + 1.0000i 1.0000 - 1.0000i 1.0000 2.0000 >> matranphuc*matranphuc ans = 1.0000 + 1.0000i 4.0000 - 2.0000i 3.0000 + 1.0000i 5.0000 - 1.0000i >> matranphuc.*matranphuc ans = + 2.0000i 1.0000 - 2.0000i 4.0000 Lệnh diff(vector [n]) tính vector sai phân Bằng lệnh conv(vector_1, vvector_2) ta chạp hai vector vector_1 vector_2 Nếu hai vector cần chập có phần tử thức, kết hệ số hai đa thu đ−ợc ứng với hệ số sau nhân hai đa thức với : >> diff(vector) ans = 1 Hai lệnh inv det dùng để nghịch đảo ma trận tồn phương tính định thức ma trận Giá trị riêng ma trận matrix tính lệnh eig(matrix) hạng tính lệnh rank(matrix), Nếu cần chuyển vị ma trận ta dùng lệnh transpose(matrix): >> matrix=[1 3;3 5;5 7] matrix = 3 5 >> rank(matrix) ns = >> eig(matrix) ans = 12.9282 -0.9282 0.0000 >> det(matrix) ans = >> inv(matrix) Warning: Matrix is close to singular or badly scaled Results may be inaccurate RCOND = 1.850372e-018 ans = 1.0e+016 * 0.4504 -0.9007 0.4504 -0.9007 1.8014 -0.9007 0.4504 -0.9007 0.4504 >> transpose(matrix) ans = Tính tốn với vector ma trận * / ^ Các phép tính với phần tử Chuyển vị ma trận matrix transpose(matrix) matrix’ ctranspose(matrix) matrix’ Chuyển vị ma trận matrix có phần tử phức liên hợp Đảo marank(matrix) trận inv(matrix) det(matrix) eig(matrix) diff(vector[n]) conv(vector_1,vector_2) Tính định thức ma trận Tính giá trị riêng ma trận Xác định hạng ma trận Tính vector sai phân Chập vector (nhân đa thức) 1.2 Cấu trúc trường 1.2.1 Cấu trúc Để thuận tiện cho việc quản lý sử dụng , ta tập hợp nhiều biến lại cấu trúc Trong mơi mảng có tên riêng (một chuỗi ký tự string) đặt hai dấu (‘ ‘) có kèm theo giá trị Một cấu trúc tạo nên lệnh struct(‘name_1’,value_1,’name_2’,value_2, … ): >>my_structure = struct(‘data’, matrix, ‘size’, [2 3]); Việc truy cập vào liệu thực với dấu cách(.); >>my_structure (2) data = matrix.^(-1) ; ans = 1.0000 0.5000 0.3333 Ngoài MATLAB cịn có lệnh cấu trúc móc vịng cấu trúc nhập lệnh componist 1.2.2 Trường Tổng quát mức độ cao cấu trúc trường (Cell Array) Đó Array (mảng nhiều chiều), chứa Cell (tế bào) với liệu thuộc loại kích cỡ khác Ta tạo Cell Array lệnh cell , đơn giản cách ghép phần tử bên dấu ngoặc {} Từng phần tử Cell Array truy cập vector , ma trận thông thương Array nhiều chiều , cần lưu ý : Thay dùng dấu ngoặc trịn ( ) ta sử dụng dấu ngoặc móc {} Giả sử ta tạo Cell Array rỗng có tên my_cell sau : >> my_cell = cell(2,2) my_cell = [] [] [] [] Bây ta gán cho mảng my_cell giá trị sau đây: >> my_cell{1,1} ='chao cac ban'; >> my_cell{1,2} ='chuc cac ban hoc tap tot'; >> my_cell{2,1} =[1 2; 4]; >> my_cell{2,2} =10; Khi nhập tên Cell Array hình xuất lên đầy đủ cấu trúc Có thể biết nội dung (hay giá trị ) hay nhiều Cell ta nhập số Cell: >> my_cell my_cell = 'chao cac ban' [1x24 char] [2x2 double] [ 10] >> my_cell{1,1} ans = chao cac ban >> my_cell{1,2} http://www.ebook.edu.vn com ntucntt 80 b Derivative Khối cho phép ta tính đạo hàm tín hiệu đầu vào Tín hiệu tìm đầu có dạng u/t với biến thiên đại lượng cần tính kể từ bước tích phân liền trước Giá trị ban đầu c Transfer Fcn Zero-Pole Khối Transfer Fcn cho phép mơ hình hóa hàm truyền đạt hệ tuyến tính Tham số khối hệ số đa thức tử số mẫu số, khai báo theo thứ tự số mũ s giảm dần Bậc mẫu số phải lớn bậc tử số Ví dụ: nhập cho tử số [5 1] mẫu số [6 1] khối tạo ra2 hàm truyền đạt: y s 5s 7s 3s W(s) = u (s ) 6s 8s3 3s 2s Khối Zero Pole tạo nên từ tham số Zeros, Poles Gain hàm truyền đạt dạng hệ số hóa theo điểm không, điểm cực 81 d Transport Delay Variable Transport Delay Khối Trasnport Delay làm trễ tín hiệu vào khoảng thời gian khai báo ô Time Delay trước xuất tới đầu Chỉ đến thời gian mô bắt đầu vượt thời gian trễ (so với lúc bắt đầu mô phỏng), khối Transport Delay xuất giá trị khai Initial Input tới đầu Bằng khối Variable Transport Delay điều khiển trễ tín hiệu cách linh hoạt: tín hiệu chứa thời gian trễ đưa tới đầu vào thứ hai (đầu vào phía dưới) khối Tại Maxmum Delay ta phải khai giá trị trễ tối đa, có tác dụng giới hạn (chặn trên) giá trị tín hiệu điều khiển thời gian trễ Thư viện Tables a Lookup Table Khối tạo tín hiệu từ tín hiệu vào sở thơng tin cất bảng tra (Vector of input values x Vector of output values) Nếu giá trị tín hiệu vào trùng với giá trị thuộc Vector of input values, giá trị tương ứng bảng thuộc Vevtor of output values đưa tới đầu Nếu giá trị tín hiệu vào nằm hai giá trị thuộc Vector of output values, Simulink thực nội suy hai giá trị tương ứng Vector of output values Nếu giá trị tín hiệu vào bé / lớn giá trị / giá trị cuối Vector of input values, 82 Simulink thực ngoại suy hai gía trị / cuối Vector of output values Vector of input values Vector hàng hay Vector cột b Lookup Table (2-D)1 Khối cho phép tạo nên bảng tra hai chiều Bằng tham số Table ta khai báo ma trận cất tín hiệu đầu Muốn tìm giá trị đưa tới đầu ta cần biết Row để tìm hàng Column để tìm cột giá trị ma trận Tín hiệu đặt đầu vào phía so với Row tín hiệu đặt đầu vào phía so với Column II áp dụng Simulink vào thiết kế phân tích Trong việc khảo sát ứng dụng ta thử xây sơ đồ mô cho hệ xo khối dao động lò l−ợng sau: f k m y 83 Hệ lị xo khối lượng mơ tả phương trình vi phân: m&y&ky f m: khối lượng; k: độ cứng lị xo Từ ta có sơ đồ khối sau: f &y& ũ y& ũ y Hình 1: Sơ đồ khối hệ dao động Sau ta thử xây dựng sơ đồ mô Simulink Hình Sơ đồ khối mơ hệ khối l−ợng lị xo Hình Dạng sóng ngõ Scope Từ sơ đồ thiết kế ta thêm vào khối để khảo sát hệ như: hệ số cứng (gain), thay đổi dạng sóng Trong sách tập điều khiển tự động có khối khơng biết đáp ứng hệ Việc dùng Simulink để khảo sát thuận tiệncho việc phân tích tốn 84 Hình Sơ đồ khối hệ d−ới tác động đáp ứng Hình Đáp ứng sơ đồ hình 2.35 2.36 sơ đồ động điện đáp ứng vận tốc quay Hình Sơ đồ khối động điện 85 Hình Đáp ứng vận tốc quay Trong điều khiển tự động thên vào khâu P, PI, PID làm cho hệ thống hoạt động tốt ổn định Các sơ đồ điều khiển mô Hình Hệ thống điều khiển có khâu PI Hình Đáp ứng khâu bão hịa 86 Hình 2.39 Đáp ứng ngõ Hình 10 Hệ thống mơ chuyển động rơi banh Hình 11 Kết mơ 87 Hình 12 Sơ đồ mơ khâu bậc hai Hình 13: Đáp ứng khâu bậc hai d−ới ngõ vào hàm dốc b−ớc Hình 14 Mơ hình động khơng đồng 88 Hình 2.45 Kết mơ Hình : Sơ đồ điểu khiển động DC Hình 15 : Đáp ứng động với khâu P 89 CuuDuongThanCong.com https://fb.com/tailieudientucntt 90 CuuDuongThanCong.com https://fb.com/tailieudientucntt ... a) Công dụng: Thực lệnh thỏa điều kiện b) Cú pháp: if biểu thức luận lý thực công việc 1; elseif biểu thức luận lý thực công việc 2; else thực công việc 3; end c) Giải thích: Khi biểu thức luận. .. mặc định Matlab b) Cú pháp: demo c) Giải thích: demo: chương trình có sẵn trong Matlab, chương trình minh họa số chức Matlab 10 Lệnh DIARY a) Công dụng: Lưu vùng thành file đĩa b) Cú pháp: diary... dụng mà phần mềm MATLAB thưc MATLAB phần mềm lớn lĩnh vực tốn số cịn có khả ngơn ngữ lập trình bậc cao với tính đồ họa phong phú MATLAB với công cụ : Control System Toolbox (công cụ khảo sát