Ứ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 – Tài liệu text

Ứ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.

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (891.58 KB, 81 trang )

1

1

Mục lục

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ên
thế 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 đổi
mới phương pháp quản lý, áp dụng công nghệ tiên tiến, hiện đại, để nâng cao
chất lượng và hiệu quả. Đối với ngành giáo dục cũng vậy, để cạnh tranh được
phải nâng cao chất lượng đào tạo, giữ vững thương hiệu. Muốn vậy, trong các
trườ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ực
của giảng viên, giáo viên, nhà trường cần phải chú trọng đến việc sử dụng
phươ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ình
giả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úp
cá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ạch
mấ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ệc
giả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à ứng
dụng kỹ thuật, phục vụ cho chuyên ngành và các lĩnh vực khoa học kỹ thuật
khá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 ra
kế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ính
toá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áy
tí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ính
xác và hiệu quả.
1

2

2

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.
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ết
quả 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án
cá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ây
dà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.

2

3

3

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ải
cá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ệ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.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ả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 là các phép tính về ma trận hay véc
tor 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ập
trình đó bằng các câu lệnh gọi từ Matlab. Matlab được viết tắt từ chữ matrix

laboratory tức là thư viện về ma trận, từ đó phần mềm Matlab được viết nhằm
cung 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 ma
trận này được phát triển bởi các công trình Linpack và Eispack. Ngày nay
Matlab đượ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.
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 ít

byte nhớ hơn, kiểu dữ liệu này không được sử dụng trong các phép
tí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 trong

Matlab
Chương I: Cơ sở Matlab

4

4

• Kiểu Sparse.
• Kiểu int8, uint8, int16….
• Kiểu char, ví dụ ‘ Hello’
• Kiểu cell
• Kiểu Structure

Trong Matlab kiểu dữ liệu double là kiểu mặc định sử dụng trong các phép tính
số học.

1.1.2.Ứng dụng
Matlab ứng dụng rất rộng rãi trong nhiều lĩnh vực và nó sử dụng rất nhiều
các phép tính toán học. Với những đặc điểm đó và khả năng thân thiện với
người sử dụng nên nó dễ dàng sử dụng hơn các ngôn ngữ lập trình khác như:
Basic, Pascal, C… 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, bạn có thể tạo các giao diện riêng cho
người sử dụng (Graphic User Interface – GUI) để giải quyết những vấn đề cho
riêng mình. 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 (thư viện công cụ). Ví dụ Student Edition của Matlab
bao gồm cả Toolbox điều khiển tự động, Toolbox xử lí số liệu, Toolbox tính
toá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:
 Môi trường phát triển.

Chương I: Cơ sở Matlab

5

5

Đâ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, 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ác
phép tính đơn giản đế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 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ác
hà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

6

6

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á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.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

^
;

,
Eps
I ,j
Inf
NaN
Pi

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)
Cấp chính xác tương đối khi sử dụng giá trị dấu phẩy động
Toán tử ảo
Vô cùng
Not a Number

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ủa
mộ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ột
chuỗ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.
Ví dụ:
>>giatri_1=8;

giatri_2=4;

>>giatri_1=8
giatri_1=
8
>> x=giatri_1 + giatri_2, X= giatri_1 * giatri_2
x=

Chương I: Cơ sở Matlab

7

7

12
X=

32

1.3.3. Các hàm đăc biệt
Trong Matlab có sẵn rất nhiều hàm toán, có thể liệt kê các hàm thường
dùng trong bảng sau:
Một số hàm toán học thông dụng
sqrt
Căn bậc hai
exp
Lũy thừa cơ số e
sin
Hàm sin
cos
Hàm cos
tan
Hàm tang
abs
Lấy giá trị tuyệt đối hoặc độ lớn của số phức
angle
Góc pha 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ập
trự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ách
trống, còn các hàng được cách bởi dấu; hoặc ngắt dòng.
>> A=[1 3 4;3 1 2]
A=
1

3

4

3

1

2

>>B=[1 3 4;6

5 3]

Chương I: Cơ sở Matlab

8

8

B=
1

3

4

6

5

3

Để truy cập từng phần tử của vector hoặc ma trận được thực hiện bằng cách
khai báo chỉ số của phần tử. Đặc biệt, khi cần xuất mọi phần tử của hàng hay
cột, có thể sử dụng toán tử (:).
>> B(2,3)
ans =
3
>> B(2,:)
ans =
6

5

3

>> B(:,3)
ans =
4

3
b. 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:
>> a=[2 1 4;2 4 1;5 1 1];
>> b=[1 2 1;3 2 2;1 1 3];
>> c=a*b
c =
9

10

16

15

13

13

9

13

10

>> d=a/b
d =
-0.5556

0.4444

1.2222

2.1111

0.1111

-0.4444

-1.5556

2.4444

-0.7778

Nếu như một trong các phép tính *, /, ^ cần được thực hiện cho từng phần
tử của vector hoặc ma trận, ta sẽ phải đặt thêm vào trước ký hiệu của phép tính

Chương I: Cơ sở Matlab

9

9

đó ký hiệu (.). Phép tính đối với các biến vô hướng luôn được thực hiện cho
từng phần tử một:
>> a./b
ans =
2.0000

0.5000

4.0000

0.6667

2.0000

0.5000

5.0000

1.0000

0.3333

Để tính ma trận nghịch đảo dùng lệnh inv(ma tran)
>> inv(a)
ans =
-0.0476

-0.0476

0.2381

-0.0476

0.2857

-0.0952

0.2857

-0.0476

-0.0952

