Tải bản đầy đủ (.docx) (24 trang)

Ứng dụng phần mềm matlab và simulink để khảo sát tính ổn định của hệ thống

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 (774.09 KB, 24 trang )

MỞ ĐẦU
Với sự phát triển không ngừng của khoa học kỹ thuật,trong đó có sự đóng
góp to lớn của ngành điều khiển tự động đã đem lại lợi ích cho con người.Việc phát
triển các ngành tự động đã giúp con người thoát khỏi công việc nặng nhọc bằng
chân tay,những nơi làm việc độc hại,tăng năng suất lao động…Chính vì thế việc
nghiên cứu thiết kế hệ thống điều khiển tự động luôn là vấn đề quan tâm hàng đầu
đối với các nhà khoa học,các kỹ sư ngành tự động hóa.
Thời đại công nghệ thông tin phát triển mạnh mẽ,cùng với nó là các loạt
phần mềm hỗ trợ,thì Matlab và Simulink là phần mềm mà ứng dụng của nó trong
điều khiển tự động là không nhỏ.Matlab và Simulink là ngôn ngữ mô phỏng đa
năng.Mô phỏng các các hệ thống điều khiển tự động trong Matlab cho ta sử dụng
mô hình toán học khác nhau của hệ thống loại đối tượng cần khảo sát như dùng hàm
truyền đạt,dùng hàm trạng thái dùng mô hình sơ đồ cấu trúc như Simulink.Matlab
cho phép ta khảo sát các bộ điều khiển tự động trong miền tần số và thời gian.
Với đề tài “Ứng dụng phần mềm Matlab và Simulink để khảo sát tính ổn
định của hệ thống ” nhóm em đã vận dụng được những ưu điểm của phần mềm này
trong việc giải quyết các yêu cầu của bài toán điều khiển tự động.
Sau quá trình học tập rèn luyện và nghiên cứu tại trường,chúng em đã tích
lũy được vốn kiến thức để thực hiện đề tài của mình.Cùng với sự hướng dẫn nhiệt
tình của thầy Th.s LÊ VĂN CHƯƠNG đến nay chúng em đã hoàn thành đề tài với
nội dung sau:
Chương 1: : Tổng quan về phần mềm Matlab và Simulink
Giới thiệu,giao diện sử dụng và một số thao tác chính khi sử dụng của Matlab và
Simulink
Chương 2: Xây dựng mô hình toán học của đối tượng điều khiển
Khảo sát tính ổn định của hệ thống qua tiêu chuẩn Nyquist,các chỉ tiêu chất lượng
của hệ thống,mô phỏng bằng Simulink.
Chương 3: Thiết kế bộ điều khiển bằng PID
Sơ lược về bộ điều khiển PID,đánh giá chất lượng của hệ thống sau khi có bộ điều
khiển PID,mô phỏng bằng PID tune


1


Chương 1: Tổng quan về phần mềm Matlab và Simulink
1.1. Giới thiệu phần mềm Matlab và Simulink
MATLAB (Matrix Laboratory) là một phần mềm khoa học được thiết kế để
cung cấp việc tính toán số và hiển thị đồ họa bằng ngôn ngữ lập trình cấp cao.
MATLAB cung cấp các tính năng tương tác tuyệt vời cho phép người sử dụng thao
tác dữ liệu linh hoạt dưới dạng mảng ma trận để tính toán và quan sát. Các dữ liệu
vào của MATLAB có thể được nhập từ "Command line" hoặc từ "mfiles", trong đó
tập lệnh được cho trước bởi MATLAB.
MATLAB cung cấp cho người dùng các toolbox tiêu chuẩn tùy chọn. Người
dùng cũng có thể tạo ra các hộp công cụ riêng của mình gồm các "mfiles" được viết
cho các ứng dụng cụ thể. Chúng ta có thể sử dụng các tập tin trợ giúp của
MATLAB cho các chức năng và các lệnh liên quan với các toolbox có sẵn (dùng
lệnh help).
Ví dụ: Command Window: >> helpplot
Màn hình tiêu chuẩn sau khi khởi động Matlab:

Hình 1.1: Màn hình làm việc của Matlab.
SIMULINK là một công cụ trong Matlab dùng để mô hình, mô phỏng và
phân tích các hệ thống động với môi trường giao diện sử dụng bằng đồ họa. Việc
xây dựng mô hình được đơn giản hóa bằng các hoạt động nhấp chuột và kéo thả.
Simulink bao gồm một bộ thư viện khối với các hộp công cụ toàn diện cho cả việc
phân tích tuyến tính và phi tuyến.
SIMULINK là một phần quan trọng của Matlab và có thể dễ dàng chuyển
đổi qua lại trong quá trình phân tích, và vì vậy người dùng có thể tận dụng được ưu
thế của cả hai môi trường.

