Tài liệu tham khảo Dùng máy tính khảo sát quá trình quá độ của hệ điều khiển tự động
trờng đại học bkhn bộ môn :tự động hoá Trờng đại học bách khoa hà nội khoa điện bộ môn tự động hoá xncn bài tập dài mô hình hoá số 1 dùng máy tính khảo sát quá trình quá độ của hệ điều khiển tự động Chủ nhiệm bộ môn : TS. Nguyễn Mạnh Tiến Giáo viên hớng dẫn: GS.TS.Nguyễn Công Hiền Thạc Sỹ.Nguyễn Danh Huy Sinh viên thực hiện : Lu Thiện Trờng Nguyễn Văn tiến Phạm Anh Tuấn Lớp : Tự động hoá K1_03 Hà Nội 11_2004 1 trờng đại học bkhn bộ môn :tự động hoá Lời nói đầu Ngày nay khó có thể tìm thấy lĩnh vc hoạt động nào của con ngời mà không sử dụng phơng pháp mô hình hoá ở những mức độ khác nhau. Điều này đặc biệt quan trọng đối với lĩnh vực điều khiển các hệ thống kỹ thuật và xã hội, bỏi vì điêu khiển chính là quá trình thu nhận thông tin từ hệ thống, nhận dạng hệ thống theo một mô khình nào đố và đa ra quyết định thích hợp để điều khiển hệ thống. Qúa trình này đợc tiếp diễn liên tục nhằm đa hệ thống vận động theo một muc tiêu định trớc. Phơng pháp mô hình hoá và mô phỏng đợc phát triển từ đại chiến thế giới lần thứ hai vào những năm 40 của thế kỷ XX. Lúc đó ngời ta ứng dụng phơng pháp mô phỏng để nghiên cứu phản ứng hạt nhân nhằm chế tạo bom nguyên tử. Nhờ có máy tính điện tử mà phơng pháp mô khìng hoá và mô phỏng phát triển nhanh chóng và đợc ứng dụng vào nhiều lĩnh vực khoa học kỹ thuật cũng nh khoa học xã hội khác nhau. Nhờ có phơng pháp mô khình hoá và mô phỏng, ngời ta có thể phân tích, nghiên cứu hệ thống liên tục, phi tuyến, ngẫu nhiên một cách chính xác, hiệu quả mà nhiều khi phơng pháp giải tích truyền thống không cho ta lời giải chính xác đợc. Trong phần bài tập về mô hình hoá hệ liên tục: Khảo sát quá trình quá độ của hệ điều khiển tự động do thời gian chuẩn bị có hạn nên chắc chắn bài làm của chúng em còn có nhiều thiếu sót, em mong có đợc sự chỉ bảo thêm của các thầy, các cô giảng dạy trong bộ môn: Tự động hoá xí nghiệp công nghiệp - Khoa Điện-Trờng Đại học Bách Khoa Hà Nội. Một lần nữa, em xin chân thành cảm ơn thầy giáo: GS.TS.Nguyễn Công Hiền, Thạc sỹ.Nguyễn Danh Huy đã tận tình hớng dẫn để em có thể hoàn thành bài tập này. 2 trờng đại học bkhn bộ môn :tự động hoá Chơng 1. Lý thuyết về mô phỏng hệ thống liên tục 1.1.Khái niệm chung về mô hình hệ thống liên tục Hệ thống liên tục là hệ thống mà trong đố các trnạg thái và thuộc tính của hệ thống thay đổi một cách liêu tục. Mô hình toán học của hệ thống liên tục thờng là hệ phơng trình vi phân. Trờng hợp đơn giản nhất đó là hệ phơng trình vi phân tuyến tính với hệ số hằng và đợc giải một cách dễ dàng bằng phơng pháp giải tích. Tuy nhiên, khi mô hình có phần tử phi tuyến thì phơng pháp giải tích khó hoặc không thể giải đợc. Trong trờng hợp này thì hợp lý nhất là dùng phơng pháp mô phỏng để giải bài toán. Ngời ta có thể dùng máy tính tơng tự hoặc máy tính số để mô phỏng hệ liên tục. 1.2.Dùng máy tính tơng tự để mô phỏng hệ thống liên tục Máy tính tơng tự đã có quá trình phát triển lâu dài và đã góp phần giải các bài toán của hệ thống liên tục tuyến tính cũng nh phi tuyến. Máy tính tơng tự đợc dùng rộng rãi nhất là máy tính tơng tự điện tử mà phần tử cơ bản của nó là các khuếch đại thuật toán. Điện áp của máy tính biểu thị biến số của mô hình toán học. Tuy nhiên, máy tính tơng tự bị hạn chế là độ chính xác không cao do nhiều nguyên nhân: do độ chính xác của phép đo điện áp, do hiện tợng trôi điểm zero của khuếch đại thuật toán Nói chung độ chính xác của máy tính tơng tự không vợt quá 0,1%. Một hạn chế quan trọng khác của máy tính tơng tự là đối với từng hệ thống cụ thể phải lắp mạch máy tính tơng ứng, nếu hệ thống phức tạp thị thời gian lắp ráp và hiệu chỉnh máy tính sẽ đáng kể, hơn nữa máy tính không có khả năng phát triển mềm dẻo khi muốn thay đổi cấu trúc hệ thống. Vì vậy, ngày nay ngời ta ít dùng máy tính tơng tự vào mô phỏng mà dùng máy tính số. 1.3.Dùng máy tính số để mô phỏng hệ thống liên tục Ngày nay, máy tính số đợc ứng dụng vào hầu hết các lĩnh vực hoạt động của con ngời và nó trở thành một trong những công cụ làm việc không thể thiếu của chúng ta. Trong lĩnh vực mô hình hoá, máy tính là công cụ chủ yếu để thực hiện việc mô phỏng hệ thống. Sau đây chúng ta sẽ đi tìm hiểu máy tính làm việc nh thế nào trong việc mô hình hoá hệ thống. 1.4)Phơng trình máy tính: Giả sử dãy tín hiệu vào máy tính: [X k ] = x(0), x(T), x(2T), x(kT) Dãy tín hiệu ra của máy tính 3 trờng đại học bkhn bộ môn :tự động hoá [Y k ] = y(0), y(T), y(2T), y(kT) trong đó T là bớc cắt mẫu hay nhịp làm việc của máy tính Tín hiệu ra ở thời điểm k tức y(kT) phụ thuộc vào giá trị của n tín hiệu ra của m+1 tín hiệu vào xảy ra trớc đó. Các giá trị của m tín hiệu vào và n tín hiệu ra đợc lu trữ trong bộ nhớ của máy tính. Nh vậy quan hệ giữa tín hiệu ra và tín hiệu vào của máy tính đợc viết nh sau: y(kT) = )()( 10 jTkTyaiTkTxb n j jn m i im = = (1-1) Với m n; Phơng trình (1-1) đợc gọi là phơng trình máy tính biểu thị quan hệ tuyến tính giữa tín hiệu ra với tín hiệu vào của máy tính. Vì tín hiệu ra [y k ] và tín hiệu vào [x k ] đều có cùng bớc gián đoạn T nên để cho gọn ta có thể viết y(k) = )()( 10 jkyaikxb n j jn m i im = = (1-2) Khai triển ra ta có: y(k) + a n-1 y(k-1) + a n-2 y(k-2) + + a 1 y(k- n+1) + a 0 y(k- n) + = b m x(k) + b m-1 x(k-1) + + b 1 x(k-2) + b 0 y(k-m) (1-3) y(k) = - a n-1 y(k-1) - a n-2 y(k-2) - - a 1 y(k- n+1)- a 0 y(k- n) + b m x(k) + b m-1 x(k-1) + + b 1 x(k-2) + b 0 y(k-m) (1 4) Phơng trình (1 3),(1 4) gọi là phơng trình sai phân bậc n. Nh vậy, ta có thể tháy rằng phơng trình máy tính có dạng của phơng trình sai phân tuyến tính. Từ các phân tích trên, ta thấy muốn dùng máy tính số để mô phỏng hệ liên tục thì phải mô tả hệ liên tục dới dạng phơng trình sai phân tuyến tính bằng cách từ phơng trình Laplace W(s) của hệ liên tục, bằng cách đổi biến số: 1 12 + = z z T s ta có thể tìm đợc phơng trình biển đổi z tơng ứng W(z) rồi tìm ngợc lại phơng trình sai phân của hệ để giải trên máy tính số để tìm đặc tính mô phỏng của hệ liên tục. *) Các tính chất biến đổi Z 1. Tính tuyến tính Z{a[v(k)] + b[w(k)]} = aV(z) + b.W(z) 2.Dịch hàm gốc f(k) về phía trớc m bớc Z[f(k)] = F(z) = = 0 )) k k Zkf Z[f(k+1)] = ZF(z) Zf(0); Z[f(k+2)] = Z 2 F(z) Z 2 f(0) Zf(1); 4 trờng đại học bkhn bộ môn :tự động hoá Tổng quát dịch m bớc = =+ 1 0 )()()]([ m j jmm ZkfzFZmkfZ Với Zf(0) = 0, ta có: Z[f(k+1)] = ZF(z) Z[f(k+m)] = Z m F(z) 3. Dịch gốc về phía sau m bớc Tơng tự nh trên, ta có Z[f(k-m)] = Z -m F(z) 4.Biến đổi Z của sai phân tiến )()1()( kfkfkf += )()1()]([ zFZkfZ = 5. Biến đổi Z của sai phân lùi )1()()( = kfkfkf )()1()]([ 1 ZFZkfZ = 6.Giá trị đầu của hàm gốc rời rạc f(0) )(lim)0( ZFf z = 5 trờng đại học bkhn bộ môn :tự động hoá Chơng 2. lập trình trên máy tính để khảo sát quá trình quá độ của hệ điều khiển tự động Đề Bài: 2.1.Xác định hàm truyền của hệ: Từ cấu trúc của hệ thống, ta có hàm truyền của hệ hở là: )12)(11)(11( 21 +++ = sTsTsT KK W h Từ đó, ta có hàm truyền của hệ kín là: )( )( 13.2.1)2()2( 2.1 3.1 21 2 21 23 2 2 1 sU sY KKKsTTsTTTsTT KK KW W W h h k = ++++++ = + = 2.2.Tìm phơng trình sai phân Thực hiện phép biến đổi sang z, ta thay 1 12 + = z z T s vào W k ta đợc )( )()12( 2 2 zU zY CBzAz zzD W Z = ++ ++ = (2-1) trong đó: 3 21 2 2112 2 1 )3211()2.(.2).2(.4.8 TKKKTTTTTTTTTA ++++++= 6 Tham số sinh viên tự chọn K1, K2 - hệ số khuếch đại T1 - hằng số thời gian T2 - Hằng số thời gian T - bứơc cắt mẫu trờng đại học bkhn bộ môn :tự động hoá )3211(3)2(2)2(.424 3 21 2 2112 2 1 KKKTTTTTTTTTTB +++++= )3211()2(2)2(4.24 3 21 2 2112 2 1 KKKTTTTTTTTTTC ++++= )1()2(2)2(.48 321 3 21 2 2112 2 1 KKKTTTTTTTTTTD +++++= Từ (2 1) ta có: )133()()()()( 233 21 23 +++=+++ zzzTKKzDYzCzYzYBzzYAz 3 21 23 8)()()()( TKKzDYzCzYzYBzzYAz =+++ Dùng tính chất biến đổi Z ta tìm đợc phơng trình sai phân tơng ứng với phơng trình trên: [ ] 3 21 8]1[]2[]3[ TKKkDYkCYkBYkAY =++++++ Vì tín hiệu là nhảy cấp U(t)=1(t) nên ta có U[k+2] = U[k+1] = U[k] = 1 Vậy ta có 3 21 8 TKKE = A.Y[k+3] + B.Y[k+2] + C.Y[k+1] + D.Y[k] = E Y[k+3]=(-B.Y[k+2] - C.Y[k+1] - D.Y[k] +E)/A 2.3. Viết chơng trình mô phỏng bằng ngôn ngữ Visual Basic Sau đây là chơng trình Visual Basic mô hình hoá hệ điều khiển tự động đã cho. Chơng trình cho kết quả là tín hiệu ra Y[k] dới dạng số, cứ cách 10 số in ra một số liệu. Chơng trình cũng cho kết quả dới dạng đờng cong quá trình quá độ của hệ ĐKTĐ và tính các đặc tính quá độ nh: odod TTyy ,,,, maxmaxmax Sau đây là chơng trình mô phỏng viết bằng ngôn ngữ Visual Basic: *)Phần code của form1: Private Sub cmdChapnhan_Click() ChapNhan End Sub Private Sub cmdMophong_Click() mophong KhacTruc End Sub Private Sub cmdThoat_Click() End End Sub Private Sub Môphỏng_Click() End Sub Private Sub MnuGVHD_Click() 7 trờng đại học bkhn bộ môn :tự động hoá MsgBox "GS.TS. Nguyễn Công Hiền" _ & vbCrLf & vbCrLf & "ThS.Nguyễn Danh Huy", , "Thày giáo hớng dẫn:" End Sub Private Sub mnuMoph_Click() mophong KhacTruc End Sub Private Sub mnuNhom_Click() MsgBox "Lu Thiện Trờng" _ & vbCrLf & vbCrLf & "Nguyễn Văn Tiến" _ & vbCrLf & vbCrLf & "Phạm Anh Tuấn", , "Nhóm thực hiện:25" End Sub Private Sub Mnuthoat_Click() End End Sub Private Sub MnuTL_Click() MsgBox "1. Mô hình hoá hệ thống và mô phỏng - Nguyễn Công Hiền" _ & vbCrLf & vbCrLf & "2. Ngôn ngữ lập trình Visual Basic 6.0" _ & vbCrLf & vbCrLf + "3. Lý thuyết điều khiển tự động " _ & "- Phạm Công Ngô", , "Tài liệu tham khảo" End Sub Private Sub Text9_click() Dim sta As Integer sta = MsgBox("Thời gian lấy mẫu đã đợc giữ cố định!", , "Thông báo") If sta = vbOK Then Text9.Enabled = False End If End Sub *)Phần code của form 2: Private Sub cmdChiTieuChatLuong_Click() ChiTieuChatLuong End Sub Private Sub cmdInGiaTri_Click() CIndex = 0 frm3.Show 8 trờng đại học bkhn bộ môn :tự động hoá InGiaTriNext cmdInGiaTri.Enabled = False End Sub Private Sub cmdQuayve_Click() frm1.Show frm2.Hide Unload frm2 cmdInGiaTri.Enabled = True cmdChiTieuChatLuong.Enabled = True End Sub *)Phần code của form 3: Private Sub cmdNext_Click() InGiaTriNext End Sub Private Sub cmdOK_Click() Unload frm3 frm3.Hide mophong End Sub Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single) End Sub *)Phần code của modul Option Explicit Public K1, K2, K3 As Double ' He so Public T, T1, T2 As Double ' Hang so thoi gian Public Y(6000) As Double Dim A, B, C, D, E As Double Public I As Integer Public CI As Integer Dim Tod, Yod, Ymax, Tmax As Double Public Sub ChapNhan() Dim s As Integer With frm1 K1 = Val(.Text5.Text) K2 = Val(.Text6.Text) K3 = Val(.Text7.Text) T1 = Val(.Text8.Text) T2 = Val(.Text12.Text) T = Val(.Text9.Text) If K3 = 0 Then 9 trờng đại học bkhn bộ môn :tự động hoá s = MsgBox("Bạn đã nhập hệ số phản hồi bằng zero!" _ & vbCrLf & vbCrLf & " Hãy nhập lại dữ liệu (Yes/No)", 16 + vbYesNo, "Thông báo") If s = vbNo Then Unload frm1 Unload frm2 Else frm1.Show End If End If .Text1.Text = Str(K1) .Text2.Text = Str(K2) .Text3.Text = Str(K3) .Text4.Text = Str(T1) .Text10.Text = Str(T1) .Text11.Text = Str(T2) End With End Sub Public Sub mophong() frm1.Hide Load frm2 frm2.Show 'Biểu thức Z của hệ Y(0) = 0 Y(1) = 0 Y(2) = 0 A = 8 * T1 * T1 * T2 + 4 * T * T1 * (T1 + 2 * T2) + 2 * T * T * (2 * T1 + T2) + (1 + K1 * K2 * K3) * T * T * T B = -24 * T1 * T1 * T2 - 4 * T * T1 * (T1 + 2 * T2) + 2 * T * T * (2 * T1 + T2) + 3 * (1 + K1 * K2 * K3) * T * T * T C = 24 * T1 * T1 * T2 - 4 * T * T1 * (T1 + 2 * T2) - 2 * T * T * (2 * T1 + T2) + 3 * (1 + K1 * K2 * K3) * T * T * T D = -8 * T1 * T1 * T2 + 4 * T * T1 * (T1 + 2 * T2) - 2 * T * T * (2 * T1 + T2) + (1 + K1 * K2 * K3) * T * T * T E = K1 * K2 * T * T * T ' frm2.Text6.Text = Str(B) For I = 0 To 5996 Y(I + 3) = (8 * E - B * Y(I + 2) - C * Y(I + 1) - D * Y(I)) / A Next I With frm2 .picDoThi.Line (0, 0)-(.Line1.X1, .Line1.Y1), .picDoThi.BackColor .picDoThi.DrawWidth = 1 For I = 0 To 5999 .picDoThi.Line -(.Line1.X1 + I, .Line2.Y2 - Y(I) * 3000), vbRed Next I 10 [...]... đại học bkhn bộ môn :tự động hoá 2.4.In 100 giá trị 15 trờng đại học bkhn bộ môn :tự động hoá 16 trờng đại học bkhn bộ môn :tự động hoá 17 trờng đại học bkhn bộ môn :tự động hoá 18 trờng đại học bkhn bộ môn :tự động hoá 19 trờng đại học bkhn bộ môn :tự động hoá 2.5.Mô phỏng trên phần mền Matlab *Sử dụng simukinkmô phỏng hệ thống 20 trờng đại học bkhn bộ môn :tự động hoá *Chơng trình Matlab: >> w1=tf([0... frm3.cmdNext.Enabled = False End If End Sub Sau khi cho chạy chơng trình ta có đờng cong quá trình quá độ của hệ ĐKTĐ và tính các đặc tính quá độ nh: y max , yod , max , Tmax , Tod Ta cho thử K1 = 12;K2 =0.1; K3 = 1 ; T1=0.5; T2 =0.5 13 trờng đại học bkhn bộ môn :tự động hoá Từ đồ thị trên ta có: Giá trị cực đại y max = 0,6399 ; Độ quá điều chỉnh: 17,32% Giá trị ổn định: y od = 0,545 Thời gian đạt giá... wk=feedback(wh,w3) Transfer function: 1.2 -0.125 s^3 + 0.75 s^2 + 1.5 s + 2.2 >> step(wk) Đờng cong quá trình quá độ do chơng trình Matlab vẽ ra nh hình dới đây 21 trờng đại học bkhn bộ môn :tự động hoá So sánh giữa 2 đồ thị trên ta thấy chúng trùng nhau, điều đó chứng tỏ thuật toán của chúng ta là đúng đắn 22 ...trờng đại học bkhn bộ môn :tự động hoá picDoThi.DrawWidth = 1 End With End Sub Public Sub KhacTruc() 'Khac do truc t Dim K As Integer For K = 0 To 6 With frm2 picDoThi.Line (K * 1000 + Line2.X1, Line2.Y1 - 80) _ -(K * 1000 + Line2.X1,... 'Thoi gian dat gia tri Max 'Gia tri on dinh Yod = K1 * K2 / (1 + K1 * K2 * K3) 'Tim thoi gian dat gia tri on dinh I = 5999 Do While Abs(Y(I) - Yod) / Yod