Lệnh det(ma tran) dùng để tính định thức của ma trận
>> det(a)
ans =
-63

1.3.5. Các hàm phức tạp
a.Hàm plot
Hàm plot cho phép vẽ đồ thị trong mặt phẳng tọa độ x, y.
Ví dụ: vẽ đồ thị y = sin x.
Cho các giá trị của x từ −π đến π, các giá trị cách nhau 0,05π
>> x=[-pi:0.05*pi:pi];
>> y=sin(x);
>> plot(x,y);

Muốn vẽ thêm đồ thị y1=cos (x) ta dùng lệnh hold on. Lệnh hold on cho
phép giữ lại tất cả những hình vẽ đã được vẽ trước đó. Lệnh plot kế tiếp sẽ vẽ
thêm vào đó. Nếu ta không sử dụng lệnh hold on thì cụ thể trong trường hợp
này, ta sẽ mất đồ thị y= sin x. Khi đã hoàn thành hình vẽ, ta sử dụng lệnh hold
off để bỏ hình cũ khi ta vẽ tiếp hình khác.
Mộ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

10

10

>> poly([-1 0 1 2])
ans =
1

-2

-1

2

0

4

3
2
Kết quả là đa thức có dạng: x − 2 x − x + 2 x

c.Hàm polyder
Hàm polyder cho phép thực hiện tính đạo hàm của đa thức mà các hệ số
của hàm được thể hiện dưới dạng ma trận.
4
3
2
Ví dụ: Thực hiện tính đạo hàm của hàm f ( x ) = x − 2 x − x + 2 x với ma trận

hệ số là: [1 −2 −1 2 0] .
>> polyder([1 -2 -1 2 0])
ans =
4

-6

-2

2

3
2
Kết quả là đa thức có dạng: 4 x − 6 x − 2 x + 2

d. Một vài hàm toán học khác
Syms x

Khai báo biến hình thức x
diff(f(x)) Tính đạo hàm của hàm f(x)
conv(a,b Nhân hai đa thức có hệ số nhập thông qua hai ma trận a và b
)

1.3.6. Cấu trúc lệnh cơ bản
a.Cấu trúc if-else-end
Cú pháp của cấu trúc:
if biểu thức điều kiện
khối các lệnh
end
Khối các lệnh giữa hai trạng thái if và end được thực hiện khi tất cả biểu
thức điều kiện là đúng.
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
khối các lệnh được thực hiện nếu điều kiện là đúng

else
khối các lệnh được thực hiện nếu điều kiện là sai
end
Chương I: Cơ sở Matlab

11

11

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
khối các lệnh được thực hiện nếu điều kiện 1 là đúng
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
khối các lệnh được thực hiện nếu điều kiện 3 là đúng

else
khối các lệnh được thực hiện nếu không có điều kiện nào
đúng
end
Ví dụ: Viết chương trình giải phương trình bậc 2. Các hệ số a,b,c nhập từ bàn
phím.
function giaiptbac2
a=input(‘a=’);
b=input(‘b=’);
c=input(‘c=’);
delta=b^2-4*a*c;
if delta>0
x1=(-b-sqrt(delta))/(2*a);
x2=(-b+sqrt(delta))/(2*a);
fprintf(‘phuong trinh co 2 nghiem phan biet: x1=%6.2f,
x2=%6.2f\n’,x1,x2)
elseif delta==0
x=-b/(2*a);

fprintf(‘phuong trinh co nghiem kep: x1=x2=%6.2f\n’,x)
else
disp(‘phuong trinh vo nghiem’)
end

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

12

12

Cú pháp:
for

chỉ số=biểu thức

Nhóm lệnh
end
Ví dụ: Chương trình tính tổng của 10 số tự nhiên liên tiếp từ 1 đến 10
>> tong=0;
>> for dem=1:10
tong=tong+dem;
end
>> tong
tong =

55

 Vòng lặp while

Cú pháp:
While

biểu thức

Nhóm lệnh
end
Ví dụ: Chương trình tính tổng của 10 số tự nhiên liên tiếp từ 1 đến 10
>> dem=0;
>> tong=0;
>> while dem<10
dem=dem+1;
tong=tong+dem;
end
>> tong
tong =
55

1.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 đó do
người sử dụng viết ra được lưu trữ trong các file có phần mở rộng là *.m. File
dạ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

13

13

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ưu
chươ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à được
bao 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ủa
tham 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 khi
cần đến nó. Các giá trị tính toán trong hàm, tham số đầu ra không chịu tác động
củ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áo
hàm
Ví dụ: Thực hiện chương trình tính tổng trở tương đương của đoạn mạch
gồm n tổng trở ghép nối tiếp (n nhập từ bàn phím).
function ttnt

n=input(‘so luong tong tro ghep noi tiep:’);
ttnt=0;
for i=1:n
fprintf(‘tong tro %.0f:’,i)
z=input(”);
ttnt=ttnt+z;
end
if imag(ttnt)>0
fprintf(‘ket qua %6.2f + %6.2fi\n’,real(ttnt),imag(ttnt))

Chương I: Cơ sở Matlab

14

14

elseif imag(ttnt)==0
fprintf(‘ket qua %6.2f\n’,real(ttnt))
else
fprintf(‘ket qua %6.2f – %6.2fi\n’,real(ttnt),-imag(ttnt))
end

Kết quả chạy trên Matlab như sau:
>> ttnt
so luong tong tro ghep noi tiep:3
tong tro 1:2
tong 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

15

