1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bài tập lớn mô hình háo hệ thống đề số 8

17 702 9

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 1,49 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

bài tập lớn mô hình hóa hệ thống Đề số 8 :Cho hệ điều khiển tự động có sơ đồ cấu trúc như sau: U(t) y(t)Thông số : K1 = 50 ; K2 = 5 ; K3 = 0,5 ; T1 = 0,01 ; T2 = 0,1 ; T3 = 0,2Chọn chu kỳ trích mẫu T = 0,001 (s)

Trang 1

LỜI MỞ ĐẦU

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ừ nghiên cứu, đến thiết kế chế tạo, vận hành Ngày nay nhờ sự trợ giúp của máy tính có tốc độ cao, bộ nhớ lớn mà phương pháp mô hình hoá được phát triển mạnh mẽ và đưa lại hiệu quả lớn.

Mô hình hoá và mô phỏng là một công cụ mạnh của cán bộ nghiên cứu, cán bộ

kỹ thuật để giải các bài toán kỹ sư, quy hoạch, tối ưu hóa v.v… Phương pháp mô hình hóa và mô phỏng được dùng phổ biến trong các trường đại học, các viện nghiên cứu cũng như các cơ sở sản xuất và đã đưa lại hiệu quả to lớn.

Ngày nay khó có thể tìm thấy lĩnh vực hoạt động nào của con người mà không sử dụng phương pháp mô hình hóa ở những mức độ khác nhau Với tầm quan trọng trên, môn mô hình hoá đã được đưa vào trong chương trình giảng dạy dành cho sinh viên Đại Học Hàng Hải Để có thể nắm bắt một cách có hiệu quả các kiến thức của môn học này, em đã được giao và tiến hành làm bài tập lớn Do đây là lần đầu tiên tiếp xúc với dạng bài tập này nên không thể tránh khỏi những sai sót nhất định,

em rất mong nhận được các ý kiến đóng góp của thầy, cô giáo.

Trang 2

K

.

1 1

1

2

S T

K

) 1

3

S T

K

Đề số 8 :

Cho hệ điều khiển tự động có sơ đồ cấu trúc như sau:

U(t) y(t)

Thông số : K1 = 50 ; K2 = 5 ; K3 = 0,5 ; T1 = 0,01 ; T2 = 0,1 ; T3 = 0,2

Chọn chu kỳ trích mẫu T = 0,001 (s)

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

Hàm truyền của hệ thống:

2 1 3 3 2 2 1

3 3 2 1

2 1 3

2 1

3 2 1 3

2 1

3 2 1

3 2

1

3 2 1 3

2 1

2 1

2 1

3

3 2

2 1

1

2

2 1

1

1

.

.

.

.

.

) 1 ( 1 1

1

1 1 1

) 1 ( 1 1

1 1

.

1 1 1 1

1 1 )

(

)

(

)

(

K K K S

T T T S T T T T T T S T T T

K K S T K K

K K K S T S T S T

S T K

K

S T S T S T

K K K S T S T S T

S T S T

K K

S T

K S T

K S T K

S T

K S T K S

U

S

Y

S

G

Z

Z T

2 1

3 3 2 2 1

3 3

2

1

2 1 3

2 1

1 1

1 2 1

1 2

1

1 2

1

1 2

) (

) (

)

(

K K K Z

Z T T T T Z

Z T T T T T T T Z

Z T

T

T

T

K K Z

Z T T K K

Z

U

Z

Y

Z

W

Trang 3

Biến đổi hàm truyền trên ta có:

H Z G Z F Z E

D Z C Z B Z A Z

U

Z

Y

Z

W

)

(

)

(

)

2 3

Trong đó:

3 2 1 2 1

3 2 1 2 1

3T K KK K T T

3 2 1 2 1

3T K KK K T T

3 2 1 2 1

3 2 1

2 3

2 3 1 2 1 3

2

8 T T TT T TT TT TT TTTTK K K

3 2 1

2 3

2 3 1 2 1 3

2

.

24 T T TT T TT TT TT TTTTK K K

3 2 1

2 3

2 3 1 2 1 3

2

.

24 T T TT T TT TT TT TTTTK K K

3 2 1

2 3

2 3 1 2 1 3

2

8 T T TT T TT TT TT TTTTK K K

