1. Trang chủ
  2. » Luận Văn - Báo Cáo

Sử dụng matlab để tạo ra hộp công cụ giải bài toán trong điều khiển tự động

70 615 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 70
Dung lượng 8,85 MB

Nội dung

Tên đề tài: Sử dụng MATLAB tạo ra hộp công cụ dùng để giải các bài toán trong tự động điều khiển.. Cùng với sự phát triển mạnh mẽ của ngành kỹ thuật máy tính và côngnghệ thông tin, thì

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO CỘNG HÒA XÃ HỘI CHỦ NGHĨA VỆT NAM

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH ĐỘC LẬP - TỰ DO - HẠNH PHÚC TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT -o Oo -

TP HỒ CHÍ MINH

  

KHOA ĐIỆNBỘ MÔN ĐIỆN – ĐIỆN TỬ

NHIỆM VỤ LUẬN VĂN TỐT NGHIỆP

Họ và tên : Lê Trung Hiền

MSSV : 95101051

Lớp : 95KĐĐ

Ngành : Kỹ thuật Điện – Điện Tử

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

1 Tên đề tài: Sử dụng MATLAB tạo ra hộp công cụ

dùng để giải các bài toán trong tự động điều khiển.

2 Nội dung các phần thuyết minh

Chương I : Giới thiệu những ưu điểm hiện có của MATLAB khi ứng

dụng trong tự động điều khiển

 Xét tính ổn định của hệ thống

Chương IV : Dùng MATLAB viết chương trình tạo ra hộp

công cụ

Chương V : Kết quả chạy chương trình.

3 Các bản vẽ : Trình bày các giao diện chạy trong MATLAB.

GVHD :Th.S Lê Cảnh Trung

Ngày giao nhiệm vụ : 23/12/1999 Ngày hoàn thành : 28/3/2000

GVHD SVTH Thông qua bộ môn

Trang 2

Lê cảnh Trung Lê Trung Hiền

Trang 3

BẢN NHẬN XÉT LUẬN VĂN TỐT NGHIỆP CỦA CÁN BỘ HƯỚNG DẪN

* * *  * * *

Họ và tên : Lê Trung Hiền

Lớp : 95KĐĐ

MSSV : 95101051

GVHD : Th.S Lê Cảnh Trung

Tên đề tài: Sử dụng MATLAB tạo ra hộp công cụ

dùng để giải các bài toán trong tự động điều khiển.

 Lời nhận xét của cán bộ hướng dẫn:

Trang 4

-Thành Phố ngày tháng năm 2000 Cán bộ hướng dẫn

Th.S Lê Cảnh Trung

Trang 5

BẢN NHẬN XÉT LUẬN VĂN TỐT NGHIỆP CỦA CÁN BỘ PHẢN BIỆN

* * *  * * *

Họ và tên : Lê Trung Hiền

Lớp : 95KĐĐ

MSSV : 95101051

GVHD :Th.S Lê Cảnh Trung

Tên đề tài: Sử dụng MATLAB tạo ra hộp công cụ

dùng để giải các bài toán trong tự động điều khiển.

 Lời nhận xét của cán bộ phản biện:

Trang 6

-Thành Phố ngày tháng năm 2000 Cán bộ phản biện

Trang 7

Với tấm lòng tôn sư trọng đạo, chúng em xin chân thành cảm ơn các thầy cô đãtận tình dạy bảo cho chúng em trong những năm vừa qua,và truyền đạt chochúng em những kiến thức quí báo để làm hành trang cho em bước vào đời.

Xin ghi nhớ công ơn của cha mẹ đã không quản mọi gian lao khó nhọc ,

và cả sự hy sinh cao cả để cho con được như ngày hôm nay

Xin chân thành cảm ơn các thầy cô trường Đại Học Sư Phạm Kỹ

Thuật đã tận tình chỉ bảo chúng em trong suốt khóa học vừa qua.

Xin cảm ơn thầy Lê Cảnh Trung đã tận tình hướng dẫn và cung cấp cho

em những tài liệu quý báo để hoàn thành luận văn này, cũng như truyền thụnhững kinh nghiệm quý báotrong suốt thời gian thực hiện nghiên cứu đề tài.Một lần nữa xin gởi đến những người thân yêu, bạn, các anh chị Đã góp

ý giúp đở về tinh thần cũng như về kinh nghiệm, kiến thức một lời biết ơn sâu sắc nhất

TP HỒ CHÍ MINH ngày 20 tháng 2 năm 2000

Sinh viên thực hiện

Lê Trung Hiền

Trang 8

TÀI LIỆU THAM KHẢO

  

1 Điều khiển tự động 1,2

Pts : Nguyễn Thị Phương Hà

Nhà Xuất Bản Khoa Học Và Kỹ Thuật Năm 1996

2 Bài Tập Điều khiển tự động 1,2

Pts : Nguyễn Thị Phương Hà

Nhà Xuất Bản Khoa Học Và Kỹ Thuật Năm 1996

3 Điều khiển tự động

Lương Văn Lăng

Nhà Xuất Bản Giáo Dục Năm 1996

4 Giáo Trình Lý Thuyết Điều khiển tự động Phần I,II

Th.s : Trần Sum

Trường Đại Học Sư Phạm Kỹ Thuật

5 Xử Lý tín hiệu Và Lọc Số

Nguyễn Quốc Trung

Nhà Xuất Bản Khoa Học Và Kỹ Thuật Năm 1998

6 Tiểu Luận Môn Điều Khiển Học Kỹ Thuật

Th.s : Lê Cảnh Trung

7 Using Matlab Simulink And Control System Toolbox

Alberto Cavallo

Roberto Setola

Francesco Vasca

NXB Prentice Hall

8 Using Matlab To Analyze And Design Control System

Naomi Ehrich Leonard – Princeton University

William S Levine - University of Maryland

9 The Matlab 5 Handbook

Darren Redfern

Colin Campbell

NXB Springer

Trang 9

