BÁO CÁO TÌM HIỂU VỀ PHẦN MỀM MATLAB VÀ ỨNG DỤNG CỦA MATLAB TRONG GIẢI MẠCH ĐIỆN
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
Trang 2M C L C ỤC LỤC ỤC LỤC
1 Tổng quan về Matlab 3
1.1 Khái niệm Matlab 3
1.2 Tổng quan về cấu trúc dữ liệu của Matlab 3
1.3 Hệ thống MATLAB 4
1.4 Làm quen với MATLAB 5
2 Cách sử dụng MATLAB 7
2.1 Một số lệnh,biến thường sử dụng trong MATLAB 7
2.2 Số phức trong MATLAB 8
2.3 Sử dụng cửa sổ Command Window 10
2.4 Sử dụng cửa sổ M-file 12
2.5 Đồ họa trong MATLAB 20
3 Sử dụng M-file của MATLAB trong giải bài toán mạch điện 27
3.1 Giải mạch điện ở trạng thái xác lập 27
3.2 Giải bài toán mạch điện ở quá trình quá độ 30
Trang 31 Tổng quan về Matlab.
1.1 Khái ni m Matlab ệm Matlab.
Matlab là viết tắt từ "MATrix LABoratory", được Cleve Moler phátminh vào cuối thập niên 1970 là một ngôn ngữ lập trình thực hành bậc caođược sử dụng để giải các bài toán về kỹ thuật được thiết kế bởi công
ty MathWorks 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ệu cùng với thư viện được lập trình sẵn cho phép người sử dụng có thể cóđược nhữ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.2 Tổng quan về cấu trúc dữ liệu của Matlab.
Matlab là một hệ thống tương giao, các phần tử dữ liệu là một mảng( mảng này không đòi hỏi về kích thước ) Chúng cho phép giải quyết cácvấn đề liên quan đến lập trình bằng máy tính, đặc biệt sử dụng các phéptính về ma trận hay vector và có thể sử dụng ngôn ngữ C học Fortran lậptrình rồi thực hiện ứng dụng lập trình đó bằng các câu lệnh từ MATLAB.MATLAB được viết nhằm truy cập vào phần mềm ma trận một cách dễdàng, phần mềm này được phát triển bởi các công trình Linpack và
Trang 4Eispack Ngày nay MATLAB dược phát triển bởi lapack và Artpack tạonên một nghệ thuật phần mềm cho ma trận.
a Dữ liệu
Dữ liệu của MATLAB thể hiện dưới dạng ma trận và có các kiểu
dữ liệu như: kiểu đơn single, kiểu double ( một kiểu dữ liệu thôngdụng dùng trong MATLAB ), kiểu Sparse, kiểu int8, uint8, int16,kiểu char, kiểu cell
b Ứng dụng
MATLAB tạo thuận lợi cho việc giải những bài toán phức tạp,MATLAB đc dùng để tính toán nghiên cứu ra các sản phẩm tốt nhấttrong sản xuất MATLAB cho phép các 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
1.3 Hệ thống MATLAB.
Hệ thống MATLAB được chia làm 5 phần:
Môi trường phát triển:
Đây là nơi đặt các thanh công cụ, các phương tiện giúp chúng ta sửdụng các lệnh và các file Bao gồm: Desktop, Command Window,Command History, Browsers for viewinghelp
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, các phép tính đơngiản cho đến các phép tính phức tạp như tính ma trận nghịch đảo, trịriêng, chuyển đổi, laplace
Ngôn ngữ MATLAB:
Đó là ngôn ngữ về ma trận và mảng, các dòng lệnh, các hàm, các cấutrúc dữ liệu vào, có thể lập trình hướng đối tượng
Trang 5 Đồ họa MATLAB:
Bao gồm các câu lệnh thể hiện đồ họa trong môi trường 2D và 3D,tạo các ảnh chuyển động, cung cấp các hình ảnh tương tác giữangườ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.4 Làm quen v i MATLAB ới MATLAB.
Giao diện làm việc của MATLAB:
Trang 6Hình 1: giao diện của MATLAB.
Cửa sổ đó chứa các công cụ ( giao diện giữa người và máy ) cần thiết choviệc quản lý các file, các biến, các của sổ lệnh, có thể coi desktop là cácpanel gồm các ô, vùng, quản lý và tác dụng của từng của sổ nhỏ được quản
lý bởi desktop
+ Cửa sổ lệnh Command Window: đây là cửa sổ chính của MATLAB.Tại đây ta thực hiện tất cả các công việc nhập dữ liệu và xuất kết quả tính
Trang 7toán Dấu >> báo hiệu chương trình sẵn sàng hoạt động, kết thúc mỗi lầnnhập bằng dấu ENTER, muốn đóng màn hình MATLAB có thể sử dụnglệnh quit, exit hoặc tổ hợp phím Ctrl+q.
+ Cửa sổ soạn thảo Editor: Nhờ chương trình soạn thảo MATLAB ta cóthể viết mới hay sửa đổi các Scripts và các hàm Bên cạnh chức năng soạnthảo, còn có các chức năng thông thường khác mà một chương trình soạnthảo cần phải có, phục vụ xử lý từng bước nội dung chương trình, hay đểphát hiện lỗi
+ Cửa sổ quá khứ
Command History: tất cả
các lệnh trong Command
Window được lưu trữ và
hiện thị tại đây Có thể lặp
Trang 8+ Cửa sổ môi
trường công tác
Wordspace Browser:
Tất cả các biến, hàm
tồn tại trong môi
trường công tác đều
được hiển thị trong
môi trường này với
đầy đủ thông tin
như: tên, loại biến/hàm, kích cỡ tính theo byte và loại dữ liệu Ngoài ra còn
có thể cất vào bộ nhớ toàn bộ dữ liệu đó hoặc sử dụng chức năng ArrayEditor (soạn thảo mạng) để thay đổi các biến
+ Cửa sổ Launch Pad: Cửa sổ này cho phép người dùng truy cập nhanhvào cửa sổ MATLAB, phần Help hoặc phần Online Documents, mởDemos
+ Cửa sổ thư mục hiện tại Current Directory Browser: Nhờ cửa sổ nàyngười sử dụng có thể nhận biết, chuyển đổi thư mục hiện tại của môitrường công tác, mở File, tạo thư mục mới
- Clear biến 1, biến 2 : xóa các biến được liệt kê trong câu lệnh
- Who: hiển thị các biến được định nghĩa trong chương trình
Hình 3: Cửa sổ Wordspace
Trang 9- Whos: hiển thị các biến được định nghĩa trong chương trình cùng vớithông số về biến.
- Size (tên biến đã được định nghĩa): cho biết kích cỡ của biến dướidạng ma trận với phần tử thứ nhất là số hàng của ma trận, phần tử thứhai là số cột của ma trận
- Save: lưu giữ các biến vào một File dưới dạng Matlab.mat
- Load: Tải các biến đã được lưu giữ trong một File đưa vào vùng làmviệc
+ Một số biến được định nghĩa trước:
- ans: tự động gán tên này cho kết quả của phép tính mà ta không đặttên
- pi:
- realmax: đưa ra giá trị số lớn nhất mà máy tính có thể tính toán được
- realmin: đưa ra giá trị số nhỏ nhất mà máy tính có thể tính toán được
2.2 S ph c trong MATLAB ố lệnh,biến thường sử dụng trong MATLAB ức trong MATLAB.
+ Biểu thức biểu diễn số phức:
- imag(x): tìm phần ảo của số phức x
- conj(x): tìm số phức liên hợp của số phức x
- abs(x): tìm giá trị tuyệt đối của số phức x
- angle(x): góc tạo bởi giữa trục thực và trục ảo cảu số phức x
Trang 112.3 S d ng c a s Command Window ử dụng trong MATLAB ụng trong MATLAB ử dụng trong MATLAB ổ Command Window.
Do dữ liệu của MATLAB dưới dạng ma trận nên các biến dùng trongMATLAB cũng ở dạng ma trận, việc đặt tên biến không được đặt một cáchtùy tiện mà phải đặt theo một quy định
Nhập các biến, ma trận, các lệnh liệt kê trực tiếp
Trường hợp không sử dụng biến lưu kết quả, biến ans tự động được gán: >>6+7
Trang 121 2
3 4MATLAB có hàng trăm hàm được định nghĩa sẵn như: sin , cos
Chú ý : thứ tự ưu tiên các phép toán : dấu ngoặc() trong biểu thức -> toán
tử ^ (thực hiện từ trái sang phải) -> toán tử nhân * , chia / (có cùng mức
ưu tiên thực hiện từ trái sang phải) -> phép cộng + , phép trừ -
Ví dụ : cho 3 số a=1, b=-2, c=1, giải phương trình bậc 2 với các hệ số đó:
Trang 13+ Lưu và lấy dữ liệu:
>> load ('C:\matlabR12\work\ten_file', '-ASCII ')
Ví dụ:
>>a=3;
>>b=4;
>>save('C:\matlabR12\work\save','a','b','-ASCII') %lưu 2 biến a và b
>>load('C:\matlabR12\work\save','-ASCII') %khôi phục dữ liệu
2.4 S d ng c a s M-file ử dụng trong MATLAB ụng trong MATLAB ử dụng trong MATLAB ổ Command Window.
Cách vào M-file: File/New/M-file, môi trường soạn thảo Editor/ Debugger
Trang 14Khi viết xong chương trình, ghi nội dung với tên Vidu.m rồi thoát ra khỏicủa sổ soạn thảo trở về cửa sổ lệnh Tại cửa sổ này gõ tên Vidu.m vào sautín hiệu lệnh >>
- Script file: là một chương trình con không có giá trị trả về
- Function file: là một chương trình con có giá trị trả về
a Script file
Để thay đổi các giá trị a, b, c ta
sửa lại chương trình Vidu.m trên
Trang 15Mỗi một file hàm của MATLAB được khai báo như sau:
Function [tên kết quả] = tenham(danh sách các biến)
Phần thân của chương trình trong hàm là các lệnh của MATLAB được thựchiện tính toán các giá trị các đại lượng được nêu ở phần tên kết quả theocác biến được nêu trong phần danh sách các biến Các biến chỉ có tác dụng
Hình 5: viết chương trình giải pt bậc 2 với Script file (2)
Trang 16nội trong các hàm vừa được khai báo Tên của các biến được cách nhaubằng dấu phẩy (,).
Ví dụ 1: Thành lập hàm đổi từ độ sang radian
function rad = change(do)
rad = do*pi/180; %đổi độ sang radian
File.m thường lấy tên là tên hàm, ta đặt tên file vừa lập là change.m
Nếu muốn đổi 45o sang rad ta chỉ cần gõ
>>rad=change(45)
rad=
0.7854
Ví dụ 2: tạo hàm giải phương trình
bậc 2 với tên hàm là bachai.m
Hình 6: hàm giải ptb2 viết trong M-file
Hình 7: thực hiện chương trình bachai.m trong command window
Trang 17-2.2707
Chú ý :
Cấu trúc câu lệnh điều kiện và vòng lặp
+ Cấu trúc câu lệnh điều kiện.
Trang 18 Câu điều kiện và lệnh Break.
Cú pháp: if<biểu thức logic> ,break,End
Trang 19Quy tắc: Thoát khỏi vòng lặp nếu điều kiện trong biểu thức logic đúngngược lại sẽ thực hiện tiếp bên trong vòng lặp
Ví dụ: giải ptb2, biện luận số nghiệm của pt
a=input(' vao a=')
Hình 8:giải và biện luận ptb2 bằng câu lệnh điều kiện
Hình 9: thực hiện chương trình giải và biện luận ptb2
Trang 20- Nếu ma trận biểu thức mà rỗng thì không thực hiện vòng lặp.
- Nếu biểu thức là một đại lượng vô hướng thì vòng lặp thực hiện 1 lần
và chỉ nhận giá trị của đại lượng vô hướng
- Khi kết thúc vòng lặp,chỉ số chỉ nhận giá trị cuối cùng
- Có thể dùng toán tử: for i = chỉ số đầu:gia số:chỉ số cuối
lưu vào với tên: lenhfor
Gõ vào cửa sổ Command Window
Trang 21Nhóm lệnh A;
End
Quy tắc: nếu biểu thức đúng thì thực hiện nhóm lệnh A, khi thực hiện xongkiểm tra điều kiện nếu điều kiện vẫn đúng thực hiện tiếp nhóm lệnh A, nếusai vòng lặp kết thúc
+ Symbolic trong M-file
Ví dụ:
syms x %khai báo biến x là biến symbolic
f=3*x^2+2*x+5 %hàm f là hàm symbolic
biến symbolic là một biến có thể thay đổi được
hàm chứa biến symbolic là hàm số thay đổi theo biến suymbolic
2.5 Đ h a trong MATLAB ồ họa trong MATLAB ọc Bách Khoa Hà Nội
2.5.1 Vẽ đồ thị đường điểm trong MATLAB.
Để vẽ đồ họa trong MATLAB chúng ta sử dụng lệnh plot
Trang 22của y theo các chỉ số tương ứng của chúng, nếu y là ma trận các số thực,nếu y là các số phức thì plot(y) tương ứng với plot(real(y),image(y)).
2.5.2 Vẽ các đường, các điểm trong không gian.
Dùng hàm plot3(x,y,z) để vẽ các đường, các điểm trong không gian
Chú ý lệnh View(a,b) để quan sát góc nhìn của đồ thị, trong đó a là góc tínhtheo chiều ngược chiều kim đồng hồ từ phía âm của trục y, còn b là gócnhìn tính bằng độ xuống mặt phẳng (x,y) Nếu không sử dụng View, giá trịmặc định của (a,b) là (-37.5,30).khi cho a=0, b=90 thì hình vẽ trở về hình
Trang 23Khi chuyển từ hệ tọa độ cực
sang hệ tọa độ Decart ta làm
Trang 24Phân thành 4 khoanh, mỗi
khoanh tương ứng với phần
trăm của các phần tử trong x
Đồ thị: hình 14
Hình 13: Đồ thị bar(x,exp(-x.*x))
Hình 14: Đồ thị hình tròn của vecto x=[1 2 3 4]
Trang 252.5.6 Lệnh plot3(x,y,z) và cách tạo lưới.
Trang 26 Mô phỏng hệ thống bằng hàm quá độ xung.
Mô phỏng hệ thống bằng các đặc tính biên độ tần số và pha tần số
Hình 17: Mô phỏng hệ thống bằng hàm quá độ xung
Hình 18: Mô phỏng hệ thống bằng hàm đặc tính tần biên pha.
Trang 283 Sử dụng M-file của MATLAB trong giải bài toán mạch điện.
3.1 Gi i m ch đi n tr ng thái xác l p ải mạch điện ở trạng thái xác lập ại Học Bách Khoa Hà Nội ệm Matlab ở trạng thái xác lập ại Học Bách Khoa Hà Nội ập.
B1 Xác nhận giải mạch điện bằng dòng vòng hay dòng nhánh
B2 Viết ma trận thể hiện quan hệ giữa các dòng vòng hay dòng nhánh.B3 Xác định các thông số của các vòng hay các nhánh như : điện trở,nguồn dòng, nguồn áp, hỗ cảm…
B4 Đưa ra các biểu thức để xác định dòng điện của từng vòng, từng nhánh
và hiệu điện thế giữa các đỉnh
B5 Vẽ đồ thị của dòng điện, điện áp (nếu đề bài yêu cầu)
Trang 29Khởi động Matlab rồi vào File/New/M-file, môi trường soạn thảo Editor/Debugger sẽ xuất hiện: gõ trực tiếp các lệnh sau rồi lưu lại với tên vidu1.m:B=[1 0 1;0 1 1] % Ma tran dong vong
Iv=inv(Zv)*Ev % dong vong, inv la phep tinh nghich dao
Inh=B'*Iv % dong nhanh
Trang 30Unh=Znh*(Inh+Jnh)-Enh % dien ap nhanh
Sau khi lưu lại, quay trở lại cửa sổ Current Directory kích trái chuột vàotên vidu1.m rồi kích vào Run Tại cửa sổ Command Window sẽ cho tanhập các giá trị của các phần tử trong mạch Với số liệu: E1=100, E2=200/_30, J3=10/_60, Z1=11+j41, Z2=21+j51, Z3=31+j61, Z12=Z21=0,Z23=Z32=-j*0.5*sqrt(51*61), Z13=Z31=-j*0.75*sqrt(41*61) kết quả sẽhiện ra:
Kết quả trên màn hình
3.2 Gi i bài toán m ch đi n quá trình quá đ ải mạch điện ở trạng thái xác lập ại Học Bách Khoa Hà Nội ệm Matlab ở trạng thái xác lập ội
Sử dụng phương pháp toán tử Laplace để giải bài toán quá độ :
L=laplace(F) : biến đổi Laplace của hàm F với biến mặc định t và nócho ta một hàm của s
L=laplace(F,t) : L là hàm của t thay thế cho biến mặc nhiên s
Trang 31 L=laplace(F,w,z) : L là hàm của z và F là hàm của w và nó thay thếcho biến symbolic mặc nhiên s và t tương ứng.
F=ilaplace(L) : Biến đổi Laplace ngược với hàm symbolic L với biếnmặc nhiên độc lập s, nó cho ta một hàm của t
F=ilaplace(L,y) : F là hàm của y thay thế cho biến mặc nhiên t
F=ilaplace(L,y,x) : F là hàm của x, L là hàm của y,nó thay thế chobiến symbolic mặc nhiên t và s
Ví dụ : Cho mạch điện như hình vẽ :
E=120sint10t V, J=10A,
R1=10 Ω, R2=20Ω, L=1H,
C=1mF Khi khóa ở vị trí
1, mạch ở trạng thái xác
lập Tại thời điểm t=0
khóa K chuyển từ 1 sang
2 Tìm dòng điện quá độ trên
Gõ các dòng lệnh sau vào cửa sổ
m-file rồi lưu lại với tên vidu2.m :
B=[1 1 0;0 1 1]
syms s % Khai bao bien symbolic
E1=1200/(s*s+100); E2=10; E3=200/s;
Enh=[E1;-E2;E3]
Z1=10;Z2=20+s;Z3=1000/s;
Znh=[Z1 0 0;0 Z2 0;0 0 Z3]