Đăng ký Đăng nhập

Tài liệu bai tap lon mo hinh hoa

.PDF
15
123
117

Mô tả:

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 100 Nhiệm vụ: K2 0.1 T 0.001 T1 0.2 T2 0.1 -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. tmax : 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 p = 2 z −1 vào công thức 1.1 ta được T z +1 Trong đó: A = 4T1T2+2T(T1+T2)+(1+K1K2)T2 B = -8T1T2+2T2(1+K1K2) C = 4T1T2-2T(T1+T2)+(1+K1K2)T2 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ó: AY(k+2)+BY(k+1)+CY(k) = 4K1 K 2T 2 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
- Xem thêm -

Tài liệu liên quan