Upload
le-cong
View
101
Download
2
Embed Size (px)
Citation preview
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN
=== ===
BẢN 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
SINH VIÊN THỰC HIỆN:
1. Nguyễn Đình Quân MSSV: 20122278
2. Phạm Văn Sơn MSSV: 20122361
GIẢNG VIÊN HƯỚNG DẪN: Đặng Văn Mỹ
Trường Đại Học Bách Khoa Hà Nội Page 2
MỤ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
Trường Đại Học Bách Khoa Hà Nội Page 3
1. Tổng quan về Matlab.
1.1. Khái niệm Matlab.
Matlab là viết tắt từ "MATrix LABoratory", được Cleve Moler phát
minh 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ông
thườ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ác
vấn đề liên quan đến lập trình bằng máy tính, đặc biệt sử dụng các phép
tính về ma trận hay vector và có thể sử dụng ngôn ngữ C học Fortran lập
trì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à
Trường Đại Học Bách Khoa Hà Nội Page 4
Eispack. Ngày nay MATLAB dược phát triển bởi lapack và Artpack tạo
nê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ông
dụ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ất
trong 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 đơn
giả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ấu
trúc dữ liệu vào, có thể lập trình hướng đối tượng.
Trường Đại Học Bách Khoa Hà Nội Page 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ữ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.4. Làm quen với MATLAB.
Giao diện làm việc của MATLAB:
Hinh 1: giao diện của MATLAB.
Trường Đại Học Bách Khoa Hà Nội Page 6
Cửa sổ đó chứa các công cụ ( giao diện giữa người và máy ) cần thiết cho
việc quản lý các file, các biến, các của sổ lệnh, có thể coi desktop là các
panel 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 toá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ần nhập
bằng dấu ENTER, muốn đóng màn hình MATLAB có thể sử dụng lệ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ạn
thảo, còn có các chức năng thông thường khác mà một chương trình soạn
thả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
lại lệnh cũ bằng cách nháy
chuột kép vào lệnh đó.
Cũng có thể cắt, sao hay xóa
cả nhóm lệnh hoặc từng lệnh riêng rẽ.
Hinh 2: Cửa sổ Command history
Trường Đại Học Bách Khoa Hà Nội Page 7
+ 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 Array
Editor (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 nhanh
và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ày
người sử dụng có thể nhận biết, chuyển đổi thư mục hiện tại của môi
trường công tác, mở File, tạo thư mục mới.
2. Sử dụng MATLAB
2.1. Một số lệnh,biến thường sử dụng trong MATLAB
+ Một số lệnh với biến:
- Clear: lệnh xóa tất cả các biến đã được định nghĩa trước trong chương
trình
- 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.
Hinh 3: Cửa sổ Wordspace
Trường Đại Học Bách Khoa Hà Nội Page 8
- Whos: hiển thị các biến được định nghĩa trong chương trình cùng với
thô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ưới
dạ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àm
việ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 đặt
tê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.
+ Biểu thức biểu diễn số phức:
Tên = phần_thực + phần_ảo*i
Hoặc:
Tên = phần_thực + phần_ảo*j
+ Các hàm đặc biệt:
- real(x): tìm phần thực của số phức x.
- 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.
Trường Đại Học Bách Khoa Hà Nội Page 9
Ví dụ:
>>x=3.0000+4.0000i
x=
3.0000+4.0000i
>>thuc=real(x);
thuc=
3.0000
>>ao=imag(x);
ao=
4.0000
>>lienhop=conj(x);
lienhop=
3.0000-4.0000j
>>dolon=abs(x) ;
dolon=
5.0000
>>goc=angle(x) ;
goc=
36.8699
Trường Đại Học Bách Khoa Hà Nội Page 10
2.3. Sử dụng cửa sổ Command Window.
Do dữ liệu của MATLAB dưới dạng ma trận nên các biến dùng trong
MATLAB cũng ở dạng ma trận, việc đặt tên biến không được đặt một cách
tù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
ans=
13
Nhập biến và sử dụng lưu biến a=3 như sau:
>>a=3
a=
3
Bạn có thể sử dụng biến này cho các phép toán tiếp theo:
>>b=a*3
b=
9
Nhập trực tiếp số liệu ma trận:
>>A=[1 2;3 4]
A=
Trường Đại Học Bách Khoa Hà Nội Page 11
1 2
3 4
MATLAB có hàng trăm hàm được định nghĩa sẵn như: sin , cos....
Ví dụ:
>>x=pi
>>sin(x)
ans=
1.2246e-016
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ố đó:
>>a=1 ;
>>b=-2 ;
>>c=1 ;
>>delta=b^2-4*a*c ;
>>x1=(-b-sqrt(delta))/(2*a);
x1=
1
>>x2=(-b+sqrt(delta))/(2*a);
x2=
Trường Đại Học Bách Khoa Hà Nội Page 12
1
+ Lưu toàn bộ các biến trong Wordspace vào file:
>>save(‘C:\matlabR12\work\ten_file’,-ASCII)
+ Lưu hai biến x và y vào file
>>save(‘C:\matlabR12\work\ten_file’,’x’,’y’,’-ASCII’)
+ 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. Cách vào M-file: File/New/M-file, môi trường soạn thảo Editor/ Debugger
sẽ xuất hiện.
Nhập trực tiếp các biến:
a=2;
b=5;
c=-3;
x1=(-b-sqrt(b^2-4*a*c))/(2*a);
x2=(-b+sqrt(b^2-4*a*c))/(2*a);
Trường Đại Học Bách Khoa Hà Nội Page 13
Khi viết xong chương trình, ghi nội dung với tên Vidu.m rồi thoát ra khỏi
củ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 sau
tín hiệu lệnh >>
>>Vidu.m
>>x1=
-3.0000
>>x2=
0.5000
Các file*.m có 2 loại:
- 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
bằng các dòng nhắc nhập a, b, c
với các lần chạy chương trình
khác nhau.
Sử dụng lệnh input
Ví dụ: Giải phương trình bậc 2
a=input(‘nhap a=’);
b=input(‘nhap b=’);
c=input(‘nhap c=’);
Hinh 4: viết chương trinh giải pt bậc 2 với Script file (1)
Trường Đại Học Bách Khoa Hà Nội Page 14
x1=(-b-sqrt(b^2-4*a*c))/(2*a);
x2=(-b+sqrt(b^2-4*a*c))/(2*a);
Lưu nội dung với tên vidu1.m và thoát khỏi cửa sổ soạn thảo trở về cửa sổ
lệnh.
>>vidu1.m
Cửa sổ lệnh xuất hiện:
nhap a= 2 %nhập hệ số a
nhap b=3 %nhập hệ số b
nhập c=2 %nhập hệ số c
>>x1
x1=
-0.7500-0.6614i
>>x2
x2=
-0.7500+0.6614i
b. Function file.
Mỗ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ực
hiện tính toán các giá trị các đại lượng được nêu ở phần tên kết quả theo
cá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
Hinh 5: viết chương trinh giải pt bậc 2 với Script file (2)
Trường Đại Học Bách Khoa Hà Nội Page 15
nội trong các hàm vừa được khai báo. Tên của các biến được cách nhau
bằ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.
function [x1,x2] = bachai(a,b,c)
delta=b^2-4*a*c;
x1=(-b-sqrt(delta))/(2*a);
x2=(-b+sqrt(delta))/(2*a);
Ra cửa sổ lệnh và gõ:
>>[x1,x2] = bachai(4,6,-7)
x1=
0.7707
Hinh 6: hàm giải ptb2 viết trong M-file
Hinh 7: thực hiện chương trinh bachai.m
trong command window
Trường Đại Học Bách Khoa Hà Nội Page 16
x2=
-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.
Lệnh if đơn.
Cú pháp của lệnh if đơn là:
if<biểu thức logic>
Nhóm lệnh;
End
Quy tắc: Nếu biểu thức logic đúng thì nhóm lệnh được thực hiện, nếu biểu
thức logic sai chương trình chuyển đến lệnh End.
Cấu trúc lệnh if lồng.
Cú pháp của cấu trúc lệnh if lồng:
if<biểu thức logic1>
Nhóm lệnh 1;
if<biểu thức logic 2>
Nhóm lệnh 2;
End
Nhóm lệnh 3;
Trường Đại Học Bách Khoa Hà Nội Page 17
End
Nhóm lệnh 4;
Quy tắc:
Nếu biểu thức logic 1 đúng thì:
- Thực hiện nhóm lệnh 1
- Kiểm tra biểu thức logic 2
+ Nếu đúng thực hiện nhóm lệnh 2.
+ Nếu sai bỏ qua nhóm lệnh 2.
- Thực hiện nhóm lệnh 3
Nếu biểu thức logic 1 sai thì:
- Thực hiện nhóm lệnh 4.
Lệnh else.
Cú pháp của lệnh else:
if<biểu thức logic>
Nhóm lệnh A;
else
Nhóm lệnh B;
End
Quy tắc: Nếu biểu thức logic đúng thì nhóm lệnh A được thực hiện, nếu
biểu thức logic sai thì thực hiện nhóm lệnh B.
Câu điều kiện và lệnh Break.
Cú pháp: if<biểu thức logic> ,break,End
Trường Đại Học Bách Khoa Hà Nội Page 18
Quy tắc: Thoát khỏi vòng lặp nếu điều kiện trong biểu thức logic đúng
ngượ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=')
b=input(' vao b=')
c=input(' vao c=')
d=b^2-4*a*c
if d < 0
disp(' pt vo nghiem')
elseif d==0
disp (' pt co nghiem kep')
x12=-b/2*a
else
disp (' pt co 2 nghiem phan biet')
x1=(-b+sqrt(d))/2*a
x2=(-b-sqrt(d))/2*a
end
+ Cấu trúc vòng lặp.
Vòng lặp for.
For chỉ số = biểu thức
Nhóm lệnh A;
End
Hinh 8:giải và biện luận ptb2 bằng câu lệnh điều kiện
Hinh 9: thực hiện chương trinh giải và biện luận ptb2
Trường Đại Học Bách Khoa Hà Nội Page 19
Quy tắc:
- Chỉ số vòng lặp phải là biến.
- 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.
Ví dụ: vòng lặp for
n=input ('vao n=')
for k=n
s=1;
s=s+k
end
lưu vào với tên: lenhfor.
Gõ vào cửa sổ Command Window
>>lenhfor
n=3 %nhập n
n=
3
s=
4 (kết quả đưa ra màn hình của s)
Vòng lặp while.
Cú pháp:
Trường Đại Học Bách Khoa Hà Nội Page 20
While<biểu thức>
Nhó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 xong
kiể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ếu
sai 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.
2.5.1. Vẽ đồ thị đường điểm trong MATLAB.
Để vẽ đồ họa trong MATLAB chúng ta sử dụng lệnh plot
plot(Y)
plot(X1,Y1,…)
h=plot(…)
Mô tả : hàm plot có nhiều cách dùng như chúng ta thấy như trên.
Trường Đại Học Bách Khoa Hà Nội Page 21
plot(y) : hàm này thể hiện biểu diễn các cột củ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)).
Ví dụ như sau :
A=[ 1 2 3
4 5 6
7 8 9 ]
plot(A) sẽ ra kết quả:
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ính
theo chiều ngược chiều kim đồng hồ từ phía âm của trục y, còn b là góc
nhì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
vẽ ở mặt phẳng 2 chiều
Ví dụ: vẽ đồ thị x=sin(t); y=cos(t); z=t;
>>plot3(sin(t),cos(t),t)
Đồ thị như hình sau :
Hinh 10: Ví dụ đồ thị đường với ma trận A=[1 2 3;4 5 6;7 8 9]
Trường Đại Học Bách Khoa Hà Nội Page 22
2.5.3. Vẽ tọa độ cực.
Cú pháp : polar(theta,rho)
polar(thrta,rho,Linespec)
Ví dụ:
polar(t,sin(2*t).*cos(2*t))
đồ thị xuất hiện :
Khi chuyển từ hệ tọa độ cực
sang hệ tọa độ Decart ta làm
như sau :
[x,y]=pol2cart(t,sin(2*t).cos(2*t))
Sau đó dùng lệnh plot(x,y).
2.5.4. Đồ thị cột.
Cú pháp :
bar(Y)
Hinh 11: Đồ thị plot3(sint(t),cos(t),t)
Hinh 12: Đồ thị polar(t,sin(2*t).*cos(2*t))
Trường Đại Học Bách Khoa Hà Nội Page 23
bar(x,Y)
bar(x,y,z)
Ví dụ :
x = -2.9:0.2:2.9; %x chạy
từ -2.9 đến 2.9 và khoảng
cách các cột là 0.2
bar(x,exp(-x.*x))
Đồ thị như sau :
2.5.5. Đồ thị hình tròn.
Cấu trúc: pie(x)
Hàm này vẽ đồ thị tròn với các phần được xác định bởi phần trăm các giá
trị trong vectơ x.
Ví dụ: x=[ 1 2 3 4 ]
Phâ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.
Hinh 13: Đồ thị bar(x,exp(-x.*x))
Hinh 14: Đồ thị hinh tròn của vecto x=[1 2 3 4]
Trường Đại Học Bách Khoa Hà Nội Page 24
2.5.6. Lệnh plot3(x,y,z) và cách tạo lưới.
mesh(z) là lệnh để tạo
lưới.
Ví dụ:
>>a=linspace(0,10,100);
>> b=linspace(0,6,100);
>> [x,y]=meshgrid(a,b);
>> z=sin(x).*cos(y);
>> mesh(z)
Đồ thị: hình 15
2.5.7. Mô phỏng hệ thống điều khiển.
Ví dụ: hệ thống có hàm truyền:
W(s)=(s+2)/(s2+3s+4);
Mô phỏng hệ thống bằng
hàm quá độ.
Cú pháp:
>>W=tf(tử số,mẫu số);
>>step(W)
>>W=tf([1 2],[1 3 4]);
>>step(W)
Đồ thị như hình vẽ:
Hinh 15: Đồ thị 3D và vẽ lưới
Hinh 16: Mô phỏng hàm quá độ
Trường Đại Học Bách Khoa Hà Nội Page 25
Mô phỏng hệ thống bằng hàm quá độ xung.
Cú pháp:
>>W=tf(tử số,mẫu số);
>>impulse(W)
Xét ví dụ trên:
>>W=tf([1 2 ],[1 3 4] ) ;
>>impulse(W)
Mô phỏng hệ thống bằng hàm đặc tính tần biên pha.
Cú pháp :
>>W=tf(tử số,mẫu số) ;
>>nyquist(W)
Xét ví dụ trên :
>>W=tf([1 2],[1 3 4]) ;
>>nyquist(W)
Hinh 17: Mô phỏng hệ thống bằng hàm quá độ xung
Hinh 18: Mô phỏng hệ thống bằng hàm đặc tính tần biên
pha.
Trường Đại Học Bách Khoa Hà Nội Page 26
Mô phỏng hệ thống bằng các đặc tính biên độ tần số và pha tần số.
Cú pháp :
>>W=tf(tử số,mẫu số) ;
>>bode(W)
Xét ví dụ trên :
>>W=tf([1 2],[1 3 4]) ;
>>bode(W)
Đồ thị bode như hình vẽ :
2.5.8. Cách vẽ một số hàm đặc biệt.
Vẽ các hàm được viết sẵn.
Sử dụng lệnh
fplot(‘tên_ham’,[khoảng
cách vẽ])
Ví dụ:vẽ đồ thị hàm số
f=4x2+6x-7 trên đoạn [-6;6]
function y = bachai1(x)
a = 4;b = 6; c = -7;
y =a*x^2 + 6*x + c;
>>fplot(‘bachai1’, [-6,6])
Hinh 20: Đồ thị hàm số bậc 2
Hinh 19: Đồ thị bode mô phỏng hệ thống
Trường Đại Học Bách Khoa Hà Nội Page 27
Đồ thị cho các biến, hàm symbolic.
Sử dụng cú pháp:
ezplot(y,[xo xm]) : vẽ y theo biến x
thuộc khoảng [xo xm]
ví dụ:
>>syms x y;
>>y=sym(‘x^2’) ;
>>ezplot(y,[1 10]),grid on
Chú ý : muốn vẽ đồ thị 3D dùng
lệnh ezplot3.
Chú ý : lệnh grid on dùng để chia ô cho đồ thị.
3. 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.
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).
Hinh 21: đồ thị của hàm y=x2 với x,y là các biến symbolic
Trường Đại Học Bách Khoa Hà Nội Page 28
Ví dụ 1 : Cho
mạch điện như
hình vẽ :
Tính các dòng
điện nhánh bằng
phương pháp
dòng vòng.
Bài làm :
Khở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
j=sqrt(-1);
E1=input('nhap E1=');
E2=input('nhap E2=');
Enh=[E1;E2;0]
J3=input('nhap J3=');
Jnh=[0;0;J3] Cửa sổ Editor
Z1=input('nhap Z1=');
Z2=input('nhap Z2=');
Z3=input('nhap Z3=');
Z12=input('nhap Z12='); Z21=Z12;
Z23=input('nhap Z23='); Z32=Z23;
Z13=input('nhap Z13='); Z31=Z13;
Trường Đại Học Bách Khoa Hà Nội Page 29
Znh=[Z1 Z12 Z13;Z21 Z2 Z23;Z31 Z32 Z3]
Zv=B*Znh*B'
Ev=B*(Enh-Znh*Jnh)
Iv=inv(Zv)*Ev % dong vong, inv la phep tinh nghich dao
Inh=B'*Iv % dong nhanh
Unh=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ào
tên vidu1.m rồi kích vào Run. Tại cửa sổ Command Window sẽ cho ta
nhậ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
Trường Đại Học Bách Khoa Hà Nội Page 30
3.2. Giải bài toán mạch điện ở quá trình quá độ.
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.
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ến
mặ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ế cho
biế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 cuộn
dây ?
- Ở trạng thái xác lập: iL(-
0)=J=10A ; uC(-0)=R2J=200V.
- Ở trạng thái 2: Toán tử mạch
điện như hình vẽ
Trường Đại Học Bách Khoa Hà Nội Page 31
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]
Zv=B*Znh*B'
Ev=B*(Enh)
Iv=inv(Zv)*Ev
Inh=B'*Iv
inh=ilaplace(Inh)
Tại cửa sổ Current Directory kích trái chuột vào tên vidu2.m rồi kích vào
Run kết quả sẽ hiện ra trên cửa sổ Command Window:
Kết quả trên màn hình