2



1.2. Giao diện sử dụng của Matlab

Hình 1.2 Màn hình giao diện của Matlab
1.3. Một số thao tác chính khi sử dụng phần mềm
1.3.1. Matlab
a/Định nghĩa biến:
Chúng ta cần hiểu được cách Matlab thao tác với các ma trận. Ví dụ một mảng các
giá trị
A = 1, 0, 9, 11, 5 cũng là ma trận 1x5, B = 9 là ma trận 1x1. Để lưu biến A, tại cửa
sổ
lệnh, gõ vào lệnh:
>> A=[1 0 9 11 5]
Matlab sẽ hiển thị kết quả:
A=
1

0

9 11

5

Để không hiển thị kết quả trên màn hình, chúng ta dùng dấu ; tại cuối câu lệnh.

3


Để xác định kích thước một ma trận hay mảng, dùng lệnh “size”

>> size(A)
ans =
1

5

Trong Matlab, các hàng của ma trận được cách bởi “;” và các cột được ngắt bởi “,”.
Ví dụ
ma trận B có các thành phần như sau:
Dòng 1: 1, 0, 9, 4, 3
Dòng 2: 0, 8, 4, 2, 7
Dòng 3: 14, 90, 0, 43, 25
(có thể dùng khoảng trắng thay cho “,” để ngắt cột)
>> B=[1,0,9,4,3;0,8,4,2,7;14,90,0,43,25]
B=
1 0 9 4 3
0 8 4 2 7
14 90 0 43 25
Chúng ta có thể cộng, trừ, nhân, chia các ma trận bằng các toán tử đơn giản +, -, *, /
trong
Matlab. Ta cũng có thể tạo ra biến mới từ các ma trận có sẵn, ví dụ như:
(dấu “:” đại diện cho tất cả các cột trong hàng 2)
>> C=B(2,:)
C=
0

8

4


2

7

Hoặc có thể tổ hợp một ma trận mới từ các ma trận có sẵn
>> D=[B(1,2),B(1,4),B(3,2),B(3,5)]
D=

4


0

4 90 25

Hoặc có thể xóa các hàng hay cột của một ma trận

>> B(:,3)=[]
B=
1 0 4 3
0 8 2 7
14 90 43 25
Một khi các biến được nhập, chúng sẽ được hiển thị trong vùng làm việc. Chúng ta
có thể
double click vào tên biến trong vùng làm việc để mở ra cửa sổ Variable Editor, ở
đây
chúng ta có thể sửa chữa các giá trị như trong Excel.

b/ Làm việc với mảng
Nhập vào Matlab 2 ma trận A, B

>> A = [1 2 3;4 5 6;7 8 0]
A=
1 2 3
4 5 6

5


7 8 0
>> B = [2 4 6;0 3 7;9 8 1]
B=
2 4 6
0 3 7
9 8 1
Toán tử

+

-

*

.*

/

\

Mô tả


Ví dụ
>> C=A+B
C=
3 6 9
4 8 13
16 16 1

Phép cộng

>> C=A-B
C=
-1 -2 -3
4 2 -1
-2 0 -1

Phép trừ

>> C=A*B
C=
Phép nhân
29 34 23
62 79 65
14 52 98
>> C=A.*B
C=
Phép nhân phần tử với phần tử 2 8 18
0 15 42
63 64 0
>> C=A/B
C=

Phép chia theo chiều phải
0.5000 0.0000
3.6875 -2.2500
-8.3125 6.7500
Phép chia theo chiều trái
>> C=A\B
C=
-4.5556 -5.3333

6

0.0000
-0.3750
2.6250

-4.5556


5.1111 5.6667 4.1111
-1.2222 -0.6667 0.7778
>> C=A./B
C=
./

Phép chia phần tử (phải)

0.5000 0.5000 0.5000
Inf

1.6667


0.8571

0.7778 1.0000
>> C=A.\B

0

C=
.\

Phép chia phần tử (trái)

2.0000 2.0000 2.0000
0

0.6000 1.1667

1.2857 1.0000
>> C=A.^B

.^

Element-by-element power
Lấy số mũ phần tử - phần tử

Inf

C=
1


16

729

1

125

279936