15

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 đối
tượng theo thao tác của người dùng. Mỗi đối tượng khi được kích hoạt sẽ gọi
mộ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 trong
cù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 quan
tâm. Có thể chạy thử giao diện trong màn hình soạn thảo GUI bằng cách ấn
phí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 push

button, nó sụp xuống; khi được nhả ra, sự kiện được đáp bằng cách gọi một
chương trình con trong đoạn lệnh callback tương ứng với sự kiện nút được ấn.
*Toggle Button
Toggle buttons tạo ra một tác động theo kiểu công tắc (on hoặc off). Thủ
tục callback cho biết trạng thái sau khi được ấn của đối tượng này.
Có thể đọc trạng thái này trong đối tượng đồ họa hiện hành (gcbo) bằng câu
lệnh get(gcbo,’Value’).
Để lập trạng thái cho một đối tượng Hold off dạng toggle ta dùng lệnh:
set(handles.Holdoff,’Value’,1);
MATLAB đảo giá trị thuộc tính Value sau mỗi lần ấn.
Chương I: Cơ sở Matlab

16

16

*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 đặt
giá 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ộc
tí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ăn

bả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ùng
kè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àm
str2double().
*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ập
và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 cho
thanh (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

17

17

– Slider – Value Property
Có thể điều chỉnh thuộc tính này trong khung soạn thảo GUI hoặc trong
chươ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 mouse
và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ương
trình hoặc lúc thiết kế. Mặc định là [0.01 0.10], thay đổi 1% khi click vào mũi
tê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ệu
hiể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ội
dung trực tiếp trong khi chương trình đang họat động và không có chương trình
con 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 Eidit
Text mang tên Voltage_text, (đoạn mã sau dấu % là gợi ý cho việc đọc ngưỡng
củ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ượng
cù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ép
ngườ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

18

18

* Popup Menu
Hiển thị một danh sách chọn dạng mở xuống khi người dùng click vào dấu
mũi tên, nội dung hiển thị chứa trong thuộc tính String.
Khi không mở ra, popup menu hiển thị nội dung hiện hành đã chọn trước
đó.Thuộc tính Value chứa kết quả chọn là số thứ tự của mục chọn. Có thể dùng
thay cho Radio Button.
Ví dụ: câu lệnh sau sẽ gán giá trị trả về từ SelectTarget_popupmenu vào
biến SelectTarget là một giá trị nguyên. Xử lý tiếp theo có thể dùng cấu trúc if
hoặ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ông
việc hết sức quan trọng. Tuy nhiên để giao diện đó hoạt động được thì cần phải
viết chương trình điều khiển bằng cách nhấn vào thẻ M-file editor trên thanh
cô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 đó: 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
a=get(handles.a,’string’);
a=str2num(a);

b=get(handles.b,’string’);
b=str2num(b);

Sau khi tính toán xong muốn xuất dữ liệu (hoặc kết quả ) ra edit text hoặc
static text nào đó cần phải dùng lệnh:
set(handles.tên con trỏ, ‘string’,c).

Tuy nhiên dữ liệu cần có kiểu ‘ký tự’, muốn vậy phải dùng lệnh
num2str để chuyển đổi
Ví dụ:
c=a+b;

Chương I: Cơ sở Matlab

19

19

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

20

20

CHƯƠ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ủa
mô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ện
nhấ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ài
toá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
u (t ) = U o sin(ωt + φ ) ⇔ U&=

U 0 jφ U 0
e =
∠φ
2
2

u(t)
Im

t

Re

Khi đã xác định được ảnh phức của một tín hiệu hình sin, ta có thể biểu
diễn số phức đó ở một trong hai dạng chuẩn là dạng Ơ-le (hay còn gọi là dạng
tọ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

21

21

Công thức để chuyển đổi giữa hai dạng:

Công thức chuyển đổi x = A∠ϕ → a + jb
a = A cos ϕ
b = A sin ϕ

Công thức chuyển đổi x = a + jb → A∠ϕ
A = a 2 + b2
b


 arctan a
ϕ=
π + arctan b

a

khi a > 0
khi a < 0 b. Hàm trong Matlab
+ 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:
%

A – biên độ của số phức

%

phi – pha của số phức ( đo theo độ )

% Các kết quả đầu ra:
%

a – thành phần thực

%

b – thành phần ảo

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:
%

a – thành phần thực

%

b – thành phần ảo

% Các kết quả đầu ra:
%

A – biên độ của số phức

%

phi – pha của số phức

A1= a+jb;

Chương II: Ứng dụng Matlab trong giải một số bài toán lý thuyết mạch điện

22

22

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 = V1R ϕ1, V2 = a2 + jb2 = V2R ϕ 2

– Cộng hai số phức:
&
V&
1 + V2 = ( a1 + a2 ) + j ( b1 + b2 ) = (V1 cos ϕ1 + V2 cos ϕ 2 ) + j (V1 sin ϕ1 + V2 sin ϕ 2 )

– Trừ hai số phức
&
V&
1 − V2 = ( a1 − a2 ) + j ( b1 − b2 ) = (V1 cos ϕ1 − V2 cos ϕ 2 ) + j (V1 sin ϕ1 − V2 sin ϕ 2 )

– Nhân hai số phức
&
V&
1 ×V2 = ( a1 ×a 2 − b1 ×b2 ) + j ( a1 ×b2 + a 2 ×b1 ) = (V1 ×V2 ) R (ϕ1 + ϕ 2 )

– Chia hai số phức

V&
a ×a + b ×b
−a ×b + a ×b V
1
= 1 22 12 2 + j 1 22 2 2 1 = 1 R (ϕ1 − ϕ 2 )
&
V2
a2 + b2
a2 + b2
V2

b. Hàm trong Matlab
– Cộng hai số phức:
function kq=cong(V1,phi1,V2,phi2)
%phi1,phi2 tính theo độ
kq=V1*exp(j*phi1*pi/180)+V2*exp(j*phi2*pi/180)

– Trừ hai số phức:
function kq=tru(V1,phi1,V2,phi2)
%phi1,phi2 tinh theo do
kq=V1*exp(j*phi1*pi/180)-V2*exp(j*phi2*pi/180)

– Nhân hai số phức:
function kq=nhan(V1,phi1,V2,phi2)
%phi1,phi2 tinh theo do
kq=V1*exp(j*phi1*pi/180)*V2*exp(j*phi2*pi/180)

– Chia hai số phức:
function kq=chia(V1,phi1,V2,phi2)
%phi1,phi2 tinh theo do

kq=V1*exp(j*phi1*pi/180)/V2*exp(j*phi2*pi/180))

Chương II: Ứng dụng Matlab trong giải một số bài toán lý thuyết mạch điện

23

23

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):
 a11 x1 + a12 x2 + a13 x3 + … + a1n xn = b1
 a x + a x + a x + … + a x = b
 21 1 22 2
23 3
2n n
2

…………………………………………………

an1 x1 + an 2 x2 + an 3 x3 + … + ann xn = bn

Hoặc biểu diễn dưới dạng ma trận ta có:
A ×X = b

Khi đó nghiệm của hệ sẽ là
X = A −1 ×b

Trong đó:

 a11 a12
a
a22
A =  21
K K

 a n1 a n 2

a13
a23
K
an 3

K
K
K
K

a1n 
 b1 
 x1 



x 
a2 n
b
 b =  2 X =  2
K 

 M
 M

 
 
ann 
bn 
 xn 

;

;

b. Hàm thực hiện trong Matlab.
function x =giaihe(A,b)
% Hàm giải hệ phương trình tuyến tính
% Các biến đầu vào:
%

A – ma trận hệ số vế trái

%

b – véc-tơ hệ số tự do

% Các kết quả đầu ra:
%

x – nghiệm của hệ phương trình Ax=b
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

24

24

2.2. Giải mạch điện bằng SCAM (Symbolic Circuit Analysis in MatLab)

2.2.1. Cơ sở lý thuyết
Hiện nay có rất nhiều phần mềm mô phỏng mạch điện để vẽ mạch và phân
tích mạch điện. Tuy nhiên hầu hết các phần mềm chỉ cho phép mô phỏng mạch
và đo dòng, áp, công suất…còn việc lập các hệ phương trình cho mạch điện, khi
một số tham số của mạch điện chưa được biết trước thì khó có thể mô phỏng
được. Nhưng đối với Matlab lại có thể cho phép lập trình để giải quyết được rất
nhiều dạng bài toán mạch điện khác nhau, mô tả mạch điện một cách đơn giản
và 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

25

25

Chương trình SCAM mô tả mạch điện và giá trị của các phần tử dưới dạng
một file text theo một quy tắc chung như sau:

Tên phần tử

Ký hiệu

Mô tả của SCAM
R1 N1 N2 1000

R1 có 2 nút N1 và N2, có giá trị
là1000 ôm (Ω).

Giá trị của R phải được ghi ở
cuối cùng.

Tên của điện trở là Rx, còn x là
thứ tự có thể là số hoặc chữ.

Điện trở
(Resistor)

Tụ điện
(Capacitor)
Điện cảm
(Inductor)
Nguồn áp
(Voltage
Source)

C1 N1 N2 1E-6

Được mô tả giống như điện trở
(1E-6 là tụ có điện dung 10-6 F)

L1 N1 N2 1E-3

Được mô tả giống như điện trở
(1E-3 là tụ có điện dung 10-3 H)

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.

Chương II: Ứng dụng Matlab trong giải một số bài toán lý thuyết mạch điện

Vớinội dung bản luận văn : Ứng dụng Matlab trong kiến thiết xây dựng thư viện một sốhàm tương hỗ giải bài tập triết lý mạch. Qua đó, việc thực thi lập những hàm hỗtrợ và việc mô phỏng những bài tập về mạch điện dùng ứng dụng Matlab trên máytính giúp cho sinh viên triển khai giải những bài tập một cách nhanh gọn, chínhxác và hiệu suất cao. Nội dung bản luận văn này gồm những phần như sau : Chương I – Cơ sở Matlab : Giới thiệu tổng quan về ứng dụng Matlab, mộtsố đặc thù và năng lực ứng dụng cơ bản trong giải những bài toán kỹ thuật. Chương II – Ứng dụng Matlab giải 1 số ít dạng bài toán triết lý mạchđiện – tập trung chuyên sâu trình diễn về năng lực ứ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, giám sát quan hệgiữa những ma trận của mạng 2 cửa, thống kê giám sát quy trình quá độ, thống kê giám sát những thôngsố của đường dây dài, thống kê giám sát truyền hiệu 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ố ít kếtquả tiến hành trên nền Matlab phần thư viện những hàm và giao diện thống kê giám sát sốphức, giao diện ảnh của tín hiệu hình sin, giao diện giám sát quan hệ giữa cácma trận của mạng 2 cửa, giao diện thống kê giám sát quy trình quá độ, giao diện tính toáncác thông số kỹ thuật của đường dây dài, giao diện thống kê giám sát truyền hiệu suất đường dâydài và một số ít giao diện GUI hộ trợ khai thác những thư viện những hàm đã viết. ChươngIV – Kết luận và hướng tăng trưởng, tóm tắt lại những hiệu quả đã đạtđược của luận văn đồng thời nghiên cứu và phân tích 1 số ít mặt còn sống sót và đề xuất kiến nghị một sốhướng tăng trưởng của luận văn. CHƯƠNG I. CƠ SỞ MATLABMatlab là một ngôn từ lập trình thực hành thực tế 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 thống kê giám sát, bộc lộ tác dụng, được cho phép lập trình, giao diện thao tác rất thuận tiện cho người sử dụng. Dữ liệucùng với thư viện được lập trình sẵn được cho phép người sử dụng hoàn toàn có thể có đượcnhững ứng dụng sau đây.  Sử dụng những hàm có sẵn trong thư viện, những 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 những quy mô trong thực tiễn.  Phân tích, khảo sát và hiển thị tài liệu.  Với ứng dụng đồ hoạ cực mạnh.  Cho phép tăng trưởng, tiếp xúc với một số ít ứng dụng khác như C + +, Fortran … 1.1. Tổng quan về cấu trúc tài liệu của Matlab, những ứng dụngMatlab là một mạng lưới hệ thống tương giao, những thành phần tài liệu là một mảng ( mảngnày không yên cầu về size ). Chúng cho phép xử lý những yếu tố liênquan đến lập trình bằng máy tính, đặc biệt quan trọng là những phép tính về ma trận hay véctor và có sử dụng ngôn từ C hoặc Fortran lập trình rồi triển khai ứng dụng lậptrình đó bằng những 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ừ đó ứng dụng Matlab được viết nhằmcung cấp cho việc truy vấn vào miền ma trận một cách thuận tiện, ứng dụng matrận này được tăng trưởng bởi những khu công trình Linpack và Eispack. Ngày nayMatlab được tăng trưởng bởi Lapack và Artpack tạo nên một nghệ thuật và thẩm mỹ phầnmềm cho ma trận. 1.1.1. Dữ liệuDữ liệu của Matlab bộc lộ dưới dạng ma trận ( hoặc mảng – tổng quát ), vàcó những kiểu tài liệu được liệt kê sau đây. • Kiểu đơn ( single ), kiểu này có lợi về bộ nhớ tài liệu vì nó yên cầu ítbyte nhớ hơn, kiểu tài liệu này không được sử dụng trong những phéptính toán học, độ đúng chuẩn kém hơn. • Kiểu double, kiểu này là kiểu thông dụng nhất của những biến trongMatlabChương I : Cơ sở Matlab • Kiểu Sparse. • Kiểu int8, uint8, int16 …. • Kiểu char, ví dụ ‘ Hello ’ • Kiểu cell • Kiểu StructureTrong Matlab kiểu tài liệu double là kiểu mặc định sử dụng trong những phép tínhsố học. 1.1.2. Ứng dụngMatlab ứng dụng rất thoáng rộng trong nhiều nghành nghề dịch vụ và nó sử dụng rất nhiềucác phép tính toán học. Với những đặc thù đó và năng lực thân thiện vớingười sử dụng nên nó thuận tiện sử dụng hơn những ngôn từ lập trình khác như : Basic, Pascal, C. .. Matlab cung ứng một môi trường tự nhiên đa dạng chủng loại cho màn biểu diễn dữliệu và có năng lực can đảm và mạnh mẽ về đồ họa, bạn hoàn toàn có thể tạo những giao diện riêng chongười sử dụng ( Graphic User Interface – GUI ) để xử lý những yếu tố choriêng mình. Thêm vào đó, Matlab đưa ra những công cụ để xử lý những vấnđề đặc biệt quan trọng, 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 và tinh chỉnh tự động hóa, 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 hoàn toàn có thể tạo Toolbox cho riêng mình1. 1.3. Toolbox là một công cụ quan trọng của MatlabCông cụ này được Matlab cung ứng được cho phép bạn ứng dụng những kỹ thuật đểphân tích, phong cách thiết kế, mô phỏng những quy mô. Ta hoàn toàn có thể tìm thấy toolbox ở trong môi trường tự nhiên thao tác của :  Mạng nơ ron  Logic mờ  Simulink1. 2. Hệ thống MatlabHệ thống giao diện của Matlab được chia thành 5 phần :  Môi trường tăng trưởng. Chương I : Cơ sở MatlabĐây là nơi đặt những thanh công cụ, những phương tiện đi lại giúp tất cả chúng ta sử dụngcác lệnh và những file, ta hoàn toàn có thể liệt kê một số ít như sau : + Desktop + Command Window + Command History + Browsers for viewingghelp  Thư viện những hàm toán họcBao gồm những cấu trúc như tính tổng, sin, cosin, actan2, etc …, cácphép tính đơn thuần đến những phép tính phức tạp như tính ma trậnnghịch hòn đảo, trị riêng, quy đổi furie, laplace, symbolic library …  Ngôn ngữ MatlabĐó là ngôn từ bậc cao về ma trận và mảng, với những dòng lệnh, cáchàm, cấu trúc tài liệu vào, hoàn toàn có thể lập trình hướng đối tượng người dùng.  Đồ hoạ trong MatlabChương I : Cơ sở MatlabBao gồm những câu lệnh biểu lộ đồ hoạ trong môi trường tự nhiên 2D và 3D, tạo những hình ảnh hoạt động, phân phối những giao diện tương tácgiữa người sử dụng và máy tính.  Giao tiếp với những ngôn từ khác. Matlab được cho phép tương tác với những ngôn từ khác như C, Fortran1. 3. Một số lệnh cơ bản trong Matlab1. 3.1. Các phép toán cơ bảnGán giá trị cho biếnCác phép toánEpsI, jInfNaNPiXuất hiện ở cuối mỗi giá trị, ngầm định giá trị không choxuất hiện giá trị trên màn hìnhNgăn cách giữa những thành phần ( tương tự dấu cách ) Cấp đúng mực tương đối khi sử dụng giá trị dấu phẩy độngToán tử ảoVô cùngNot a NumberHằng số pi = 3.141.3.2. Các biến ( khai báo và sử dụng ) Chế độ mặc định tác dụng của những biến được gán cho ans. Nếu sử dụng dấu “ = ” ta hoàn toàn 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ếncó thể chứa tới 32 vần âm, 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ị hoàn toàn có thể được thực thi 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 những lệnh thì giá trị được xuất ra màn hình hiển thị. Ví dụ : >> giatri_1 = 8 ; giatri_2 = 4 ; >> giatri_1 = 8 giatri_1 => > x = giatri_1 + giatri_2, X = giatri_1 * giatri_2x = Chương I : Cơ sở Matlab12X = 321.3.3. Các hàm đăc biệtTrong Matlab có sẵn rất nhiều hàm toán, hoàn toàn có thể liệt kê những hàm thườngdùng trong bảng sau : Một số hàm toán học thông dụngsqrtCăn bậc haiexpLũy thừa cơ số esinHàm sincosHàm costanHàm tangabsLấy giá trị tuyệt đối hoặc độ lớn của số phứcangleGóc pha của số phứcrealLấy phần thực của số phứcimagLấy phần ảo của số phứcsinh ( x ) Hàm tính hyperbolic sine của xcosh ( x ) Hàm tính hyperbolic cose của xdeconv ( a, b ) Chia hai đa thức a và bsum ( v ) Tổng những thành phần vectormin ( v ) Phần tử vector nhỏ nhấtmax ( v ) Phần tử vector lớn nhấtTất cả những hàm trong bảng đều có năng lực sử dụng đo lường và thống kê với vector. 1.3.4. Các cấu trúc tài liệu cơ bảna. Vector và ma trậnĐể khai báo hoặc giải quyết và xử lý vector và ma trận thường là nhập trực tiếp, khi nhậptrực tiếp, những thành phần 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 những hàng được cách bởi dấu ; hoặc ngắt dòng. >> A = [ 1 3 4 ; 3 1 2 ] A => > B = [ 1 3 4 ; 65 3 ] Chương I : Cơ sở MatlabB = Để truy vấn từng thành phần của vector hoặc ma trận được thực thi bằng cáchkhai báo chỉ số của thành phần. Đặc biệt, khi cần xuất mọi thành phần của hàng haycột, hoàn toàn có thể sử dụng toán tử ( :). >> B ( 2,3 ) ans => > B ( 2, 🙂 ans => > B ( :, 3 ) ans = b. Tính toán với vector và ma trậnCó nhiều phép toán hoàn toàn có thể vận dụng cho vector và ma trận : Để triển khai phép nhân hai ma trận làm như sau : >> a = [ 2 1 4 ; 2 4 1 ; 5 1 1 ] ; >> b = [ 1 2 1 ; 3 2 2 ; 1 1 3 ] ; >> c = a * bc = 10161513131310 >> d = a / bd = – 0.55560.44441.22222.11110.1111 – 0.4444 – 1.55562.4444 – 0.7778 Nếu như một trong những phép tính *, /, ^ cần được thực thi cho từng phầntử của vector hoặc ma trận, ta sẽ phải đặt thêm vào trước ký hiệu của phép tínhChương I : Cơ sở Matlabđó ký hiệu (. ). Phép tính so với những biến vô hướng luôn được thực thi chotừng thành phần một : >> a. / bans = 2.00000.50004.00000.66672.00000.50005.00001.00000.3333 Để tính ma trận nghịch đảo dùng lệnh inv ( ma tran ) >> inv ( a ) ans = – 0.0476 – 0.04760.2381 – 0.04760.2857 – 0.09520.2857 – 0.0476 – 0.0952 Lệnh det ( ma tran ) dùng để tính định thức của ma trận >> det ( a ) ans = – 631.3.5. Các hàm phức tạpa. Hàm plotHàm plot được cho phép vẽ đồ thị trong mặt phẳng tọa độ x, y. Ví dụ : vẽ đồ thị y = sin x. Cho những giá trị của x từ − π đến π, những giá trị cách nhau 0,05 π >> x = [ – pi : 0.05 * pi : pi ] ; >> y = sin ( x ) ; >> plot ( x, y ) ; Muốn vẽ thêm đồ thị y1 = cos ( x ) ta dùng lệnh hold on. Lệnh hold on chophép giữ lại tổng thể những hình vẽ đã được vẽ trước đó. Lệnh plot sau đó sẽ vẽthêm vào đó. Nếu ta không sử dụng lệnh hold on thì đơn cử trong trường hợpnày, ta sẽ mất đồ thị y = sin x. Khi đã triển khai xong hình vẽ, ta sử dụng lệnh holdoff để bỏ hình cũ khi ta vẽ tiếp hình khác. Một vài hàm toán học khác được dùng tương hỗ trong giám sát triết lý mạch : b. Hàm polyHàm poly được cho phép xác lập đ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ở Matlab1010 >> poly ( [ – 1 0 1 2 ] ) ans = – 2-1 Kết quả là đa thức có dạng : x − 2 x − x + 2 xc. Hàm polyderHàm polyder được cho phép triển khai tính đạo hàm của đa thức mà những hệ sốcủa hàm được bộc lộ dưới dạng ma trận. Ví dụ : Thực hiện tính đạo hàm của hàm f ( x ) = x − 2 x − x + 2 x với ma trậnhệ số là : [ 1 − 2 − 1 2 0 ]. >> polyder ( [ 1 – 2 – 1 2 0 ] ) ans = – 6-2 Kết quả là đa thức có dạng : 4 x − 6 x − 2 x + 2 d. Một vài hàm toán học khácSyms xKhai báo biến hình thức xdiff ( f ( x ) ) Tính đạo hàm của hàm f ( x ) conv ( a, b Nhân hai đa thức có thông số nhập trải qua hai ma trận a và b1. 3.6. Cấu trúc lệnh cơ bảna. Cấu trúc if-else-endCú pháp của cấu trúc : if biểu thức điều kiệnkhối những lệnhendKhối những lệnh giữa hai trạng thái if và end được thực thi khi tổng thể biểuthức điều kiện kèm theo là đúng. Trong trường hợp có hai điều kiện kèm theo biến hóa, cấu trúc if – else – end là : ifbiểu thức điều kiệnkhối những lệnh được thực thi nếu điều kiện kèm theo là đúngelsekhối những lệnh được triển khai nếu điều kiện kèm theo là saiendChương I : Cơ sở Matlab1111Khi có ba hoặc nhiều điều kiện kèm theo biến hóa cấu trúc của nó sẽ là : if biểu thức điều kiện kèm theo 1 khối những lệnh được triển khai nếu điều kiện kèm theo 1 là đúngelseifbiểu thức điều kiện kèm theo 2 khối những lệnh được thực thi nếu điều kiện kèm theo 2 là đúngelseifbiểu thức điều kiện kèm theo 3 khối những lệnh được triển khai nếu điều kiện kèm theo 3 là đúngelsekhối những lệnh được triển khai nếu không có điều kiện kèm theo nàođúngendVí dụ : Viết chương trình giải phương trình bậc 2. Các thông số a, b, c nhập từ bànphím. function giaiptbac2a = input ( ‘ a = ‘ ) ; b = input ( ‘ b = ‘ ) ; c = input ( ‘ c = ‘ ) ; delta = b ^ 2-4 * a * c ; if delta > 0x1 = ( – b-sqrt ( delta ) ) / ( 2 * a ) ; x2 = ( – b + sqrt ( delta ) ) / ( 2 * a ) ; fprintf ( ‘ phuong trinh co 2 nghiem phan biet : x1 = % 6.2 f, x2 = % 6.2 f \ n ‘, x1, x2 ) elseif delta = = 0 x = – b / ( 2 * a ) ; fprintf ( ‘ phuong trinh co nghiem kep : x1 = x2 = % 6.2 f \ n ‘, x ) elsedisp ( ‘ phuong trinh vo nghiem ‘ ) endb. Cấu trúc vòng lặp for và whileBằng cấu trúc vòng lặp ta hoàn toàn có thể thực thi lặp lại nhiều lần một số ít lệnh nhấtđịnh :  Vòng lặp forChương I : Cơ sở Matlab1212Cú pháp : forchỉ số = biểu thứcNhóm lệnhendVí dụ : Chương trình tính tổng của 10 số tự nhiên liên tục từ 1 đến 10 >> tong = 0 ; >> for dem = 1 : 10 tong = tong + dem ; end >> tongtong = 55  Vòng lặp whileCú pháp : Whilebiểu thứcNhóm lệnhendVí dụ : Chương trình tính tổng của 10 số tự nhiên liên tục từ 1 đến 10 >> dem = 0 ; >> tong = 0 ; >> while dem < 10 dem = dem + 1 ; tong = tong + dem ; end >> tongtong = 551.4. Lập trình trên m. fileCác chương trình, thủ tục gồm có những dòng lệnh theo một thứ tự nào đó dongười sử dụng viết ra được tàng trữ trong những file có phần lan rộng ra 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 những chương trình soạn thảo nói chung để tạo nó. Chương I : Cơ sở Matlab1313Sau khi viết xong chương trình ta hoàn toàn có thể chạy file này giống như những lệnh, thủ tục của Matlab. Tức là hoàn toàn có thể gõ tên file không cần có phần lan rộng ra. Khi sửdụng, nội dung của M.file không được hiển thị trên màn hình hiển thị. Để thuận tiện 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 được cho phép viết những cấu trúc lệnh điều khiển và tinh chỉnh trên m. fileNgoài việc viết cấu trúc những câu lệnh thường thì ra thì việc xuất nhập dữliệu cũng rất quan trọng trong quy trình lập trình. Một số qui tắc viết hàm trong m.file : – Hàm phải được khởi đầu bằng từ function, sau đó lần lượt là tham số đầura, dấu bằng, tên hàm. Tham số nguồn vào được viết theo tham số nguồn vào và đượcbao trong ngoặc đơn. – Một số dòng tiên phong 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 như đinh 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 hoàn toà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ị thống kê giám sát 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 toàn bộ những 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ố nguồn vào cần phải liệt kê chúng khi khai báohàmVí dụ : Thực hiện chương trình tính tổng trở tương tự của đoạn mạchgồm n tổng trở ghép tiếp nối đuôi nhau ( n nhập từ bàn phím ). function ttntn = input ( ‘ so luong tong tro ghep noi tiep : ‘ ) ; ttnt = 0 ; for i = 1 : nfprintf ( ‘ tong tro %. 0 f : ‘, i ) z = input ( ‘ ‘ ) ; ttnt = ttnt + z ; endif imag ( ttnt ) > 0 fprintf ( ‘ ket qua % 6.2 f + % 6.2 fi \ n ‘, real ( ttnt ), imag ( ttnt ) ) Chương I : Cơ sở Matlab1414elseif imag ( ttnt ) = = 0 fprintf ( ‘ ket qua % 6.2 f \ n ‘, real ( ttnt ) ) elsefprintf ( ‘ ket qua % 6.2 f – % 6.2 fi \ n ‘, real ( ttnt ), – imag ( ttnt ) ) endKết quả chạy trên Matlab như sau : >> ttntso luong tong tro ghep noi tiep : 3 tong tro 1 : 2 tong tro 2 : 2 + 3 itong tro 3 : 4-5 iket qua 8.00 – 2.00 i1. 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 thiết kế xây dựng bằng cácđối tượng đồ họa như những nút bấm, hành lang cửa số văn bản, thanh trượt và thực đơn. Các ứng dụng tương hỗ 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 những đối tượng người tiêu dùng này họat động như thế nào. Chương I : Cơ sở Matlab15151. 5.1 Các thành phần tinh chỉnh và đ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 hiển thị 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 người tiêu dùng từ list vàclick vào khung, drag và drop để vẽ ra đối tượng người tiêu dùng. Đặt thuộc tính cho đối tượng người tiêu dùng, tùy loại, mỗi đối tượng người dùng có những thuộc tính giống và khác nhau. Lập trình những đốitượng theo thao tác của người dùng. Mỗi đối tượng người dù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 lan rộng ra 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 tất cả chúng ta chưa cần quantâm. Có thể chạy thử giao diện trong màn hình hiển thị soạn thảo GUI bằng cách ấnphím Run có dạng giống như nút Play. * Push ButtonPush buttons tạo ra một hành vi 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. * Toggle ButtonToggle buttons tạo ra một tác động ảnh hưởng theo kiểu công tắc nguồn ( on hoặc off ). Thủtục callback cho biết trạng thái sau khi được ấn của đối tượng người dùng này. Có thể đọc trạng thái này trong đối tượng người dùng đồ họa hiện hành ( gcbo ) bằng câulệnh get ( gcbo, ‘ Value ‘ ). Để lập trạng thái cho một đối tượng người tiêu dùng Hold off dạng toggle ta dùng lệnh : set ( handles. Holdoff, ‘ Value ‘, 1 ) ; MATLAB hòn đảo giá trị thuộc tính Value sau mỗi lần ấn. Chương I : Cơ sở Matlab1616 * Check BoxDùng để xác lập xem một mục văn bản đã được ghi lại 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 người dùng ta dùng lệnh get tựa như như trên. * Radio ButtonTươ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 những thuộctính Value của những radio button khác trong nhóm về 0. * Edit TextĐối tượng này tạo ra một khoanh vùng phạm vi để người dùng thêm tài 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 người dù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 tài 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 ( ). * SliderDùng để nhập tài liệu dạng số trong một miền giá trị xác lập bằng cáchđể người dùng trượt một thanh con. Vị trí của thanh biểu lộ giá trị cần nhậpvào. Cần thiết phải thiết lập giá trị hiện hành, những 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ở Matlab1717 – Slider – Value PropertyCó thể kiểm soát và đ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 ứngcó thể viết : slider_value = get ( handles. slider1, ‘ Value ‘ ) ; Các thuộc tính Max và Min xác lập những cận ( Max – Min ) Slider – SliderStep Property : Điều chỉnh khoanh vùng phạm vi mà thuộc tính Value biến hóa 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 hoàn toàn có thể kiểm soát và điều chỉnh trong chươngtrình hoặc lúc phong cách thiết kế. Mặc định là [ 0.01 0.10 ], biến hóa 1 % khi click vào mũitên và 10 % khi click vào khoảng chừng trống. * Static TextHiển thị những 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 quy đổi num2str. Thường dùng làm tiêu đề cho những mục trong Figure. Không đổi khác đượ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 người tiêu dùng này để hiển thị giá trị của thanh trượt Slider. Khi thanh trượt được kiểm soát và đ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 ). * FramesHộp chứa những miền đối tượng người dùng của một figure window. Tạo thuận tiện cho người sử dụng khi dùng để lưu lại nhóm những đối tượngcùng loại hoặc có tương 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 BoxesHiển thị một list chọn xác lập bằng thuộc tính String và cho phépngười dùng chọn một trong những mục của list. Mặc định, mục tiên phong sẽđược highlight khi List Boxes Open. 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 người tiêu dùng này là số thứ tự của mục chọn. Chương I : Cơ sở Matlab1818 * Popup MenuHiển thị một list chọn dạng mở xuống khi người dùng click vào dấumũi tên, nội dung hiển thị chứa trong thuộc tính String. Khi không mở ra, popup menu hiển thị nội dung hiện hành đã chọn trướcđó. Thuộc tính Value chứa tác dụng chọn là số thứ tự của mục chọn. Có thể dùngthay cho Radio Button. Ví 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 hoàn toàn 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à tinh chỉnh với GUISau khi tạo một giao diện đủ những thành phần theo mong ước là một côngviệc rất là quan trọng. Tuy nhiên để giao diện đó hoạt động giải trí được thì cần phảiviết chương trình điều khiển và tinh chỉnh 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 và tinh chỉnh. Trước tiên phải dùng lệnh : get ( handles. tên con trỏ, ‘ string ’ ) ; để đọc tài liệu từ ô tài liệu trên GUI.Trong đó :

5/5 - (1 vote)
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments