Giáo trình Giải tích mạch và mô phỏng trên máy tính
Làm việc trong môi trường Matlab
Matlab là một môi trường tính toán số và lập trình. Giống như một máy tính
cơ bản, nó làm tất cả các phép tính toán học cơ bản như cộng, trừ, nhân, chia; giống
như máy tính kỹ thuật, nó bao gồm: số phức, căn thức, số mũ, logarit, các phép toán
lượng giác như: sin, cos, tang, ; nó cũng giống như máy tính có thể lập trình, có
thể lưu trữ, tìm kiếm lại dữ liệu, cũng có thể tạo, bảo vệ và ghi trình tự các lệnh để
tự động phép toán khi giải quyết các vấn đề, có thể so sánh logic, điều khiển thực
hiện lệnh để đảm bảo tính đúng đắn của phép toán. Giống như các máy tính hiện đại
nhất, nó cho phép biểu diễn dữ liệu dưới nhiều dạng như: biểu diễn thông thường,
ma trận đại số, các hàm tổ hợp và có thể thao tác với dữ liệu thường cũng như đối
với ma trận.
Matlab cung cấp một môi trường phong phú cho biểu diễn dữ liệu và có khả
năng mạnh mẽ về đồ họa, tạo các giao diện riêng cho người sử dụng GUIs. Thêm
vào đó Matlab đưa ra những công cụ để giải quyết những vấn đề đặc biệt, gọi là
Toolbox. Ngoài ra ta còn có thể tạo ra các Toolbox cho riêng mình.
Tóm tắt nội dung tài liệu: Giáo trình Giải tích mạch và mô phỏng trên máy tính
0 TRƢỜNG ĐẠI HỌC PHẠM VĂN ĐỒNG KHOA KỸ THUẬT-CÔNG NGHỆ ------ BÀI GIẢNG GIẢI TÍCH MẠCH VÀ MÔ PHỎNG TRÊN MÁY TÍNH (BẬC: CAO ĐẲNG) Quảng Ngãi, 2014 GV: Trƣơng Quang Sanh BỘ MÔN: Điện-Điện tử KHOA: Kỹ thuật-Công nghệ 1 TRƢỜNG ĐẠI HỌC PHẠM VĂN ĐỒNG KHOA KỸ THUẬT-CÔNG NGHỆ ------ BÀI GIẢNG GIẢI TÍCH MẠCH VÀ MÔ PHỎNG TRÊN MÁY TÍNH BẬC: CAO ĐẲNG (45 tiết) Quảng Ngãi, 2014 GV: Trƣơng Quang Sanh BỘ MÔN: Điện-Điện tử KHOA: Kỹ thuật-Công nghệ 2 LỜI NÓI ĐẦU Điều khiển tự động hóa đóng vai trò quan trọng trong sự phát triển của khoa học và kỹ thuật. Lĩnh vực này sử dụng rất rộng rãi từ hệ thống phi thuyền không gian, hệ thống điều khiển tên lửa, máy bay không ngƣời lái, robot, ngƣời máy tay, máy trong các quá trình sản xuất hiện đại và ngay cả trong đời sống hàng ngày: Điều khiển nhiệt độ, độ ẩm, Khi các máy móc hiện đại ngày nay càng phức tạp hơn nhiều tín hiệu vào và ra thì việc mô tả hệ thống điều khiển đòi hỏi cần phải tính toán nhanh và xử lý một lƣợng lớn các lệnh phức tạp. Nhằm tạo kỹ năng lập trình và mô phỏng để giải quyết các bài toán đại số, phƣơng trình vi phân, ma trận, các bài toán về phƣơng trình toán lý, trong kỹ thuật điện, điện tử, tự động Bài giảng “GIẢI TÍCH MẠCH VÀ MÔ PHỎNG TRÊN MÁY TÍNH” sẽ giúp cho chúng ta tìm hiểu những nội dung cơ bản nhất về Matlab và Simulink cũng nhƣ ứng dụng giải quyết những bài toán kỹ thuật điện đơn giản. Nội dung của bài giảng gồm 8 chƣơng: Chương 1: Các khái niệm cơ bản Chương 2: Tính toán trên các mảng số Chương 3: Nhập - xuất dữ liệu trong MATLAB Chương 4: Các lệnh điều khiển trong MATLAB Chương 5: Hàm do người dùng tự lập Chương 6: Đồ họa trong MATLAB Chương 7: Các bài toán đại số tuyến tính và phương trình vi phân Chương 8: Simulink Do thời gian biên soạn có hạn nên không tránh đƣợc những sai sót, mong những góp ý xin gửi về Bộ môn Điện - Điện tử, khoa Kỹ thuật - Công nghệ, Trƣờng Đại học Phạm Văn Đồng. Trân trọng cảm ơn! Tác giả! 3 MỤC LỤC LỜI NÓI ĐẦU ............................................................................................................ 2 MỤC LỤC ................................................................................................................... 3 Chƣơng 1 ..................................................................................................................... 7 CÁC KHÁI NIỆM CƠ BẢN ...................................................................................... 7 1.1. Giới thiệu phần mềm matlab ............................................................................ 7 1.2. Làm việc trong môi trƣờng Matlab ................................................................... 9 1.3. Các lớp dữ liệu .................................................................................................. 9 1.4. Biến và cấu trúc mảng của biến trong MatLab ............................................... 10 1.4.1. Biến........................................................................................................... 10 1.4.2. Cấu trúc mảng của biến ............................................................................ 11 Chƣơng 2 ................................................................................................................... 15 TÍNH TOÁN TRÊN CÁC MẢNG SỐ ..................................................................... 15 2.1. Biểu thức tính toán số ..................................................................................... 15 2.1.1. Mảng đơn .................................................................................................. 15 2.1.2. Mảng nhiều chiều ..................................................................................... 16 2.2. Khởi tạo các mảng số ...................................................................................... 18 2.3. Các phép tính trên mảng số ............................................................................ 21 2.3.1. Phép toán giữa mảng với số đơn .............................................................. 21 2.3.2. Phép toán giữa mảng với mảng ................................................................ 21 2.3.3. Mảng với lũy thừa .................................................................................... 24 2.4. Các hàm toán học ............................................................................................ 26 2.4.1. Các hàm toán học ..................................................................................... 26 2.4.2. So sánh mảng ............................................................................................ 27 2.5. Xử lý tính toán các mảng số ........................................................................... 28 Chƣơng 3 ................................................................................................................... 34 4 NHẬP - XUẤT DỮ LIỆU TRONG MATLAB ........................................................ 34 3.1. Nhập dữ liệu từ bàn phím bằng hàm input ..................................................... 34 3.2. Nhập dữ liệu từ chuột bằng hàm menu ........................................................... 35 3.3. Xuất dữ liệu ra cửa sổ lệnh bằng hàm disp. Hàm format và các khuôn dạng số35 3.4. Xuất dữ liệu ra cửa sổ lệnh bằng hàm sprintf ................................................. 38 3.5. Xuất dữ liệu ra file bằng lệnh save ................................................................. 39 3.6. Nhập dữ liệu từ file bằng lệnh load ................................................................ 40 3.7. Nhập xuất dữ liệu với các file văn bản có định dạng bằng các hàm fopen, fscanf, fprintf, fclose ................................................................................... 40 3.7.1. Hàm fopen ................................................................................................ 40 3.7.2. Hàm fprintf ............................................................................................... 41 3.7.3. Hàm fscanf ............................................................................................... 42 3.7.4. Hàm fclose ................................................................................................ 42 Chƣơng 4 ................................................................................................................... 44 CÁC LỆNH ĐIỀU KHIỂN TRONG MATLAB ...................................................... 44 4.1. Các lệnh rẽ nhánh: if ... end, switch ... end ................................................ 44 4.1.1. Lệnh if end ........................................................................................... 44 4.1.2. Lệnh switch ... end .................................................................................... 47 4.2. Các lệnh lặp: for ... end, while ... end ............................................................. 49 4.2.1. Lệnh lặp for end .................................................................................. 49 4.2.2. Lệnh lặp while end .............................................................................. 52 4.3. Các lệnh chuyển trong vòng lặp ..................................................................... 53 4.4. Lệnh chuyển đến cuối m-file .......................................................................... 54 4.5. Hàm tạm dừng ................................................................................................ 56 Chƣơng 5 ................................................................................................................... 59 HÀM DO NGƢỜI DÙNG TỰ LẬP ......................................................................... 59 5 5.1. Hàm biểu thức inline....................................................................................... 59 5.2. Hàm m-file ...................................................................................................... 60 Chƣơng 6 ................................................................................................................... 63 ĐỒ HỌA TRONG MATLAB ................................................................................... 63 6.1. Mở đầu ............................................................................................................ 63 6.2. Đồ họa 2D ....................................................................................................... 65 6.3. Đồ họa 3D ....................................................................................................... 67 6.3.1. Các lệnh Plots ........................................................................................... 67 6.3.2. Phối cảnh trong đồ hoạ 3-D ...................................................................... 69 6.4. Đồ họa chuyển động ....................................................................................... 70 6.5. Thiết kế giao diện đồ họa ................................................................................ 72 Chƣơng 7 ................................................................................................................... 76 CÁC BÀI TOÁN ĐẠI SỐ TUYẾN TÍNH VÀ PHƢƠNG TRÌNH ......................... 76 VI PHÂN ................................................................................................................... 76 7.1. Ma trận và ánh xạ tuyến tính .......................................................................... 76 7.1.1. Ma trận ..................................................................................................... 76 7.1.2 Ánh xạ tuyến tính: ..................................................................................... 78 7.2 Hệ phƣơng trình đại số tuyến tính ................................................................... 79 7.3 Giải thuật giải phƣơng trình vi phân ................................................................ 86 Chƣơng 8 ................................................................................................................... 90 SIMULINK ............................................................................................................... 90 8.1 Simulink mô phỏng hệ thống điện, điện tử, tự động ....................................... 90 8.1.1 Tổng quan về Simulink: ............................................................................ 90 8.1.2. Mô phỏng bộ điều khiển PID ................................................................. 102 8.1.3 Mô phỏng mạch điện ............................................................................... 107 8.2 Simulink trong mô phỏng đo lƣờng điện. ...................................................... 110 6 8.2.1 Đo dòng: .................................................................................................. 110 8.2.2 Đo áp ....................................................................................................... 111 TÀI LIỆU THAM KHẢO ....................................................................................... 115 7 Chƣơng 1 CÁC KHÁI NIỆM CƠ BẢN 1.1. Giới thiệu phần mềm matlab Đối với lĩnh vực điều khiển - tự động hóa nói riêng và trong lĩnh vực khoa học - kỹ thuật nói chung, mô phỏng là công cụ quan trọng cho phép khảo sát các đối tƣợng, hệ thống hay quá trình kỹ thuật - vật lý, mà nhất thiết không phải có đối tƣợng hay hệ thống thực. Matlab - simulink đƣợc trang bị công cụ mô phỏng mạnh và các phƣơng pháp mô hình hóa. Matlab là một bộ chƣơng trình phần mềm lớn của lĩnh vực tính toán số. Tên bộ chƣơng trình chính là chữ viết tắt từ MATric LABoratory, thể hiện định hƣớng chính của chƣơng trình là các phép toán vector và ma trận. Phần cốt lõi của chƣơng trình bao gồm một số hàm toán, các chức năng nhập/xuất cũng nhƣ các khả năng điều khiển chu trình mà nhờ đó ta có thể dựng nên các đoạn chƣơng trình để thực thi. Thêm vào phần cốt lõi là các Toolbox (bộ công cụ) với phạm vi chức năng chuyên dụng mà ngƣời sử dụng cần. Trong phạm vi giáo trình này chỉ giới thiệu một số Toolbox liên quan đến mô phỏng mạch, điều khiển - tự động hóa. Đặc biệt, Simulink là một Toobox có vai trò đặc biệt quan trọng: Một công cụ mạnh phục vụ mô hình hóa và mô phỏng các hệ thống kỹ thuật - vật lý trên cơ sở sơ đồ cấu trúc dạng khối. Trƣớc khi khởi động Matlab, thì ngƣời dùng phải tạo một thƣ mục làm việc để chứa các file chƣơng trình của mình (ví dụ: E:/thuchanh_matlab). Matlab sẽ thông dịch các lệnh đƣợc lƣu trong file có dạng *.m. Sau khi cài đặt Matlab thì việc khởi động chạy chƣơng trình này chỉ đơn giản là nhấp vào biểu tƣợng của nó trên desktop , hoặc vào Start\All Programs\Matlab\Matlab R2008b. 8 Sau khi đã khởi động Matlab xong, thì bƣớc kế tiếp là chỉ thƣ mục làm việc của mình cho Matlab. Nhấn vào biểu tƣợng trên thanh công cụ và chọn thƣ mục làm việc của mình (ví dụ: E:/thuchanh_matlab). Cửa sổ làm việc của Matlab sẽ nhƣ hình bên dƣới. Nó bao gồm 3 cửa sổ làm việc chính: Cửa sổ lệnh (Command Window), cửa sổ thƣ mục hiện tại (Current Directory) và cửa sổ chứa tập các lệnh đã đƣợc sử dụng (Command History). Để tạo một file.m trong thƣ mục làm việc, ta có thể thực hiện: Nhấn vào biểu tƣợng hoặc vào File\New\M-file Cửa sổ soạn thảo xuất hiện, gõ chƣơng trình cần thiết vào file. Sau khi đã hoàn tất nhấn vào biểu tƣợng để lƣu vào thƣ mục hiện tại (E:/thuchanh_matlab). 9 Để thực thi tập lệnh có trong file.m trong thƣ mục làm việc thì ngƣời dùng chỉ cần gõ tên file đó và Matlab sẽ tự động thực thi các dòng lệnh có trong file.m này. 1.2. Làm việc trong môi trƣờng Matlab Matlab là một môi trƣờng tính toán số và lập trình. Giống nhƣ một máy tính cơ bản, nó làm tất cả các phép tính toán học cơ bản nhƣ cộng, trừ, nhân, chia; giống nhƣ máy tính kỹ thuật, nó bao gồm: số phức, căn thức, số mũ, logarit, các phép toán lƣợng giác nhƣ: sin, cos, tang,; nó cũng giống nhƣ máy tính có thể lập trình, có thể lƣu trữ, tìm kiếm lại dữ liệu, cũng có thể tạo, bảo vệ và ghi trình tự các lệnh để tự động phép toán khi giải quyết các vấn đề, có thể so sánh logic, điều khiển thực hiện lệnh để đảm bảo tính đúng đắn của phép toán. Giống nhƣ các máy tính hiện đại nhất, nó cho phép biểu diễn dữ liệu dƣới nhiều dạng nhƣ: biểu diễn thông thƣờng, ma trận đại số, các hàm tổ hợp và có thể thao tác với dữ liệu thƣờng cũng nhƣ đối với ma trận. Matlab cung cấp một môi trƣờng phong phú cho biểu diễn dữ liệu và có khả năng mạnh mẽ về đồ họa, tạo các giao diện riêng cho ngƣời sử dụng GUIs. Thêm vào đó Matlab đƣa ra những công cụ để giải quyết những vấn đề đặc biệt, gọi là Toolbox. Ngoài ra ta còn có thể tạo ra các Toolbox cho riêng mình. 1.3. Các lớp dữ liệu Dữ liệu của Matlab thể hiện dƣới dạng ma trận (hoặc mảng) và có các kiểu dữ liệu đƣợc liệt kê sau đây: - Kiểu đơn single, kiểu này có lợi về mặt bộ nhớ nhƣng không đƣợc sử dụng trong các phép tính toán học vì có độ chính xác kém. - Kiểu double, kiểu này là kiểu thông dụng nhất của các biến trong Matlab. - Kiểu sqarse. - Kiểu uint8, uint16, - Kiểu char. - MatLab còn có một số kiểu dữ liệu khác c ... ra. Có thể rẽ nhánh tín hiệu bằng cách nháy phím chuột phải vào một đƣờng nối có sẵn và kéo đƣờng nối mới xuất hiện tới đầu vào cần nối. 93 - Di chuyển đường nối: Để lƣu đồ tín hiệu thoáng và dễ theo dõi, nhiều khi ta phải di chuyển, bố trí lại vị trí các đƣờng nối. Khi nháy chọn bằng chuột trái ta có thể di chuyển tuỳ ý các điểm góc hoặc di chuyển song song từng đoạn thẳng của đƣờng nối. - Tạo vector đường nối: Để dễ phân biệt giữa đƣờng nối đơn và đƣờng nối các tín hiệu theo định dạng vector, hoặc ma trận, hoặc mảng, ta có thể chọn menu Format / Wide nonscalar lines để tăng bề dầy của đƣờng nối. - Chỉ thị kích cỡ và dạng dữ liệu của tín hiệu: Lệnh chọn qua menu Format / Signal dimensions sẽ hiện thị kích cỡ của tín hiệu đi qua đƣờng nối. Lệnh menu Format / Port data types chỉ thị thêm loại dữ liệu của tín hiệu qua đƣờng nối. - Định dạng cho một khối: Sau khi nháy phím chuột phải vào một khối, cửa sổ định dạng khối sẽ mở ra. Tại mục Format ta có thể lựa chọn kiểu và kích cỡ chữ, cũng nhƣ vị trí của tên khối, có thể lật hoặc xoay khối. Hai mục Foreground Color và Background Color cho phép ta đặt chế độ mầu bao quang cũng nhƣ mầu nền của khối. - Định dạng cho đường nối: Sau khi nháy phím chuột phải vào một đƣờng nối, cửa sổ định dạng đƣờng sẽ mở ra. Tại đây có các lệnh cho phép cắt bỏ, chép hoặc xoá đƣờng nối. - Hộp đối thoại về đặc tính của khối: Hoặc đi theo menu của cửa sổ mô phỏng Edit / Block Properties, hoặc chọn mục Block Properties của cửa sổ định dạng khối, ta sẽ thu đƣợc hộp đối thoại cho phép đặt một vài tham số tổng quát về đặc tính của khối. - Hộp đối thoại về đặc tính của tín hiệu: Có thể tới đƣợc hộp thoại Signal Properties của một đƣờng nối hoặc bằng cách nháy chuột đánh dấu đƣờng nối trên cửa sổ mô phỏng, sau đó đi theo menu Edit / Signal Properties từ cửa sổ định dạng đƣờng. Trong hộp đối thoại ta có thể đặt tên cho đƣờng nối một cách đơn giản 94 hơn: Nháy kép phím chuột trái vào đƣờng nối ta sẽ tự động tới đƣợc chế độ nhập văn bản. 8.1.1.4 Thƣ viện Sources và Sinks Thư viện Sources a. Constant Khối constant tạo nên một hằng số thực hoặc phức, hằng số có thể là scalar, vector hay ma trận tuỳ theo cách ta khai báo tham số Constant Value và ô Interpret vector parameters as 1-D có đƣợc chọn hay không. Nếu ô đó đƣợc chọn, ta có thể khai báo tham số Constant Value là vector hang hay cột với kích cỡ [1×n] hay [n×1] dƣới dạng ma trận. Nếu ô đó không đƣợc chọn, các vector hang cột đó chỉ đƣợc sử dụng nhƣ vector với chiều dài n, tức là tín hiệu 1-D. b. Step và Ramp Nhờ hai khối Stemp và Ramp ta có thể tạo nên các tín hiệu dạng bậc thang hay dạng dốc tuyến tính, 53at để kích thích các mô hình Simulink. Trong đó hộp thoại Block Parameters của khối Step ta có thể khai báo giá trị đầu / giá trị cuối và cả thời điểm bắt đầu của tín hiệu bƣớc nhẩy. Đối với Ramp ta có thể khai báo độ dốc, thời điểm và giá trị xuất phát của tín hiệu ở đầu ra. 95 Đối với cả hai khối, ta có thể sử dụng tham số tuỳ chọn Interpret vector parameters as 1-D để quyết định các tín hiệu dạng bƣớc nhẩy hay dạng dốc tuyến tính có giá trị scalar hay vector hay ma trận. Chú ý: Hai khối Step và Ramp không phải chỉ tạo ra một tín hiệu nhƣ nhiều ngƣời vẫn hiểu nhầm, mà có thể tạo ra một tập các tín hiệu đƣợc xử lý dƣới dạng vector hàng hay cột hoặc ma trận. c. Signal Generator và Pulse Generator Bằng Signal Generator ta tạo ra các dạng tín hiệu kích thƣớc khác nhau. Cung cấp cho 4 dạng song khác nhau: + Sóng Sin + Sóng vuông (Square) + Sóng răng cƣa (Sawtood) + Sóng ngẫu nhiên (Random) 96 Với Pulse Generator tạo chuỗi xung hình chữ nhật: Biên độ và tần số có thể khai báo tuỳ ý. Đối với Pulse Generator ta còn có khả năng chọn tỷ lệ cho bề rộng xung (tính bằng phần trăm cho cả chu kỳ). Đối với cả hai khối ta có thể sử dụng tham số tuỳ chọn Interpret vector parameters as 1-D để quyết định các tín hiệu có giá trị scalar hay vector ma trận. d. Repeating Sequence Khối Repeating Sequence cho phép ta tạo nên một tín hiệu tuần hoàn tuỳ ý. Tham số Time values phải là một vector thời gian với các giá trị đơn điệu tăng. Vector biến ra Output values phải có kích cỡ phù hợp với chiều dài của tham số Time values. Giá trị lớn nhất của vector thời gian quyết định chu kỳ lặp lại của vector biến ra. 97 e. Sine Wave Khối Sine Wave đƣợc sử dụng để tạo tín hiệu hình sin cho cả hai loại mô hình: liên tục (tham số Simple time = 0) và gián đoạn (tham số Simple time = 1). Tín hiệu đầu ra y phụ thuộc vào 56at ham số chọn: Amplitude, Frequency và Phase trên cơ sở quan hệ y = Amplitude.sin(Frequency.time + Phase). Vì đơn vị của Phase là [rad], ta có thể khai báo trực tiếp giá trị của Phase là một hệ số nào đó nhân với pi. Giống nhƣ khối Constant, ta có thể sử dụng tham số tuỳ chọn Interpret vector parameters as 1-D để quyết định các tín hiệu có giá trị calar hay vector hay ma trận. 98 f. From Workspace Khối From Workspace có nhiệm vụ lấy số liệu từ cửa sổ Matlab Workspace để cung cấp cho mô hình Simulink. Các số liệu lấy vào phải có dạng của biểu thức Matlab, khai báo tại dòng Data. 99 g. From File Bằng khối From File ta có thể lấy số liệu từ một MAT-File có sẵn. MAT- File có thể là kết quả của một lần mô phỏng trƣớc đó, đã đƣợc tạo nên và cất đi nhờ khối To file trong sơ đồ Simulink. 100 Thư viện Sinks Thƣ viện này bao gồm các khối xuất chuẩn của Simulink. Ngoài khả năng hiển thị đơn giản bằng số, còn có các khối dao động kí để biểu diễn các tín hiệu phụ thuộc thời gian hay biểu diễn hai tín hiệu trên hệ toạ độ XY. a. Scope Nhờ khối Scope ta có thể hiển thị các tín hiệu của quá trình mô phỏng. Khi nhấn vào nút Properties, hộp thoại Scope Properties (đặc điểm của Scope) sẽ mở ra. Chọn general ta có thể đặt chế độ cho các trục. Khi đặt Number of axes > 1, cửa sổ Scope sẽ có nhiều đồ thị con giống tƣơng tự nhƣ lệnh Subplot của Matlab. Nếu điền một số cụ thể vào ô time range, đồ thị sẽ chỉ đƣợc biểu diễn tại thời điểm do giá trị của số xác định. b. XY Graph 101 Khối này biểu diễn hai tín hiệu đầu vào trên hệ toạ độ XY dƣới dạng đồ hoạ Matlab đầu vào thứ nhất (bên trên). Ứng với trục X đầu thứ hai ứng với trục Y. c. To Workspace Khối To Workspace gửi số liệu ở đầu vào của khối tới môi trƣờng Matlab Workspace dƣới dạng mảng (Array), Stracture hay Stracture with time và lấy chuỗi kí tự khai tại variable name để đặt tên cho tập số liệu đƣợc ghi. d. To File Khối này giúp ta cất tập số liệu (mảng hay ma trận) ở đầu vào của khối cùng với vector thời gian dƣới dạng Mat-File. Array định dạng giống nhƣ định dạng mà khối From File cần, vì vậy số liệu do To File cất có thể đƣợc From File đọc trực tiếp mà không cần phải xử lý gì. 8.1.1.5 Khởi động và ngừng mô phỏng Quá trình mô phỏng của mô hình Simulink đƣợc khởi động qua menu Simulation/Start. Trong khi mô phỏng, có thể chọn Simulation/Pause để tạm ngừng, hay Simulink/Stop để ngừng hẳn quá trình mô phỏng. 102 8.1.1.6 Xử lý lỗi Nếu xuất hiện lỗi trong quá trình mô phỏng, Simulink sẽ ngừng mô phỏng và mở hộp thoại thông báo lỗi Simulation Diagnostics. Trong phần phía trên của hộp thoại báo lỗi ta thấy có danh sách các khối gây nên lỗi. Khi chuyển vạch chọn tới khối nào, ta sẽ thấy ở phần dƣới hộp thoại các mô tả kỹ về lỗi của khối đó. Nếu nháy chuột trái vào nút Open, cửa sổ Block Parameters của khối sẽ mở ra để tat hay đổi, sửa lại các tham số khai báo tại đó. Đôi khi nguồn gây lỗi trên sơ đồ còn đƣợc tô nổi bật bằng mầu, giúp ta nhanh chóng xác định đƣợc vị trí của khối gây lỗi. 8.1.2. Mô phỏng bộ điều khiển PID a. Nội dung: Dùng Matlab Simulink mô phỏng bộ điều khiển PID cho đối tƣợng có hàm truyền bên dƣới, sử dụng các khối sau: + Khối Step; + Khối điều khiển PID; + Khối Transfer Fcn; + Khối scope; + Khối Sum. Đối tƣợng có hàm truyền sau: 6 2 9 1,3.10 ( ) 340 340408 0,71.10 G s s s b. Thiết kế: Thiết kế hệ thống nhƣ Hình 1 và lƣu tập tin với tên: pid.mdl 103 Hình 1: Hệ thống điều khiển dùng PID - Trong command window đánh lệnh: simulink - Tiếp tục ta chọn Files NewModel ta đƣợc hình 2 Hình 2: Cửa sổ giao diện - Lần lƣợt tạo các khối theo cách sau: Chọn các khối bằng cách kéo thả biểu tƣợng sang giao diện hình 3. + Khối Step: Simulinksources, kéo thả biểu tƣợng Step sang giao diện (Hình 4) 104 Hình 3: Tạo khối Step Tƣơng tự nhƣ trên lần lƣợt vẽ các khối sau: - Khối PID: SimulinkContinuousPID controller - Khối Transfer Fcn: SimulinkContinuous Transfer Fcn - Khối Sum: SimilinkCommonly Used blocksSum - Khối Scope: SimilinkSinksScope Tiếp tục ta double click vào khối Fcn để nhập hàm truyền G(s) vào nhƣ hình dƣới đây: 105 Hình 5: Nhập hàm truyền vào khối Fcn Bây giờ tiếp tục hiệu chỉnh các thông số của bộ điều khiển PID nhƣ sau: + Kích vào bộ PID đƣợc dao diện sau: + Tiếp tục kích vào Tune để tìm đƣợc các thống số của bộ PID nhƣ sau: 106 + Ta đƣợc các thông số của của bộ điều khiển PID nhƣ bên dƣới: - Kết quả điều khiển của bộ PID nhƣ sau: 107 8.1.3 Mô phỏng mạch điện Xét một mạch điện đơn giản sau: Power System Blockset cho phép ta xây dựng và mô phỏng một mạch điện chứa các phần tử tuyến tính cũng nhƣ phi tuyến. Để mô phỏng mạch điện này ta dùng các khối: nguồn, điện trở, điện kháng, điện dung và dụng cụ đo. Để đo điện áp ta dùng khối Vmet. Nó cho trị số tức thời của điện áp. Để thấy đƣơc giá trị hiệu dụng ta dùng khối RMS. Các bƣớc thực hiện nhƣ sau: • Từ menu File của cửa sổ powerlib chọn New rồi chọn Model sẽ chứa mạch điện và gọi là ctcircuit.mdl • Mở thƣ viện Electrical Sources để copy AC Voltage Source Block vào cửa sổ ctcircuit.mdl 108 • Mở hộp thoại AC Voltage Source Block bằng cách nhấp đúp lên nó để nhập vào biên độ, phase và tần số theo các giá trị đã cho trong sơ đồ. Chú ý là biên độ là giá trị max của điện áp. • Do khối điện trở không có nên copy khối Series RLC Branch và đặt giá trị điện trở nhƣ đã cho và đặt L là vô cùng và C là zero. • Thực hiện tƣơng tự với phần tử L và C. • Lấy khối đo điện áp trong hệ thống con Measurement • Để xem điện áp, dùng khối Scope của Simulink chuẩn. Mở Simulink và copy khối Scope vào mô hình ctcircuit.mdl. Nếu khối Scope đƣợc nối trực tiếp với đầu ra của thiết bị đo điện áp nó sẽ hiển thị điện áp theo V. • Để hoàn thành mạch điện, ta cần nối các phần tử với nhau Sơ đồ mô phỏng (lƣu trong ctcircuit.mdl) nhƣ sau: Bây giờ ta có thể bắt đầu mô phỏng từ menu simulation. Ta vào menu này, chọn các thông số cho qua trình mô phỏng và bấm nút start. Để dễ dàng cho việc phân tích trạng thái xác lập của mạch điện chúng ta, thƣ viện powerlib cung cấp giao diện đồ hoạ (GUI). Copy khối giao diện Powergui vào cửa sổ ctcircuit.mdl và nhấn đúp vào icon để mở nó. Mỗi dụng cụ đo đại lƣợng ra 109 đƣợc xác định bằng mỗi chuỗi tƣơng ứng với tên của nó. Các biến trạng thái đƣợc hiển thị tƣơng ứng với các giá trị xác lập của dòng điện và điện áp. Tên các biến chứa tên các khối, bắt đầu bằng tiếp đầu ngữ Il‐ hay Uc_. Dấu quy ƣớc đƣợc sử dụng với dòng điện và điện áp và các biến trạng thái đƣơc xác định bằng hƣớng của các khối: - Dòng điện điện cảm chạy theo hƣớng mũi tên tƣơng ứng với dấu dƣơng - Điện áp trên tụ C bằng điện áp ra trừ đi điện áp vào Chọn menu Tool | Steady ‐ State Voltages and Currents để xem các trị số xác lập của dòng điện và điện áp. Bây giờ chọn menu Tool | Initial Value of State Variables để hiển thị các giá trị khởi đầu của các biến trạng thái. Các giá trị khởi đầu này đƣợc đặt để bắt đầu simulation ở trạng thái xác lập. Tiếp theo ta tính các biểu diễn của không gian trạng thái của mô hình ctcircuit bằng hàm power2sys. Nhập dòng lệnh sau đây vào cửa sổ MATLAB: [A, B, C, D, x0, states, inputs, outputs] = power2sys(’ctcircuit’); Hàm power2sys trả về mô hình không gian trạng thái của mạch trong 4 ma trận A, B, C, D, x0 là vec tơ các điều kiện đầu mà ta vừa hiển thị với Powergui. Tên của các biến trạng thái, các đại lƣợng vào và các đại lƣợng ra đƣợc trả về trong 3 ma trận chuỗi. Một khi mô hình trạng thái đã biết, nó có thể phân tích đƣợc trong vùng tần số. Ví dụ các mode của mạch này có thể tìm từ các giá trị riêng của ma trận A (dùng lệnh MATLAB eig(A)): eig(A) ans = 1.0e+002* ‐0.5000 + 3.1225i ‐0.5000 ‐ 3.1225i Hệ thống này có dao động tắt dần vì phần thực âm. Nếu ta dùng Control System Toolbox, ta có thể vẽ đồ thị Bode. Các lệnh MATLAB (lƣu trong ctcircuitm.m) nhƣ sau: 110 freq = 0:1500; w = 2*pi*freq; [bien, pha, w] = bode(A, B, C, D); semilogy(w, mag1(:, 2)); semilogy(w, mag1(:, 2)); 8.2 Simulink trong mô phỏng đo lƣờng điện. 8.2.1 Đo dòng: a. Thƣ viện: Measurements b. Mô tả: Khối đo dòng dùng để đo dòng tức thời chảy trong bất kỳ khối điện hoặc trong đƣờng dây nào. Đầu ra mô phỏng cung cấp tín hiệu mô phỏng mà có thể sử dụng cho khối mô phỏng khác. c. Hộp thoại và các tham số: d. Các tín hiệu ra: - Xác định dạng tín hiệu ra khi khối này đƣợc sử dụng trong mô phỏng một pha. Thông số tín hiệu ra không cho phép khi khối không đƣợc sử dụng trong mô phỏng một pha. Mô phỏng một pha đƣợc tích cực bằng khối Powwrgui đặt trong mô hình này. 111 - Đặt Complex để tín hiệu ra đo đƣợc có dạng giá trị complex. - Đặt Real-Imag là phần thực và ảo của dòng đo đƣợc. Tín hiệu ra là một vector hai thành phần. - Đặt Magnitude-Angle để ra biên độ và tần số của dòng đo. Tín hiệu ra là một vector hai thành phần. - Đặt Magnitude để xuất ra biên độ của dòng đo đƣợc. Tín hiệu ra là một giá trị đơn. e. Ví dụ: Demo đo dòng sử dụng 4 khối đo dòng để đọc các dòng nhánh khác nhau trong mạch. Hai scope để hiển thị cùng dòng. 8.2.2 Đo áp a. Thƣ viện: Measurements b. Mô tả: 112 Khối đo áp Voltage Measurement block đo điện áp tức thời giữa 2 điện cực điện. Đầu ra cung cấp tín hiệu mô phỏng mà có thể đƣợc sử dụng cho một khối mô phỏng khác. c. Hộp hội thoại và các thông số: d. Tín hiệu ra: - Xác định dạng tín hiệu ra khi khối này đƣợc sử dụng trong mô phỏng một pha. Thông số tín hiệu ra không cho phép khi khối không đƣợc sử dụng trong mô phỏng một pha. Mô phỏng một pha đƣợc tích cực bằng khối Powergui đặt trong mô hình này. - Đặt Complex để tín hiệu có dạng giá trị complex - Đặt Real-Imag là phần thực và ảo của dòng đo đƣợc. Tín hiệu ra là một vector hai thành phần. - Đặt Magnitude-Angle để ra biên độ và tần số của dòng đo. Tín hiệu ra là một vector hai thành phần. - Đặt Magnitude để xuất ra biên độ của dòng đo đƣợc. Tín hiệu ra là một giá trị đơn. e. Ví dụ: Demo sử dụng ba khối đo điện áp để đọc điện áp 113 114 CÂU HỎI ÔN TẬP CHƢƠNG 8 Câu 1: Simulink là gì? Simulink có những thƣ viện con nào? Câu 2: Trình bày cách đo dòng bằng công cụ simulink? Câu 3: Trình bày cách đo áp bằng công cụ simulink? 115 TÀI LIỆU THAM KHẢO [1] Trần Văn Chính, Giáo trình Matlab và simulink, Đại học Bách Khoa Đà Nẵng. [2] Đại học Thái Nguyên (2011), Bài giảng mô phỏng và mô hình hóa, Thái Nguyên. [3] Nguyễn Phùng Quang (2004), Matlab và Simulink giành cho kỹ sư điều khiển tự động, Nhà xuất bản Khoa học và kỹ thuật, Hà Nội.
File đính kèm:
- giao_trinh_giai_tich_mach_va_mo_phong_tren_may_tinh.pdf