Tải bản đầy đủ (.doc) (11 trang)

Bài tập lớn mô hình hóa: Cho sơ đồ cấu trúc của hệ điều khiển tự động. Hãy dùng máy tính để mô phỏng và khảo sát quá trình quá độ của hệ.

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 (287.26 KB, 11 trang )


: Cho sơ đồ cấu trúc của hệ điều khiển tự động. Hãy dùng máy tính để
mô phỏng và khảo sát quá trình quá độ của hệ.
Đề Thông Số
1
K
2
K
3
K
1
T
2
T
T
04 50 5 0.5 0.01 0.2 0.001

 !"# $%& 
*Tìm hàm truyền kín của hệ

1 2
1 2
1 2
.
W .W
( . 1).( . 1)
K K
T s T s
=
+ +
- Hàm truyền của hệ hở:



1 2
1 2
1 2
.
W .W
( . 1).( . 1)
K K
T s T s
=
+ +
- Hàm truyền kín:
1 2
1 2 1 2
1 2 3
1 2 1 2 3
1 2
.
( . 1).( . 1) .
W( )
. .
( . 1).( . 1) . .
1
( . 1).( . 1)
K K
T s T s K K
s
K K K
T s T s K K K
T s T s

+ +
= =
+ + +
+
+ +
1 2
2
1 2 1 2 1 2 3
.
. . ( ). (1 . . )
K K
T T s T T s K K K
=
+ + + +
Thay
2 1
.
1
z
s
T z

=
+
vào W(s) được:


2 2
1 2
2

. . ( 1)
W( )
A.z .
K K T z
z
B z C
+
=
+ +

1

2
1 2 1 2 1 2 3
4. . 2. .( ) (1 . . ).A T T T T T K K K T= + + + +

2
1 2 1 2 3
8. . 2(1 . . ).B T T K K K T= − + +

2
1 2 1 2 1 2 3
4. . 2. .( ) (1 . . ).C T T T T T K K K T= − + + +
Từ biểu thức:
Vì u(t)=1(t) nên u(k) = u(k+1) = u(k+2) = 1
Suy ra:
A.y(k+2)+B.y(k+1)+C.y(k)=D
=>
( 2) . ( 1) . ( )
B C D

y k y k y k
A A A