LỜI NÓI ĐẦU

Ngày nay đất nước ta đang trên đà phát triển về mọi mặt để hòa nhậpvào nền văn minh trong các nước tiên tiến ở khu vực và thế giới Do đó cần sựcó mặt của ngành tự động điều khiển để thực hiện công việc với độ chính xácvà an toàn cao, một phần nào đó cũng làm giảm bớt sự lao động chân tay củacon người

Cùng với sự phát triển mạnh mẽ của ngành kỹ thuật máy tính và côngnghệ thông tin, thì việc ứng dụng máy tính vào để giải những bài toán phứctạp trong hệ thống tự động điều khiển - như hệ thống nhiều ngõ vào và nhiềungõ ra (MIMO)- thì không khó khăn lắm , mà độ chính xác lại cao hơn hẳn từđó dẫn đến việc thiết kế và tính toán trở nên dễ dàng trong thời gian ngắn.Để đóng góp một phần nào đó và tuân theo mục tiêu đào tạo của trường

ĐH SƯ PHẠM KỸ THUẬT, người viết đi vào tìm hiểu một phần mềm đượcứng dụng khá phổ biến trong nhiều lĩnh vực, trong đó có lĩnh vực tự động điềukhiển, đó là MATLAB

Matlab là một phần mềm rất được ưa chuộng cho các lập trình tính toán trongkỹ thuật hiện nay Nó hầu như được phổ biến rộng khắp trong các trường đạihọc ở nhiều nước.Với Matlab công việc tính toán trở nên đơn giản và nhẹnhàng hơn so với nhiều ngôn ngữ lập trình khác nhờ đã thiết kế sẵn cáctoolbox giúp cho người sử dụng:

 Control System Tollbox: là nền tảng của họ toolbox thiết kế điều khiểnbằng Matlab Nó chứa các hàn cho việc mô phỏng, phân tích và thiết kếcác hệ thống trong tự động điều khiển

 Frequency Domain System Identification Tollbox: Bao gồm các M-file giúpcho việc mô phỏng các hệ thống tuyến tính trên cơ sở phép đo đáp ứng tầnsố của hệ thống

 Fuzzy Logic Tollbox: Cung cấp một tập hợp đầy đủ các công cụ cho việcthiết kế, mô phỏng và phân tích các hệ thống logic mờ (Fuzzy Inferencs)

 Higher Order Spectral Analysis Toolbox: cung cấp các công cụ cho việc xửlý tín hiệu dùng phổ bậc cao Các phương này đặc biệt hữu dụng cho phântích các tín hiệu có nguồn gốc từ một quá trình phi tuyến hay bị nhiễu phiGaussian ( non-Gaussian noise) xâm nhập

 Image Processing Toolbox: chứ các công cụ cho việc sử lý ảnh Nó bao gồmcác công cụ cho việc thiết kế các bộ lọc và lưu trữ ảnh, nâng cấp ảnh, phântích và thống kê

 Model Predictive Control Tollbox: đặc biệt hữu dụng cho các ứng dụng điềukhiển với nhiều biến ngõ vào (input) và ngõ ra (output) mà phần lớn có cácgiới hạn nhất là trog kỹ thuật hóa chất

Trang 10

 Mu-Analysis And Syntheris Tollbox: chứa các công cụ chuyên môn hóa chođiều khiển tối ưu hóa ; Đặc biệt trong lĩnh vực robot cao cấp và các hệthống đa biến tuyến tính.

 Signal Processing Tollbox: chứa các công cụ xử lý tín hiệu Các ứng dụngbao gồm: Audio (Đĩa compact, băng digital), video (digital HDTV, xử lý vànén ảnh), viễn thông (fax, telephone), y học, địa lý

 Non-linear Control Design Tollbox: cho phép thiết kế các hệ thống điềukhiển tuyến tính và phi tuyến, sử dụng kỹ thuật tối ưu hóa trên cơ sở miềnthời gian

 Optimization Tollbox: Các lệnh dùng cho sự tối ưu hóa các hàm tuyến tínhvà phi tuyến tổng quát

 Symbolic Match Toolbox: Bao gồm các công cụ cho việc tính toán trên cácbiểu thức

 System Identification Toolbox: Tập hợp các công cụ cho ước lượng và nhậndạng (tìm mô hình toán học cho một hệ thống vật lý)

 Robust Control System: Các công cụ cho phép phân tích và tổng hợp cáchệ thống điều khiển bằng robot

Ngoài ra còn có các toolbox khác như NAG Foundation Toolbox,Quantitative Feedback Workshop, Spline Toolbox, Statics Toolbox

Một khả năng khác cần phải nhắc đến của Matlab là biểu diễn databằng đồ thị hai chiều, ba chiều bằng các lệnh (hàm) khá đơn giản

Màn hình giới thiệu Matlab 5.3

Trang 11

Màn hình DEMO của Matlab

Trang 12

I Chương mở đầu

-oOo -I Giới thiệu chung

Ngày nay tự động điều khiển đóng vai trò quan trọng trong đời sống vàcông nghiệp Lĩnh vực này hiện hữu khắp nơi từ hệ thống phi thyền khônggian, hệ thống điều khiển tên lửa, máy bay không người lái,robot Hoặc trongcác quy trình công nghệ sản xuất hiện đại và ngay cả trong đời sống hằngngày như : Điều khiển nhiệt độ, độ ẩm

