Vì vậy sau khi nhận được đề tài “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”, chúng em đã tập trung thực hiện một cách nghiêm túc.. • Viết phương trình mô p
Trang 1LỜI NÓI ĐẦU
Hệ thống điều chỉnh tự động là hệ rất hay gặp đối với chuyên ngành điện
Là một sinh viên khoa điện, chuyên ngành điện tự động công nghiệp chúng ta càng phải trang bị cho mình nền tảng chuyên môn tốt về mảng này Bài tập lớn môn học “ Mô hình hóa hệ thống và mô phỏng” là một cơ hội để sinh viên chúng em củng cố và nâng cao kiến thức đồng thời cũng là phương pháp để giảng viên đánh giá năng lực của sinh viên Vì vậy sau khi nhận được đề tài
“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”,
chúng em đã tập trung thực hiện một cách nghiêm túc Cùng với việc tham khảo
sách vở và đặc biệt dưới sự hướng dẫn tận tình của cô Phạm Thị Hồng Anh,
chúng em đã hoàn thành xong bài tập lớn Trong quá trình thực hiện chắc chắn không tránh khỏi sai sót, em rất mong nhận được sự góp ý của cô để chúng em hoàn thiện hơn
Chúng em chân thành cảm ơn!
Sinh viên thực hiện
Phạm Thanh Tuấn Lê Đức Thắng
Trang 2MỤC LỤC
Lời nói đầu 1 Mục lục 2
7
Trang 3Đề số 12: 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:
Thông số: K1=10; K2=50; K3=10; K4=0,2; T2=0,01s; T3=0,1s
Yêu cầu:
• Viết phương trình sai phân tuyến tính của hệ thống
• Viết phương trình mô phỏng hệ điều khiển tự động bằng ngôn ngữ nào đó
• Chọn số bước tính đủ lớn k=1000 và in kết quả 100 giá trị yk, cách 10 giá trị in 1 giá trị
• Vẽ đường cong quá trình quá độ Chú ý các trục tọa độ phải được khắc số
• Tính và in ra các chỉ tiêu chất lượng của hệ thống (giá trị cực đại, thời gian quá
độ, độ quá điều chỉnh, số lần dao động, giá trị ổn định, thời gian để hệ thống đạt
ổn định)
• Dùng Matlab & Simulink để vẽ đường cong quá trình quá độ của hệ tự động đã cho So sánh với đường cong mô phỏng ở trên, kết luận
• Nhận dạng hệ thống từ đường cong quá trình quá độ nhận dạng hàm truyền của
hệ thống, so sánh kết quả nhận dạng với hàm truyền ở mục trên
• Thiết kế giao diện, nhập thông số của hệ thống từ bàn phím, in và lấy kết quả dưới dạng số, dưới dạng đường cong quá trình quá độ, vào và ra khỏi chương trình
1 Viết phương trình sai phân tuyến tính của hệ thống
Từ cấu trúc của hệ thống ta có hàm truyền của hệ là:
Hình 1.1 Mô hình hệ thống điều khiển tự động
Trang 4Tử số của :
Mẫu số của :
Với: = ; = ; =
Với:
M=8.+ 4.T + 2 ()
N= -24.- 4.T + 2 ()
P= 24.- 4.T - 2 ()
Q= -8.+ 4.T - 2 ()
Với:
Từ đó, suy ra:
Dùng tích chất dịch hàm gốc của biến đổi Z ta tìm được phương trình sai phân ứng với phương trình trên là:
Trang 5Vì u(t)=1 ⇒ u(k+3)= u(k+2)= u(k+1)= u(k)= 1
Vậy, phương trình sai phân tuyến tính của hệ điều khiển tự động là:
2 Viết chương trình khảo sát quá trình của hệ điều khiển tự động bằng phần mềm Visual Basic
2.1 Thiết kế giao diện
Hình 1.2 Giao diện trong phần mềm Visual Basic
2.2 Code lệnh trong chương trình
Option Explicit
*************khai bao bien*********
Dim h, w As Integer
Trang 6Dim A, B, C, D, M, N, P, Q As Double
Dim K1, K2, K3 As Double
Dim K4, T2, T3 As Double
Dim T As Double
Dim x0, y0 As Double
Dim Ymax, Yod, Tod, Tmax, sigma As Double Dim Y(20000) As Double
Dim Xmin, Xmax, Ymin As Integer
Dim k, i As Double
Dim Z, J As Double
*************Lệnh nút THOÁT********** Private Sub Cmd_thoat_Click()
MsgBox " An OK de thoat"
End
End Sub
***************Lệnh nút VẼ*********** Private Sub Cmd_Ve_Click()
Y(0) = 0
Y(1) = 0.604
Y(2) = 0.6097
' nhap thong so
K1 = txtK1
K2 = txtK2
K3 = txtK3
K4 = txtK4
Trang 7T2 = txtT2
T3 = txtT3
T = txtT.Text
time = time.Text
' tinh A, B, C,D, M, N, P, Q
A = 2 * K1 * K2 * T3 * T ^ 2 + K1 * K2 * T ^ 3
B = 2 * K1 * K2 * T3 * T ^ 2 + 3 * K1 * K2 * T ^ 3
C = -2 * K1 * K2 * T3 * T ^ 2 + 3 * K1 * K2 * T ^ 3
D = -2 * K1 * K2 * T3 * T ^ 2 + K1 * K2 * T ^ 3
M = 8 * T2 * T3 * K4 + 4 * T * K4 * (T2 + T3) + 2 * T ^ 2 * (K4 + K1 * K2 * K3 * K4)
N = -24 * T2 * T3 * K4 - 4 * T * K4 * (T2 + T3) + 2 * T ^ 2 * (K4 + K1 * K2 * K3 * K4)
P = 24 * T2 * T3 * K4 - 4 * T * K4 * (T2 + T3) - 2 * T ^ 2 * (K4 + K1 * K2 * K3 * K4)
Q = -8 * T2 * T3 * K4 + 4 * T * K4 * (T2 + T3) - 2 * T ^ 2 * (K4 + K1 * K2 * K3 * K4)
' tim cac gia tri y(k), ymax, Tmax
Ymax = Y(0)
For k = 0 To 1000*time
Y(k + 3) = -N / M * Y(k + 2) - P / M * Y(k + 1) - Q / M * Y(k) + (A + B + C + D) / M
If Y(k) > Ymax Then
Ymax = Y(k)
Tmax = k * T
End If
Next k
Trang 8' ve truc toa do
Xmin = 600
Ymin = 400
h = graph.Height
w = graph.Width
Xmax = w – 400
' ve truc toa do
graph.DrawStyle = 0
graph.Line (Xmin, h - 500)-(Xmax, h - 500) ' ve tia ox graph.Line (Xmax, h - 500)-(Xmax - 100, h - 500 + 50) ' mui ten tren truc ox graph.Line (Xmax, h - 500)-(Xmax - 100, h - 500 - 50) ' mui ten duoi truc ox graph.Line (Xmin, h - 500)-(Xmin, 350) ' ve tia oy
graph.Line (Xmin, 300)-(Xmin - 50, 400) ' mui ten trai truc oy graph.Line (Xmin, 300)-(Xmin + 50, 400) ' mui ten phai truc oy ' dat ten truc oy
graph.CurrentX = Xmin - 300
graph.CurrentY = Ymin
graph.Print ("y(t)")
' dat ten truc ox
graph.CurrentX = Xmax - 200
graph.CurrentY = h - 500
graph.Print ("time(s)")
' danh dau goc toa do
graph.CurrentX = Xmin - 150
Trang 9graph.CurrentY = h - 500
graph.Print ("0")
' khac do Ox
Z = (w - 400 - 600 - 500) / 5
For i = 1 To 5
graph.Line (Z * i + 600, h - 450)-(Z * i + 600, h - 550)
graph.CurrentX = Z * i + 600
graph.CurrentY = h - 400
graph.Print CStr(time * i / 5)
Next i
' khac do Oy
J = ((h - 500) - 800) / 5
For i = 0 To 4
graph.Line (Xmin - 50, J * i + 800)-(Xmin + 50, J * i + 800)
graph.CurrentX = Xmin - 400
graph.CurrentY = J * i + 800
graph.Print Format(CStr(Ymax * (5 - i) / 5), "#0.00")
Next i
' Ve do thi va hien thi 100 gia tri ' goc toa do
x0 = Xmin
y0 = h - 500
' in 100 gia tri
txty = ""
For i = 0 To 999*time Step 1
Trang 10If i Mod 10 = 0 Then
txty.Text = txty.Text + "y[" + CStr(i) + "] = " + Format(CStr(Y(i)),
"#0.0000") + vbNewLine
End If
graph.DrawStyle = vbSolid
graph.Line (x0, y0)-(Xmin + (i + 1) * T * (w - 1500) / time, h - 500 - Y(i + 1) * (h - 1300) / Ymax), vbBlue
x0 = Xmin + (i + 1) * T * (w - 1500) / time
y0 = h - 500 - Y(i + 1) * (h - 1300) / Ymax
Next i
' ve duong Ymax,Tmax
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) - 100
graph.CurrentY = 600
graph.Print "Ymax=" + Format(CStr(Ymax), "#0.000")
graph.CurrentX = Xmin + (Tmax / time) * (w - 1500) - 200
graph.CurrentY = h - 300
graph.Print "Tmax=" + CStr(Tmax)
' hien thi cac chi tieu chat luong
textymax.Text = Format(CStr(Ymax), "#0.000")
texttmax.Text = Format(CStr(Tmax), "#0.000")
textyod = "vo cung"
txtsigma = "vo cung"
Trang 11txtTod = "vo cung"
End Sub
************** Lệnh nút XÓA************
Private Sub Xoa_Click()
graph.Cls
textymax.Text = ""
texttmax.Text = ""
textyod.Text = ""
txtsigma.Text = ""
txtTod = ""
txty.Text = ""
End Sub
2.3 Kết quả mô phỏng sử dụng phần mềm Visual Basic
Hình 1.3 Kết quả mô phỏng trong Visual Basic
2.4 In kết quả giá trị y k
Trang 12y[20] = 0.5917
y[30] = 0.2180
y[40] = 0.3085
y[50] = 0.4868
y[60] = 0.3198
y[70] = 0.3372
y[80] = 0.4391
y[90] = 0.3697
y[100] = 0.3666
y[110] = 0.4228
y[120] = 0.3974
y[130] = 0.3920
y[140] = 0.4228
y[150] = 0.4164
y[160] = 0.4134
y[170] = 0.4309
y[180] = 0.4322
y[190] = 0.4321
y[200] = 0.4429
y[210] = 0.4470
y[220] = 0.4491
y[230] = 0.4566
y[240] = 0.4617
y[250] = 0.4651
y[260] = 0.4711
y[270] = 0.4764 y[280] = 0.4805 y[290] = 0.4860 y[300] = 0.4912 y[310] = 0.4958 y[320] = 0.5009 y[330] = 0.5061 y[340] = 0.5109 y[350] = 0.5159 y[360] = 0.5210 y[370] = 0.5259 y[380] = 0.5309 y[390] = 0.5360 y[400] = 0.5409 y[410] = 0.5459 y[420] = 0.5510 y[430] = 0.5559 y[440] = 0.5609 y[450] = 0.5659 y[460] = 0.5709 y[470] = 0.5759 y[480] = 0.5809 y[490] = 0.5859 y[500] = 0.5909 y[510] = 0.5959
Trang 13y[520] = 0.6009
y[530] = 0.6059
y[540] = 0.6109
y[550] = 0.6159
y[560] = 0.6209
y[570] = 0.6259
y[580] = 0.6309
y[590] = 0.6359
y[600] = 0.6409
y[610] = 0.6459
y[620] = 0.6509
y[630] = 0.6559
y[640] = 0.6609
y[650] = 0.6659
y[660] = 0.6709
y[670] = 0.6759
y[680] = 0.6809
y[690] = 0.6859
y[700] = 0.6909
y[710] = 0.6959
y[720] = 0.7009
y[730] = 0.7059
y[740] = 0.7109
y[750] = 0.7159
y[760] = 0.7209 y[770] = 0.7259 y[780] = 0.7309 y[790] = 0.7359 y[800] = 0.7409 y[810] = 0.7459 y[820] = 0.7509 y[830] = 0.7559 y[840] = 0.7609 y[850] = 0.7659 y[860] = 0.7709 y[870] = 0.7759 y[880] = 0.7809 y[890] = 0.7859 y[900] = 0.7909 y[910] = 0.7959 y[920] = 0.8009 y[930] = 0.8059 y[940] = 0.8109 y[950] = 0.8159 y[960] = 0.8209 y[970] = 0.8259 y[980] = 0.8309 y[990] = 0.8359
Trang 142.5 Các chỉ tiêu chất lượng của hệ
Ymax=0.841
Tmax=1
Yod= Vô cùng
Tod= Vô cùng
Độ quá điều chỉnh: Sigma= Vô cùng
3 Mô phỏng và kiểm tra lại quá trình khảo sát bằng phần mềm Matlab & Simulink
3.1 Sơ đồ khối hệ điều khiển tự động
Hình 1.4 Mô hình hệ điều khiển tự động trong Matlab & Simulink
Trang 153.2 Kết quả mô phỏng
Hình 1.5 Kết quả mô phỏng trên phần mềm Matlab & Simulink
4 Kết luận
Từ kết quả mô phỏng trên Matlab & Simulink và Visual Basic ta có kết luận về hệ điều khiển tự động như sau:
• Kết quả mô phỏng giữa Matlab và Visual Basic có sự khác nhau
• Hệ trên là hệ không ổn định
• Thời gian quá độ rất nhỏ
• Dựa vào dạng đặc tính mô phỏng ta thấy h(0) = 0 từ đó nhận dạng được bậc của hàm truyền có bậc của tử số nhỏ hơn mẫu số,đúng với dạng hàm truyền đã tìm được ở trên
Trang 16TÀI LIỆU THAM KHẢO
[1] Nguyễn Phùng Quang, Matlab và Simulink dành cho kĩ sư điều khiển tự động, năm 2006, Nhà xuất bản khoa học và kỹ thuật
[2] Khoa công nghệ thông tin – Trường Đại học Hàng Hải, Bài giảng Visual
Basic, năm 2008
[3] 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, Nhà xuất bản khoa học và kỹ thuật Hà Nội