Ta có hàm sai phân như sau :

 Z F Z Y Z G Z Y Z H Y Z A Z U Z B Z U Z C Z U Z D U Z Y

Z

Dùng tính 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 tương ứng với phương trình trên :

E.Y(k+3) + F.Y(k+2) + G.Y(k+1) + H.Y(k) = A.U(k+3) + B.U(k+2) + C.U(k+1) + D.U(k)

Vì tín hiệu vào là tín hiệu nhảy cấp U(t) = 1(t) nên ta có :

U(k+3) = U(k+2) = U(k+1) = U(k) = 1

Vậy ta có :

E.Y(k+3) + F.Y(k+2) + G.Y(k+1) + H.Y(k) = A + B + C + D

>> Y(k+3) = (-F.Y(k+2) – G.Y(k+1) –H.Y(k) + A + B + C + D) / E

2 Viết phương trình mô phỏng bằng Visual Basic 6.0

Option Explicit

Dim A, B, C, D, E, F, G, H As Double

Dim t, T1, T2, T3, K1, K2, K3 As Double

Dim Y(10000) As Double

Trang 4

Dim Xmax, Ymax, Hsox, Hsoy, Si, Ky As Double

Dim Xmin, Ymin As Integer

Dim Xsum, Ysum As Integer

Dim sumy As Integer

Dim Xcurrent, Ycurrent As Long

Dim Tmax, Yod As Double

Dim time As Double

Dim i As Integer

Public Sub vedothi()

Dim Dem As Integer

Dim Tod As Double

Dim xichma As Double

Graph.Cls

Xmin = 400

Ymin = 300

Xmax = Graph.Width - 200

' Ve truc toa do '

Graph.Line (Xmin, (Graph.Height - 400))-(Xmax, (Graph.Height - 400))

Graph.Line (Xmax - 100, (Graph.Height - 400) - 50)-(Xmax, (Graph.Height - 400)) Graph.Line (Xmax - 100, (Graph.Height - 400) + 50)-(Xmax, (Graph.Height - 400)) Graph.Line (Xmin, Graph.Height - 400)-(Xmin, Ymin)

Graph.Line (Xmin - 50, Ymin + 100)-(Xmin, Ymin)

Graph.Line (Xmin + 50, Ymin + 100)-(Xmin, Ymin)

Graph.CurrentX = Xmax - 400

Graph.CurrentY = (Graph.Height - 400) + 100

Graph.Print ("t(sec)")

Graph.CurrentX = Xmin - 250

Graph.CurrentY = Ymin - 100

Graph.Print ("y(t)")

Graph.CurrentX = Xmin - 200

Graph.CurrentY = (Graph.Height - 400) + 100

Graph.Print ("0")

' Tinh cac gia tri Y'

K1 = Val(txtk1.Text)

K2 = Val(txtk2.Text)

K3 = Val(txtk3.Text)

T1 = Val(txtt1.Text)

T2 = Val(txtt2.Text)

Trang 5

T3 = Val(txtt3.Text)

t = 0.001

If (K1 = 0) Or (K2 = 0) Or (K3 = 0) Or (T1 = 0) Or (T2 = 0) Or (T3 = 0) Then

MsgBox (" Chua nhap so lieu ")

Else

A = t ^ 3 * K1 * K2 + K1 * K2 * T3 * 2 * t ^ 2

B = 3 * t ^ 3 * K1 * K2 + 2 * t ^ 2 * K1 * K2 * T3

C = 3 * t ^ 3 * K1 * K2 - K1 * K2 * T3 * 2 * t ^ 2

D = t ^ 3 * K1 * K2 - K1 * K2 * T3 * 2 * t ^ 2

E = 8 * T1 * T2 * T3 + 4 * t * (T1 * T2 + T2 * T3 + T1 * T3) + 2 * t ^ 2 * (T1 + T2 + T3) + t ^ 3 * (1 + K1

* K2 * K3)

F = -24 * T1 * T2 * T3 - 4 * t * (T1 * T2 + T2 * T3 + T1 * T3) + 2 * t ^ 2 * (T1 + T2 + T3) + 3 * t ^ 3 * (1 + K1 * K2 * K3)

G = 24 * T1 * T2 * T3 - 4 * t * (T1 * T2 + T2 * T3 + T1 * T3) - 2 * t ^ 2 * (T1 + T2 + T3) + 3 * t ^ 3 * (1 + K1 * K2 * K3)

