Tải bản đầy đủ (.docx) (18 trang)

Bài tập lớn Mô hình hóa hệ thống Mô phỏng để khảo sát tính ổn định của hệ thống

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (230.54 KB, 18 trang )

LỜI MỞ ĐẦU
Phương pháp mô phỏng được phát triển từ những năm 40 của thế kỉ 20. Lúc
đó người ta ứng dụng mô hình hoá để nghiên cứu phản ứng hạt nhân chế tạo bom
nguyên tử. Ngày nay với sự phát triển vượt bậc của máy tính điện tử mà mô hình
hoá được ứng dụng trong nhiều ngành, kĩ thuật, lĩnh vực khác nhau.
Ngày nay, mô hình hoá là một phương pháp nghiên cứu khoa học được ứng
dụng rất rộng rãi: từ thiết kế đến chế tạo, vận hành. Nhờ sự giúp đỡ của máy tính
có tốc độ nhanh, bộ nhớ lớn mà phương pháp mô hình hoá được phát triển mạnh
mẽ.
Mô hình hoá và mô phỏng được ứng dụng không những vào lĩnh lực khoa
học, công nghệ mà còn ứng dụng hiệu quả vào các lĩnh vực khác như kinh tế, quân
sự, xã hội.
Hiểu được những vấn đề đó và để đáp ứng kịp thời tiến bộ khoa học kĩ
thuật, đáp ứng được thực tiễn mà chúng em được giao đề tài: Mô phỏng để khảo
sát tính ổn định của hệ thống
Em xin chân thành cảm ơn cô Phạm Thị Hồng Anh đã hướng dẫn nhóm em
hoàn thành bài tập lớn này. Do thời gian còn hạn chế nên bài còn nhiều thiếu sót,
em mong được sự góp ý của cô và các bạn để bài của nhóm em được hoàn thiện
hơn.

1


MỤC LỤC

2


Đề số 1: 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=100; K2=0,1; T1=0,2s; T2=0,1s

3


1 Viết phương trình sai phân tuyến tính của hệ thống

W(s) = ==
= (*)
Thay s= vào phương trình (*) ta được ;
W(Z)=
=
=
=
=

Đặt:
=A
=B
=C
=D

W(z)=
Ta có: W(z)

=

Y(Z).=U(Z).+3.U(Z).+3.U(Z). +U(Z)


A.Z +B Z+C. Z+D. Z=Z (**)
Vì u(t)=1t =u(k+2)=u(k+1)=u(k)=1
(**) =A.y(k+3)+ B.y(k+2)+C. y(k+1)+D. y(k)=8
y(k+3)= - -+)Cách chọn bước cắt mẫu cho quá trình mô phỏng cho phần mô phỏng
4


=> chọn T = 0.001
Tra bảng 2.33-sách Mô hình hoá hệ thống
Bảng 2.2. Chọn bước cắt mẫu

Loại biến hoặc quá trình

Bước cắt mẫu(s)

Lưu lượng

1÷3

Mức

5÷10

Áp suất

1÷5

Nhiệt độ

10÷45


Chưng cất

10÷180

Sấy

20÷45

Hệ thống điều khiển

0.001÷0.1

5


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 2.1. giao diện trên bằng phần mềm Visual Basic

2.2. Code lệnh trong chương trình
Dim h, w As Integer
Dim A, B, C, D As Double
Dim K1, K2 As Double
Dim T, T1, T2 As Double
Dim x0, y0 As Double
Dim Ymax, Yod, Tod, Tmax, Sigma As Double
Dim Y(2000) As Double

Dim Xmin, Xmax, Ymin As Integer
Dim k, i As Double
Dim Z, J As Double
Private Sub Thoat_Click()
MsgBox " An OK de thoat"
End
6


End Sub
Private Sub Timer1_Timer()
Text3 = Time & " " & Date
End Sub
Private Sub Ve_Click()
K1 = Val(txtK1)
K2 = Val(txtK2)
T1 = Val(txtT1)
T2 = Val(txtT2)
T = Val(txtT.Text)
Time = Time.Text
Y(0) = 0
A = 8 * T1 * T2 + 4 * T * (T1 + T2) + 2 * T ^ 2 + (K1 * K2 * T ^ 3)
B = -24 * T1 * T2 - 4 * T * (T1 + T2) + 2 * T ^ (2) + 3 * K1 * K2 * T ^ (3)
C = 24 * T1 * T2 - 4 * T * (T1 + T2) - 2 * T ^ (2) + 3 * K1 * K2 * T ^ (3)
D = -8 * T1 * T2 + 4 * T * (T1 + T2) - 2 * T ^ (2) + K1 * K2 * T ^ (3)
Ymax = Y(0)
For k = 0 To 1500
Y(k + 3) = (8 * K1 * T ^ 3) / A - (B * Y(k + 2)) / A - (C * Y(k + 1)) / A - (D * Y(k))
/A
If Y(k) > Ymax Then

Ymax = Y(k)
Tmax = k * T
End If
Next k
'..............................ve truc toa do
7


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
Graph.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)
8


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 - 1500
'................................. in 100 gia tri
txty = ""
For i = 0 To 999 Step 1
If i Mod 10 = 0 Then

