Nội dung bản luận văn này gồm các phần như sau: Chương I - Cơ sở Matlab: Giới thiệu tổng quan về phần mềm Matlab, một số đặc điểm và khả năng ứng dụng cơ bản trong giải các bài toán k
Trang 1
Mục lục Mục lục 1
Lời nói đầu 5
Chương I Cơ sở Matlab 6
1.1.Tổng quan về cấu trúc dữ liệu của Matlab, các ứng dụng 7
1.1.1.Dữ liệu 7
1.1.2.Ứng dụng 8
1.1.3.Toolbox là một công cụ quan trọng của Matlab 8
1.2 Hệ thống Matlab 8
1.3 Một số lệnh cơ bản trong Matlab 10
1.3.1 Các phép toán cơ bản 10
1.3.2 Các biến (khai báo và sử dụng) 10
1.3.3 Các hàm đặc biệt 11
1.3.4 Các cấu trúc dữ liệu cơ bản 11
1.3.5 Các hàm phức tạp 13
1.3.6 Cấu trúc lệnh cơ bản 14
1.4 Lập trình trên m.file 16
1.5 Giao diện đồ họa người dùng (GUI Graphical User Interfaces) 18
1.5.1 Các thành phần điều khiển của GUI (uicontrol objects) 19
1.5.2 Lập trình điều khiển với GUI 22
Chương II Ứng dụng Matlab trong giải một số dạng bài toán lý thuyết mạch điện 23
2.1 Biểu diễn số phức và ảnh phức của tín hiệu xoay chiều điều hòa 24
2.1.1 Hàm chuyển đổi giữa hai dạng cơ bản mô tả tín hiệu hình sin, ảnh phức 24
2.1.2 Cộng, trừ, nhân, chia số phức ở dạng ơ le 24
2.1.3 Giải hệ phương trình phức 27
2.2 Giải mạch điện bằng SCAM (Symbolic Circuit Analysis in MatLab) 27 2.2.1 Cơ sở lý thuyết 27
2.2.2 Bài toán 30
2.3 Mạng hai cửa tuyến tính không nguồn 39
1
Trang 2
2.3.1 Hệ phương trình dạng [A],[B] 39
2.3.2 Hệ phương trình dạng [Z],[Y] 40
2.3.3 Hệ phương trình dạng [H], [G] 40
2.3.4 Mối quan hệ giữa các hệ phương trình: [A],[B],[Z],[Y],[H],[G] 41
2.3.5 Xây dựng mạng hình T và từ thông số mạng hai cửa 44
2.4 Hỗ trợ giải mạch bằng ảnh Laplace 52
2.4.1 Biến đổi thuận 52
2.4.2 Biến đổi ngược 53
2.4.3 Một số định lý về ảnh-gốc: 53
2.4.4 Giải mạch bằng phương pháp toán tử: 55
2.5 Đường dây dài 59
2.5.1 Tính toán các thông số cơ bản cho đường dây 59
2.5.2 Hệ phương trình hyperbolic của đường dây dài 60
2.5.2 Tính toán truyền công suất 61
2.5.3 Ảnh Petersen (Quá trình quá độ) 62
Chương III Kết quả 66
3.1 Giao diện tính toán số phức 67
3.1.1 Giao diện ban đầu 67
3.1.2 Giao diện sau khi đã nhập số liệu 67
3.1.3 Giao diện sau khi đã có kết quả: 68
3.2 Giao diện ảnh phức của tín hiệu hình sin 69
3.2.1 Giao diện ban đầu 69
3.2.2 Giao diện sau khi nhập số liệu 70
3.2.3 Giao diện kết quả 71
3.3 Giao diện tính toán quan hệ giữa các ma trận của mạng 2 cửa 71
3.3.1 Giao diện ban đầu 71
3.3.2 Giao diện sau khi nhập số liệu 72
3.3.3.Giao diện kết quả 72
3.4 Giao diện tính toán quá trình quá độ 73
3.4.1 Giao diện ban đầu 73
3.4.2 Giao diện sau khi nhập số liệu 74
2
Trang 3
3.4.3 Giao diện kết quả 74
3.5 Giao diện tính toán các thông số cơ bản của đường dây dài 75
3.5.1 Giao diện ban đầu 75
3.5.2 Giao diện sau khi nhập số liệu 76
3.5.3 Giao diện kết quả 76
3.6 Giao diện tính toán truyền công suất đường dây dài 77
3.6.1 Giao diện ban đầu 77
3.6.2 Giao diện sau khi nhập số liệu 78
3.6.3 Giao diện kết quả 79
3.7 Giao diện tính toán theo mô hình Petersen 79
3.7.1 Giao diện ban đầu 79
3.7.3 Giao diện sau khi nhập số liệu 80
3.7.3 Giao diện kết quả 81
Chương IV: Kết luận và hướng phát triển của luận văn 81
4.1 Kết luận 82
4.2.Hướng phát triển 82
Tài liệu tham khảo 83
3
Trang 4
Lời nói đầu
Đất nước ta đang trong quá trình hội nhập, sự cạnh tranh với các nước trênthế giới trong tất các lĩnh vực rất quyết liệt, đòi hỏi các ngành, các cấp phải đổimới phương pháp quản lý, áp dụng công nghệ tiên tiến, hiện đại, để nâng caochất lượng và hiệu quả Đối với ngành giáo dục cũng vậy, để cạnh tranh đượcphải nâng cao chất lượng đào tạo, giữ vững thương hiệu Muốn vậy, trong cáctrường học, đặc biệt là các trường đại học và cao đẳng, ngoài yếu tố năng lựccủa giảng viên, giáo viên, nhà trường cần phải chú trọng đến việc sử dụngphương tiện dạy học hiện đại, ứng dụng các phần mềm phục vụ cho quá trìnhgiảng dạy các môn học Qua đó sinh viên tiếp cận với công nghệ tiên tiến giúpcác em nâng cao năng lực nhận thức, năng lực tư duy, kỹ năng ứng dụng, đểgiải quyết tốt nhiệm vụ mà môn học yêu cầu Các ngành học nói chung, ngànhđiện nói riêng, việc giải bài tập các môn học, nhất là môn học Lý Thuyết Mạchmất một lượng thời gian khá lớn Môn Lý Thuyết Mạch không đi sâu vào việcgiải thích các hiện tượng vật lý, mà môn học chú ý nhiều đến tinh toán và ứngdụng kỹ thuật, phục vụ cho chuyên ngành và các lĩnh vực khoa học kỹ thuậtkhác liên quan đến kỹ thuật điện Từ trước đến nay phương pháp giải các bài tập
về lý thuyết mạch thường là: từ sơ đồ mạch điện lập các phương trình, hệphương trình, sau đó tiến hành giải các phương trình, hệ phương trình để tìm rakết quả Gặp những mạch điện có nhiều phép tính và phương trình phức tạp,nhất là trong việc giải các bài tập mạch điện nhiều nhánh, mạch điện ở chế độquá độ, đường dây dài… mất rất nhiều thời gian Để giải quyết vấn đề này,chúng ta cần phải ứng dụng một phần mềm nào đó Có rất nhiều phần mềm tínhtoán với khả năng ứng dụng cao như: Maple, Mathcad, Athematica, Matlab…Trong đó Matlab là phần mềm có khả năng ứng dụng cao và tiện ích Với
nội dung bản luận văn : Ứng dụng Matlab trong xây dựng thư viện một số hàm hỗ trợ giải bài tập lý thuyết mạch Qua đó, việc thực hiện lập các hàm hỗ
trợ và việc mô phỏng các bài tập về mạch điện dùng phần mềm Matlab trên máytính giúp cho sinh viên tiến hành giải các bài tập một cách nhanh chóng, chínhxác và hiệu quả
Nội dung bản luận văn này gồm các phần như sau:
Chương I - Cơ sở Matlab: Giới thiệu tổng quan về phần mềm Matlab, một
số đặc điểm và khả năng ứng dụng cơ bản trong giải các bài toán kỹ thuật
4
Trang 5
Chương II - Ứng dụng Matlab giải một số dạng bài toán lý thuyết mạchđiện - tập trung trình bày về khả năng ứng dụng Matlab trong giải mạch điện cơbản như bài toán: tính toán số phức, ảnh của tín hiệu hình sin, tính toán quan hệgiữa các ma trận của mạng 2 cửa, tính toán quá trình quá độ, tính toán các thông
số của đường dây dài, tính toán truyền công suất đường dây dài
Chương III - Kết quả hàm thư viện và giao diện GUI – tổng kết một số kếtquả triển khai trên nền Matlab phần thư viện các hàm và giao diện tính toán sốphức, giao diện ảnh của tín hiệu hình sin, giao diện tính toán quan hệ giữa các
ma trận của mạng 2 cửa, giao diện tính toán quá trình quá độ, giao diện tính toáncác thông số của đường dây dài, giao diện tính toán truyền công suất đường dâydài và một số giao diện GUI hộ trợ khai thác các thư viện các hàm đã viết.ChươngIV - Kết luận và hướng phát triển, tóm tắt lại các kết quả đã đạtđược của luận văn đồng thời phân tích một số mặt còn tồn tại và đề xuất một sốhướng phát triển của luận văn
5
Trang 6
CHƯƠNG I CƠ SỞ MATLAB
Matlab là một ngôn ngữ lập trình thực hành bậc cao được sử dụng để giảicác bài toán về kỹ thuật Matlab tích hợp được việc tính toán, thể hiện kết quả,cho phép lập trình, giao diện làm việc rất dễ dàng cho người sử dụng Dữ liệucùng với thư viện được lập trình sẵn cho phép người sử dụng có thể có đượcnhững ứng dụng sau đây
Sử dụng các hàm có sẵn trong thư viện, các phép tính toán học thôngthường
Cho phép lập trình tạo ra những ứng dụng mới
Cho phép mô phỏng các mô hình thực tế
Phân tích, khảo sát và hiển thị dữ liệu
Với phần mềm đồ hoạ cực mạnh
Cho phép phát triển, giao tiếp với một số phần mềm khác như C++,Fortran…
1.1.Tổng quan về cấu trúc dữ liệu của Matlab, các ứng dụng
Matlab là một hệ thống tương giao, các phần tử dữ liệu là một mảng (mảngnày không đòi hỏi về kích thước) Chúng cho phép giải quyết các vấn đề liênquan đến lập trình bằng máy tính, đặc biệt là các phép tính về ma trận hay véctor và có sử dụng ngôn ngữ C hoặc Fortran lập trình rồi thực hiện ứng dụng lậptrình đó bằng các câu lệnh gọi từ Matlab Matlab được viết tắt từ chữ matrixlaboratory tức là thư viện về ma trận, từ đó phần mềm Matlab được viết nhằmcung cấp cho việc truy cập vào miền ma trận một cách dễ dàng, phần mềm matrận này được phát triển bởi các công trình Linpack và Eispack Ngày nayMatlab được phát triển bởi Lapack và Artpack tạo nên một nghệ thuật phầnmềm cho ma trận
1.1.1 Dữ liệu
Dữ liệu của Matlab thể hiện dưới dạng ma trận (hoặc mảng - tổng quát), 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ề bộ nhớ dữ liệu vì nó đòi hỏi ítbyte nhớ hơn, kiểu dữ liệu này không được sử dụng trong các phéptính toán học, độ chính xác kém hơn
Kiểu double, kiểu này là kiểu thông dụng nhất của các biến trongMatlab
Chương I: Cơ sở Matlab
Trang 7
Kiểu Sparse
Kiểu int8, uint8, int16…
Kiểu char, ví dụ ‘ Hello’
đề đặc biệt, gọi là Toolbox (thư viện công cụ) Ví dụ Student Edition của Matlabbao gồm cả Toolbox điều khiển tự động, Toolbox xử lí số liệu, Toolbox tínhtoán trên biến hình thức Ngoài ra bạn cũng có thể tạo Toolbox cho riêng mình
1.1.3.Toolbox là một công cụ quan trọng của Matlab
Công cụ này được Matlab cung cấp cho phép bạn ứng dụng các kỹ thuật đểphân tích, thiết kế, mô phỏng các mô hình
Ta có thể tìm thấy toolbox ở trong môi trường làm việc của:
Mạng nơ ron
Logic mờ
Simulink
1.2 Hệ thống Matlab
Hệ thống giao diện của Matlab được chia thành 5 phần:
Chương I: Cơ sở Matlab
Trang 8
Đây là nơi đặt các thanh công cụ, các phương tiện giúp chúng ta sử dụngcác lệnh và các file, ta có thể liệt kê một số như sau:
+ Desktop+ Command Window+ Command History+ Browsers for viewingghelp
Thư viện các hàm toán học
Bao gồm các cấu trúc như tính tổng, sin, cosin, actan2, etc…, cácphép tính đơn giản đến các phép tính phức tạp như tính ma trậnnghịch đảo, trị riêng, chuyển đổi furie, laplace, symbolic library
Ngôn ngữ Matlab
Đó là ngôn ngữ bậc cao về ma trận và mảng, với các dòng lệnh, cáchàm, cấu trúc dữ liệu vào, có thể lập trình hướng đối tượng
Đồ hoạ trong Matlab
Chương I: Cơ sở Matlab
Trang 9
Bao gồm các câu lệnh thể hiện đồ hoạ trong môi trường 2D và 3D,tạo các hình ảnh chuyển động, cung cấp các giao diện tương tácgiữa người sử dụng và máy tính
Giao tiếp với các ngôn ngữ khác.
Matlab cho phép tương tác với các ngôn ngữ khác như C, Fortran
1.3 Một số lệnh cơ bản trong Matlab
1.3.1 Các phép toán cơ bản
= Gán giá trị cho biến
+ - *
/ ^
Các phép toán
; Xuất hiện ở cuối mỗi giá trị, ngầm định giá trị không cho
xuất hiện giá trị trên màn hình, Ngăn cách giữa các phần tử (tương đương dấu cách)
Eps Cấp chính xác tương đối khi sử dụng giá trị dấu phẩy động
I ,j Toán tử ảo
NaN Not a Number
Pi Hằng số pi=3.14
1.3.2 Các biến (khai báo và sử dụng)
Chế độ mặc định kết quả của các biến được gán cho ans Nếu sử dụng dấu
“=” ta có thể định nghĩa một biến và gán giá trị cho biến đó Khi nhập tên củamột biến mà không gán giá trị, ta thu được giá trị hiện tại của biến Tên của biến
có thể chứa tới 32 chữ cái, gạch ngang thấp cũng như chữ số Chữ viết hoa vàchữ viết nhỏ đều được phân biệt Các giá trị có thể được thực hiện thành mộtchuỗi lệnh trong cùng một dòng, chỉ cách nhau bởi dấu (;), nếu dùng dấu (,) đểtách các lệnh thì giá trị được xuất ra màn hình
Trang 10abs Lấy giá trị tuyệt đối hoặc độ lớn của số phức
real Lấy phần thực của số phức
imag Lấy phần ảo của số phức
sinh(x) Hàm tính hyperbolic sine của x
cosh(x) Hàm tính hyperbolic cose của x
deconv(a,b) Chia hai đa thức a và b
sum(v) Tổng các phần tử vector
min(v) Phần tử vector nhỏ nhất
max(v) Phần tử vector lớn nhất
Tất cả các hàm trong bảng đều có khả năng sử dụng tính toán với vector
1. 3.4 Các cấu trúc dữ liệu cơ bản
a.Vector và ma trận
Để khai báo hoặc xử lý vector và ma trận thường là nhập trực tiếp, khi nhậptrực tiếp, các phần tử của một hàng được cách nhau bởi dấu phẩy hoặc dấu cáchtrống, còn các hàng được cách bởi dấu; hoặc ngắt dòng
Trang 11b Tính toán với vector và ma trận
Có nhiều phép toán có thể áp dụng cho vector và ma trận:
Để thực hiện phép nhân hai ma trận làm như sau:
Trang 12Một vài hàm toán học khác được dùng hỗ trợ trong tính toán lý thuyết mạch:
b.Hàm poly
Hàm poly cho phép xác định đa thức từ tập hợp nghiệm của chúng
Ví dụ: Xác định đa thức có nghiệm: -1;0;1;2
Chương I: Cơ sở Matlab
Trang 131.3.6 Cấu trúc lệnh cơ bản
Trong trường hợp có hai điều kiện thay đổi, cấu trúc if- else- end là:
if biểu thức điều kiện
Trang 14
Khi có ba hoặc nhiều điều kiện thay đổi cấu trúc của nó sẽ là:
if biểu thức điều kiện 1
elseif biểu thức điều kiện 2
khối các lệnh được thực hiện nếu điều kiện 2 là đúng
elseif biểu thức điều kiện 3
b.Cấu trúc vòng lặp for và while
Bằng cấu trúc vòng lặp ta có thể thực hiện lặp lại nhiều lần một số lệnh nhấtđịnh:
Vòng lặp for
Chương I: Cơ sở Matlab
Trang 151.4 Lập trình trên m.file
Các chương trình, thủ tục bao gồm các dòng lệnh theo một thứ tự nào đó dongười sử dụng viết ra được lưu trữ trong các file có phần mở rộng là *.m Filedạng này còn được gọi là script file File được lưu dưới dạng ký tự ASCII và cóthể sử dụng các chương trình soạn thảo nói chung để tạo nó
Chương I: Cơ sở Matlab
Trang 16
Sau khi viết xong chương trình ta có thể chạy file này giống như các lệnh,thủ tục của Matlab Tức là có thể gõ tên file không cần có phần mở rộng Khi sửdụng, nội dung của M.file không được hiển thị trên màn hình
Để thuận lợi cho việc viết, sửa đổi nội dung của chương trình và lưuchương trình Trên Matlab cho phép viết các cấu trúc lệnh điều khiển trên m.file Ngoài việc viết cấu trúc các câu lệnh thông thường ra thì việc xuất nhập dữliệu cũng rất quan trọng trong quá trình lập trình
Một số qui tắc viết hàm trong m.file:
- Hàm phải được bắt đầu bằng từ function, sau đó lần lượt là tham số đầu
ra, dấu bằng, tên hàm Tham số đầu vào được viết theo tham số đầu vào và đượcbao trong ngoặc đơn
- Một số dòng đầu tiên nên viết chú thích cho hàm
- Các thông tin trả lại của hàm được lưu vào tham số (ma trận) đầu ra Vìvậy luôn kiểm tra chắc chắn rằng trong hàm có chứa câu lệnh ấn định giá trị củatham số đầu ra
- Các biến cùng tên có thể được sử dụng bởi cả hàm và chương trình khicần đến nó Các giá trị tính toán trong hàm, tham số đầu ra không chịu tác độngcủa chương trình
- Nếu một hàm cho nhiều hơn một giá trị đầu ra phải viết tất cả các giá trịtrả lại của hàm thành một vector trong dòng khai báo hàm
- Một hàm có nhiều tham số đầu vào cần phải liệt kê chúng khi khai báohàm
Ví dụ: Thực hiện chương trình tính tổng trở tương đương của đoạn mạchgồm n tổng trở ghép nối tiếp (n nhập từ bàn phím)
fprintf('ket qua %6.2f + %6.2fi\n',real(ttnt),imag(ttnt))
Chương I: Cơ sở Matlab
Trang 17tong tro 2:2+3i
tong tro 3:4-5i
ket qua 8.00 - 2.00i
1.5 Giao diện đồ họa người dùng (GUI_Graphic User Interface)
Giao diện đồ họa GUI là giao diện cho người sử dụng xây dựng bằng cácđối tượng đồ họa như các nút bấm, cửa sổ văn bản, thanh trượt và thực đơn Các ứng dụng hỗ trợ GUI nói chung rất dễ học tập và sử dụng do người sửdụng không cần biết các đối tượng này họat động như thế nào
Chương I: Cơ sở Matlab
Trang 18
1.5.1 Các thành phần điều khiển của GUI (uicontrol objects)
Tạo ra GUI với MATLAB:
Từ menu File, chọn New, GUI… và vào màn hình soạn thảo GUI Đặt cácđối tượng vào khung soạn thảo bằng cách chọn loại đối tượng từ danh sách vàclick vào khung, drag và drop để vẽ ra đối tượng Đặt thuộc tính cho đối tượng,tùy loại, mỗi đối tượng có các thuộc tính giống và khác nhau Lập trình các đốitượng theo thao tác của người dùng Mỗi đối tượng khi được kích hoạt sẽ gọimột đoạn mã tương ứng trong chương trình gọi là trình con Callback Ghi file,một file có phần mở rộng là fig và một là m Hai file này phải được đặt trongcùng một thư mục Có thể ghi thành chỉ một file.m duy nhất dùng lệnh Export,tuy nhiên kiểu này dành cho người dùng chuyên nghiệp chúng ta chưa cần quantâm Có thể chạy thử giao diện trong màn hình soạn thảo GUI bằng cách ấnphím Run có dạng giống như nút Play
*Push Button
Push buttons tạo ra một hành động khi nó được ấn, khi ta ấn một pushbutton, nó sụp xuống; khi được nhả ra, sự kiện được đáp bằng cách gọi mộtchương trình con trong đoạn lệnh callback tương ứng với sự kiện nút được ấn
MATLAB đảo giá trị thuộc tính Value sau mỗi lần ấn
Chương I: Cơ sở Matlab
Trang 19
*Check Box
Dùng để xác định xem một mục văn bản đã được đánh dấu chọn hay chưa.Thuộc tính Value cho biết trạng thái của đề mục bằng cách gán trị 1 hoặc 0.(Value = 1 khi mục được chọn, Value = 0 khi không được chọn) Để tham chiếu
đến giá trị của đối tượng ta dùng lệnh get tương tự như trên.
*Radio Button
Tương tự như check boxes, nhưng trong một nhóm radio button một mụcđược chọn sẽ loại trừ lẫn nhau và chỉ có một radio button được chọn và được đặtgiá trị lên 1
Để thiết lập loại trừ, trong trình con của mỗi radio box phải set các thuộctính Value của các radio button khác trong nhóm về 0
*Edit Text
Đối tượng này tạo ra một phạm vi để người dùng thêm dữ liệu dạng vănbản vào hoặc sửa đổi một nội dung đang có
Nội dung của đối tượng được ghi ở thuộc tính String và có loại là chuỗi ký
tự Dùng Edit Text để đưa vào một dữ liệu dạng ký tự, nếu là số thì phải dùngkèm hàm chuyển dạng ký tự số:
SputterYield=str2num(get(handles.SputterYield_edit,'String'));
Dòng lệnh trên đọc nội dung ở khung SputterYield_edit chuyển thành số
và gán vào biến SputterYield Nếu ký tự số là thập phân thì phải dùng hàmstr2double()
*Slider
Dùng để nhập dữ liệu dạng số trong một miền giá trị xác định bằng cách
để người dùng trượt một thanh con Vị trí của thanh thể hiện giá trị cần nhậpvào
Cần thiết phải thiết lập giá trị hiện hành, các cận và kích cỡ bước chothanh (Current Value, Range, and Step size)
Các thuộc tính cần thiết lập:
- Value – giá trị hiện hành (tiền lập) của thanh
- Max – maximum slider value
- Min – minimum slider value
- SliderStep – bước trượt trong thanh
Chương I: Cơ sở Matlab
Trang 20
- Slider – Value Property
Có thể điều chỉnh thuộc tính này trong khung soạn thảo GUI hoặc trongchương trình bằng lệnh set Để đọc giá trị của Slider, trong Callback tương ứng
có thể viết:
slider_value=get(handles.slider1,'Value');
Các thuộc tính Max và Min xác định các cận (Max – Min)
Slider – SliderStep Property:
Điều chỉnh phạm vi mà thuộc tính Value thay đổi khi trượt, click mousevào mũi tên hoặc khoảng trống bên trong thanh
SliderStep là một vector hai thành phần có thể điều chỉnh trong chươngtrình hoặc lúc thiết kế Mặc định là [0.01 0.10], thay đổi 1% khi click vào mũitên và 10% khi click vào khoảng trống
* Static Text
Hiển thị các dòng văn bản do người dùng hoặc chương trình tạo ra Dữ liệuhiển thị là ký tự, nếu cần hiển thị số phải dùng thêm hàm chuyển đổi num2str.Thường dùng làm tiêu đề cho các mục trong Figure Không thay đổi được nộidung trực tiếp trong khi chương trình đang họat động và không có chương trìnhcon callback
Dùng đối tượng này để hiển thị giá trị của thanh trượt Slider
Khi thanh trượt được điều chỉnh, giá trị của nó sẽ hiển thị trong khung EiditText mang tên Voltage_text, (đoạn mã sau dấu % là gợi ý cho việc đọc ngưỡngcủa thanh trượt)
* Frames
Hộp chứa các miền đối tượng của một figure window
Tạo thuận lợi cho người sử dụng khi dùng để đánh dấu nhóm các đối tượngcùng loại hoặc có liên quan với nhau cho dễ nhìn Không có trình con Callback.Trục đồ thị (axes) không được đặt trong frame
* List Boxes
Hiển thị một danh sách chọn xác định bằng thuộc tính String và cho phépngười dùng chọn một trong các mục của danh sách Mặc định, mục đầu tiên sẽđược highlight khi List Boxes xuất hiện Nếu không muốn highlight mục nào cả,đặt giá trị thuộc tính Value bằng rỗng
Trị trả về của đối tượng này là số thứ tự của mục chọn
Chương I: Cơ sở Matlab
Trang 21Ví dụ: câu lệnh sau sẽ gán giá trị trả về từ SelectTarget_popupmenu vàobiến SelectTarget là một giá trị nguyên Xử lý tiếp theo có thể dùng cấu trúc ifhoặc switch SelectTarget=get(handles.SelectTarget_popupmenu,'Value').
1.5.2 Lập trình điều khiển với GUI
Sau khi tạo một giao diện đủ các thành phần theo mong muốn là một côngviệc hết sức quan trọng Tuy nhiên để giao diện đó hoạt động được thì cần phảiviết chương trình điều khiển bằng cách nhấn vào thẻ M-file editor trên thanhcông cụ và tìm hàm: function pushbutton1_Callback(hObject,eventdata, handles)để viết chương trình điều khiển
Trước tiên phải dùng lệnh:
get(handles.tên con trỏ, ‘string’); để đọc dữ liệu từ ô dữ liệu trên GUI.Trong đó: <tên con trỏ> chính là tên đặt trong Tag của Property Inspector
Dữ liệu đọc được đang ở kiểu ‘ký tự’ muốn dùng để tính toán cần phải cóthao tác chuyển đổi sang kiểu ‘số’ (str2num)
Ví dụ: để đọc dữ liệu từ ô edit text có Tag là a1 như sau
set(handles.tên con trỏ, ‘string’,c)
Tuy nhiên dữ liệu <c> cần có kiểu ‘ký tự’, muốn vậy phải dùng lệnhnum2str để chuyển đổi
Ví dụ:
c=a+b;
Chương I: Cơ sở Matlab
Trang 22
c=num2str(c);
set(handles.tên con trỏ, ‘string’,c);
Viết chương trình điều khiển xong chỉ việc nhấn F5 để thực hiện chạy thử
và chỉnh sửa
Chương I: Cơ sở Matlab
Trang 23CHƯƠNG II ỨNG DỤNG MATLAB TRONG GIẢI MỘT SỐ BÀI
TOÁN LÝ THUYẾT MẠCH ĐIỆN
Nội dung trong chương này chủ yếu tóm tắt một số nội dung cơ bản củamôn học lý thuyết mạch: cơ sở toán học, các hàm thực hiện trong Matlab Từ cơ
sở đó đề xuất xây dựng giao diện thực hiện trong Matlab sao cho thuận tiệnnhất cho người sử dụng; đồng thời nghiên cứu lập trình để tính toán giải các bàitoán lý thuyết mạch một cách tổng quát cho các nội dung đã được đề cập ở phần
lý thuyết của chương
2.1 Biểu diễn số phức và ảnh phức của tín hiệu xoay chiều điều hòa
2.1.1 Hàm chuyển đổi giữa hai dạng cơ bản mô tả tín hiệu hình sin, ảnh phức .
a.Cơ sở lý thuyết
Khái niệm tín hiệu hình sin và ảnh phức của tín hiệu sin
j o
u t U t U e
Khi đã xác định được ảnh phức của một tín hiệu hình sin, ta có thể biểudiễn số phức đó ở một trong hai dạng chuẩn là dạng Ơ-le (hay còn gọi là dạngtọa độ cực) hoặc dạng đại số (hay còn gọi là dạng tọa độ Đề-các)
Dạng đại số của một số phức được biểu diễn:
x a jb
trong đó: a – thành phần thực, b- thành phần ảo của số phức x
Dạng Ơ-le của một số phức được biểu diễn
x A
trong đó: A – biên độ của số phức, - pha của số phức
Chương II: Ứng dụng Matlab trong giải một số bài toán lý thuyết mạch điện
Trang 24
Công thức để chuyển đổi giữa hai dạng:
Công thức chuyển đổi x= A ∠ϕ→a+ jb
b khi a a
+ Chuyển đổi từ dạng ơ le sang dạng đại số:
function [a,b]= O2D(A,phi)
% Hàm chuyển đổi từ dạng Ơ-le sang dạng đại số
% Các biến đầu vào:
% Các kết quả đầu ra:
a=A*cos(phi*pi/180);
b=A*sin(phi*pi/180);
+ Chuyển đổi từ dạng đại số sang ơ le:
function [a,b]= D2O(a,b)
% Hàm chuyển đổi từ dạng đại số sang dạng Ơ-le
% Các biến đầu vào:
Trang 25
A=abs(A1);
phi=angle(A1*180/pi);
2.1.2 Cộng, trừ, nhân , chia số phứcở dạng Ơ le
a Cơ sở lý thuyết
Giả sử cho hai số phức: V1 a1 jb1 V1 1, V2 a2 jb2 V2 2
Trang 26
a Cơ sở lý thuyết2.1.3 Giải hệ phương trình phức
Giả sử có hệ n phương trình tuyến tính n ẩn (các hệ số và biến có thể là sốphức):
n
b b
n
x x
% Hàm giải hệ phương trình tuyến tính
% Các biến đầu vào:
% Các kết quả đầu ra:
x=inv(A)*b;
Chương II: Ứng dụng Matlab trong giải một số bài toán lý thuyết mạch điện
Trang 27và cho phép xác định các tham số của mạch điện, tự động lập hệ phương trình,khảo sát các đại lượng của mạch điện dưới dạng đồ thị một cách nhanh chóng.Chương trình SCAM được lập trình trên m.file không chỉ đơn giản để mô tảmạch điện mà còn được biết đến như là một phương pháp dùng để giải mạchđiện, khảo sát các đại lượng của mạch điện trên Matlab Các phần tử mạch điệnđược định nghĩa trong thư viện của chương trình một cách đơn giản
Chương trình SCAM định nghĩa các phần tử và mạch điện như sau:
Xét một mạch điện gồm 3 nhánh như sau:
Trước tiên đi đặt tên các điểm nút cho mạch (0, 1, 2…) trong đó chọn mộtđiểm nút 0 được coi đó điện thế bằng không, còn lại các điểm nút được bắt đầu
từ 1, 2, ….cho đến hết
Chương II: Ứng dụng Matlab trong giải một số bài toán lý thuyết mạch điện
Trang 28Source)
V1 N1 N2 12
Mô tả giống như điện trở
Nút N1 là nút có điện thế dương, N2 là nút có điện thế âm
Dòng điện qua nguồn được quy định như hình vẽ (cả tên của biếndòng)
Chương II: Ứng dụng Matlab trong giải một số bài toán lý thuyết mạch điện
Trang 29Từ đó xây dựng được bảng mô tả mạch điện như sau(chú ý các ký hiệu, điểm nút, giá trị phần tử được cách nhau bởi 1 dấu cách):
V1 1 0 12 R1 1 2 1000 R2 2 0 2000 R3 2 0 2000
Chú ý: Các ký hiệu các phần tử (V, R ) đều phải được viết dạng chữ in hoa
2.2.2 Bài toán
Ví dụ 1:
Xét mạch điện ở trên như sau:
Chương II: Ứng dụng Matlab trong giải một số bài toán lý thuyết mạch điện
Trang 30
Nhập bảng mô tả mạch điện dưới đây vào Mfile trong Matlab và lưu thành
một file có đuôi mở rộng là cir với một tên tùy ý (ví dụ đặt tên là vidu1.cir).
V1 1 0 12 R1 1 2 1000 R2 2 0 2000 R3 2 0 2000
Sau đó muốn xem có file đó đã được lưu chưa chỉ cần đánh dir vào dầu nhắc cua Matlab như sau:
>> dir
scam.asv scam.m vidu1.cir
Để chạy chương trình chỉ việc đánh tên fname=’vidu1.cir’ ; vào dấu nhắc
của Matlab và scam như sau:
>> fname='vidu1.cir';
>> scam
Started please be patient.
Done! Elapsed time = 0.651 seconds.
Trang 31Để xem giá trị của các đại lượng dòng, áp hoặc giá trị các phần tử…Ví dụ
để biết điện áp nguồn V1 hay điện trở R1 chỉ việc làm như sau:
Trang 32Ví dụ 3: Thành lập phương trình mạch điện bằng phương pháp MNA
Chương trình SCAM luôn định nghĩa được 3 ma trận A, X và Z từ phương pháp MNA như sau:
Trang 33Ví dụ 4: Mô tả cho mạch điện có nhiều nhánh nhiều nút như sau:
Tương tự như hai ví dụ 3 và 4, ta phân tích mạch điện như hình vẽ Từ đó
đi xây dựng được một bảng mô tả mạch điện trên như sau:
Vg 1 0 4
Vx 3 2 6 R1 1 2 1 R2 2 0 4
Chương II: Ứng dụng Matlab trong giải một số bài toán lý thuyết mạch điện
Trang 34
R3 3 0 2
It 1 2 1 Lưu file nhập nội dung bảng trên với tên vidu4.cir Sau đó gọi file với
lệnh sau để bắt đầu làm việc
>> fname='vidu4.cir';
>> scam
Started please be patient.
Done! Elapsed time = 2.544 seconds.
Trang 35Started please be patient.
Done! Elapsed time = 1.633 seconds.
Trang 36R1 1 0 1000 C1 1 0 1E-6 C2 2 1 10E-6 L1 1 0 0.001 Lưu file với tên vidu5.cir Gọi hàm fname để bắt đầu chương trình
>> fname='Example6.cir';
>> scam
Started please be patient.
Done! Elapsed time = 1.583 seconds.
Trang 37>> collect(ans) %Sắp xếp lại theo bậc của toán tử
Để phân tích tỉ số giữa điện áp nút 2 với điện áp vào dạng đồ thị step và bode plot ta có thể viết như sau:
Trang 38
>> bode(mySys)
Qua các ví dụ trên ta cho thấy có thể giải mạch điện với n nhánh một cáchđơn giản chỉ việc mô tả mạch bằng một số dòng lệnh trên m.file sau đó sử dụngchương trình SCAM để tính giá trị và lập phương trình cho các điểm nút, mạchvòng, đồ thị dòng áp….một cách đơn giản
Chương II: Ứng dụng Matlab trong giải một số bài toán lý thuyết mạch điện
Trang 39Mạng 2 cửa
1
I
1
2
I
2.3 Mạng hai cửa tuyến tính không nguồn
2.3.1.Hệ phương trình dạng [A],[B]
dòng, áp cửa ra
Mô tả mối quan hệ U I 1 , 1
Mô tả mối quan hệ điện áp (U U 1 , 2
) theo các dòng điện (I I 1 , 2
b.Hệ phương trình dạng Y
Chương II: Ứng dụng Matlab trong giải một số bài toán lý thuyết mạch điện
Trang 402.3.4 Mối quan hệ giữa các hệ phương trình: [A],[B],[Z],[Y],[H],[G]
2.3.4.1 Chuyển đổi giữa 2 ma trận A và B :
Từ (3.1) và (3.2)
22 21 1
12 11
1 det( )