H = -8 * T1 * T2 * T3 + 4 * t * (T1 * T2 + T2 * T3 + T1 * T3) - 2 * t ^ 2 * (T1 + T2 + T3) + t ^ 3 * (1 + K1

* K2 * K3)

Y(3) = 0

Y(4) = 0

Ymax = 0

time = CStr(txtthoigian.Text) ' THoi gian khao sat (s)

For i = 2 To 998 * time Step 1

Y(i + 3) = (A + B + C + D - F * Y(i + 2) - G * Y(i + 1) - H * Y(i)) / E

If Y(i) > Ymax Then

Ymax = Y(i)

Tmax = i * t

End If

Next i

If Ymax <> 0 Then 'Tranh truong hop Ymax =0 thi bao loi

Hsoy = (Graph.Height - 1000) / (Ymax) ' ' Them 700 de khong vuot ra khoi graph

Else: Ymax = 0.001

End If

Hsox = 5.4 / time

'Tim yod gan nhat

Yod = 1

Trang 6

'Tim do qua dieu chinh'

xichma = (Abs(Ymax - Yod) / Yod) * 100

'Tim Tod

Tod = 998 * time

Do While (Abs(Y(Tod) - Yod) / Yod < 0.05)

Tod = Tod - 1

Loop

'Khac do truc hoanh

Si = time / (t * 5)

For i = 1 To 5

Graph.Line (i * Si * Hsox + 300, Graph.Height - 350)-(i * Si * Hsox + 300, Graph.Height - 450)

Graph.CurrentX = i * Si * Hsox + 200

Graph.CurrentY = Graph.Height - 300

Graph.Print CStr(i * Si * t)

Next

'Khac do truc tung

Ky = Ymax * Hsoy / 5

'sumy = Round(5 + (Graph.Height - 500 - Round(Ymax * Hsoy)'

For i = 1 To 5

Graph.Line (350, Graph.Height - 400 - Round(Ky * i))-(450, Graph.Height - 400 - Round(Ky * i)) Graph.CurrentX = 0

Graph.CurrentY = Graph.Height - 400 - Round(Ky * i) - 100

Graph.Print Format(CStr(Ky * i / Hsoy), "#0.00")

Next

'Ve duong ymax

Graph.DrawStyle = 2

Graph.Line ((Tmax / t - 2) * Hsox + 400, Graph.Height - 400)-((Tmax / t - 2) * Hsox + 400, Graph.Height -

400 - Round(Hsoy * Ymax))

Graph.Line ((Tmax / t - 2) * Hsox + 400, Graph.Height - 400 - Round(Hsoy * Ymax))-(400, Graph.Height -

400 - Round(Hsoy * Ymax))

Graph.CurrentX = (Tmax / t - 2) * Hsox + 400

Graph.CurrentY = Graph.Height - 600 - Round(Hsoy * Ymax)

Graph.Print "Ymax = " + Format(CStr(Ymax), "####0.0000")

Graph.CurrentX = (Tmax / t - 2) * Hsox + 450

Graph.CurrentY = Graph.Height - 700

Trang 7

Graph.Print "Tmax = " + CStr(Tmax)

'Ve duong on dinh

Graph.Line (400, Graph.Height - 400 - Round(Hsoy * Yod))-(Graph.Width - 400, Graph.Height - 400 - Round(Hsoy * Yod))

Graph.CurrentX = Tod * Hsox + 900

Graph.CurrentY = Graph.Height - 800 - Round(Yod * Hsoy)

Graph.Print "Yôd = " + Format(CStr(Yod), "####0.0000")

'Ve duong sai so

Graph.Line (400, Graph.Height - 400 - Round(Hsoy * 0.95 * Yod))-(Graph.Width - 400, Graph.Height - 400

- Round(Hsoy * 0.95 * Yod))

Graph.Line (400, Graph.Height - 400 - Round(Hsoy * 1.05 * Yod))-(Graph.Width - 400, Graph.Height - 400

- Round(Hsoy * 1.05 * Yod))

'Ve duong Tod

Graph.Line ((Tod - 2) * Hsox + 400, Graph.Height - 400)-((Tod - 2) * Hsox + 400, Graph.Height - 400 - Hsoy * Yod)

Graph.CurrentX = (Tod - 2) * Hsox + 400

