Bài tập mô hình hóa mô phỏng

12 27 0
Bài tập mô hình hóa mô phỏng

Đ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

Chương trình mô phỏng được viết trên ngôn ngữ Visual Basic, gồm có 4 form: Form Main: Giao diện chính của chương trình, đề bài và nhập dữ liệu. Form Dothi: Gồm một đối tượng PictureBox để vẽ đồ thị, mô tả quá trình quá trình quá độ của hệ thống Form Solieu: Gồm một đối tượng TextBox, chứa các giá trị biên độ ứng tương ứng với các giá trị thời gian, cũng là các điểm được thể hiện trên đồ thị Form Tacgia: Ghi tên, lớp của các sinh viên làm bài tập này. Module Variable: Khai báo các biến toàn cục

I Đề bài: Dùng máy tính để khảo sát trình độ hệ thống a) Sơ đồ nguyên lí: u(t) y(t) K1 s.( s  4) K2 b) Tham số hệ thống: + U(t) = 1(t) + K1, K2 – Tham số tự chọn + T – Bước cắt mẫu tự chọn II Phương trình sai phân hệ thống : K1 K1 K1 s.( s  4) W (s)    KK s.( s  4)  K K s  4.s  K K 1 s.( s  4) Thay z1 s ta có : T z 1 W ( z)   K1  z  1  z  1    4   K1 K  T z 1  T z 1 K 1T ( z  1) 4( z  1)  8T ( z  1)( z  1)  K K 2T ( z  1) K 1T ( z  z  1)  Az  Bz  C Trong đó: A  K K 2T  8T  B 2 K K 2T  C K1 K 2T  8T  Suy ra: A.z y ( z )  B.z y ( z )  c y ( z )  K1T z u ( z )  2.z.u ( z )  u ( z )   Dùng tính chất dịch hàm gốc biến đổi z ta tìm phương trình sai phân tương ứng với phương trình trên: A y (k  2)  B y (k  1)  C y (k )  K 1T  u ( k  2)  2.u ( k  1)  u (k ) Vì tín hiệu vào tín hiệu nhảy cấp: u (t ) 1(t ) nên ta có : u (k  2) u (k  1) u (k ) 1 Vậy ta có: A y (k  2)  B y (k  1)  Cy (k ) 4.K 1T   y (k  2)   B y (k  1)  C y (k )  K 1T  A III Chương trình mơ ngơn ngữ VB: - Chương trình mơ viết ngơn ngữ Visual Basic, gồm có form: Form Main: Giao diện chương trình, đề nhập liệu Form Dothi: Gồm đối tượng PictureBox để vẽ đồ thị, mơ tả q trình q trình độ hệ thống Form Solieu: Gồm đối tượng TextBox, chứa giá trị biên độ ứng tương ứng với giá trị thời gian, điểm thể đồ thị Form Tacgia: Ghi tên, lớp sinh viên làm tập Module Variable: Khai báo biến toàn cục Giao diện mã lệnh Form sau: Form Main: Đối tượng Name TextBox K1Txt TextBox K2Txt TextBox TTxt CommandButton Command1 CommandButton Command2 CommandButton Command3 CommandButton Command4 Các đối tượng thuộc tính sau: Value text=100 text=0.3 text=0.003 Caption=Ve thi Caption=Ket qua Caption=Ket thuc Caption=Tac gia Mã nguồn Form main sau: Private Sub Tinhtoan() Dim K1 As Double Dim X As Integer K1 = Val(K1txt) K2 = Val(K2txt) T = Val(Ttxt) A = K1 * K2 * T * T + * T + B = * T * T * K1 * K2 - C = K1 * K2 * T * T - * T + y(0) = y(1) = For X = To 998 y(X + 2) = (-B * y(X + 1) - C * y(X) + * K1 * T * T) / A Next X ymax = ymin = For X = To 998 If y(X) > ymax Then ymax = y(X) xmax = X End If If y(X) < ymin Then ymin = y(X) xmin = X End If Next X For X = To 1000 If y(1000 - X) > (1 / K2) * 105 / 100 Or y(1000 - X) < (1 / K2) * 95 / 100 Then Xod = 1000 - X Exit For End If Next X End Sub Private Sub Command1_Click() Call Tinhtoan Unload Dothi Dothi.Show Call Dothi.Vedothi End Sub Private Sub Command2_Click() Dim X As Integer Dim V, U As String Call Tinhtoan solieu.Show For X = To 1000 If X Mod 10 = Then V = "y[" + Str(X) + "]=" + Str(Round(y(X), 4)) + Chr(9) If X Mod 40 = Then V = V + Chr(13) + Chr(10) U=U+V End If Next X U = U + Chr(13) + Chr(10) + Chr(13) + Chr(10) + Chr(13) + Chr(10) U = U + "Gia tri cuc dai Ymax: " + Str(ymax) + Chr(13) + Chr(10) U = U + "Gia tri cuc tieu Ymin: " + Str(ymin) + Chr(13) + Chr(10) U = U + "Thoi gian de dat cuc dai Tmax: " + Str(xmax * T) + " s" + Chr(13) + Chr(10) U = U + "Thoi gian de dat on dinh Tod: " + Str(Xod * T) + " s" + Chr(13) + Chr(10) U = U + "Do qua on dinh: " + Str((ymax - / K2) * K2 * 100) + Chr(13) + Chr(10) solieu.hien.Text = U End Sub Private Sub Command3_Click() End End Sub Private Sub Command4_Click() tacgia.Show End Sub Private Sub Form_Unload(Cancel As Integer) End End Sub Form Dothi: Đối tượng PictureBox Tên Nen Mã nguồn Form Dothi sau: Value Public Sub Vedothi() Dim tamthoiX, tamthoiY As Double Dim Vach As Double nen.CurrentX = nen.CurrentY = nen.Height - 100 ' Truc hoanh cach day 100 nen.DrawWidth = 'Dat day net ve la de ve truc toa nen.Line (30, 250)-(100, 100) nen.Line (180, 250)-(100, 100) nen.Line (100, 100)-(100, nen.Height - 100) ' ve truc tung tu tren xuong tamthoiY = nen.CurrentY tamthoiX = nen.Width - 100 nen.Line (nen.CurrentX, nen.CurrentY)-(nen.Width - 100, nen.CurrentY) ' Ve truc hoanh nen.Line (tamthoiX, tamthoiY)-(tamthoiX - 150, tamthoiY - 80) nen.Line (tamthoiX - 150, tamthoiY + 60)-(tamthoiX, tamthoiY) dodaix = Round((nen.Width - 200) / 10) ' Do dai mot vach tren truc dodaiy = Round((nen.Height - 200) / 11) Dothi.CurrentY = nen.Height + nen.Top + 100 Dothi.CurrentX = nen.Width + nen.Left Dothi.Print ("T") For a1 = To ' Khac vach truc X nen.Line (nen.CurrentX - dodaix, nen.Height - 150)-(nen.CurrentX - dodaix, nen.Height - 50) Dothi.CurrentX = nen.Left + nen.CurrentX - 100 Dothi.CurrentY = nen.Height + nen.Top + 100 Dothi.Print ((10 - a1) * 100 * T) Next a1 nen.CurrentY = nen.Height - 100 If ymax 0.05 And ymax 0.5 And ymax And ymax And ymax And ymax And ymax And ymax

Ngày đăng: 04/12/2021, 22:57