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.
Trang 1TRƯỜ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 :
U(t)
( - )
Thông số : K1=50 ; K2=0,2;T1=0,1 s
Bài làm :
1, viết phương trình sai phân của hệ thống
W(s) =
1
S
K1
(1+T1S)
1+(K2S +1) K 1
S (1+T1S )
= T K 1
1S2+(1+K1K2)S+ K1
Thay s=
2 z-1
.
Rút gọn ta có: W(p)= K1T2¿ ¿ ¿K1T2¿ ¿
Với :
A = 4 T1+T2
(1+K1K2)+T2K1
B = −8 T1+2T2K1
1
S
K1
(1+T1S)
K2S +1
Trang 2C = 4 T1−T2
(1+ K1K2)+T2K1
W(z)=−A C ¿K1T2
¿ ¿
(Az +Bz+C 2 )Y z =K1T2(z +1)2 U(z)
Ay(k+2)+By(k+1)+Cy(k)¿K1T2u(k +2) + K1T2u(k +1) +K1T2u(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)= -B A.y(k+1) - C A.y(k) + A4 K1T2
Chọn T=0,0001 ta có:
A = 4,001.10 −4
B = -7,990.10−4
C = 3,998.10−4
y(k+2)=1,99.y(k+1)-0,99.y(k) + 4,998.10−4
2.Viết chương trình mô phỏng:
Dim y(1000) As Double
Dim k1, k2, t, t1 AsSingle
Dim a, b, c As Double
Dim max, yod, sigmax1, tmax, tod AsDouble
Dim tinhyeu As String = "E:\phamvanminh.text"
System.EventArgs) Handles QUIT.Click
Beep()
End
EndSub
System.EventArgs) Handles Draw.Click
Dim i, j As Integer
k1 = NumericUpDown1.Value
k2 = NumericUpDown2.Value
Trang 3t = 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)
EndIf
Next
TextBox1.Text = max
yod = y(1000)
TextBox2.Text = yod
For i = 0 To 1000
If y(i) = max Then
tmax = t * i
EndIf
Next
TextBox4.Text = tmax
Trang 4j = 1000
DoWhile (Math.Abs(y(j) - yod) <= (0.05 * yod))
j = j - 1
If j = 0 Then
Exit Do
EndIf
Loop
tod = j * t
TextBox5.Text = tod
sigmax1 = ((max - yod) / yod) * 100
TextBox3.Text = sigmax1
EndSub
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) & " )
EndIf
Next
Dim dulieu AsNew System.IO.StreamWriter(TextBox6.Text)
dulieu.Write(RichTextBox1.Text)
dulieu.Close()
Trang 5EndSub
System.EventArgs) HandlesMyBase.Load
TextBox6.Text = "E:\phamvanminh.text"
IfNot File.Exists(tinhyeu) Then
Dim daikho As FileStream
daikho = File.Create(tinhyeu)
daikho.Close()
EndIf
EndSub
System.EventArgs) Handles Button1.Click
Dim thepath AsString =
Environment.GetFolderPath(Environment.SpecialFolder.MyComputer)
Process.Start(thepath & "E:\phamvanminh.text")
EndSub
System.EventArgs) Handles Button3.Click
Chart1.Series(0).Points.Clear()
EndSub
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
Trang 6gia 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
Trang 7gia 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
Trang 8gia 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
Trang 97.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:
Trang 10Hà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