1. Trang chủ
  2. » Luận Văn - Báo Cáo

Dùng máy tính khảo sát quá trình quá độ của hệ thống điều khiển tự động

9 1,2K 21
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 496,59 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Kết luận: Hệ đã cho ổn định theo thời gian.. Kết quả khảo sát bằng Matlab-Simulink hoàn toàn trùng với kết quả thu được trên VB,chứng tỏ tính đúng đắn của phương pháp đã dùng để mô hình

Trang 1

Đề số 06: Dùng máy tính khảo sát quá trình quá độ của hệ thống điều khiển

tự động

Cho hệ thống điều khiển tự động có sơ đồ cấu trúc như sau:

K1=100; K2=0,5

-Các bước thực hiện

Bước 1: Phương trình sai phân của hệ thống

( )

( )

1

1

4 W( )

4 1

( 4)

K

s

s s

+

+ + +

+

Thay

1

z s

T z

=

+ vào G(s) ta có:

1

1 2

( )

( )

K

Y z

W z

2 2 1

1 2

2 1

=

2 2 1

2

2 1

=

Trong đó:

1 2 2

1 2

2

1 2

4 8

8 2

4 8

= − +

Trang 2

( )

2 2 1

2

2 1 ( )

( )

Y z

1

( ) ( ) ( ) ( ) 2 ( ) ( )

Az Y z Bz Y z C Y z K T z U z K T zU z K T U z

Áp dụng tính chất của phép biến đổi Z ta có:

( 2) ( 1) ( ) ( 2) 2 ( 1) ( )

AY k + + BY k + + C Y k = K T U k + + K T U k + + K T U k

Chọn u t ( ) 1( ) = tU k ( + = 2) U k ( + = 1) U k ( ) 1 =

2 1

( 2) ( 1) ( ) 4

AY k + + B Y k + + C Y k = K T

Phương trình sai phân của hệ thống có dạng :

2 1

4 ( 2) B ( 1) C ( ) K T

Bước 2: Viết chương trình mô phỏng bằng Visual Basic 6.0

Option Explicit

Dim h, w As Integer

Dim A, B, C, K1, K2 As Double

Dim T As Double

Dim Y(1000) As Double

Dim Xmin, Xmax, Ymin As Integer

Dim k, i As Integer

Dim m, n, time As Double

Trang 3

Private Sub Cmd_thoat_Click()

End

End Sub

Private Sub Cmd_Ve_Click()

Dim Ymax, Yod, Tod, Tmax, sigma As Double

Xmin = 600

Ymin = 400

h = graph.Height

w = graph.Width

Xmax = w - 400

graph.DrawStyle = 0

graph.Line (Xmin, (h - 400))-(Xmax, (h - 400))

graph.Line (Xmax - 100, h - 450)-(Xmax, h - 400)

graph.Line (Xmax, h - 400)-(Xmax - 100, h - 350)

graph.Line (Xmin, h - 400)-(Xmin, 400)

graph.Line (Xmin, 400)-(Xmin - 50, 500)

graph.Line (Xmin, 400)-(Xmin + 50, 500)

graph.CurrentX = Xmin - 300

graph.CurrentY = Ymin

graph.Print ("y(t)")

graph.CurrentX = Xmax - 200

graph.CurrentY = h - 260

graph.Print ("time(s)")

graph.CurrentX = Xmin - 150

graph.CurrentY = h - 350

graph.Print ("0")

K1 = txtK1.Text

K2 = txtK2.Text

T = 0.01

Trang 4

time = 10

A = 4 + 8 * T + K1 * K2 * T * T

B = -8 + 2 * K1 * K2 * T * T

C = 4 - 8 * T + K1 * K2 * T * T

Ymax = 0

For k = 1 To 997

Y(k + 2) = (-B / A) * Y(k + 1) - (C / A) * Y(k) + 4 * K1 * T * T / A

If Y(k) > Ymax Then

Ymax = Y(k)

Tmax = k * T

End If

Next k

Yod = 1 / K2

sigma = 100 * (Ymax - Yod) / Yod

Tod = 1000

Do While (Abs(Y(Tod) - Yod) / Yod) < 0.05

Tod = Tod - 1

Loop

Tod = Tod * T

m = (w - 1500) / 5

For i = 1 To 5

graph.Line (m * i + 400, h - 350)-(m * i + 400, h - 450)

graph.CurrentX = m * i + 400

graph.CurrentY = h - 300

graph.Print CStr(time * i / 5)

Next i

n = (h - 1200) / 5

For i = 0 To 4

graph.Line (Xmin - 50, n * i + 800)-(Xmin + 50, n * i + 800)

graph.CurrentX = Xmin - 400

Trang 5

graph.CurrentY = n * i + 800

graph.Print Format(CStr(Ymax * (5 - i) / 5), "#0.00")

Next i

graph.DrawStyle = 2

graph.Line (Xmin, 800)-(w - 500, 800)

graph.Line (Xmin + (Tmax / time) * (w - 1500), 800)-(Xmin + (Tmax / time) * (w - 1500), h - 400)

graph.CurrentX = Xmin + (Tmax / time) * (w - 1500)

graph.CurrentY = 400

graph.CurrentX = Xmin + (Tmax / time) * (w - 1500) - 200

graph.CurrentY = h - 600

graph.DrawStyle = 2

graph.Line (Xmin + (Tod / time) * (w - 1500), 1100)-(Xmin + (Tod / time) * (w

- 1500), h - 400)

graph.CurrentX = Xmin + (Tod / time) * (w - 1500) - 200

graph.CurrentY = h - 400

graph.Print "Tod=" + CStr(Tod)

txtYmax = Ymax

txtYod = Yod

txtsigma = sigma

