TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM
KHOA ĐIỆN-ĐIỆN TỬ
BÀI TẬP LỚN
MÔ HÌNH HÓA HỆ THỐNG
Đề số 16: Dùng máy tính khảo sát quá trình quá độ của hệ thống điều khiển tự
động
Cho hệ thống có sơ đồ cấu trúc như sau :
( - )
Thông số :
Bài làm :
1, viết phương trình sai phân của hệ thống
W(s) = =
Thay s=
2 z-1
.
T z+1
vào phương trình trên ta có: W(p)=
Rút gọn ta có: W(p)=
Với :
A =
B =
C =
W(z)=
→
(
2
Az +Bz+C
)
( )
Y z
=
→
Ay(k+2)+By(k+1)+Cy(k) +
Với u(t)=1(t) ta có u(k+2)=u(k+1)=u(k)=1
→
Ay(k+2)+By(k+1)+Cy(k)=0.
→
y(k+2)= y(k+1) - .y(k) +
Chọn T=0,0001 ta có:
A = 4,001.
B = -7,990.
C = 3,998.
→
y(k+2)=1,99.y(k+1)-0,99.y(k) + 4,998.
2.Viết chương trình mô phỏng:
Imports System.IO
Public Class khaosat
Dim y(1000) As Double
Dim k1, k2, t, t1 As Single
Dim a, b, c As Double
Dim max, yod, sigmax1, tmax, tod As Double
Dim tinhyeu As String = "E:\phamvanminh.text"
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles QUIT.Click
Beep()
End
End Sub
Private Sub Draw_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Draw.Click
Dim i, j As Integer
k1 = NumericUpDown1.Value
k2 = NumericUpDown2.Value
t = NumericUpDown3.Value
t1 = NumericUpDown4.Value
y(0) = 0
y(1) = 0
y(2) = 0
a = t1 * 4 + 2 * t * k1 * k2 + 2 * t + k1 * t * t
b = -8 * t1 + 2 * k1 * t * t
c = 4 * t1 - 2 * t * k1 * k2 - 2 * t + k1 * t * t
For i = 0 To 998
y(i + 2) = (-b * y(i + 1) - c * y(i) + 4 * k1 * t * t) / a
Next
Dim x(1000) As Double
For i = 0 To 1000
x(i) = i * t
Chart1.Series(0).Points.AddXY(x(i), y(i))
Next
max = y(0)
For j = 0 To 1000
If y(j) >= max Then
max = y(j)
End If
Next
TextBox1.Text = max
yod = y(1000)
TextBox2.Text = yod
For i = 0 To 1000
If y(i) = max Then
tmax = t * i
End If
Next
TextBox4.Text = tmax
j = 1000
Do While (Math.Abs(y(j) - yod) <= (0.05 * yod))
j = j - 1
If j = 0 Then
Exit Do
End If
Loop
tod = j * t
TextBox5.Text = tod
sigmax1 = ((max - yod) / yod) * 100
TextBox3.Text = sigmax1
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
RichTextBox1.Text = " "
RichTextBox1.Text = RichTextBox1.Text & " gia tri Ymax la: " & Str(max)
& vbNewLine
RichTextBox1.Text = RichTextBox1.Text & " gia tri Yod la: " & Str(yod) &
vbNewLine
RichTextBox1.Text = RichTextBox1.Text & " gia tri Sigmax la: " &
Str(sigmax1) & "%" & vbNewLine
RichTextBox1.Text = RichTextBox1.Text & " gia tri Tmax la: " & Str(tmax)
& vbNewLine
RichTextBox1.Text = RichTextBox1.Text & " gia tri Tod la: " & Str(tod) &
vbNewLine
For i = 0 To 1000
If i Mod 10 = 0 Then
RichTextBox1.Text = RichTextBox1.Text & " gia tri y( " & Str(i) & " )
= " & Str(y(i)) & " " & vbNewLine
End If
Next
Dim dulieu As New System.IO.StreamWriter(TextBox6.Text)
dulieu.Write(RichTextBox1.Text)
dulieu.Close()
End Sub
Private Sub khaosat_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
TextBox6.Text = "E:\phamvanminh.text"
If Not File.Exists(tinhyeu) Then
Dim daikho As FileStream
daikho = File.Create(tinhyeu)
daikho.Close()
End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim thepath As String =
Environment.GetFolderPath(Environment.SpecialFolder.MyComputer)
Process.Start(thepath & "E:\phamvanminh.text")
End Sub
Private Sub Button3_Click_1(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
Chart1.Series(0).Points.Clear()
End Sub
End Class
3.Chọn số bước tính:
_Chọn K=1000
4.In kết quả:
gia tri y( 0 ) = 0
gia tri y( 10 ) = .000217356434754908
gia tri y( 20 ) = .000885434251529238
gia tri y( 30 ) = .00195696696480308
gia tri y( 40 ) = .00338942066239647
gia tri y( 50 ) = .00514452116711239
gia tri y( 60 ) = .00718782843556838
gia tri y( 70 ) = .00948835347518092
gia tri y( 80 ) = .012018213531702
gia tri y( 90 ) = .014752321724046
gia tri y( 100 ) = .0176681076850931
gia tri y( 110 ) = .0207452661109443
gia tri y( 120 ) = .0239655304305499
gia tri y( 130 ) = .0273124690861633
gia tri y( 140 ) = .030771302165778
gia tri y( 150 ) = .0343287363543681
gia tri y( 160 ) = .0379728163738648
gia tri y( 170 ) = .0416927912646319
gia tri y( 180 ) = .0454789940257595
gia tri y( 190 ) = .0493227332796173
gia tri y( 200 ) = .0532161957594339
gia tri y( 210 ) = .0571523585386709
gia tri y( 220 ) = .0611249100289775
gia tri y( 230 ) = .0651281788707354
gia tri y( 240 ) = .0691570699277174
gia tri y( 250 ) = .0732070066761514
gia tri y( 260 ) = .0772738793493826
gia tri y( 270 ) = .0813539982631416
gia tri y( 280 ) = .0854440518038746
gia tri y( 290 ) = .0895410686142871
gia tri y( 300 ) = .0936423835567965
gia tri y( 310 ) = .0977456070774766
gia tri y( 320 ) = .101848597630779
gia tri y( 330 ) = .10594943685926
gia tri y( 340 ) = .11004640725308
gia tri y( 350 ) = .11413797204155
gia tri y( 360 ) = .118222757093729
gia tri y( 370 ) = .122299534627378
gia tri y( 380 ) = .126367208545608
gia tri y( 390 ) = .130424801238609
gia tri y( 400 ) = .134471441704103
gia tri y( 410 ) = .138506354854781
gia tri y( 420 ) = .142528851894121
gia tri y( 430 ) = .146538321653889
gia tri y( 440 ) = .150534222797215
gia tri y( 450 ) = .154516076800798
gia tri y( 460 ) = .158483461638382
gia tri y( 470 ) = .162436006095461
gia tri y( 480 ) = .166373384652139
gia tri y( 490 ) = .170295312877397
gia tri y( 500 ) = .174201543283666
gia tri y( 510 ) = .178091861595726
gia tri y( 520 ) = .181966083392534
gia tri y( 530 ) = .185824051084732
gia tri y( 540 ) = .18966563119429
gia tri y( 550 ) = .193490711906107
gia tri y( 560 ) = .197299200864389
gia tri y( 570 ) = .201091023189372
gia tri y( 580 ) = .204866119692347
gia tri y( 590 ) = .2086244452692
gia tri y( 600 ) = .212365967454627
gia tri y( 610 ) = .21609066512095
gia tri y( 620 ) = .219798527307128
gia tri y( 630 ) = .223489552164914
gia tri y( 640 ) = .227163746010483
gia tri y( 650 ) = .23082112247098
gia tri y( 660 ) = .234461701716511
gia tri y( 670 ) = .238085509769028
gia tri y( 680 ) = .241692577880445
gia tri y( 690 ) = .245282941973055
gia tri y( 700 ) = .248856642136017
gia tri y( 710 ) = .252413722172334
gia tri y( 720 ) = .255954229191252
gia tri y( 730 ) = .259478213241551
gia tri y( 740 ) = .262985726981654
gia tri y( 750 ) = .266476825382853
gia tri y( 760 ) = .269951565462355
gia tri y( 770 ) = .273410006043178
gia tri y( 780 ) = .276852207538188
gia tri y( 790 ) = .28027823175589
gia tri y( 800 ) = .283688141725781
gia tri y( 810 ) = .287082001541324
gia tri y( 820 ) = .290459876218776
gia tri y( 830 ) = .29382183157027
gia tri y( 840 ) = .297167934089759
gia tri y( 850 ) = .300498250850508
gia tri y( 860 ) = .303812849412996
gia tri y( 870 ) = .307111797742173
gia tri y( 880 ) = .310395164133146
gia tri y( 890 ) = .313663017144458
gia tri y( 900 ) = .316915425538183
gia tri y( 910 ) = .32015245822617
gia tri y( 920 ) = .323374184221816
gia tri y( 930 ) = .326580672596807
gia tri y( 940 ) = .32977199244235
gia tri y( 950 ) = .332948212834421
gia tri y( 960 ) = .33610940280265
gia tri y( 970 ) = .339255631302464
gia tri y( 980 ) = .342386967190171
gia tri y( 990 ) = .345503479200681
gia tri y( 1000 ) = .348605235927608
5.Vẽ đường cong 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:
gia tri Ymax la: .348605235927608
gia tri Yod la: .348605235927608
gia tri Sigmax la: 0%
gia tri Tmax la: .0999999974737875
gia tri Tod la: .0943999976152554
7.Vẽ đường cong quá trình quá độ bằng Matlab-Simulink:
>> K1=50
K1 =
50
>> K2=0.2
K2 =
0.2000
>> T=0.0001
T =
1.0000e-004
>> T1=0.1
T1 =
0.1000
>> num=K1
num =
50
>> den=[T1 1+K1*K2 K1]
den =
0.1000 11.0000 50.0000
>> step(num,den)
• Kết quả mô phỏng trên maplatb
8.Nhận dạng hệ thống:
Hàm truyền đã cho có đường cong của quá trình quá độ giống với đồ thị của
phương trình sai phân tìm được.
9.Thiết kế giao diện:
10.Tài liệu tham khảo:
[1]-Bài giảng mô hình hóa hệ thống Tác giả: Phạm Tâm Thành