Download pdf - Báo cáo nhập môn

Transcript
Page 1: Báo cáo nhập môn

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ỹ

Page 2: Báo cáo nhập môn

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

Page 3: Báo cáo nhập môn

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à

Page 4: Báo cáo nhập môn

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.

Page 5: Báo cáo nhập môn

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.

Page 6: Báo cáo nhập môn

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

Page 7: Báo cáo nhập môn

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

Page 8: Báo cáo nhập môn

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.

Page 9: Báo cáo nhập môn

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

Page 10: Báo cáo nhập môn

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=

Page 11: Báo cáo nhập môn

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=

Page 12: Báo cáo nhập môn

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);

Page 13: Báo cáo nhập môn

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)

Page 14: Báo cáo nhập môn

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)

Page 15: Báo cáo nhập môn

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

Page 16: Báo cáo nhập môn

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;

Page 17: Báo cáo nhập môn

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

Page 18: Báo cáo nhập môn

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

Page 19: Báo cáo nhập môn

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:

Page 20: Báo cáo nhập môn

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.

Page 21: Báo cáo nhập mô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]

Page 22: Báo cáo nhập môn

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))

Page 23: Báo cáo nhập môn

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]

Page 24: Báo cáo nhập môn

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á độ

Page 25: Báo cáo nhập môn

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.

Page 26: Báo cáo nhập môn

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

Page 27: Báo cáo nhập môn

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

Page 28: Báo cáo nhập môn

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;

Page 29: Báo cáo nhập môn

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

Page 30: Báo cáo nhập môn

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ẽ

Page 31: Báo cáo nhập môn

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