Phát minh đầu tiên đánh dấu bước mở đầu cho sự phát triển của lĩnh vựcđiều khiển tự động là bộ điều tốc ly tâm để điều chỉnh tốc độ máy hơi nướccủa James Watt (1874) Năm 1922, Nynorsky thực hiện hệ thống điều khiểncác con tàu và chứng minh tính ổn định của hệ thống có thể xác định bằngphương trình vi phân mô tả hệ thống Cũng ở thời điểm này Nyquist đã đưa ramột nguyên tắc tương đối đơn giản để xác dịnh tính ổn định của hệ thốngvòng kín dựa trên cơ sở đáp ứng vòng hở đối với tín hiệu vào hình sin ở trạngthái xác lập Năm 1934 Hazen đã giới thiệu thuật ngữ điều chỉnh cơ tự động(Servo mechanism) cho những hệ thống điều khiển định vị và thảo luận đếnviệc thiết kế hệ thống rơle điều chỉnh cơ tự động với tín hiệu ngõ vào thay đổi.Trong suốt thập niên 40 của thế kỷ XX, phương pháp đáp ứng tần số đãgiúp cho các kĩ sư thiết kế các hệ thống vòng kín tuyến tính thỏa các yêu cầuchất lượng điều khiển Từ cuối thập niên 40 đến đầu thập niên 50 phươngpháp quỹ đạo nghiệm của Evans được phát triển khá hoàn thiện Với phươngpháp quỹ đạo ngiệm và đáp ứng tần số được xem là cốt lỏi của lý thuyết điềukhiển cổ điển cho phép chúng ta thiết kế những hệ thống ổn định và thỏa cácchỉ tiêu chất lượng điều khiển Những hệ thống này được chấp nhận nhưngchưa phải là tối ưu, hoàn thiện nhất

Khi các hệ thống máy móc hiện đại ngày càng phức tạp với nhiều tín hiệungỏ vào và ngỏ ra thì việc mô tả hệ thống hiện đại này đòi hỏi một lượng rấtlớn các phương trình Lý thuyết điều khiển cổ điển liên quan đến hệ thốngmột ngỏ vào một ngỏ ra trở nên bất lực để phân tích hệ thống nhiều đầu vàovà nhiều đầu ra Kể từ năm 1960, nhờ máy tính số cho phép ta phân tích cáchệ thống phức tạp trong miền thời gian, lý thuyết điều khiển hiện đại đượcphát triển để đối phó với sự phức tạp của các hệ thống hiện đại Lý thuyếtđiều khiển hiện đại dựa trên phân tích trong trong miền thời gian và tổnghợp dùng các biến trạng thái, cho phép giải quyết các bài toán điều khiển cóyêu cầu chặt chẻ về độ chính xác, trọng lượng và giá thành của hệ thống tronglĩnh vực kỹ nghệ, không gian và quân sự

Trang 13

II Mục đích nghiên cứu

Trên đà phát triển đó, đồng thời chuẩn bị cho kì thi tốt nghiệp kết thúcgiai đoạn học cũng như hoàn tất chương trình học của trường Người thực hiện

đi vào nghiên cứu sự ứng dụng của Matlab trong lĩnh vực điều khiển tự động,nhằm tạo ra một hộp công cụ mà từ đó ta có thể tính toán hay tìm hiểu cácchỉ tiêu về chất lượng, cũng như độ ổn định của hệ thống điều khiển Phầnnào cũng giải quyết được những vấn đề gặp khó khăn trên thực tế khi làmbằng tay đối với những hệ thống phức tạp

Cũng qua việc nghiên cứu đề tài này người thực hiện cũng muốn cũng cố lạinhững kiến thức đã học và tìm hiểu thêm những nét mới từ những kiến thứcđó, để sau khi tốt nghiệp có khả năng vận dụng vào cuộc sống thực tiễn

Với đề tài “ SỬ DỤNG MATLAB TẠO HỘP CÔNG CỤ DÙNG ĐỂ GIẢI

CÁC BÀI TOÁN TRONG TỰ ĐỘNG ĐIỀU KHIỂN“, người viết chia thành

năm chương như sau:

Chương I : Giới thiệu chung về Matlab nhằm giúp cho chúng ta

hiểu rõ hơn những nét mạnh của phần mềm này Hầu như nó được ứngdụng trong mọi lĩnh vực

Chương II : Các vấn đề cơ bản trong Matlab Trong chương này

chúng ta đi vào tìm hiểu cách nhập xuất, tính toán, tạo hàm trong cửa sổsoạn thảo của Matlab và vẽ đồ thị

Chương III : Ứng dụng Matlab 5.3 trong tự động điều khiển.

Trong chương này người viết trình bày cách thức miêu tả các biến trạngthái, ma trận trạng thái,cực (poles), zero trong hệ thống LTI (Hệ thốngtuyến tính bất biến theo thời gian) Cũng như cách tạo ra hàm truyền từnhững điều kiện, và từ đó xét tính ổn định của hệ thống thông qua việc vẽgiản đồ trong các miền thời gian, tần số, hay quỹ đạo nghiệm

Chương IV : Sử dụng Matlab 5.3 viết chương trình tạo ra hộp

công cụ.

Chương V : Kết quả thực thi chương trình.

Trang 14

III Giới hạn đề tài.

Do đây là một phần mềm mới được phổ biến rộng do đó việc hiểu được nócần phải có thời gian nghiên cứu lâu hơn Nhưng do chương trình đào tạo củanhà trường phân công cho việc làm đề tài ngắn, nên người thực hiện chỉ đivào nghiên cứu ứng dụng của Matlab trong lĩnh vực điều khiển tự động ở hệtuyến tính liên tục bất biến theo thời gian (LTI) và chỉ dừng lại ở hàm liêntục Đồng thờido nhiều yếu tố khách quan hay chủ quan mà việc tiếp thunhững kiến thức mới còn hạn chế Nên người viết rất mong sự đóng góp nhiệttình của các thầy cô, các bạn đọc; Dể việc tiếp thu kiến thức mới tốt hơn vàđút kết được nhiều kinh nghiệm trong tương lai

Xin chân thành cảm ơn.

SVTH : Lê Trung Hiền

Trang 15

II : CƠ BẢN VỀ MATLAB

>>>oOo<<<II>>>oOo<<<

I Bắt đầu với matlab

Matlab được khởi động khi ta chọn matlab trong hệ thống (tức là nhấp

start _ programs _ matlab _ matlab5.3), hay nhấp(click) vào biểu tượng của