Text1.Text = Text1.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 - 1500 - Y(i + 1) *
(h - 2300) / Ymax), vbBlue
x0 = Xmin + (i + 1) * T * (w - 1500) / Time
y0 = h - 1500 - Y(i + 1) * (h - 2300) / Ymax
Next i
9


'..............................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)
Yod = K1 / (K1 * K2)
i=k
Do While Abs(Y(i) - Yod) / Yod <= 0.02
i=i-1
Loop
Tod = i * T
'.......................hien thi cac chi tieu chat luong..........................

textymax.Text = Format(CStr(Ymax), "#0.000")
texttmax.Text = Format(CStr(Tmax), "#0.000")
textyod.Text = Format(CStr(Yod), "#0.000")
texttod.Text = Format(CStr(Tod), "#0.000")
End Sub
Private Sub Xoa_Click()
Graph.Cls
textymax.Text = ""
texttmax.Text = ""
textyod.Text = ""
texttod = ""
End Sub
10


2.3. Kết quả mô phỏng sử dụng phần mềm Visual Basic

Hình 2.2. Kết quả mô phỏng với thông số cho trước

2.4. Các giá trị Y(k)
y[0] = 0.0000

y[160] = 13.8136

y[320] = 8.2323

y[10] = 0.4330

y[170] = 13.9957


y[330] = 8.2659

y[20] = 2.8927

y[180] = 12.8423

y[340] = 8.8682

y[30] = 7.1906

y[190] = 10.8630

y[350] = 9.7855

y[40] = 11.9333

y[200] = 8.7906

y[360] = 10.6848

y[50] = 15.5632

y[210] = 7.3176

y[370] = 11.2712

y[60] = 17.0031

y[220] = 6.8718


y[380] = 11.3817

y[70] = 15.9929

y[230] = 7.5008

y[390] = 11.0257

y[80] = 13.1036

y[240] = 8.8933

y[400] = 10.3659

y[90] = 9.4702

y[250] = 10.5161

y[410] = 9.6492

y[100] = 6.3629

y[260] = 11.8117

y[420] = 9.1176

y[110] = 4.7559

y[270] = 12.3844


y[430] = 8.9284

y[120] = 5.0339

y[280] = 12.1152

y[440] = 9.1110

y[130] = 6.9230

y[290] = 11.1745

y[450] = 9.5691

y[140] = 9.6442

y[300] = 9.9374

y[460] = 10.1250

y[150] = 12.2195

y[310] = 8.8406

y[470] = 10.5859
11


y[480] = 10.8090


y[510] = 10.0196

y[550] = 9.5868

y[490] = 10.7436

y[520] = 9.6340

y[560] = 9.8948

y[500] = 10.4394

y[530] = 9.4064

y[570] = 10.2078

y[500] = 10.4394

y[540] = 9.3966

y[580] = 10.4219

y[590] = 10.4762

y[730] = 9.8858

y[870] = 9.9377

y[600] = 10.3681


y[740] = 9.8014

y[880] = 10.0023

y[610] = 10.1491

y[750] = 9.7908

y[890] = 10.0599

y[620] = 9.9021

y[760] = 9.8501

y[900] = 10.0921

y[630] = 9.7113

y[770] = 9.9532

y[910] = 10.0909

y[640] = 9.6341

y[780] = 10.0617

y[920] = 10.0598

y[650] = 9.6851


y[790] = 10.1394

y[930] = 10.0120

y[660] = 9.8350

y[800] = 10.1636

y[940] = 9.9648

y[670] = 10.0248

y[810] = 10.1315

y[950] = 9.9339

y[680] = 10.1881

y[820] = 10.0591

y[960] = 9.9277

y[690] = 10.2735

y[830] = 9.9743

y[970] = 9.9460

y[700] = 10.2605


y[840] = 9.9061

y[980] = 9.9803

y[710] = 10.1628

y[850] = 9.8755

y[990] = 10.0178

y[720] = 10.0208

y[860] = 9.8889

2.5.Các chỉ tiêu chất lượng của hệ
Ymax=17.009
Tmax=0.610
Tod = 8.3
Yod= 10

12


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

13



Hình 3.1. Mô hình hệ điều khiển tự động trong Matlab & Simulink


3.2. Kết quả mô phỏng

Hình 3.2. Kết quả mô phỏng đặc tính của hệ thống trên Matlab & Simulink

Kết luận :dựa vào đường đặc tính của kết quả mô phỏng trên ta có thể kết
luận hệ thống ổn định vì do giá trị xác lập dần về 10 ( ≠0)



KẾT LUẬN
Trong thời gian làm đồ án, nhóm em đã đưa ra được phương trình sai phân tuyến
tính, và mô phỏng được tính ổn định của hệ thống và khảo sát lại trên Matlab &

Simulink. Do kiến thức và thời gian còn hạn chế nên bài tập lớn của nhóm em còn
nhiều thiết sót, em mong được sự góp ý của cô và các nhóm khác để bài nhóm em
được hoàn thiện hơn.


TÀI LIỆU THAM KHẢO
1. Biên soạn: TS.Nguyễn Khắc Khiêm-TS.Phạm Tâm Thành,Sách Mô hình hoá hệ thống



×