Graph.CurrentY = Graph.Height - 900

Graph.Print "Tôd = " + CStr(Tod * t) + " "

Graph.DrawStyle = 0

'Ve mui ten 5%

Graph.Line ((Tod - 2) * Hsox + 410, Graph.Height - 400 - Round(Hsoy * 1.05 * Yod))-((Tod - 2) * Hsox +

410, Graph.Height - 400 - Round(Hsoy * 1.05 * Yod) - 300)

Graph.Line ((Tod - 2) * Hsox + 410, Graph.Height - 400 - Round(Hsoy * 1.05 * Yod))-((Tod - 2) * Hsox +

410 - 100, Graph.Height - 400 - Round(Hsoy * 1.05 * Yod) - 100)

Graph.Line ((Tod - 2) * Hsox + 410, Graph.Height - 400 - Round(Hsoy * 1.05 * Yod))-((Tod - 2) * Hsox +

410 + 100, Graph.Height - 400 - Round(Hsoy * 1.05 * Yod) - 100)

Graph.Line ((Tod - 2) * Hsox + 410, Graph.Height - 400 - Round(Hsoy * 0.95 * Yod))-((Tod - 2) * Hsox +

410, Graph.Height - 400 - Round(Hsoy * 0.95 * Yod) + 300)

Graph.Line ((Tod - 2) * Hsox + 410, Graph.Height - 400 - Round(Hsoy * 0.95 * Yod))-((Tod - 2) * Hsox +

410 - 100, Graph.Height - 400 - Round(Hsoy * 0.95 * Yod) + 100)

Graph.Line ((Tod - 2) * Hsox + 410, Graph.Height - 400 - Round(Hsoy * 0.95 * Yod))-((Tod - 2) * Hsox +

410 + 100, Graph.Height - 400 - Round(Hsoy * 0.95 * Yod) + 100)

Graph.CurrentX = (Tod - 2) * Hsox + 450

Trang 8

Graph.CurrentY = Graph.Height - 400 - Round(Hsoy * 0.95 * Yod) + 200

Graph.Print "5% Yôd"

' Hien thi cac gia tri thoi gian

txtymax.Text = Format(CStr(Ymax), "#0.00000")

txtyod.Text = Format(CStr(Yod), "#0.00000")

txtxichma.Text = Format(CStr(xichma), "#0.00000")

txttod.Text = Format(CStr(Tod * t), "#0.00000")

txttymax.Text = Format(CStr(Tmax), "#0.00000")

' ve do thi '

Xcurrent = Xmin

Ycurrent = (Graph.Height - 400)

txty = ""

For i = 0 To 997 * time Step 1

Graph.Line (Xcurrent, Ycurrent)-(Xmin + (i + 1) * Hsox, Round((Graph.Height - 400) - Y(i + 1) * Hsoy))

Xcurrent = Xmin + i * Hsox

Ycurrent = Round((Graph.Height - 400) - Y(i) * Hsoy)

Next i

For i = 1 To 991 Step 1

If i Mod 10 = 0 Then

txty.Text = txty.Text + "y[" + CStr(i) + "] = " + Format(CStr(Y(i)), "#0.00000") + vbNewLine

End If

Next i

End If

End Sub

Private Sub cmddothi_Click()

Graph1.Visible = False

If Val(txtthoigian.Text) < 10 Then

vedothi

Else

MsgBox (" Thoi gian khao sat phai be hon 10(s) ")

End If

End Sub

Trang 9

Private Sub cmdsodo_Click()

Graph1.Visible = True

End Sub

Private Sub Command5_Click()

End

End Sub

Private Sub dothi1_Click(Index As Integer)

Graph1.Visible = False

If Val(txtthoigian.Text) <= 11 Then

lblymax.Caption = "Ymax :"

vedothi

Else

MsgBox (" Thoi gian khao sat phai be hon hoac bang 10(s) ") End If

End Sub

Private Sub exit1_Click(Index As Integer)

End

End Sub

Private Sub sodo1_Click(Index As Integer)

Graph1.Visible = True

End Sub

Private Sub Command1_Click(Index As Integer)

Graph1.Visible = False

vedothi

End Sub

Private Sub exit_Click(Index As Integer)

End

End Sub

Private Sub txtK1_KeyPress(KeyAscii As Integer)

Trang 10

