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

bài tập lớn Mô Hình Hóa

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 (228.79 KB, 15 trang )

Bài tập lớn
Mô hình hóa
Nhóm 6(đề 2b).
Đề bài:
Cho hệ thống có sơ đồ cấu trúc như hình vẽ:
Trong đó có các tham số như bảng dưới:
K1 K2 T T1 T2
100 0.1 0.001 0.2 0.1
Nhiệm vụ:
-Viết phương trình sai phân của hệ ĐKTĐ.
-Dùng ngôn ngữ lập trình nào đó viết chương trình chạy trên máy tính.
-Chọn bước tính k=1000.
-In 100 giá trị bằng số của y(k).
-Tính và in ra các chỉ tiêu đánh giá chất lượng sau:
Y(k)
max
:giá trị cực đại của tín hiệu ra.
δ
max
% : độ quá điều chỉnh.
Y(k)
ôd
: giá trị ổn định của tín hiệu ra.
t
max
: thời gian đạt giá trị y(k)
max
.
t
ôd
: thời gian đạt giá trị y(k)


ôd
.
-Vẽ đường cong quá trình quá độ.
-Dùng phần mềm MALAB,SIMULINK… vẽ đường cong quá trình quá
độ.
-So sánh các kết quả.Nhận xét,rút ra kết luận.
1
1.Viết phương trình sai phân.
+ Hàm truyền mạch hở:

+ Hàm truyền mạch kín:

(1.1)
Thay
2 1
1
z
p
T z

=
+
vào công thức 1.1 ta được
Trong đó:
A = 4T
1
T
2
+2T(T1+T2)+(1+K
1

K
2
)T
2
B = -8T
1
T
2
+2T
2
(1+K
1
K
2
)
C = 4T
1
T
2
-2T(T
1
+T
2
)+(1+K
1
K
2
)T
2


Ta có hàm sai phân:
Phương trình sai phân tương ứng là:
Theo giả thiết u(t) = 1(t) nên U(k+2) =U(k+1) =U(k) =1
Ta có:
2
1 2
AY(k+2)+BY(k+1)+CY(k) = 4K K T

2. Thiết kế giao diện.
2
3. Code
Dim k1 As Double
Dim k2 As Double
Dim k3 As Double
Dim t As Double
Dim T1 As Double
Dim t2 As Double
Dim y(2002) As Double
Dim A As Double
Dim B As Double
3
Dim c As Double
Dim Kmax, Tmax, denta, ymax As Double
Dim toop As Long
Private Sub exit_Click()
End
End Sub
Private Sub Form_Load()
Frm1.Show
Frm.Enabled = False

Frm.Hide
kt = False
End Sub
Private Sub in_Click()
Call inKQ_Click
End Sub
'in 100 ket qua
Private Sub inKQ_Click()
For k = 10 To 1000 Step 10
i = i + 1
Text14.Text = Text14 & "y(" & k & ")=" & y(k * 2) & " "
Next k
End Sub
Private Sub mnuve_Click()
Call vedothi_click
End Sub
Private Sub mnuxoa_Click()
Call xoa_Click
End Sub
4
Private Sub Opbatluoi_Click()
pic1.DrawWidth = 1
For i = 0 To 20 Step 0.1
For j = 2 To 20 Step 1
pic1.PSet (i + 1, j)
Next
Next
For i = 1 To 20 Step 0.1
For j = 1 To 20 Step 1
pic1.PSet (j + 1, i)

Next
Next
End Sub
Private Sub Optatluoi_Click()
For i = 0 To 20 Step 0.1
For j = 1 To 20 Step 1
pic1.PSet (i + 1, j), vbWhite
Next
Next
For i = 1 To 20 Step 0.1
For j = 1 To 20 Step 1
pic1.PSet (j + 1, i), vbWhite
Next
Next
End Sub
Private Sub xoa_Click()
Text9 = ""
Text10 = ""
5
tetx13 = ""
Text11 = ""
Text12 = ""
Text13 = ""
Text15 = ""
Text14 = ""
Text16 = ""
pic1.Refresh
Optatluoi.Value = True
End Sub
Private Sub thoat_Click()