Matlab Khi đó Matlab sẽ xuất hiện trên màn hình, với một vài lời giới thiệu

ban đầu và sau đó là dấu nhắc hệ thống “>>” trong Matlab Từ đó ta có thể

thực hiện việc tính toán hay thực hiện các câu lệnh một cách dễ dàng

Muốn thoát khỏi Matlab, ta có thể thực hiện một trong những cách sau:

Cách 1: vào file menu và click vào Exit MATLAB.

cách 2: nhấp vào biểu tượng close ( )trên cửa sổ làm việc của Matlab.

Cách 3: dùng tổ hợp phím ctrl+Q

II Các biểu thức toán cơ bản trong matlab.

Làm việc trong môi trường Matlab thì không phức tạp lắm bởi vì hầu hếtcác lệnh đã được nhập vào vì vậy bạn chỉ cần viết biểu thức toán học và entersau đó Matlab sẽ hiển thị kết quả trên màn hình

Ví dụ 1: Tính A= 4:3 ta thực hiện như sau:

» A=4/3

Kết quả là:

A =

1.3333

Tức là biến A có giá trị 4:3=1.3333 Trong Matlab công nhận tên biến có tối

đa 19 kí tự và kí tự đầu tiên của tên biến phải là chữ cái Chú ý việc đặc tênbiến là kí tự thường hay kí tự hoa là hoàn toàn khác nhau tron g Matlab, ví dụnhư biến A và biến a là khác nhau hoàn toàn.Nhưng hầu hết những lệnh lệnhtrong Matlab được viết bằng kí tự thường

Trong trường hợp không đặt tên biến cho biểu thức và chỉ muốn kết quả củabiểu thức ta có thể thực hiện :

Một cách khác muốn tạo ra một biến mới nhưng không muốn hiển thị kết

quả trong Matlab, bằng cách ta thêm dấu chấm phẩy (;) ở cuối biểu thức.

Trang 16

ví dụ 2 : khi thực hiện lệnh

Khi tính mũ x cơ số y nào đó ta dùng toán tử sau:

ví dụ 4: tính p2 ta thự hiện lệnh:

» p^2

Kết quả nhận được:

ans =

441 ( tức là 212=441)

 Một số toán hạng cơ bản sử dụng trong Matlab:

^ phép toán lũy thừa

* phép toán nhân

/ hay \ phép toán chia

+ phép toán cộng

- phép toán trừ

Trong trường hợp phép chia có hai loại : phép chia trái (\) và phép chia phải (/), chúng hoàn toàn giống nhau nhưng số bị chia và số chia bị đảo ngược.

Ta có : a/b=a -1 b

vậy a\b = b/a = b -1 a

Sau đây là một số ví dụ về biểu thức toán cơ bản :

ví dụ 5 : tính x=1+23/4*2

» x=1+2^3/4*2

kết quả là:

x =

Trang 17

chú ý: Những biến mặc định trong Matlab

pi hằng số pi=3.1416

Inf là giá trị ở 

NaN là giá trị của (0/0) hay (Inf/Inf)

ví dụ 8:

» d=4/0

Kết quả cho:

Warning: Divide by zero ( cảnh báo chia cho 0)

việc nhập vào Matlab một số phức là hoàn toàn đơn giản

ví dụ 10 : nhập t=2+3i hay 2+ 3j cũng được

» t=2+3*i

Kết quả:

t =

2.0000 + 3.0000i

Trang 18

ví dụ 11 : Tìm căn bậc hai của số phức : 2+3i

» z=sqrt(2+3*i)

Kết quả:

z =

1.6741 + 0.8960i

chú ý: Hàm sqrt tìm căn bậc hai

III Tạo ra một tập tin nguyên bản (script file)

Để thực hiện một công việc gồm một chuổi các động tác tính toán và dễ

dàng lưu trữ ta nên tạo ra một tập tin gọi là Scrip File Đây là một tập tin có phần mở rộng là “.m” và được viết trong màn hình soạn thảo của Matlab Cấu trúc cơ bản của script file gồm hai phần, được miêu tả như trong ví dụ sau:

% bien NUM tao ra bieu thuc cua tu

% bien DEN tao ra bieu thuc cua mau

% lenh CONV dung de nhan hai da thuc

% ham printsys dung de viet ra bieu thuc num/den

Đây là Script File có tên là baitap1.m gồm:

phần A: gọi là phần giải thích, nó được lờ đi trong Matlab khi tính toán.

Và chỉ xuất hiện khi trong Matlab ta gỏ lệnh:

>> help baitap1

Phần B: là toàn bộ chương trình chính và sẽ được Matlab thực thi khi ta

gọi đúng tên baitap1.

IV Ma trận, vectơ và đa thức

IV.1 Những lệnh về ma trận và vectơ

Ma trận được nhập vào Matlab bằng cách liệt kê các phần tử của matrận và cho chúng vào trong một dấu ngoặc vuông Các phần tử của một hàngđược phân cách bởi dấu phẩy hoặc các khoảng trống, và các hàng được phâncách bằng dấu chấm phẩy “;”

Ví dụ khi nhập vào Matlab:

» A=[1 2;3 4]

Kết quả ta được ma trận A như sau:

Trang 19

2 2 (Tức là ma trận A có kích thước là 2x2 ).

Muốn thay đổi phần tử thứ hai của hàng thứ hai (tức là 4) thành số 5 ta

» A(3,3)=6 (thêm phần tử ở cột thứ ba và hàng thứ ba là 6)

Kết quả cho:

Trang 20

Kết quả cho ra một vectơ từ 1 đến 5 với bước nhảy là 1

tỉ lệ logarit như đồ thị Bode Lệnh linkspace cũng giống như lệnh logspace

ngoại trừ các phần tử của vectơ được sắp đặt theo tuyến tính

Khi muốn thêm vào ma trận A ở trên một hàng ta thực hiện như sau:

» A=[A;[7 8 9]] (thêm vào ma trận một hàng 7 8 9)

kết quả cho:

ma trận A có được

Từ ma trận A có được ở trên ta trích ra một ma trận B gồm hàng 2 và hàng

3 của ma trận A, thực hiện như sau:

» B=A(2:3,1:3) ( tức là lấy hàng 2 và 3; cột 1 đến cột 3 của

Hay thực hiện lệnh sau:

» B=A(2:3,:) ( tức là ma trận B lấy hàng 2, 3 và tất cả các

cột cua ma trận A)Kết quả cho giống như trên:

B =

3 5 0

0 0 6

Trang 21

Matlab có các lệnh để tạo ra các ma trận đặc biệt Ví dụ ta có thể tạo ra

một ma trận chéo với lệnh diag bằng cách dùng các vectơ chứa các phần tử

chéo như đối số đầu vào, như là:

eye và tạo matrận với những phần tử là 0, những phần tử bằng 1 và những

phần tử ngẫu nhiên (được phân chia đồng đều từ 0 đến 1) tương ứng Nhữnglệnh này cũng dùng để tạo ra những matrận không vuông Ví dụ như

zeros(2,4) tạo ra matrận 2 x 4 của số 0 như sau:

IV.2 Các lệnh về đa thức

Đa thức được diễn tả trong Matlab bởi hàng vectơ với những phần tử là những hệ số của đa thức theo thứ tự giảm dần của số mũ

Ví du ï : nhập vào đa thức p = s 2 +5s+6,ta thực hiện trong MATLAB là: p = [1 5

6].Hệ số zero cũng được thêm vào để tránh sự mơ hồ; Như là nhập đa thức q

= s 3 +5s+6 ta nhập vào như sau q= [1 0 5 6] Một đa thức có thể tính được giá trị ứng với giá trị từng biến bằng cách dùng lệnh polyval.

Ví dụ :

» polyval(p,1)

Kết quả thu được:

ans =

Trang 22

12 (tức là cho giá trị của đa thức p với s = 1)

Lệnh roots thì thuận lợi cho việc tìm nghiệm của đa thức

Lệnh conv dùng để nhân hai đa thức và deconv để chia hai đa thức

Script file polyroly.m được thể hiện dưới dây mô tả những lệnh đã dùng

thương số dù cho số dư không phải là 0 Tuy nhiên nếu sử dụng hai đối

số nhập vào thì Matlab sẽ trả về hai giá trị thương q và số dư r như

Trang 23

poly : cho đa thức từ nghiệm

roots : tìm nghiệm của đa thức

polyval : giá trị của đa thức cho bởi một điểm

polyvalm : ước lượng ma trận của đa thức

conv : nhân hai ma trận

deconv : chia hai ma trận

residue :phân tích phân số thành từng phần

polyder : đa thức đạo hàm

polyfit : đa thức nội suy

V Toán tử và hàm trong ma trận

Matlab thi hành những phép toán trong ma trận một cách dễ dàng nhưthực hiện trong phép toán vô hướng, đơn giản chỉ cần gỏ:

y = Q/P Mặc dù Matlab không cần những lời chỉ dẫn trong nhân hoặc chia hai

ma trận nhưng nó qui định kích thước bên trong hai ma trận nhân hay chiaphải giống nhau Ngoại trừ việc nhân hoặc chia một matrận với một đối số vôhướng, số nàylà giá trị tính toán Matlab sẽ cảnh báo nếu bạn nhân hai matrận có kích thước không thích hợp

Ví dụ như chạy chương trình mistake.m

mistake.m

» % mistake: show what happens when you try to multiply

» % matrices having incompatible dimensions.

Trang 24

Để gở lỗi ta nhập lệnh size(x) và size(y) để kiểm tra kích thước của

ma trận x và y Tuy nhiên bạn sẽ tìm thấy x là matrận 2 x 2 và y làmatrận 3 x 2

Matlab bao gồm nhiều chức năng khác biểu diễn sự hoạt động của

matrận, như là lệnh det(X) và inv(X) kết quả tạo ra định thức

(determiant) và nghịch đảo (inverse) của X theo từng cái tương ứng

Hàm rank(X) xác định loại của matrận X Hàm eig(X) trả về giá trị của X trong một cột vetơ Hàm expm(X) để tính e x

Chú ý rằng có những chức năng qui định việc nhập các đối số vào

matrận vuông Để khảo xác thêm vài chức năng khác và học nhiều hơn

về cách dùng của những chức năng trên ta dùng lệnh help để diễn tả

Matlab cho ta cách dùng các hàm khác nhau để tính toán trên cácchuổi thay vì trên các ma trận Ví dụ giả sử ta có một bảng số liệu nhưmột chuổi gọi là Data Bây giờ ta muốn tính căn bậc hai và tìm bìnhphương của mổi phần tử trong Data Dùng một dấu chấm “.” ta có thểbiến đổi các toán tử ma trận toán học thành toán tử phần tử liên tục.Đặc biệt theo sau các toán tử là dấu “.” là biểu thị toán tử chuổi Nhưvậy để nhân hai chuổi R và S có cùng kích thước theo từng phần tửtương ứng ta thực hiện R.*S như dưới đây:

Matlab có một vài chức năng tự động tính theo từng phần tử tương

ứng trong một dãy Ví dụ như , exp(X) sẽ trở về một dãy với từng phần

tử được trở thành hàm e mũ của từng phần tử tương ứng của X

Matlab tạo ra các toán tử liên hệ của từng phần tử Toán tử liên hệ nàysẽ so sánh hai đại lượng và cho ra kết quả là 1 nếu đúng và bằng 0 nếusai Ví dụ nếu nhập vào t = 17 > 55, matlab sẽ cho kết quả t = 0 khi tasử dụng với hai ma trận, toán tử ma trận sẽ so sánh tương ứng từngphần tử trong ma trận Ví dụ như , L = D <= X sẽ kiểm tra mỗi phần tửcủa ma trận D tương ứng với từng phần tử của X Nếu phần tử của Dnhỏ hơn hoặc bằng với phần tử của X tương ứng thì L có giá trị là 1,ngược lại L có giá trị bằng 0

Tất cả các toán tử logic như & đặc trưng cho ANDø , | đặc trưng cho

OR và ~ cho NOT tất cả trả về giá trị 1 nếu đúng và 0 nếu sai.

Ví dụ:

Trang 25

Ta có thể nghiên cứu thêm về toán tử so sánh bằng cách dùng lệnh

help relop hoặc help <=

VI Tạo hàm chức năng

Khi bạn đã nắm vững một chuổi các lệnh thực hiện những chứcnăng hữu dụng, có thể ta muốn biến nó thành một lệnh hàm mới và tạo

ra một nhánh làm việc độc lập với Matlab Muốn thực hiện được điềunày ta phải tạo ra một file hàm Các file hàm này là các m-file, các filenày giống như script file Sự khác biệt lớn là hàng đầu tiên của file

hàm bắt đầu với từ function, theo sau là một câu xác định tên của hàm

và các đối số đầu vào, đầu ra; có dạng :

Function[đối số ngõ vào]=tên hàm(đối số ngõ ra).

Ví dụ: tao ra hàm timnghiem2 để tìm nghiệm phương trình bậc hai

với hệ số a#0 Ta thực hiện như sau:

% timnghiem2.m

% Tao ra ham timnghiem2 de tim nghiem phuong tring bac hai:

% 2

% a.x + b.x + c = =0 (voi he so a#0 )

% GV huong dan : TS LE CANH TRUNG

% Duoc viet boi : LE TRUNG HIEN MSSV:95101051

% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

function [x1,x2] = timnghiem2(a,b,c) % tao ham timnghiem2

can_delta=sqrt(b^2-4*a*c); % tim can bac hai cua delta

x1=(-b+can_delta)/(2*a); % tinh nghiem x1

x2=(-b-can_delta)/(2*a); % tinh nghiem x1

% thu tim nghiem phuong trinh bac hai

% dung file ham da tao la timnghiem2

% GV huong dan : TS LE CANH TRUNG

% Duoc viet boi : LE TRUNG HIEN MSSV:95101051

% +++++++++++++++++++++++++++++++++++++++++++++++++++++

Trang 26

a=input( 'nhap vao he so a (voi a#0): ' ) % cho nhap vao he so a tu ban phim

b=input( 'nhap vao he so b: ' ) % cho nhap vao he so a tu ban phim

c=input( 'nhap vao he so c: ' ) % cho nhap vao he so a tu ban phim

disp( 'ta co cac nghiem sau: ' ) % hien thi cau lenh trong dau ( ' ' )

a.x + b.x + c = =0 (voi he so a#0 )

GV huong dan : TS LE CANH TRUNG

Duoc viet boi : LE TRUNG HIEN MSSV:95101051

Trang 27

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

VII Những vấn đề cơ bản về đồ thị

Matlab cho phép vẽ đồ thị trong những cửa sổ khác nhau, và tên là

“figures”.Một cách mặc nhiên matlab vẽ đồ thị trong cửa sổ số 1 Nếu ta

muốn mở cửa sổ thứ n chúng ta dùng lệnh figure(n),với n là số nguyên.Bây giờ matlab sẽ vẽ đồ thị trên cửa sổ n này trừ phi người sử dụng thay đổi cửa sổ mới.Muốn đóng cửa sổ n này ta dùng lệnh close(n),lệnh close all đóng tất cả các cửa sổ,trong khi lệnh close chỉ đóng duy nhất một cửa sổ nguồn

VII.1 Đồ thị trong không gian hai chiều.

Bây giờ ta sẽ làm việc trong cửa sổ đầu tiên.Lệnh chính để vẽ đồ thị

hai chiều là plot.

Ta bắt đầu bằng ví dụ đơn giản, để vẽ đồ thị của dảy sau:

Ta có được kết quả như hình 1 ở dưới:

Từ hình 1 ta có một số nhận xét sau:

 Trục chia độ là tự động

 Tiêu đề của cửa sổ là “Figure No 1” để chỉ cửa sổ đang làm việc là cửa sổnguồn

 Điểm nối trong đồ thị là những đường liên tục

Chú ý: lệnh plot còn chấp nhận một tham số chuổi để dịnh màu và kiểu nối

của đồ thị.Matlab có bốn kiểu cho đường vẽ,năm kiểu cho điểm vẽ và támmàu cơ bản,được tóm tắt như sau:

: -.

- +

* o x

vàng y tím m xanh nhợt c đỏ r xanh lơ g xanh lơ b trắng w đen k

Trang 28

hình 1

Nếu chúng ta muốn vẽđồ thị ứng với mỗi điểm của vectơ Y ở trên là nhữngvòng tròn màu tím,ta dùng lệnh sau:

» plot(Y,'om')

Kết quả là hình 2 ở dưới:

chú ý: trong lệnh plot(Y,'om'); ‘om’ là vẽ những điểm của vectơ Y là những

vòng tròn (o) có màu là màu tím (m_magenta)

Bây giờ ta muốn thêm các tiêu đề,đặt tên trục,và vẽ những đường lưới,cáchthực hiện như sau:

Khi ta dùng lệnh gtext(‘text’) thì chử text sẽ được chèn vào trong đồ thị

khi ta nhấp chuột vào một vị trí thích hợp nào đó trên đồ thị

Trang 29

hình 2

hình 3 Bây giờ ta muốn vẽ đồ thị của một hàm y=f(x), thì lệnh plot(t,y) sẽ vẽ trên

đồ thị những cặp tương ứng (ti,yi)

Trang 30

Ví dụ: vẽ đồ thị hàm sin(t) với t=[1;4*pi] ta dùng:

» t=(0:0.05:4*pi);

» y=sin(t);

» plot(t,y)

» title('Do thi ham sin(t)')

» xlabel('Truc thoi gian')

» ylabel('Truc bien do')

» grid on

Kết quả cho hình 4:

hình 4

VII.2 Vẽ nhiều đồ thị trên cùng một trục.

Đây là phương pháp tốt nhất để so sánh nhiều đồ thị trên cùng một đồthị.Có hai cách thức cho việc vẽ nhiều dồ thị :

a Nếu chúng ta cần vẽ nhiều đồ thị với cùng giá trị hoành độ, ta có thể sử dụng lệnh plot(X,Y) với :

 Nếu Y là ma trận và X là một vectơ, thì những cột (hoặc những hàng)của

ma trận Y được vẽ ứng với những giá trị trong vectơ X;

 Nếu X là ma trận và Y là một vectơ, thì những cột (hoặc những hàng)của

ma trận X được vẽ ứng với những giá trị trong vectơ Y;

Ví dụ : vẽ đồ thị hàm y=sint và y=cost với t=[0,2*pi] ta thực hiện như sau: » t=(0:.1:2*pi)'; % phai chuyen doi thanh một cột vectơ

» y=[sin(t),cos(t)];

Trang 31

» plot(t,y)

Kết quả như hình 5:

hình 5

Chú ý: Trục chia độ là tự động và được xác định trên cơ sở giá trị lớn nhất

và nhỏ nhất trong ma trận y và vectơ t phù hợp với tung độ và hoành độ

b Nếu giới hạn của hoành độ khác nhau Thì ta dùng lệnh plot với nhiều

đối số ngõ vào như sau:

Trang 32

Hình 6 VII.3 Trục chia độ

Như đã nói ở trên, trục chia độ là tự động.Nhưng để thực hiện vẽ đồ thị

với trục chia theo ý muốn chúng ta nên sử dụng lệnh axis.Lệnh này có ba

chức năng chính:

Lệnh axis([xmin,xmax,ymin,ymax]) dùng thay đổi trục hoành và trục

tung trong khoảng xmin,xmax và ymin,ymax

Lệnh axis(axis) dùng để ổn định trục chia độ.

Lệnh axis(‘auto’) phục hồi lại chứ năng chia độ tự động.

Chú ý : lệnh v=axis giữ giới hạn trục nguồn trong vectơ v Nếu một trong

những giới hạn có giá trị là inf, thì giá trị

của trục còn lại cũng ở vô cùng tương ứng;lúc đó ta có :

axis([inf inf inf inf]) giống như dùng lệnh axis(‘auto’)

* Các khả năng khác của trục chia :

 lệnh axis(‘ij’) là dùng tọa độ ma trận với chiều thẳng dứng của trục chỉhướng xuống

lệnh axis(‘xy’) là dùng tọa độ Cartesian với chiều thẳng dứng của trục chỉ

hướng lên

 axis(‘off’) không cho hiện trục chia độ

 axis(‘on’) cho hiện trục chia độ

Có thể dùng lệnh zoom để phóng to từng chi tiết của đồ thị bằng cách dùng

chuột Khi nhấn nút trái chuột tức là phóng to vùng đó lên, nhấn nút phải

chuột để trở về tình trạng ban đầu chức năng zoom off tắt chế độ phóng to Để vẽ một vectơ phức (X) trong mặt phẳng phức ta cũng có thể dùng lệnh

plot(X) kết quả cũng giống như lệnh:

plot(real(X),imag(X))

Trang 33

III ứng dụng MATLAB trong

tự động điều khiển

<<< oOo >>>

Trong chương này chúng ta định rõ tính chất điều khiển với nhữnglệnh trong hộp công cụ của hệ thống tự động điều khiển có liên quan đến sựtrình bày trong hệ thống tuyến tính bất biến theo thời gian LTI (linear timeinvariant system) và hình thức thay đổi giữa chúng,sự chuyển đổi kiểu thờigian từ liên tục sang rời rạc, những đặc tính vận dụng và quan sát, nhữnghình thức giảm bậc và mối liên lạc giữa nối tiếp, song song và phản hồi

Sự vận dụng và miêu tả trong hệ thống một ngõ vào, một ngõ ra(SISO)và nột ngõ vào, nhiều ngõ ra (SIMO) cũng sẽ dễ hiểu, trong khi sử dụng nhữnglệnh tự động cho hệ thống nhiều ngõ ra sẽ trở nên phức tạp từ khi MATLABkhông hoạt động với ma trận ba chiều

I sự miêu tả trong hệ thống LTI

Một hệ thống LTI được miêu tả dưới nhiều hình thức khác nhau: tronglĩnh vực về thời gian được miêu tả bằng phương trình vi phân bậc nhất (đượcgọi là trạng thái vào,ra hay hình thức biến trạng thái), trong lĩnh vực phứctạp hơn là hình thức hàm truyền của hệ thống Trong trường hợp đặc biệt,chức năng này có thể được viết như tỉ số của hai đa thức, bằng cách tìmnghiệm của chúng tức là dùng cực, zero hoặc giới hạn bằng cách phân thànhtừng phần nhỏ hay sử dụng thặng dư và cực

Trong phần này, ta quan tâm đến mối quan hệ trong hệ thống liên tục theothời gian Chúng ta sẽ đưa ra những hình thức miêu tả trong matlab dùngnhững lệnh trong điều khiển,từ đó ta có thể hiểu được sâu hơn trong hệ thốngrời rạc theo thời gian

I.1/ Mô hình biến trạng thái:

Trong mỗi hệ thống LTI có thể được trình bày bằng cách đặt phươngtrình vi phân bậc nhất dưới dạng hình thức vectơ:

Ví dụ sự biến đổi trong hệ thống hai tầng tích phân như hình sau:

u=x1’ x1=x2’ y=x2

Trang 34

u 0

1 x 0 1 0 0

I.2/ Mô hình ma trận chuyển đổi

Một sự miêu tả khác trong một hệ thống LTI có thể được thi hành bằngphép biến đổi Laplace, như trong hệ thống tín hiệu liên tục theo thời gian f(t)được định nghĩa là :

Y(s) = G(s)U(s) = (C( s I-A) -1 B+D)U(s)

Trong đó G(s) gọi là ma trận chuyển đổi( hay chức năng chuyển đổi trong hệthống SISO)

Nói tóm lại trong hệ thống SISO thì G(s) được cho từ tỉ số của hai đa thức:Mẫu số có bậc là nx, và tử số có bậc nhỏ hơn hoặc bằng nx Nó có khả năng ấnđịnh bằng hai vecto được cho bởi các hệ số trong đa thức của tử và mẫu và sắpxếp với số mũ giảm dần theo biến số s

Như ví dụ sau, nếu chúng ta muốn miêu tả dưới dạng hàm truyền:

s+2G(s)=

s2+2s+7chúng ta có thể ấn định như sau:

num = [1 2];

den = [1 2 7];

Trong hệ thống SIMO tử số của G(s) là một vectơ của đa thức của tử ,hay nóikhác hơn là một đa thức bậc nhất,trong mỗi một mối quan hệ ta có các giá trịngõ ra khác nhau Trong trường hợp này ma trận có mối quan hệ với vectơnum; trong trường hợp đặc biệt số các hàng của ma trận này là số ngõ ra củahệ thống, ngược lại số cột phải có giá trị lớn nhất giữa chiều dài các dòng

Ví dụ để miêu tả ma trận chuyển đổi của hàm truyền:

s+2

Trang 35

s3+3s2+1G(s)=

I.3/ kiểu hình thức của zero và cực (zero và pole)

Hàm truyền trong hệ thống LTI có thể làm nổi bật bằng sự miêu tảnghiệm của đa thức ở tử số (gọi là zero), và nghiệm của đa thức ở mẫu số làcực (pole)

Ví dụ cho hệ thống SISO và hàm truyền có thể viết dưới hình thức sau:

thể xem lệnh roots và poly )

Trong vấn đề cơ bản đã đề cập ở trên , MATLAB có thể biểu diển hàmtruyển như sau:

(s-3)(s+1)G(s) = 5

(s+2)(s-4) Xem công thức 3.3 có kết quả biểu thị như sau:

Độ lợi : k = 5;

zero : zer = [3;-1];

cực : pol = [-2 4]’; hay pol = [-2;4];

Việc ấn định hai vectơ zer và pol, phải chú ý khi sử dụng kí hiệu mà ta sử

dụng trong những vectơ biểu thị nghiệm của những đa thức tương ứng của tửvà mẫu

Bây giờ ta có một ví dụ khác như sau:

1G(s)=

(s-1-j)(s+1+j) Hàm truyền G(s) không có zero, như vậy ta có thể biểu diển như sau:

Độ lợi : k =1;

Cực : pol= [-1+j;-1-j];

Ngày đăng: 20/05/2014, 10:17

HÌNH ẢNH LIÊN QUAN

VII.1. Đồ thị trong không gian hai chiều. - Sử dụng matlab để tạo ra hộp công cụ giải bài toán trong điều khiển tự động
1. Đồ thị trong không gian hai chiều (Trang 27)
Hình 4    VII.2. Vẽ nhiều đồ thị trên cùng một trục. - Sử dụng matlab để tạo ra hộp công cụ giải bài toán trong điều khiển tự động
Hình 4 VII.2. Vẽ nhiều đồ thị trên cùng một trục (Trang 30)
Hình 3.5: Biểu đồ cực và zero - Sử dụng matlab để tạo ra hộp công cụ giải bài toán trong điều khiển tự động
Hình 3.5 Biểu đồ cực và zero (Trang 52)
Hình 3.6: đáp ứng tự nhiên - Sử dụng matlab để tạo ra hộp công cụ giải bài toán trong điều khiển tự động
Hình 3.6 đáp ứng tự nhiên (Trang 57)
Hình 3.7: So sánh giữa các đáp ứng step    Tổng quát lệnh step có thể dùng trong các hình thức sau: - Sử dụng matlab để tạo ra hộp công cụ giải bài toán trong điều khiển tự động
Hình 3.7 So sánh giữa các đáp ứng step Tổng quát lệnh step có thể dùng trong các hình thức sau: (Trang 58)
Hỡnh 3.9 : Đỏp ứng từng ngừ vào   Tổng quát ta có cấu trúc sau khi dùng lệnh lsim: - Sử dụng matlab để tạo ra hộp công cụ giải bài toán trong điều khiển tự động
nh 3.9 : Đỏp ứng từng ngừ vào Tổng quát ta có cấu trúc sau khi dùng lệnh lsim: (Trang 60)
Hình 3.10 : Giản đồ Bode - Sử dụng matlab để tạo ra hộp công cụ giải bài toán trong điều khiển tự động
Hình 3.10 Giản đồ Bode (Trang 62)
Hình 3.12:Biểu đồ Nichols    Những cấu trúc tổng quát: - Sử dụng matlab để tạo ra hộp công cụ giải bài toán trong điều khiển tự động
Hình 3.12 Biểu đồ Nichols Những cấu trúc tổng quát: (Trang 65)
Hình 3.13:  Biểu đồ diễn tả độ lợi và độ dự trữ    Cấu trúc tổng quát của lệnh margin: - Sử dụng matlab để tạo ra hộp công cụ giải bài toán trong điều khiển tự động
Hình 3.13 Biểu đồ diễn tả độ lợi và độ dự trữ Cấu trúc tổng quát của lệnh margin: (Trang 67)
Hình 3.14: Quỹ đạo nghiệm số     Lệnh tổng quát khi sử dụng lệnh rlocus - Sử dụng matlab để tạo ra hộp công cụ giải bài toán trong điều khiển tự động
Hình 3.14 Quỹ đạo nghiệm số Lệnh tổng quát khi sử dụng lệnh rlocus (Trang 69)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w