Tự động hóa xí nghiệp công nghiệp
Trang 1bộ 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
Trang 2Lờ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
Trang 3
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:
[Xk] = x(0), x(T), x(2T), x(kT)…
Trang 4Dãy tín hiệu ra của máy tính
[Yk] = 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:
1 0
jT kT y a iT
kT x
j j n m
i i
j k y a i
k x b
n j j n m
i i
1
1 2
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
k
k
Z k f
⇒ Z[f(k+1)] = ZF(z) – Zf(0);
Z[f(k+2)] = Z2 F(z) – Z2 f(0) – Zf(1);
Trang 5( )]
(
[
m j
j m
m F z f k Z Z
m k
∆
) ( ) 1 ( )]
∆f k f k f k
) ( ) 1
( )]
)
0
Trang 61 1 )(
1 1 (
2 1
+ +
+
=
s T s T s T
K K
W h
Từ đó, ta có hàm truyền của hệ kín là:
) (
) ( 1 3 2 1 ) 2
( ) 2 (
2 1 3
.
2 1 2 3 2
2
s Y K
K K s T T s
T T T
s T T
K K K
W
W W
h
h
+ +
+ + +
+
= +
s
vào Wk ta đợc
) (
) ( ) 1 2 ( 2
2
z U
z Y C Bz Az
z z D
+ +
+ +
trong đó:
3 2
1
2 2
1 1 2
Trang 7bộ môn :tự động hoá
)3211(3)2
(2)2(.4
2 1
2 2
1 1 2
(2)2(4
2 1
2 2
1 1 2
( ) 2
( 2 ) 2 ( 4
2 1
2 2
1 1 2
2
1 T T T T T T T T T K K K T
Từ (2 – 1) ta có:
) 1 3 3 ( )
( ) ( )
( )
2 1 2
3Y z +Bz Y z +CzY z +DY z =K K T z + z + z+
Az
3 2 1 2
8 ]
1 [ ] 2 [ ]
3
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ó
2 1
8K K T
E =
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: ymax,y od, σmax,Tmax,T od
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()
Trang 8Private Sub MnuGVHD_Click()
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
Trang 9*)PhÇn code cña form 3:
Private Sub cmdNext_Click()
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()
Trang 10If K3 = 0 Then
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")
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
Trang 11Public Sub ChiTieuChatLuong()
'Tim gia tri Max va Thoi gian Max
Dim IMax As Integer
Ymax = Y(0) 'Gia tri Max
Tmax = IMax * T '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
Trang 12Do While Abs(Y(I) - Yod) / Yod <= 0.02
' Duong gia tri dat
picDoThi.Line (.Line1.X1, Line2.Y2 - Int(Yod * 3000)) _
-(.Line1.X1 + 3200 * 2, Line2.Y2 - Int(Yod * 3000)), vbRed
picDoThi.DrawStyle = vbDot
' Cac duong giong diem
picDoThi.Line (Int(Tod / T) + Line1.X1, Line2.Y2 - Int(3000 * Yod)) _ -(Int(Tod / T) + Line1.X1, Line2.Y2), vbBlack
picDoThi.Line (.Line1.X1, Line2.Y2 - Int(Yod * 3000 * 1.02)) _
-(.Line1.X1 + 3000 * 2, Line2.Y2 - Int(Yod * 3000 * 1.02)), vbBlack picDoThi.Line (.Line1.X1, Line2.Y2 - Int(Yod * 3000 * 0.98)) _
-(.Line1.X1 + 3000 * 2, Line2.Y2 - Int(Yod * 3000 * 0.98)), vbBlack picDoThi.Line (Int(Tmax / T) + Line1.X1, Line2.Y2 - Int(3000 * Ymax)) _
-(Int(Tmax / T) + Line1.X1, Line2.Y2), vbBlack
picDoThi.Line (.Line1.X1, Line2.Y2 - Int(Ymax * 3000)) _
-(.Line1.X1 + Int(Tmax / T), Line2.Y2 - Int(Ymax * 3000)), vbBlack picDoThi.DrawStyle = vbSolid
Trang 13' Hien thi ghi chu
Label11.Top = Line2.Y2 - Int(3000 * Ymax) - 300
Label11.Left = Int(Tmax / T) * 2 + Line1.X1 + 50
Label11.Caption = "Ymax"
Label12.Top = Line2.Y2 - Int(3000 * Yod) - 400
Label12.Left = Int(Tod / T) + Line1.X1 - 200
'Hien thi 100 gia tri vao day
Public Sub InGiaTriNext()
Trang 14End 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: ymax,y od, σmax,Tmax,T od
Thời gian đạt giá trị max: Tmax = 1 , 993 (s)
Thời gian đạt giá trị ổn định: T od = 4 , 251 (s)
Trang 15bộ môn :tự động hoá
2.4.In 100 giá trị
Trang 17bộ môn :tự động hoá
Trang 19bộ môn :tự động hoá
Trang 202.5.M« pháng trªn phÇn mÒn Matlab
*Sö dông simukinkm« pháng hÖ thèng
Trang 22So 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.