End
End Sub
Private Sub vedothi_click()
pic1.DrawWidth = 2
k1 = Text1
k2 = Text2
t = Text4
T1 = Text5
t2 = Text6
pic1.Scale (0, 20)-(20, 0)
pic1.Line (1, 1)-(1, 20)
pic1.Line (1, 1)-(20, 1)
'khac truc t
For i = 0 To 18 Step 1
pic1.DrawWidth = 2
pic1.CurrentX = i + 0.7
pic1.CurrentY = 0.9
6
If (((i / 10) >= 1) Or i = 0) Then
pic1.Print Str(i / 10)
Else
pic1.Print "0" & Str(i / 10)
End If
pic1.Line (i + 1, 0.8)-(i + 1, 1.2)
Next
pic1.CurrentX = 19.5
pic1.CurrentY = 0.9
pic1.Print "t(s)"
'khac truc y
For i = 0 To 18

pic1.DrawWidth = 2
pic1.CurrentX = 0.06
pic1.CurrentY = i + 1 + 0.2
pic1.Print Str(i)
pic1.Line (0.8, i + 1)-(1.2, i + 1)
Next
pic1.CurrentX = 0.2
pic1.CurrentY = 20
pic1.Print "Y"
've dac tinh
A = 4 * T1 * t2 + 2 * t * (T1 + t2) + (t ^ 2) * (1 + k1 * k2)
B = -8 * T1 * t2 + 2 * (t ^ 2) * (1 + k1 * k2)
c = 4 * T1 * t2 - 2 * t * (T1 + t2) + (t ^ 2) * (1 + k1 * k2)
y(0) = 0
y(1) = 0
'tim ymax,ve dac tinh
7
ymax = y(0)
For k = 0 To 2000
pic1.DrawWidth = 2
y(k + 2) = (-B * y(k + 1) - c * y(k) + 4 * k1 * (t ^ 2)) / A
pic1.Line (k / 100 + 1, y(k) + 1)-((k + 1) / 100 + 1, y(k + 1) + 1),
vbBlue
If y(k + 2) > ymax Then
ymax = y(k + 2)
Kmax = k + 2
Text10.Text = ymax
Tmax = t * (k + 2)
Text11.Text = Tmax
End If

Next
'gia tri xac lap, ve duong on dinh
Yod = y(2002)
Text9.Text = Yod
Text16.Text = Kmax / 2
For i = 0 To 2002 Step 10
pic1.DrawWidth = 1
pic1.PSet (i / 100 + 1, Yod + 1), vbGreen
Next
pic1.CurrentX = 17
pic1.CurrentY = Yod + 1.5
pic1.Print "Yod=" & Mid(Str(Yod), 1, 8)
'do qua dieu chinh
denta = (ymax - Yod) * 100 / Yod
Text12 = denta
8
've duong thoi gian cuc dai
For i = 0 To Kmax Step 10
pic1.DrawWidth = 1
pic1.PSet (i / 100 + 1, ymax + 1)
pic1.CurrentX = 1.5
pic1.CurrentY = ymax + 1.5
pic1.Print "Ymax=" & Mid(Str(ymax), 1, 8)
Next
For i = 1 To ymax + 1 Step 0.1
pic1.PSet (Kmax / 100 + 1, i)
pic1.CurrentX = Kmax / 100 + 1
pic1.CurrentY = 1.7
pic1.Print "Tmax"
Next

've duong +_5%
xaclap1 = 0.95 * Yod
For i = 0 To 2002 Step 10
pic1.DrawWidth = 1
pic1.PSet (i / 100 + 1, xaclap1 + 1), vbRed
Next
pic1.CurrentX = 15
pic1.CurrentY = 1.2 * Yod
pic1.Print "5%Yod"
xaclap2 = 1.05 * Yod
For i = 0 To 2002 Step 10
pic1.DrawWidth = 1
pic1.PSet (i / 100 + 1, xaclap2 + 1), vbRed
Next
9
' tim Tod
i = 2002
For k = 0 To 2002
i = i - 1
If y(i) < 0.95 * Yod Or y(i) > 1.05 * Yod Then
kod = i - 1
Text15 = kod / 2
Text13 = t * (i - 1)
Exit For
End If
Next
've duong thoi gian on dinh
For k = 0 To 0.95 * Yod Step 0.1
pic1.DrawWidth = 1
pic1.PSet (kod / 100 + 1, k + 1)