+ = + − +
2
1 2
4. . .D K K T=
Đây chính là phương trình sai phân của hệ.
'( !"# )*+ !,- !
Sử dụng phần mềm VisualBasic 6.0
Mã code:
 . (/012(/3/")4%%/ / 
/ /%
Dim Y() As Variant
Dim A, B, C, D As Double
Dim k1, k2, k3, t1, t2, t, ymax, tod, tmax, ydc, diem As Single
Private Sub cmdinkq_Click()
Form4.Show
End Sub
Private Sub cmdplot_Click()
diem = Val(Textn.Text)
k1 = Val(Textk1.Text)
k2 = Val(Textk2.Text)
k3 = Val(Textk3.Text)
t1 = Val(Textt1.Text)
t2 = Val(Textt2.Text)
t = Val(Textt.Text)
A = (t1 * t2) * 4 + (t1 + t2) * t * 2 + (1 + k1 * k2 * k3) * t * t
B = 2 * (1 + k1 * k2 * k3) * t * t - t1 * t2 * 8
C = (t1 * t2) * 4 - (t1 + t2) * t * 2 + (1 + k1 * k2 * k3) * t * t

D = 4 * k1 * k2 * t * t
If diem > 3 Then
2
ReDim Y(diem)
Y(0) = 0
Y(1) = 0
List1.AddItem "y[" + Str(0) + "]=" + Str(Round(Y(0), 6))
ymax = Y(0)
Dim count As Integer
For i = 2 To diem
Y(i) = (-B * Y(i - 1) - C * Y(i - 2) + D) / A
TChart1.Series(0).AddXY i, Y(i), i, vbBlack
If count < 100 Then
If i Mod 10 = 0 Then
List1.AddItem "y[" + Str(i) + "]=" + Str(Round(Y(i), 6))
count = count + 1
End If
End If
Next i
Else
MsgBox "Diem Ve >3"
End If
' in gia tri ymax
If diem > 3 Then
For i = 1 To diem
If Y(i) > ymax Then ymax = Y(i)
Next i
Textymax.Text = Round(ymax, 6)
End If
'tinh toan yod

If diem > 3 Then
yod = k1 * k2 / (1 + k1 * k2 * k3)
Textyod.Text = Round(yod, 6)
End If
'tinh Tmax
If diem > 3 Then
For i = 0 To diem
If Y(i) = ymax Then tmax = i * t
Next i
Texttmax.Text = Round(tmax, 6)
End If
'Tinh Tod
If diem > 3 Then
For i = diem To 1 Step (-1)
3
If Y(i) > yod * 1.05 Or Y(i) < yod * 0.95 Then
tod = i * t
Exit For
End If
Next i
Texttod.Text = Round(tod, 6)
End If
'tinh do qua dieu chinh
If diem > 3 Then
ydc = ((ymax - yod) * 100) / yod
Textydc.Text = Round(ydc, 5)
End If
End Sub
Private Sub cmdexit_Click()
If MsgBox("Ban Co Muon Thoat Khoi Chuong Trinh", vbYesNo + vbQuestion,

"Thoat") = vbYes Then End
End Sub
Private Sub cmdin_Click()
TChart1.Printer.ShowPreview
End Sub
Private Sub cmdttin_Click()
Form2.Show
End Sub
Private Sub cmdtgiup_Click()
Form3.Show
End Sub
Private Sub cmdxoa_Click()
TChart1.Series(0).Clear
List1.Clear
Textymax.Text = 0
Textyod.Text = 0
Texttmax.Text = 0
Texttod.Text = 0
Textydc.Text = 0
End Sub
 . (/012(/3/")'4/ !
4
Private Sub cmdok_Click()
Form1.Show
Unload Me
End Sub
 . (/012(/3/")54"/67
Private Sub cmdok_Click()
Form1.Show
Unload Me

End Sub
Private Sub Form_Load()
Label1.Caption = "Nhap Cac Gia Tri Cho Cac Dai Luong K1, K2, K3, T1, T2,
Thoi Gian Trich Mau Va So Diem Ve" & Chr(13)
Label2.Caption = "CHU Y : So Diem Ve Phai Lon Hon 3" & Chr(13)
Label3.Caption = "Ymax : GiaTri Y Cuc Dai" & Chr(13)
Label4.Caption = "Yod : GiaTri Y On Dinh" & Chr(13)
Label5.Caption = "Tmax : Thoi Gian HTDK Dat Gia Tri Y Cuc Dai" & Chr(13)
Label6.Caption = "Tod : Thoi Gian HTDK Dat Gia Tri Y On Dinh" & Chr(13)
Label7.Caption = "Y(k) GiaTri Y Tai Cac Diem Ve Thu k" & Chr(13)
End Sub
 . (/012(/3/")84 9:
Dim Y() As Variant
Dim A, B, C, D As Double
Dim k1, k2, k3, t1, t2, t, i, diem As Single
Private Sub Form_Load()
Text1.Text = "Gia Tri Cuc Dai Cua HTDK: Ymax=" & Form1.Textymax &
vbNewLine
Text1.Text = Text1.Text & "Gia Tri On Dinh Cua HTDK: Yod=" &
Form1.Textyod & vbNewLine
Text1.Text = Text1.Text & "Thoi Gian Ma HTDK Dat Gia Tri Ymax : Tmax=" &
Form1.Texttmax & vbNewLine
Text1.Text = Text1.Text & "Thoi Gian Ma HTDK Dat Gia Tri Yod : Tod=" &
Form1.Texttod & vbNewLine
Text1.Text = Text1.Text & "Do Qua Dieu Chinh Cua HTDK=" & Form1.Textydc
& "%" & vbNewLine
Text1.Text = Text1.Text & " Gia Tri Y(k) :" & vbNewLine
diem = Val(Form1.Textn)
k1 = Val(Form1.Textk1)
k2 = Val(Form1.Textk2)

k3 = Val(Form1.Textk3)
t1 = Val(Form1.Textt1)
5
t2 = Val(Form1.Textt2)
t = Val(Form1.Textt)
A = (t1 * t2) * 4 + (t1 + t2) * t * 2 + (1 + k1 * k2 * k3) * t * t
B = 2 * (1 + k1 * k2 * k3) * t * t - t1 * t2 * 8
C = (t1 * t2) * 4 - (t1 + t2) * t * 2 + (1 + k1 * k2 * k3) * t * t
D = 4 * k1 * k2 * t * t
ReDim Y(diem)
Y(0) = 0
Y(1) = 0
Text1.Text = Text1.Text & "y[" + Str(0) + "]=" + Str(Round(Y(0), 6)) &
vbNewLine
For i = 2 To diem
Y(i) = (-B * Y(i - 1) - C * Y(i - 2) + D) / A
If i Mod 10 = 0 Then
Text1.Text = Text1.Text & "y[" + Str(i) + "]=" + Str(Round(Y(i), 6)) +
vbNewLine
End If
Next i
End Sub
Private Sub cmdok_Click()
Form1.Show
Unload Me
End Sub
5;< $-=>(? 
Chọn k=1000 để hệ ổn định
8 @A7B
In 100 giá trị đầu ra y[k],cách 10 số in 1 giá trị.Kết quả như sau:

y[ 0]= 0
y[ 10]= 2.630451
y[ 20]= 2.098693
y[ 30]= 1.649783
y[ 40]= 2.248883
y[ 50]= 1.861048
y[ 60]= 2.002494
y[ 70]= 2.011083
y[ 80]= 1.952972
y[ 90]= 2.003012
y[ 510]= 1.984127
y[ 520]= 1.984127
y[ 530]= 1.984127
y[ 540]= 1.984127
y[ 550]= 1.984127
y[ 560]= 1.984127
y[ 570]= 1.984127
y[ 580]= 1.984127
y[ 590]= 1.984127
y[ 600]= 1.984127
6
y[ 100]= 1.977944
y[ 110]= 1.983065
y[ 120]= 1.987294
y[ 130]= 1.981611
y[ 140]= 1.985301
y[ 150]= 1.983949
y[ 160]= 1.983873
y[ 170]= 1.984423
y[ 180]= 1.983947

y[ 190]= 1.984186
y[ 200]= 1.984137
y[ 210]= 1.984097
y[ 220]= 1.984151
y[ 230]= 1.984116
y[ 240]= 1.984129
y[ 250]= 1.984129
y[ 260]= 1.984124
y[ 270]= 1.984129
y[ 280]= 1.984126
y[ 290]= 1.984127
y[ 300]= 1.984127
y[ 310]= 1.984127
y[ 320]= 1.984127
y[ 330]= 1.984127
y[ 340]= 1.984127
y[ 350]= 1.984127
y[ 360]= 1.984127
y[ 370]= 1.984127
y[ 380]= 1.984127
y[ 390]= 1.984127
y[ 400]= 1.984127
y[ 410]= 1.984127
y[ 420]= 1.984127
y[ 430]= 1.984127
y[ 440]= 1.984127
y[ 450]= 1.984127
y[ 460]= 1.984127
y[ 470]= 1.984127
y[ 480]= 1.984127

y[ 490]= 1.984127
y[ 500]= 1.984127
y[ 610]= 1.984127
y[ 620]= 1.984127
y[ 630]= 1.984127
y[ 640]= 1.984127
y[ 650]= 1.984127
y[ 660]= 1.984127
y[ 670]= 1.984127
y[ 680]= 1.984127
y[ 690]= 1.984127
y[ 700]= 1.984127
y[ 710]= 1.984127
y[ 720]= 1.984127
y[ 730]= 1.984127
y[ 740]= 1.984127
y[ 750]= 1.984127
y[ 760]= 1.984127
y[ 770]= 1.984127
y[ 780]= 1.984127
y[ 790]= 1.984127
y[ 800]= 1.984127
y[ 810]= 1.984127
y[ 820]= 1.984127
y[ 830]= 1.984127
y[ 840]= 1.984127
y[ 850]= 1.984127
y[ 860]= 1.984127
y[ 870]= 1.984127
y[ 880]= 1.984127

y[ 890]= 1.984127
y[ 900]= 1.984127
y[ 910]= 1.984127
y[ 920]= 1.984127
y[ 930]= 1.984127
y[ 940]= 1.984127
y[ 950]= 1.984127
y[ 960]= 1.984127
y[ 970]= 1.984127
y[ 980]= 1.984127
y[ 990]= 1.984127
y[ 1000]= 1.984127
7
CDEF !(/ !A7GEH
Kết quả chạy chương trình như hình sau:
I;G((JK7(LMN !(O%,
Ymax=3.008523
Yod=1.984127
Độ quá chỉnh: 51.62954%
Tmax=0.013s
Tod=0.055s
PQR !%M%=S)7M @@B/$GMT
Mô phỏng lại bằng Simulink
Sơ đồ khối
8
Kết quả mô phỏng:
Kết luận: Hệ đã cho ổn định theo thời gian.Kết quả khảo sát bằng Matlab-Simulink
hoàn toàn trùng với kết quả thu được trên VB,chứng tỏ tính đúng đắn của phương
pháp đã dùng để mô hình hóa hệ thống.
UV 0T !,- !

Từ đường cong quá độ thu được nhờ các phần mềm mô phỏng ta nhận thấy:
-Đường cong xuất phát từ gốc tọa độ cho thấy trong hàm truyền kín của hệ bậc của
tử số nhỏ hơn bậc của mẫu số.
-Giá trị xác lập ổn định là 1 số khác 0 nên
-Dễ thấy hàm quá độ đơn điệu tăng và không có độ quá điều chỉnh nên có thể kết
luận hằng số thời gian của tử nhỏ hơn hằng số thời gian của mẫu.
So với hàm truyền đã cho:
1 2
2
1 2 1 2 1 2 3
.
W( )
. . ( ). (1 . . )
K K
s
T T s T T s K K K
=
+ + + +
+Bậc của tử (=0 ) < bậc của mẫu (=2)
+ = 0 nên hàm số xác lập tại 1 giá trị khác 0
+Hằng số thời gian của tử (=0) < hằng số hằng số thời gian của mẫu nên hàm
quá độ sẽ đơn điệu tăng.???
 Kết quả hoàn toàn phù hợp
9
W@!%/0, "K IX
10
XYM,7%)@B/
[1] Matlab và Simulink dành cho kỹ sư điều khiển tự động
NGUYỄN PHÙNG QUANG-NXB KHOA HỌC VÀ KỸ THUẬT-2006
[2] Bài giảng Visual Basic

Khoa Công Nghệ Thông Tin-Trường Đại Học Hàng Hải-2008
www.caulacbovb.com
www.dientuvietnam.com

phần mềm đính kèm khi bạn đọc comment yêu cầu
11

×