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

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

Thông tin tài liệu

Đề 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: K 1 =100; K 2 =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 1 2 1 2 4 W( ) 4 1 ( 4) K s s K s K K s s K K s s + ⇒ = = + + + + Thay 2 1 1 z s T z − = + vào G(s) ta có: 1 1 2 ( ) ( ) 2 1 2 1 ( ) 4 1 1 K Y z W z z z U z K K T z T z = = − −    + +  ÷ ÷ + +    ( ) 2 2 1 2 2 2 2 1 2 2 1 4( 1) 8 ( 1) ( 1) K T z z z T z K K T z + + = − + − + + ( ) 2 2 1 2 2 1K T z z Az Bz C + + = + + Trong đó: 2 2 1 2 2 1 2 2 1 2 4 8 8 2 4 8 A T K K T B K K T C T K K T = + + = − + = − + 1 ( ) 2 2 1 2 2 1 ( ) ( ) K T z z Y z U z Az Bz C + + ⇒ = + + ( ) ( ) 2 2 2 1 ( ) ( ). 2 1Y z Az Bz C U z K T z z ⇒ + + = + + 2 2 2 2 2 1 1 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 2 2 1 1 1 . ( 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 ( ) 1( ) ( 2) ( 1) ( ) 1u t t U k U k U k = ⇒ + = + = = 2 1 . ( 2) . ( 1) . ( ) 4AY 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) . ( 1) . ( ) K TB C Y k Y k Y k A A A ⇒ + = − + − + 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 2 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 3 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 4 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") 5 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 6 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 7 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: -Đường cong xuất phát từ gốc tọa độ cho thấy trong hàm truyền kín của hệ bậc của tử số nhỏ hơn bậc của mẫu số. 8 -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: W(s)= 2 100 4 50s s + + +,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. 9 . 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: K 1 =100; K 2 =0,5 -Các bước thực hiện Bước 1: Phương trình. 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 7 Kết luận: Hệ đã cho ổn định theo thời gian. Kết quả khảo sát bằng Matlab-Simulink. gốc tọa độ cho thấy trong hàm truyền kín của hệ bậc của tử số nhỏ hơn bậc của mẫu số. 8 -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

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