If KeyAscii = 13 Then

Graph1.Visible = False

vedothi

End If

End Sub

Private Sub txtK2_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

Graph1.Visible = False

vedothi

End If

End Sub

Private Sub txtK3_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

Graph1.Visible = False

vedothi

End If

End Sub

Private Sub txtnhom2_Change()

End Sub

Private Sub txtT1_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

Graph1.Visible = False

vedothi

End If

End Sub

Private Sub txtT2_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

Graph1.Visible = False

vedothi

End If

End Sub

Trang 11

Private Sub txtT3_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

Graph1.Visible = False

vedothi

End If

End Sub

Private Sub txtthoigian_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

Graph1.Visible = False

If Val(txtthoigian.Text) <= 10 Then

lblymax.Caption = "Ymax :"

vedothi

Else

MsgBox (" Thoi gian khao sat phai be hon hoac bang 10(s) ") End If

End If

End Sub

3 Chọn số bước tính đủ để hệ thống ổn định

chọn k = 1000

4 In kết quả In 100 giá trị của Y(k) cách 10 giá trị in 1 số y[0] = 0.0

y[10] = 0.05762

y[20] = 0.63931

y[30] = 1.91635

y[40] = 3.51482

y[50] = 4.74567

y[60] = 4.91463

y[70] = 3.67620

y[80] = 1.29396

y[90] = -1.33790

y[100] = -2.98009

y[110] = -2.57527

y[500] = -10.91373 y[510] = 279.76264 y[520] = 505.19599 y[530] = 537.75235 y[540] = 313.50134 y[550] = -120.37808 y[560] = -601.36686 y[570] = -903.34959 y[580] = -832.63270 y[590] = -331.74655 y[600] = 458.35744 y[610] = 1218.78296

Trang 12

y[120] = 0.18410

y[130] = 4.51774

y[140] = 8.67353

y[150] = 10.55278

y[160] = 8.66178

y[170] = 3.00040

y[180] = -4.56747

y[190] = -10.77315

y[200] = -12.21072

y[210] = -6.98695

y[220] = 3.96761

y[230] = 16.65834

y[240] = 25.24158

y[250] = 24.45513

y[260] = 12.36406

y[270] = -7.85746

y[280] = -28.22840

y[290] = -38.71452

y[300] = -31.68001

y[310] = -6.25750

y[320] = 29.54457

y[330] = 60.60001

y[340] = 70.37794

y[350] = 48.76724

y[360] = -1.33241

y[370] = -62.21740

y[380] = -106.46127

y[390] = -108.06294

y[400] = -55.65503

y[410] = 38.24692

y[420] = 137.50895

y[620] = 1566.21841 y[630] = 1226.46912 y[640] = 197.07974 y[650] = -1184.05890 y[660] = -2321.35362 y[670] = -2592.05594 y[680] = -1647.41160 y[690] = 346.96454 y[700] = 2665.40119 y[710] = 4242.04201 y[720] = 4113.43258 y[730] = 1920.24446 y[740] = -1765.24743 y[750] = -5491.05180 y[760] = -7425.14444 y[770] = -6166.96274 y[780] = -1546.84304 y[790] = 4984.82794 y[800] = 10672.89594 y[810] = 12495.98548 y[820] = 8594.23070 y[830] = -523.15336 y[840] = -11642.07815 y[850] = -19761.78838 y[860] = -20124.11018 y[870] = -10626.03386 y[880] = 6482.07020 y[890] = 24629.36050 y[900] = 35101.61774 y[910] = 30817.94743 y[920] = 10236.61866

Trang 13

y[430] = 194.38567

y[440] = 170.24564

y[450] = 56.93096

y[460] = -111.65193

y[470] = -265.86321

y[480] = -325.89723

y[490] = -238.71689

y[930] = -20508.96448 y[940] = -48739.11204 y[950] = -59873.11489 y[960] = -44166.42152 y[970] = -2727.69959 y[980] = 50337.62054 y[990] = 91677.73526

5 Vẽ đường cong quá trình quá độ

6 Tính và in ra các chỉ tiêu chất lượng của hệ điều khiển tự động

- Giá trị ổn định của tín hiệu ra: y(k)ôđ = 1.00000

- Độ quá điều chỉnh: σmax = 93575 %

Ngày đăng: 05/11/2014, 21:13

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w