Next
pic1.CurrentX = kod / 100 + 1
pic1.CurrentY = 1.7
pic1.Print "Tod"
End Sub
Private Sub ve_Click()
Call vedothi_click
End Sub
Private Sub skin8_Click()
Skin1.LoadSkin App.Path + "\B-Studio.skn"
Skin1.ApplySkin Me.hWnd
End Sub
Private Sub skin7_Click()
10
Skin1.LoadSkin App.Path + "\chizh.skn"
Skin1.ApplySkin Me.hWnd
End Sub
Private Sub skin6_Click()
Skin1.LoadSkin App.Path + "\galaxy.skn"
Skin1.ApplySkin Me.hWnd
End Sub
Private Sub skin5_Click()
Skin1.LoadSkin App.Path + "\green.skn"
Skin1.ApplySkin Me.hWnd
End Sub
Private Sub skin4_Click()
Skin1.LoadSkin App.Path + "\TopSecret.skn"
Skin1.ApplySkin Me.hWnd
End Sub
Private Sub skin3_Click()

Skin1.LoadSkin App.Path + "\Paper.skn"
Skin1.ApplySkin Me.hWnd
End Sub
Private Sub skin2_Click()
Skin1.LoadSkin App.Path + "\Web-II.skn"
Skin1.ApplySkin Me.hWnd
End Sub
Private Sub skins1_Click()
Skin1.LoadSkin App.Path + "\Media.skn"
Skin1.ApplySkin Me.hWnd
End Sub
Private Sub Timer1_Timer()
11
st1 = Left(Frm.Caption, 1)
st2 = Right(Frm.Caption, Len(Frm.Caption) - 1)
Frm.Caption = st2 & st1
End Sub
Private Sub Timer2_Timer()
If Second(Time) Mod 4 = 0 Then
Txt2.Text = "Bai tap Mo hinh hoa"
Txt2.BackColor = vbRed
End If
If Second(Time) Mod 4 = 1 Then
Txt2.Text = "Giao vien huong dan: ThS Pham Tam Thanh"
Txt2.BackColor = vbYellow
End If
If Second(Time) Mod 4 = 2 Then
Txt2.Text = "Nhom sinh vien thuc hien: Van -Du'c, Xuan -Du'c, Tien
Diep"
Txt2.BackColor = vbGreen

End If
If Second(Time) Mod 4 = 3 Then
Txt2.Text = "Hai Phong, thang 3, nam 2010"
Txt2.BackColor = vbBlue
End If
End Sub
Private Sub Timer3_Timer()
Text7.Text = Now
Pic2.Top = toop
toop = toop - 30
If toop <= -5800 Then toop = Frame4.Height
12
End Sub
4. Chọn bước tính k=1000.
5. In kết quả tính toán.
6. Vẽ h(t).
13
7. In ra các chỉ tiêu chất lương của hệ thống.
8. Dùng MATLAB vẽ h(t).
14
Chương trình viết trên m-file:
k1=100;
k2=0.1;
t1=0.2;
t2=0.1;
t=0.001;
num=[k1];
den=[t1*t2 t1+t2 1+k1*k2];
step(num,den);
title('Bai tap mo hinh hoa so 1');

xlabel('t');
ylabel('y');
9. Nhận dạng hệ thống.
-Đây là khâu dao động bậc 2.
-Bậc của hàm truyền W(p) : m>n nên h(t) xuất phát từ 0.
10. Tài liệu tham khảo.
[1]. Nguyễn Phùng Quang: Matlab & simulink dành cho kĩ sư điều khiển tự
động. NXB khoa học kĩ thuật-2006
[2]. Nguyễn Công Hiền : Mô hình hóa hệ thống và mô phỏng.
15

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×