txtTmax = Tmax

txtTod = Tod

Dim x0, y0 As Double

x0 = Xmin

y0 = h - 400

txty = ""

For i = 0 To 997 Step 1

If i Mod 10 = 0 Then

txty.Text = txty.Text + "y[" + CStr(i) + "] = " + Format(CStr(Y(i)),

"#0.00000")

Trang 6

End If

graph.DrawStyle = 0

graph.Line (x0, y0)-(Xmin + (i + 1) * T * (w - 1500) / time, h - 400 - Y(i + 1) * (h - 1200) / Ymax)

x0 = Xmin + i * T * (w - 1500) / time

y0 = h - 400 - Y(i) * (h - 1200) / Ymax

Next i

End Sub

Bước 3: Chọn bước tính k =1000

Bước 4: In kết quả

y[0] = 0.0000000

y[10] = 4.5467847

y[20] = 11.6413671

y[30] = 12.1835091

y[40] = 7.5850282

y[50] = 4.8341400

y[60] = 6.5738528

y[70] = 9.3652775

y[80] = 9.6124627

y[90] = 7.8206686

y[100] = 6.7240721

y[110] = 7.3891682

y[120] = 8.4872311

y[130] = 8.5977075

y[140] = 7.8997170

y[150] = 7.4627841

y[160] = 7.7168264

y[170] = 8.1486747

y[180] = 8.1973001

y[190] = 7.9254702

y[200] = 7.7514568

y[210] = 7.8484008

y[260] = 7.9011958 y[270] = 7.9679456 y[280] = 7.9770493 y[290] = 7.9358543 y[300] = 7.9082902 y[310] = 7.9223649 y[320] = 7.9485989 y[330] = 7.9524867 y[340] = 7.9364564 y[350] = 7.9254929 y[360] = 7.9308471 y[370] = 7.9411553 y[380] = 7.9428042 y[390] = 7.9365680 y[400] = 7.9322092 y[410] = 7.9342435 y[420] = 7.9382931 y[430] = 7.9389883 y[440] = 7.9365630 y[450] = 7.9348307 y[460] = 7.9356027 y[470] = 7.9371932

y[510] = 7.9361463 y[520] = 7.9367708 y[530] = 7.9368926 y[540] = 7.9365261 y[550] = 7.9362528 y[560] = 7.9363635 y[570] = 7.9366087 y[580] = 7.9366594 y[590] = 7.9365170 y[600] = 7.9364085 y[610] = 7.9364503 y[620] = 7.9365465 y[630] = 7.9365675 y[640] = 7.9365122 y[650] = 7.9364692 y[660] = 7.9364849 y[670] = 7.9365227 y[680] = 7.9365314 y[690] = 7.9365099 y[700] = 7.9364928 y[710] = 7.9364988 y[720] = 7.9365136

[760] = 7.9365043 y[770] = 7.9365101 y[780] = 7.9365116 y[790] = 7.9365083 y[800] = 7.9365056 y[810] = 7.9365065 y[820] = 7.9365088 y[830] = 7.9365094 y[840] = 7.9365081 y[850] = 7.9365070 y[860] = 7.9365074 y[870] = 7.9365083 y[880] = 7.9365085 y[890] = 7.9365080 y[900] = 7.9365076 y[910] = 7.9365077 y[920] = 7.9365081 y[930] = 7.9365082 y[940] = 7.9365080 y[950] = 7.9365078 y[960] = 7.9365078 y[970] = 7.9365080

Trang 7

y[220] = 8.0182012

y[230] = 8.0393449

y[240] = 7.9335099

y[250] = 7.8642380

y[480] = 7.9374849 y[490] = 7.9365419 y[500] = 7.9358537

y[730] = 7.9365172 y[740] = 7.9365088 y[750] = 7.9365020

y[980] = 7.9365080 y[990] = 7.9365079 y[1000] = 7.9365079

Bước 5: Đường cong quá độ

Bước 6: Chỉ tiêu chất lượng của hệ thống ĐKTĐ

Bước 7: Đặc tính quá độ trên Matlab – Simulink

Trang 8

Kết luận:

Hệ đã cho ổn định theo thời gian.

Kết quả khảo sát bằng Matlab-Simulink hoàn toàn trùng với kết quả thu được trên VB,chứng tỏ tính đúng đắn của phương pháp đã dùng để mô hình hóa

hệ thống

Bước 8.Nhận dạng hệ thống

Từ đường cong quá độ thu được nhờ các phần mềm mô phỏng ta nhận thấy:

của tử số nhỏ hơn bậc của mẫu số

Trang 9

-Giá trị xác lập ổn định là 1 số khác 0 nên dễ thấy hàm quá độ đơn điệu tăng và không có độ quá điều chỉnh nên có thể kết luận hằng số thời gian của tử nhỏ hơn hằng số thời gian của mẫu

So với hàm truyền đã cho:

100

+,Bậc của tử (=0 ) < bậc của mẫu (=2) nên hàm số xác lập tại 1 giá trị khác 0

+,Hằng số thời gian của tử (=0) < hằng số hằng số thời gian của mẫu nên hàm quá độ sẽ đơn điệu tăng

Kết quả trên hoàn toàn phù hợp

Bước 9.Thiết kế giao diện

Bước 10.Tài liệu tham khảo

[1] Nguyễn Công Hiền, Nguyễn Phạm Thục Anh ,”Mô hình hóa hệ thống và

mô phỏng”, NXB Khoa học và kỹ thuật.

[2] Nguyễn Phùng Quang,”Matlab và Simulink dành cho kỹ sư điều khiển tự

động”, NXB Khoa học và kỹ thuật.

Ngày đăng: 06/06/2014, 13:37

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w