Khảo sát quá trình quá độ của hệ điều khiển tự động
Trường đại học bách khoa hà nội
khoa điện
bộ môn tự động hoá xncn
bài tập dài mô hình hoá số 1
dùng máy tính khảo sát quá trình quá độ
của hệ điều khiển tự động
Chủ nhiệm bộ môn : TS. Nguyễn Mạnh Tiến
Giáo viên hướng dẫn: GSTS.Nguyện Công Hiền
Thạc SỵNguyên~ Danh Huy
Sinh viên thực hiện : Lưu Thiện Trường
Nguyễn Văn tiến
Phạm Anh Tuấn
Lớp : Tự động hoá K1_03
Hà Nội 11_2004
Lời nói đầu
Ngày nay khó có thể tìm thấy lĩnh vưc hoạt động nào của con người mà không sử dụng phương pháp mô hình hoá ở những mức độ khác nhau. Điều này đặc biệt quan trọng đối với lĩnh vực điều khiển các hệ thống kỹ thuật và xã hội, bỏi vì điêu khiển chính là quá trình thu nhận thông tin từ hệ thống, nhận dạng hệ thống theo một mô khình nào đố và đưa ra quyết định thích hợp để điều khiển hệ thống. Quá trình này được tiếp diễn liên tục nhằm đưa hệ thống vận động theo một muc tiêu định trước.
Phương pháp mô hình hoá và mô phỏng được phát triển từ đại chiến thế giới lần thứ hai vào những năm 40 của thế kỷ XX. Lúc đó người ta ứng dụng phương pháp mô phỏng để nghiên cứu phản ứng hạt nhân nhằm chế tạo bom nguyên tử. Nhờ có máy tính điện tử mà phương pháp mô khìng hoá và mô phỏng phát triển nhanh chóng và được ứng dụng vào nhiều lĩnh vực khoa học kỹ thuật cũng như khoa học xã hội khác nhau.
Nhờ có phương pháp mô khình hoá và mô phỏng, người ta có thể phân tích, nghiên cứu hệ thống liên tục, phi tuyến, ngẫu nhiên một cách chính xác, hiệu quả mà nhiều khi phương pháp giải tích truyền thống không cho ta lời giải chính xác được.
Trong phần bài tập về mô hình hoá hệ liên tục: “ Khảo sát quá trình quá độ của hệ điều khiển tự động ” do thời gian chuẩn bị có hạn nên chắc chắn bài làm của chúng em còn có nhiều thiếu sót, em mong có được sự chỉ bảo thêm của các thầy, các cô giảng dạy trong bộ môn: “ Tự động hoá xí nghiệp công nghiệp ”- Khoa Đien-Truộng Đại học Bách Khoa Hà Nội.
Một lần nữa, em xin chân thành cảm ơn thầy giáo: GSTS.Nguyện Công Hiền, Thạc sỵNguyên~ Danh Huy đã tận tình hướng dẫn để em có thể hoàn thành bài tập này.
Chương 1. Lý thuyết về mô phỏng
hệ thống liên tục
11.Khại niệm chung về mô hình hệ thống liên tục
Hệ thống liên tục là hệ thống mà trong đố các trnạg thái và thuộc tính của hệ thống thay đổi một cách liêu tục. Mô hình toán học của hệ thống liên tục thường là hệ phương trình vi phân. Trường hợp đơn giản nhất đó là hệ phương trình vi phân tuyến tính với hệ số hằng và được giải một cách dễ dàng bằng phương pháp giải tích. Tuy nhiên, khi mô hình có phần tử phi tuyến thì phương pháp giải tích khó hoặc không thể giải được. Trong trường hợp này thì hợp lý nhất là dùng phương pháp mô phỏng để giải bài toán. Người ta có thể dùng máy tính tương tự hoặc máy tính số để mô phỏng hệ liên tục.
12.Dụng máy tính tương tự để mô phỏng hệ thống liên tục
Máy tính tương tự đã có quá trình phát triển lâu dài và đã góp phần giải các bài toán của hệ thống liên tục tuyến tính cũng như phi tuyến. Máy tính tương tự được dùng rộng rãi nhất là máy tính tương tự điện tử mà phần tử cơ bản của nó là các khuếch đại thuật toán. Điện áp của máy tính biểu thị biến số của mô hình toán học. Tuy nhiên, máy tính tương tự bị hạn chế là độ chính xác không cao do nhiều nguyên nhân: do độ chính xác của phép đo điện áp, do hiện tượng trôi điểm zero của khuếch đại thuật toán Nói chung độ chính xác của máy tính tương tự không vượt quá 0,1%. Một hạn chế quan trọng khác của máy tính tương tự là đối với từng hệ thống cụ thể phải lắp mạch máy tính tương ứng, nếu hệ thống phức tạp thị thời gian lắp ráp và hiệu chỉnh máy tính sẽ đáng kể, hơn nữa máy tính không có khả năng phát triển mềm dẻo khi muốn thay đổi cấu trúc hệ thống. Vì vậy, ngày nay người ta ít dùng máy tính tương tự vào mô phỏng mà dùng máy tính số.
13.Dụng máy tính số để mô phỏng hệ thống liên tục
Ngày nay, máy tính số được ứng dụng vào hầu hết các lĩnh vực hoạt động của con người và nó trở thành một trong những công cụ làm việc không thể thiếu của chúng ta. Trong lĩnh vực mô hình hoá, máy tính là công cụ chủ yếu để thực hiện việc mô phỏng hệ thống. Sau đây chúng ta sẽ đi tìm hiểu máy tính làm việc như thế nào trong việc mô hình hoá hệ thống.
22 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2297 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Khảo sát quá trình quá độ của hệ điều khiển tự động, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Trêng ®¹i häc b¸ch khoa hµ néi
khoa ®iÖn
bé m«n tù ®éng ho¸ xncn
bµi tËp dµi m« h×nh ho¸ sè 1
dïng m¸y tÝnh kh¶o s¸t qu¸ tr×nh qu¸ ®é
cña hÖ ®iÒu khiÓn tù ®éng
Chñ nhiÖm bé m«n : TS. NguyÔn M¹nh TiÕn
Gi¸o viªn híng dÉn: GS.TS.NguyÔn C«ng HiÒn
Th¹c Sü.NguyÔn Danh Huy
Sinh viªn thùc hiÖn : Lu ThiÖn Trêng
NguyÔn V¨n tiÕn
Ph¹m Anh TuÊn
Líp : Tù ®éng ho¸ K1_03
Hµ Néi 11_2004
Lêi nãi ®Çu
Ngµy nay khã cã thÓ t×m thÊy lÜnh vc ho¹t ®éng nµo cña con ngêi mµ kh«ng sö dông ph¬ng ph¸p m« h×nh ho¸ ë nh÷ng møc ®é kh¸c nhau. §iÒu nµy ®Æc biÖt quan träng ®èi víi lÜnh vùc ®iÒu khiÓn c¸c hÖ thèng kü thuËt vµ x· héi, bái v× ®iªu khiÓn chÝnh lµ qu¸ tr×nh thu nhËn th«ng tin tõ hÖ thèng, nhËn d¹ng hÖ thèng theo mét m« kh×nh nµo ®è vµ ®a ra quyÕt ®Þnh thÝch hîp ®Ó ®iÒu khiÓn hÖ thèng. Qóa tr×nh nµy ®îc tiÕp diÔn liªn tôc nh»m ®a hÖ thèng vËn ®éng theo mét muc tiªu ®Þnh tríc.
Ph¬ng ph¸p m« h×nh ho¸ vµ m« pháng ®îc ph¸t triÓn tõ ®¹i chiÕn thÕ giíi lÇn thø hai vµo nh÷ng n¨m 40 cña thÕ kû XX. Lóc ®ã ngêi ta øng dông ph¬ng ph¸p m« pháng ®Ó nghiªn cøu ph¶n øng h¹t nh©n nh»m chÕ t¹o bom nguyªn tö. Nhê cã m¸y tÝnh ®iÖn tö mµ ph¬ng ph¸p m« kh×ng ho¸ vµ m« pháng ph¸t triÓn nhanh chãng vµ ®îc øng dông vµo nhiÒu lÜnh vùc khoa häc kü thuËt còng nh khoa häc x· héi kh¸c nhau.
Nhê cã ph¬ng ph¸p m« kh×nh ho¸ vµ m« pháng, ngêi ta cã thÓ ph©n tÝch, nghiªn cøu hÖ thèng liªn tôc, phi tuyÕn, ngÉu nhiªn … mét c¸ch chÝnh x¸c, hiÖu qu¶ mµ nhiÒu khi ph¬ng ph¸p gi¶i tÝch truyÒn thèng kh«ng cho ta lêi gi¶i chÝnh x¸c ®îc.
Trong phÇn bµi tËp vÒ m« h×nh ho¸ hÖ liªn tôc: “ Kh¶o s¸t qu¸ tr×nh qu¸ ®é cña hÖ ®iÒu khiÓn tù ®éng ” do thêi gian chuÈn bÞ cã h¹n nªn ch¾c ch¾n bµi lµm cña chóng em cßn cã nhiÒu thiÕu sãt, em mong cã ®îc sù chØ b¶o thªm cña c¸c thÇy, c¸c c« gi¶ng d¹y trong bé m«n: “ Tù ®éng ho¸ xÝ nghiÖp c«ng nghiÖp ”- Khoa §iÖn-Trêng §¹i häc B¸ch Khoa Hµ Néi.
Mét lÇn n÷a, em xin ch©n thµnh c¶m ¬n thÇy gi¸o: GS.TS.NguyÔn C«ng HiÒn, Th¹c sü.NguyÔn Danh Huy ®· tËn t×nh híng dÉn ®Ó em cã thÓ hoµn thµnh bµi tËp nµy.
Ch¬ng 1. Lý thuyÕt vÒ m« pháng
hÖ thèng liªn tôc
1.1.Kh¸i niÖm chung vÒ m« h×nh hÖ thèng liªn tôc
HÖ thèng liªn tôc lµ hÖ thèng mµ trong ®è c¸c trn¹g th¸i vµ thuéc tÝnh cña hÖ thèng thay ®æi mét c¸ch liªu tôc. M« h×nh to¸n häc cña hÖ thèng liªn tôc thêng lµ hÖ ph¬ng tr×nh vi ph©n. Trêng hîp ®¬n gi¶n nhÊt ®ã lµ hÖ ph¬ng tr×nh vi ph©n tuyÕn tÝnh víi hÖ sè h»ng vµ ®îc gi¶i mét c¸ch dÔ dµng b»ng ph¬ng ph¸p gi¶i tÝch. Tuy nhiªn, khi m« h×nh cã phÇn tö phi tuyÕn th× ph¬ng ph¸p gi¶i tÝch khã hoÆc kh«ng thÓ gi¶i ®îc. Trong trêng hîp nµy th× hîp lý nhÊt lµ dïng ph¬ng ph¸p m« pháng ®Ó gi¶i bµi to¸n. Ngêi ta cã thÓ dïng m¸y tÝnh t¬ng tù hoÆc m¸y tÝnh sè ®Ó m« pháng hÖ liªn tôc.
1.2.Dïng m¸y tÝnh t¬ng tù ®Ó m« pháng hÖ thèng liªn tôc
M¸y tÝnh t¬ng tù ®· cã qu¸ tr×nh ph¸t triÓn l©u dµi vµ ®· gãp phÇn gi¶i c¸c bµi to¸n cña hÖ thèng liªn tôc tuyÕn tÝnh còng nh phi tuyÕn. M¸y tÝnh t¬ng tù ®îc dïng réng r·i nhÊt lµ m¸y tÝnh t¬ng tù ®iÖn tö mµ phÇn tö c¬ b¶n cña nã lµ c¸c khuÕch ®¹i thuËt to¸n. §iÖn ¸p cña m¸y tÝnh biÓu thÞ biÕn sè cña m« h×nh to¸n häc. Tuy nhiªn, m¸y tÝnh t¬ng tù bÞ h¹n chÕ lµ ®é chÝnh x¸c kh«ng cao do nhiÒu nguyªn nh©n: do ®é chÝnh x¸c cña phÐp ®o ®iÖn ¸p, do hiÖn tîng tr«i ®iÓm zero cña khuÕch ®¹i thuËt to¸n … Nãi chung ®é chÝnh x¸c cña m¸y tÝnh t¬ng tù kh«ng vît qu¸ 0,1%. Mét h¹n chÕ quan träng kh¸c cña m¸y tÝnh t¬ng tù lµ ®èi víi tõng hÖ thèng cô thÓ ph¶i l¾p m¹ch m¸y tÝnh t¬ng øng, nÕu hÖ thèng phøc t¹p thÞ thêi gian l¾p r¸p vµ hiÖu chØnh m¸y tÝnh sÏ ®¸ng kÓ, h¬n n÷a m¸y tÝnh kh«ng cã kh¶ n¨ng ph¸t triÓn mÒm dÎo khi muèn thay ®æi cÊu tróc hÖ thèng. V× vËy, ngµy nay ngêi ta Ýt dïng m¸y tÝnh t¬ng tù vµo m« pháng mµ dïng m¸y tÝnh sè.
1.3.Dïng m¸y tÝnh sè ®Ó m« pháng hÖ thèng liªn tôc
Ngµy nay, m¸y tÝnh sè ®îc øng dông vµo hÇu hÕt c¸c lÜnh vùc ho¹t ®éng cña con ngêi vµ nã trë thµnh mét trong nh÷ng c«ng cô lµm viÖc kh«ng thÓ thiÕu cña chóng ta. Trong lÜnh vùc m« h×nh ho¸, m¸y tÝnh lµ c«ng cô chñ yÕu ®Ó thùc hiÖn viÖc m« pháng hÖ thèng. Sau ®©y chóng ta sÏ ®i t×m hiÓu m¸y tÝnh lµm viÖc nh thÕ nµo trong viÖc m« h×nh ho¸ hÖ thèng.
1.4)Ph¬ng tr×nh m¸y tÝnh:
Gi¶ sö d·y tÝn hiÖu vµo m¸y tÝnh:
[Xk] = x(0), x(T), x(2T), … x(kT)
D·y tÝn hiÖu ra cña m¸y tÝnh
[Yk] = y(0), y(T), y(2T), … y(kT)
trong ®ã T lµ bíc c¾t mÉu hay nhÞp lµm viÖc cña m¸y tÝnh
TÝn hiÖu ra ë thêi ®iÓm k tøc y(kT) phô thuéc vµo gi¸ trÞ cña n tÝn hiÖu ra cña m+1 tÝn hiÖu vµo x¶y ra tríc ®ã. C¸c gi¸ trÞ cña m tÝn hiÖu vµo vµ n tÝn hiÖu ra ®îc lu tr÷ trong bé nhí cña m¸y tÝnh.
Nh vËy quan hÖ gi÷a tÝn hiÖu ra vµ tÝn hiÖu vµo cña m¸y tÝnh ®îc viÕt nh sau:
y(kT) = (1-1)
Víi m n;
Ph¬ng tr×nh (1-1) ®îc gäi lµ ph¬ng tr×nh m¸y tÝnh biÓu thÞ quan hÖ tuyÕn tÝnh gi÷a tÝn hiÖu ra víi tÝn hiÖu vµo cña m¸y tÝnh.
V× tÝn hiÖu ra [yk] vµ tÝn hiÖu vµo [xk] ®Òu cã cïng bíc gi¸n ®o¹n T nªn ®Ó cho gän ta cã thÓ viÕt
y(k) = (1-2)
Khai triÓn ra ta cã:
y(k) + an-1y(k-1) + an-2y(k-2) + … + a1y(k- n+1) + a0y(k- n) +
= bmx(k) + bm-1x(k-1) + … + b1x(k-2) + b0y(k-m) (1-3)
y(k) = - an-1y(k-1) - an-2y(k-2) - …- a1y(k- n+1)- a0y(k- n) +
bmx(k) + bm-1x(k-1) + … + b1x(k-2) + b0y(k-m) (1 – 4)
Ph¬ng tr×nh (1 – 3),(1 – 4) gäi lµ ph¬ng tr×nh sai ph©n bËc n.
Nh vËy, ta cã thÓ th¸y r»ng ph¬ng tr×nh m¸y tÝnh cã d¹ng cña ph¬ng tr×nh sai ph©n tuyÕn tÝnh.
Tõ c¸c ph©n tÝch trªn, ta thÊy muèn dïng m¸y tÝnh sè ®Ó m« pháng hÖ liªn tôc th× ph¶i m« t¶ hÖ liªn tôc díi d¹ng ph¬ng tr×nh sai ph©n tuyÕn tÝnh b»ng c¸ch tõ ph¬ng tr×nh Laplace W(s) cña hÖ liªn tôc, b»ng c¸ch ®æi biÕn sè:
ta cã thÓ t×m ®îc ph¬ng tr×nh biÓn ®æi z t¬ng øng W(z) råi t×m ngîc l¹i ph¬ng tr×nh sai ph©n cña hÖ ®Ó gi¶i trªn m¸y tÝnh sè ®Ó t×m ®Æc tÝnh m« pháng cña hÖ liªn tôc.
*) C¸c tÝnh chÊt biÕn ®æi Z
1. TÝnh tuyÕn tÝnh
Z{a[v(k)] + b[w(k)]} = aV(z) + b.W(z)
2.DÞch hµm gèc f(k) vÒ phÝa tríc m bíc
Z[f(k)] = F(z) =
Z[f(k+1)] = ZF(z) – Zf(0);
Z[f(k+2)] = Z2 F(z) – Z2 f(0) – Zf(1);
Tæng qu¸t dÞch m bíc
Víi Zf(0) = 0, ta cã:
Z[f(k+1)] = ZF(z)
Z[f(k+m)] = ZmF(z)
3. DÞch gèc vÒ phÝa sau m bíc
T¬ng tù nh trªn, ta cã
Z[f(k-m)] = Z-m F(z)
4.BiÕn ®æi Z cña sai ph©n tiÕn
5. BiÕn ®æi Z cña sai ph©n lïi
6.Gi¸ trÞ ®Çu cña hµm gèc rêi r¹c f(0)
Ch¬ng 2. lËp tr×nh trªn m¸y tÝnh ®Ó kh¶o s¸t
qu¸ tr×nh qu¸ ®é cña hÖ ®iÒu khiÓn tù ®éng
§Ò Bµi:
Tham sè sinh viªn tù chän
K1, K2 - hÖ sè khuÕch ®¹i
T1 - h»ng sè thêi gian
T2 - H»ng sè thêi gian
T - bø¬c c¾t mÉu
2.1.X¸c ®Þnh hµm truyÒn cña hÖ:
Tõ cÊu tróc cña hÖ thèng, ta cã hµm truyÒn cña hÖ hë lµ:
Tõ ®ã, ta cã hµm truyÒn cña hÖ kÝn lµ:
2.2.T×m ph¬ng tr×nh sai ph©n
Thùc hiÖn phÐp biÕn ®æi sang z, ta thay
vµo Wk ta ®îc
(2-1)
trong ®ã:
Tõ (2 – 1) ta cã:
Dïng tÝnh chÊt biÕn ®æi Z ta t×m ®îc ph¬ng tr×nh sai ph©n t¬ng øng víi ph¬ng tr×nh trªn:
V× tÝn hiÖu lµ 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+3] + B.Y[k+2] + C.Y[k+1] + D.Y[k] = E
Y[k+3]=(-B.Y[k+2] - C.Y[k+1] - D.Y[k] +E)/A
2.3. ViÕt ch¬ng tr×nh m« pháng b»ng ng«n ng÷ Visual Basic
Sau ®©y lµ ch¬ng tr×nh Visual Basic m« h×nh ho¸ hÖ ®iÒu khiÓn tù ®éng ®· cho. Ch¬ng tr×nh cho kÕt qu¶ lµ tÝn hiÖu ra Y[k] díi d¹ng sè, cø c¸ch 10 sè in ra mét sè liÖu. Ch¬ng tr×nh còng cho kÕt qu¶ díi d¹ng ®êng cong qu¸ tr×nh qu¸ ®é cña hÖ §KT§ vµ tÝnh c¸c ®Æc tÝnh qu¸ ®é nh:
Sau ®©y lµ ch¬ng tr×nh m« pháng viÕt b»ng ng«n ng÷ Visual Basic:
*)PhÇn code cña form1:
Private Sub cmdChapnhan_Click()
ChapNhan
End Sub
Private Sub cmdMophong_Click()
mophong
KhacTruc
End Sub
Private Sub cmdThoat_Click()
End
End Sub
Private Sub M«pháng_Click()
End Sub
Private Sub MnuGVHD_Click()
MsgBox "GS.TS. NguyÔn C«ng HiÒn" _
& vbCrLf & vbCrLf & "ThS.NguyÔn Danh Huy", , "Thµy gi¸o híng dÉn:"
End Sub
Private Sub mnuMoph_Click()
mophong
KhacTruc
End Sub
Private Sub mnuNhom_Click()
MsgBox "Lu ThiÖn Trêng" _
& vbCrLf & vbCrLf & "NguyÔn V¨n TiÕn" _
& vbCrLf & vbCrLf & "Ph¹m Anh TuÊn", , "Nhãm thùc hiÖn:25"
End Sub
Private Sub Mnuthoat_Click()
End
End Sub
Private Sub MnuTL_Click()
MsgBox "1. M« h×nh ho¸ hÖ thèng vµ m« pháng - NguyÔn C«ng HiÒn" _
& vbCrLf & vbCrLf & "2. Ng«n ng÷ lËp tr×nh Visual Basic 6.0" _
& vbCrLf & vbCrLf + "3. Lý thuyÕt ®iÒu khiÓn tù ®éng " _
& "- Ph¹m C«ng Ng«", , "Tµi liÖu tham kh¶o"
End Sub
Private Sub Text9_click()
Dim sta As Integer
sta = MsgBox("Thêi gian lÊy mÉu ®· ®îc gi÷ cè ®Þnh!", , "Th«ng b¸o")
If sta = vbOK Then
Text9.Enabled = False
End If
End Sub
*)PhÇn code cña form 2:
Private Sub cmdChiTieuChatLuong_Click()
ChiTieuChatLuong
End Sub
Private Sub cmdInGiaTri_Click()
CIndex = 0
frm3.Show
InGiaTriNext
cmdInGiaTri.Enabled = False
End Sub
Private Sub cmdQuayve_Click()
frm1.Show
frm2.Hide
Unload frm2
cmdInGiaTri.Enabled = True
cmdChiTieuChatLuong.Enabled = True
End Sub
*)PhÇn code cña form 3:
Private Sub cmdNext_Click()
InGiaTriNext
End Sub
Private Sub cmdOK_Click()
Unload frm3
frm3.Hide
mophong
End Sub
Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)
End Sub
*)PhÇn code cña modul
Option Explicit
Public K1, K2, K3 As Double ' He so
Public T, T1, T2 As Double ' Hang so thoi gian
Public Y(6000) As Double
Dim A, B, C, D, E As Double
Public I As Integer
Public CI As Integer
Dim Tod, Yod, Ymax, Tmax As Double
Public Sub ChapNhan()
Dim s As Integer
With frm1
K1 = Val(.Text5.Text)
K2 = Val(.Text6.Text)
K3 = Val(.Text7.Text)
T1 = Val(.Text8.Text)
T2 = Val(.Text12.Text)
T = Val(.Text9.Text)
If K3 = 0 Then
s = MsgBox("B¹n ®· nhËp hÖ sè ph¶n håi b»ng zero!" _
& vbCrLf & vbCrLf & " H·y nhËp l¹i d÷ liÖu (Yes/No)", 16 + vbYesNo, "Th«ng b¸o")
If s = vbNo Then
Unload frm1
Unload frm2
Else
frm1.Show
End If
End If
.Text1.Text = Str(K1)
.Text2.Text = Str(K2)
.Text3.Text = Str(K3)
.Text4.Text = Str(T1)
.Text10.Text = Str(T1)
.Text11.Text = Str(T2)
End With
End Sub
Public Sub mophong()
frm1.Hide
Load frm2
frm2.Show
'BiÓu thøc Z cña hÖ
Y(0) = 0
Y(1) = 0
Y(2) = 0
A = 8 * T1 * T1 * T2 + 4 * T * T1 * (T1 + 2 * T2) + 2 * T * T * (2 * T1 + T2) + (1 + K1 * K2 * K3) * T * T * T
B = -24 * T1 * T1 * T2 - 4 * T * T1 * (T1 + 2 * T2) + 2 * T * T * (2 * T1 + T2) + 3 * (1 + K1 * K2 * K3) * T * T * T
C = 24 * T1 * T1 * T2 - 4 * T * T1 * (T1 + 2 * T2) - 2 * T * T * (2 * T1 + T2) + 3 * (1 + K1 * K2 * K3) * T * T * T
D = -8 * T1 * T1 * T2 + 4 * T * T1 * (T1 + 2 * T2) - 2 * T * T * (2 * T1 + T2) + (1 + K1 * K2 * K3) * T * T * T
E = K1 * K2 * T * T * T
' frm2.Text6.Text = Str(B)
For I = 0 To 5996
Y(I + 3) = (8 * E - B * Y(I + 2) - C * Y(I + 1) - D * Y(I)) / A
Next I
With frm2
.picDoThi.Line (0, 0)-(.Line1.X1, .Line1.Y1), .picDoThi.BackColor
.picDoThi.DrawWidth = 1
For I = 0 To 5999
.picDoThi.Line -(.Line1.X1 + I, .Line2.Y2 - Y(I) * 3000), vbRed
Next I
.picDoThi.DrawWidth = 1
End With
End Sub
Public Sub KhacTruc()
'Khac do truc t
Dim K As Integer
For K = 0 To 6
With frm2
.picDoThi.Line (K * 1000 + .Line2.X1, .Line2.Y1 - 80) _
-(K * 1000 + .Line2.X1, .Line2.Y1 + 80)
.Label10(K).Top = 6000
.Label10(K).Left = .Line2.X1 + K * 1000 - 300
.Label10(K).Caption = Str(K * T * 1000)
End With
Next K
'Khac do truc y
For K = 7 To 0 Step -1
Yod = K1 * K2 / (1 + K1 * K2 * K3)
With frm2
.picDoThi.Line (.Line2.X1 + 80, .Line1.Y2 - Int(Yod * 3000 * K / 4)) _
-(.Line2.X1 - 80, .Line1.Y2 - Int(Yod * 3000 * K / 4))
.Label9(K).Top = .Line1.Y2 - Int(3000 * Yod * K / 4) - 200
.Label9(K).Left = 360
.Label9(K).Caption = Str(Round((Yod * K / 4), 3))
End With
Next K
End Sub
Public Sub ChiTieuChatLuong()
'Tim gia tri Max va Thoi gian Max
Dim IMax As Integer
Ymax = Y(0) 'Gia tri Max
For I = 0 To 5999
If (Y(I) > Ymax) Then
Ymax = Y(I)
IMax = I
End If
Next I
Tmax = IMax * T 'Thoi gian dat gia tri Max
'Gia tri on dinh
Yod = K1 * K2 / (1 + K1 * K2 * K3)
'Tim thoi gian dat gia tri on dinh
I = 5999
Do While Abs(Y(I) - Yod) / Yod <= 0.02
I = I - 1
Loop
Tod = I * T
'Tim do qua dieu chinh
Dim A As Double
A = (Ymax - Yod) * 100 / Yod
With frm2
' Hien thi chi tieu chat luong
.Text1.Text = Str(Ymax)
.Text2.Text = Str(A)
.Text3.Text = Str(Yod)
.Text4.Text = Str(Tmax)
.Text5.Text = Str(Tod)
' Duong gia tri dat
.picDoThi.Line (.Line1.X1, .Line2.Y2 - Int(Yod * 3000)) _
-(.Line1.X1 + 3200 * 2, .Line2.Y2 - Int(Yod * 3000)), vbRed
.picDoThi.DrawStyle = vbDot
' Cac duong giong diem
.picDoThi.Line (Int(Tod / T) + .Line1.X1, .Line2.Y2 - Int(3000 * Yod)) _
-(Int(Tod / T) + .Line1.X1, .Line2.Y2), vbBlack
.picDoThi.Line (.Line1.X1, .Line2.Y2 - Int(Yod * 3000 * 1.02)) _
-(.Line1.X1 + 3000 * 2, .Line2.Y2 - Int(Yod * 3000 * 1.02)), vbBlack
.picDoThi.Line (.Line1.X1, .Line2.Y2 - Int(Yod * 3000 * 0.98)) _
-(.Line1.X1 + 3000 * 2, .Line2.Y2 - Int(Yod * 3000 * 0.98)), vbBlack
.picDoThi.Line (Int(Tmax / T) + .Line1.X1, .Line2.Y2 - Int(3000 * Ymax)) _
-(Int(Tmax / T) + .Line1.X1, .Line2.Y2), vbBlack
.picDoThi.Line (.Line1.X1, .Line2.Y2 - Int(Ymax * 3000)) _
-(.Line1.X1 + Int(Tmax / T), .Line2.Y2 - Int(Ymax * 3000)), vbBlack
.picDoThi.DrawStyle = vbSolid
' Ve mui ten
.picDoThi.Line (Int(Tod / T) + .Line1.X1 + 500, .Line2.Y2 - Int(Yod * 3000 * 1.02)) _
-(Int(Tod / T) + .Line1.X1 + 500, .Line2.Y2 - Int(Yod * 3000 * 1.02) - 500)
.picDoThi.Line (Int(Tod / T) + .Line1.X1 + 500, .Line2.Y2 - Int(Yod * 3000 * 0.98)) _
-(Int(Tod / T) + .Line1.X1 + 500, .Line2.Y2 - Int(Yod * 3000 * 0.98) + 500)
.picDoThi.Line (Int(Tod / T) + .Line1.X1 + 500, .Line2.Y2 - Int(Yod * 3000 * 1.02)) _
-(Int(Tod / T) + .Line1.X1 + 470, .Line2.Y2 - Int(Yod * 3000 * 1.02) - 150)
.picDoThi.Line (Int(Tod / T) + .Line1.X1 + 500, .Line2.Y2 - Int(Yod * 3000 * 1.02)) _
-(Int(Tod / T) + .Line1.X1 + 530, .Line2.Y2 - Int(Yod * 3000 * 1.02) - 150)
.picDoThi.Line (Int(Tod / T) + .Line1.X1 + 500, .Line2.Y2 - Int(Yod * 3000 * 0.98)) _
-(Int(Tod / T) + .Line1.X1 + 470, .Line2.Y2 - Int(Yod * 3000 * 0.98) + 150)
.picDoThi.Line (Int(Tod / T) + .Line1.X1 + 500, .Line2.Y2 - Int(Yod * 3000 * 0.98)) _
-(Int(Tod / T) + .Line1.X1 + 530, .Line2.Y2 - Int(Yod * 3000 * 0.98) + 150)
' Hien thi ghi chu
.Label11.Top = .Line2.Y2 - Int(3000 * Ymax) - 300
.Label11.Left = Int(Tmax / T) * 2 + .Line1.X1 + 50
.Label11.Caption = "Ymax"
.Label12.Top = .Line2.Y2 - Int(3000 * Yod) - 400
.Label12.Left = Int(Tod / T) + .Line1.X1 - 200
.Label12.Caption = "2%Y«®"
.Label13.Top = .Line2.Y2 - Int(Yod * 3000) - 400
.Label13.Left = 3200 * 2
.Label13.Caption = "Y«®"
.Label14.Top = .Line2.Y2 - 400
.Label14.Left = Int(Tmax / T) + .Line1.X1 + 50
.Label14.Caption = "Tmax"
.Label15.Top = .Line2.Y2 - 400
.Label15.Left = Int(Tod / T) + .Line1.X1 + 50
.Label15.Caption = "T«®"
End With
End Sub
'Hien thi 100 gia tri vao day
Public Sub InGiaTriNext()
Dim K As Integer
frm3.cmdNext.Enabled = True
For K = 0 To 9
frm3.Text1(K).Text = Str(Y(CI))
frm3.Label1(K).Caption = "Y(" + Str(CI) + ")"
CI = CI + 10
Next K
If (CI >= 1000) Then
frm3.cmdNext.Enabled = False
End If
End Sub
Sau khi cho ch¹y ch¬ng tr×nh ta cã ®êng cong qu¸ tr×nh qu¸ ®é cña hÖ §KT§ vµ tÝnh c¸c ®Æc tÝnh qu¸ ®é nh:
Ta cho thö K1 = 12;K2 =0.1; K3 = 1 ; T1=0.5; T2 =0.5
Tõ ®å thÞ trªn ta cã:
Gi¸ trÞ cùc ®¹i ;
§é qu¸ ®iÒu chØnh: 17,32%
Gi¸ trÞ æn ®Þnh:
Thêi gian ®¹t gi¸ trÞ max:
Thêi gian ®¹t gi¸ trÞ æn ®Þnh:
2.4.In 100 gi¸ trÞ
2.5.M« pháng trªn phÇn mÒn Matlab
*Sö dông simukinkm« pháng hÖ thèng
*Ch¬ng tr×nh Matlab:
>> w1=tf([0 12],[.5 1])
Transfer function:
12
---------
0.5 s + 1
>> w2=tf([0 .1],[.25 1 1])
Transfer function:
0.1
----------------
0.25 s^2 + s + 1
>> w3=1
w3 =
1
>> wh=w1*w2
Transfer function:
1.2
--------------------------------
0.125 s^3 + 0.75 s^2 + 1.5 s + 1
>> wk=feedback(wh,w3)
Transfer function:
1.2
----------------------------------
0.125 s^3 + 0.75 s^2 + 1.5 s + 2.2
>> step(wk)
§êng cong qu¸ tr×nh qu¸ ®é do ch¬ng tr×nh Matlab vÏ ra nh h×nh díi ®©y
So s¸nh gi÷a 2 ®å thÞ trªn ta thÊy chóng trïng nhau, ®iÒu ®ã chøng tá thuËt to¸n cña chóng ta lµ ®óng ®¾n.
Các file đính kèm theo tài liệu này:
- Khảo sát quá trình quá độ của hệ điều khiển tự động.DOC