40353607

16777216

0

c/ M-file
Ngoài phương pháp gõ lệnh trực tiếp ở cửa sổ lệnh, chúng ta còn có thể tạo
một script m-file gồm tập hợp các lệnh gõ ở cửa sổ lệnh. Khi chạy mfile, các lệnh
này sẽ được thực hiện tương tự như ở cửa sổ lệnh.
Menu File → New → Script

7


1.3.2. Simulink

-


Click vào biểu tượng như hình dưới (Simulink icon)

Cửa sổ thư viện Simulink sẽ hiển thị:

Tạo một mô hình mới bằng cách:

-

Click vào icon New model hoặc gõ Ctrl-N

8


- Menu File → New → Model
Cửa sổ xây dựng mô hình xuất hiện:

Tạo các khối: từ thư viện Simulink chọn khối cần dùng, nhấp chuột vào và kéo ra ra
cửa sổ mô hình

Lưu trữ mô hình bằng lệnh Save (File → Save) hoặc nhấp vào icon Save

9


Nối tín hiệu: Đưa con chuột tới ngõ ra của khối (dấu “>”), khi đó con chuột sẽ có
dạng
“+”. Kéo rê chuột tới ngõ vào của một khối khác và thả ra để kết nối tín hiệu.

10



Chương 2: Xây dựng mô hình toán học của đối tượng điều khiển
2.1. Sơ đồ khối hệ thống:
X

G1
+

-

G3

G2

Y

G4

Hình 2.1: Sơ đồ khối hệ thống
Trong đó:
G1=

G2=

G3=

G4=

2.2. Mô hình hàm truyền:
Từ sơ đồ khối hệ thống ta có hàm truyền của hệ thống:

2.3. Khảo sát tính ổn định bằng tiêu chuẩn Nyquist:
Tiêu chuẩn nyquist: + Hệ thống ổn định ở trạng thái hở, sẽ ổn định ở trạng
thái kín nếu biểu đồ Nyquist không bao điểm (-1+i0) trên mặt phẳng phức.
+ Hệ thống không ổn định ở trạng thái hở, sẽ ổn định ở
trạng thái kín nếu biểu đồ Nyquist bao điểm (-1+i0) p lần ngược chiều kim đồng hồ
(p là số cực GH nằm ở phải mặt phẳng phức).
Áp dụng ta có:
Thay s=j ta được:
Tách phần thực và phần ảo ta được:
Phần thực: R(=
Phần ảo:

I(=

Xét phần ảo I(=0 => =0
Thay vào phần thực ta được: R(= 1 > -1
 Như vậy đặc tính tần số biên độ pha của hệ thống hở cắt trục thực trong khoảng
-1 Theo tiêu chuẩn Nyquist hệ ổn định

11


-1

1

2.4. Đáp ứng xung, bước nhảy của hệ thống:
w=tf([4 14 12],[1 10 37 50 12]);
subplot(211)

step(w)
title('dap ung buoc nhay')
grid;
subplot(212)
impulse(w)
title('dap ung xung')
grid;
đồ thị đáp ứng xung và bước nhảy:
dap ung buoc nhay

Amplitude

1

0.5

0

0

2

4

6

8

10


12

14

16

18

Time (s ec onds )
dap ung xung
0.8
0.6
Amplitude

1.

0.4
0.2
0

0

2

4

6

8
Time (s ec onds )


2.5. Tìm các chỉ tiêu chất lượng của hệ thống
Ta có code:

12

10

12

14

16


clear all;
clc;
close;
w=tf([4 14 12],[1 10 37 50 12]);
stepinfo(w)
Sau khi chạy ta được:

ans =
RiseTime: 6.9222
SettlingTime: 12.5548
SettlingMin: 0.9003
SettlingMax: 0.9984
Overshoot: 0
Undershoot: 0
Peak: 0.9984

PeakTime: 20.9089
2.6. Vẽ đồ thị bode, nyquist của hệ thống:
close;
w1=tf([4 14 12],[1 10 37 50 12]);
bode(w1)
nyquist(w1)

Đồ thị bode của hệ thống hở
Bode Diagram

Magnitude (dB)

0

-20

-40

-60

Phase (deg)

-80
0
-45
-90
-135
-180
-2


10

-1

10

0

10

Frequency (rad/s)

13

1

10

2

10


Hình 2.3:Đồ thị đáp ứng bode của hệ thống
Đồ thị nyquist của hệ thống hở:
N
yquist D
iagram
0.5
0.4


Im
aginary Axis

0.3
0.2
0.1
0
-0.1
-0.2
-0.3
-0.4
-0.5
-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6


0.8

1

R
eal Axis

Hình 2.4. Đồ thị đáp ứng niquyst của hệ thống
2.7. Mô phỏng bằng Simulink

Sau khi mô phỏng:
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0

1

2

3


4

5

6

7

8

9

Hình 2.5. Mô phỏng hệ thống bằng Simulink

14

10


Chương 3: Thiết kế bộ điều khiển bằng PID.
3.1. Thiết kế bộ điều khiển PID của hệ thống phản hồi âm đơn vị:

a. Sơ lược về bộ điều khiển PID phản hồi âm đơn vị.
Xét hệ thống phản hồi đầu ra có só đồ khối như sau:

R

e
+


u

PID

-

Đối tượng cần điều
khiển

Y

Hình 1: Sơ đồ mô hình hàm truyềncủa hệ thống được điều khiển với PID
Hàm truyền của bộ điều khiển PID có dạng sau:
Với: : hệ số tích phân.
: hệ số khuếch đại.
: hệ số vi phân.
Biến e là sai lệch giữa đầu vào mong muốn (R) và đầu ra thực tế (Y). Sai
lệch e này sẽ được đưa vào bộ điều khiển PID và bộ điều khiển PID sẽ thực hiện
việc lấy đạo hàm và tích phân sai lệch e
Tín hiệu u được đưa vào đối tượng điều khiển P và ta thu được tín hiệu đầu
ra mới. Tín hiệu đầu ra mới này sẽ được gửi lại nhờ cảm biến để tính toán ra tín
hiệu sai lệch mới. Bộ điều khiển sẽ lấy lại tín hiệu điều sai lệch mới này để tính toán
lại đạo hàm và tích phân của chúng. Quá trình cứ như thế tiếp tục.
Bộ điều khiển tỉ lệ P giúp giảm thời gian đáp ứng , giảm sai lệch tĩnh nhưng không
triệt tiêu được nó nhưng có thể làm cho nó trở nên tồi tệ hơn. Bộ điều khiển D giúp
giảm quá độ diều chỉnh, cải thiện đáp ứng quá độ của hệ thống, tuy nhiên đôi khi
làm mất ổn định của hệ do quá nhạy cảm với nhiễu.Các ảnh hưởng của bộ điều
khiển P,I,D với hệ kín được tổng hợp trong bảng dưới đây.


Thời gian đáp
ứng
Giảm
Giảm
Ít thay đổi

Độ quá điều
chỉnh
Tăng
Tăng
Giảm

Thời gian quá
độ
Ít thay đổi
Giảm
Tăng

Sai lệch tĩnh
Giảm
Triệt tiêu
Ít thay đổi

Phương pháp Zeigler-Nichols xác định thông số bộ điều khiển PID dựa vào đáp ứng
quá độ của hệ hở.

15


r(t)


c(t)

Đối tượng

c(t)

K
t
Sơ đồ hệ thống sự dụng bộ điều khiển PID là:
+
Các thông số trong bộ điều khiển sẽ được xác định theo bảng sau:
P

0
PI
PID

0.9
1.2

0
0.5

2

b. Thiết kế bộ điều khiển PID
Đặc tính quá độ của 2 bình thông nhau là: Áp dụng phương pháp Zeigler-Nichols ta
được các đồ thị :
Step Response

1

0.9

0.8

0.7

Amplitude

0.6

0.5

0.4

0.3

0.2

0.1

0

0

2

4


6

8

10
Time (seconds)

Hình 3.3: Đặc tính quá độ
Từ đồ thị của hàm quá độ trên ta có:
K =1

16

12

14

16

18


0.1
2.2
=26.4

=>Hàm truyền của bộ điều khiển PID là:

Dùng matlab để phân tích hệ thống: Ta có chương trình:
>> K=1 ;T1=0.1 ;T2=2.2;

>> Kp=1.2*(T2/(T1*K));
>> Ti=2*T1;
>> Td=0.5*T1;
=>wpid=tf([0.264 5.28 26.4],[0.2 0])
wpid =
0.264 s^2 + 5.28 s + 26.4
------------------------0.2 s
wdt=tf([4 14 12],[1 10 37 50 12])
wdt =
4 s^2 + 14 s + 12
--------------------------------s^4 + 10 s^3 + 37 s^2 + 50 s + 12
>> w1=wpid*wdt
w1 =
1.056 s^4 + 24.82 s^3 + 182.7 s^2 + 433 s + 316.8
------------------------------------------------0.2 s^5 + 2 s^4 + 7.4 s^3 + 10 s^2 + 2.4 s
>> w=feedback(w1,1)

17


w=
1.056 s^4 + 24.82 s^3 + 182.7 s^2 + 433 s + 316.8
------------------------------------------------------------0.2 s^5 + 3.056 s^4 + 32.22 s^3 + 192.7 s^2 + 435.4 s + 316.8
>> step(w)
>> nyquist(w)
Step Response
1.4

1.2


Amplitude

1

0.8

0.6

0.4

0.2

0

0

0.2

0.4

0.6

0.8

1

1.2

Time (seconds)


18

1.4

1.6

1.8

2


Nyquist Diagram
2

1.5

1

Imaginary Axis

0.5

0

-0.5

-1

-1.5


-2
-1

-0.5

0

0.5

1

1.5

Real Axis

Hình 1: Đặc tính trong miền thời gian và trong miền tần số

3.2. Đánh giá chất lượng của hệ thống sau khi có bộ điều khiển PID:
Ta có code:
wpid=tf([0.264 5.28 26.4],[0.2 0]);
wdt=tf([4 14 12],[1 10 37 50 12]);
w1=wpid*wdt;
w=feedback(w1,1);
stepinfo(w)
Chạy chương trình ta được chất lượng:
RiseTime: 0.1224
SettlingTime: 1.1924
SettlingMin: 0.8651
SettlingMax: 1.3832
Overshoot: 38.3157

Undershoot: 0
Peak: 1.3832
PeakTime: 0.3076
3.3. Mô phỏng bằng Simulink
Ta tìm được các hệ số của bộ điều khiển PID:

19


=26.4

Thay vào bộ điều khiển PID ta được:

20


Sau khi mô phỏng:
1.4

1.2

1

0.8

0.6

0.4

0.2


0
0

1

2

3

4

5

6

7

8

9

10

Hình 3.7: Mô phỏng bằng Simulink
3.4. Mô phỏng bằng PID tune
Dùng công cụ PID tune để tìm lại các hệ số của bộ điều khiển PID ta được:

Hìn-h 3.8: Mô phỏng bằng PID tune
Nhận xét:

Sau khi chạy bằng PID tune ta thấy độ vọt lố nhỏ hơn tuy nhiên thời gian
tăng tốc và thời gian quá độ lại dài hơn
Sau khi dùng PID tune:
- Rise time:2.09 giây
- Setting time:7.05 giây

21


- Overshoot: 8.34
Sau khi có bộ điều khiển PID:

- RiseTime: 0.1224giây
- SettlingTime: 1.1924giây
- Overshoot: 38.3157%
Từ đó ta thấy, trong một số trường hợp thì PID tune vẫn tốt hơn tuy nhiên một số
trường hợp thì lại ngược lại.

22


KẾT LUẬN
Trong quá trình thực hiện đề tài,với sự chỉ bảo và giúp đỡ tận tình của thầy
Th.s LÊ VĂN CHƯƠNG đến nay “Ứng dụng phần mềm Matlab và Simulink để
khảo sát tính ổn định của hệ thống” đã được hoàn thành.Chúng em đã cố gắng vận
dụng những kiến thức đã học ở trường để giải quyết những vấn đề mà đề tài yêu
cầu.
Tuy nhiên do thời gian và chuyên môn có hạn nên đồ án của chúng em còn
tồn tại những thiếu sót và hạn chế.Chương trình để phục vụ cho đề tài còn chưa
được tối ưu,bố cục chưa được hợp lý.

Vì vậy chúng em rất mong sự đóng góp ý kiến của các thầy cô và các bạn để
chúng em có thêm nhiều kinh nghiệm trong học tập và nghiên cứu sau này.
Em xin chân thành cảm ơn!

23


TÀI LIỆU THAM KHẢO

1. Cơ sở lý thuyết điều khiển tự động _NGUYỄN VĂN HÒA_NXB khoa học và kỹ
khuật
2. Lý thuyết điều khiển tự động_PHẠM CÔNG NGÔ_NXB khoa học và kỹ thuật
3. Lý thuyết điều khiển tuyến tình_NGUYỄN DOÃN PHƯỚC_NXB khoa học và kỹ
thuật
4. Lý thuyết điều khiển tự động _NGUYỄN THƯƠNG NGÔ_NXB khoa học và kỹ
thuật,Hà Nội 2000

24



×