Đồ án Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha

pdf 66 trang huongle 3200
Bạn đang xem 20 trang mẫu của tài liệu "Đồ án Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfdo_an_nghien_cuu_thiet_ke_he_thong_dieu_khien_so_cho_dong_co.pdf

Nội dung text: Đồ án Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha

  1. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha MỤC LỤC LỜI MỞ ĐẦU . 1 CHƯƠNG I. TỔNG QUAN VỀ HỆ THỐNG ĐIỀU KHIỂN SỐ ĐỘNG CƠ KĐB 3 PHA 3 1. GIỚI THIỆU HỆ THỐNG ĐIỀU KHIỂN SỐ ĐCKĐB 3 PHA 3 1.1. S ơ đồ cấu trúc hê thống điều khiển số 3 1.2. Các phƣơng pháp điều khiển động cơ không đồng bộ 4 1.2.1. P hƣơng pháp điều chỉnh điện áp ĐCKĐB 3 pha ( giữ nguyên tần số) 5 1.2.2. Đ iều chỉnh tốc độ ĐCKĐB bằng điều chỉnh điện trở mạch roto . 7 1.2.3. P hƣơng pháp điều chỉnh tần số .8 2. PHÂN TÍCH HỆ THỐNG ĐIỀU KHIỂN SỐ. 12 2.1. H àm truyền đạt và phƣơng trình trạng thài đối tƣợng 12 2.2. K iểm tra tính điều khiển đƣợc và tính quan sát đƣợc của đối tƣợng . 13 2.3. X ét ổn định của đối tƣợng . 14 3
  2. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha 2.4. X ét ổn định của hệ thống kín khi chua có bộ điều khiển 14 2.5. Q uá trình quá độ của hệ thống kín khi chua có bộ điều khiển . 15 2.6. S o sánh kết quả với Matlab / Simulink 18 3. TỔNG HỢP HỆ THỐNG 20 3.1. T ổng hợp hệ thống dung bộ điều khiển PID 20 3.1.1. Bộ điều khiển PID và việc tìm các thông số cho bộ điều khiển PID 20 3.1.2. Chọn thông số cho bộ điều khiển PID 22 3.2. Tổng hợp hệ thống dung hồi tiếp trạng thái . .26 3.2.1.Nhắc lại về mô hình của đối tƣợng 26 3.2.2.Các phƣơng pháp tìm bộ hồi tiếp trạng thái 27 3.2.3. Phƣơng pháp chọn điểm cực của Bassel 28 3.2.4. Xây dựng bộ ƣớc lƣợng trạng thái ( bộ quan sát trạng thái ) 29 3.2.5. Tổng hợp hế thống dung hồi tiếp trạng thái .31 3.2.6. So sánh hai bộ điều khiển tìm đƣợc 36 4
  3. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha CHƯƠNG II. THIẾT KẾ PHẦN CỨNG HỆ THỐNG ĐIỀU KHIỂN SỐ ĐỘNG CƠ KĐB 3 PHA 37 1. SƠ ĐỒ KHỐI VẦ Ý TƢỞNG THIẾT KẾ . . 37 2. S Ơ ĐỒ MẠCH GÉP NỐI VÀO / RA . 40 3. G IẢI THÍCH SƠ ĐỒ MẠCH NGUYÊN LÝ 40 CHƯƠNG III. THIẾT KẾ PHẦN MỀM HỆ THỐNG ĐIỀU KHIỂN SỐ ĐỘNG CƠ KĐB 3 PHA 46 1. PHƢƠNG THÌNH SAI PHÂN CỦA BỘ ĐIỀU KHIỂN 46 2. P HƢƠNG ÁN XÂY DỰNG CHƢƠNG TRÌNH ĐIỀU KHIỂN 47 3. CHỌN CÔNG CỤ LẬP TRÌNH . 48 4. MÃ NGUỒN CHƢƠNG TRÌNH . 48 KẾT LUẬN . . 65 TÀI LIỆU THAM KHẢO . 66 5
  4. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha Ch•¬ng I TỔNG QUAN VỀ HỆ THỐNG ĐIỀU KHIỂN SỐ ĐỘNG CƠ KĐB 3 PHA 3. GIỚI THIỆU HỆ THỐNG ĐIỀU KHIỂN SỐ ĐCKĐB 3 PHA 1.1. S¬ ®å cÊu tróc hÖ thèng ®iÒu khiÓn sè C¸c hÖ thèng ®iÒu khiÓn b»ng m¸y tÝnh (®iÒu khiÓn sè) ngµy cµng ®•îc sö dông réng r·i trong c«ng nghiÖp. Chóng ®ãng mét vai trß quan träng trong viÖc ®iÒu khiÓn c¸c qu¸ tr×nh c«ng nghÖ, n¬i ®ßi hái sù kÕt hîp gi÷a m¸y tÝnh víi c¬ cÊu chÊp hµnh ®Ó thùc hiÖn mét lo¹t c¸c nhiÖm vô kh¸c nhau. ViÖc sö dông m¸y tÝnh sè nh• lµ mét thiÕt bÞ bï (compensator) hay mét thiÕt bÞ ®iÒu khiÓn (controller) ®· ph¸t triÓn suèt h¬n hai thËp kû qua bëi sù hiÖu qu¶ vµ ®é tin cËy ngµy cµng cao cña nã. H×nh 1 d•íi ®©y lµ vÝ dô cho s¬ ®å khèi cña mét hÖ thèng ®iÒu khiÓn sè m¹ch ®¬n. M¸y tÝnh sè trong hÖ thèng nµy cã nhiÖm vô nhËn sù sai kh¸c gi÷a tÝn hiÖu ®Æt víi tÝn hiÖu ph¶n håi vÒ d¹ng sè vµ thùc hiÖn viÖc tÝnh to¸n ®Ó ®•a ra tÝn hiÖu ®iÒu khiÓn d¹ng sè. M¸y tÝnh cã thÓ ®•îc lËp tr×nh ®Ó víi ®Çu ra ®ã, chÊt l•îng cña hÖ thèng ®¹t ®•îc hoÆc gÇn ®¹t ®•îc chÊt l•îng mong muèn. NhiÒu m¸y tÝnh cßn cã thÓ nhËn vµ thao t¸c víi mét sè ®Çu vµo, do ®ã mét hÖ thèng ®iÒu khiÓn sè th•êng cã thÓ lµ mét hÖ thèng ®a biÕn. M¸y tÝnh nhËn vµ xö lý c¸c tÝn hiÖu d¹ng sè, tr¸i ng•îc víi c¸c tÝn hiÖu liªn tôc. Mét hÖ thèng ®iÒu khiÓn sè sö dông tÝn hiÖu sè vµ m¸y tÝnh ®Ó ®iÒu khiÓn mét qu¸ tr×nh. Do ®ã sè liÖu ®o sÏ ®•îc chuyÓn ®æi tõ d¹ng t•¬ng tù sang d¹ng sè b»ng bé biÕn ®æi t•¬ng tù - sè (ADC - Analog to Digital Converter) nh• ®•îc chØ ra trªn h×nh 1. Sau khi xö lý c¸c ®Çu vµo, m¸y tÝnh sÏ ®•a ra ®Çu ra d¹ng sè vµ sau ®ã tÝn hiÖu nµy ®•îc chuyÓn ®æi sang d¹ng t•¬ng tù nhê bé biÕn ®æi sè - t•¬ng tù (DAC - Digital to Analog Converter). Reference Output Input (analog) Digital (digital) (analog) (digital) Actuator computer DAC (digital) (analog) ADC Sensors H×nh 1: VÝ dô vÒ s¬ ®å khèi cña mét hÖ thèng ®iÒu khiÓn sè 6
  5. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha Mét c¸ch tæng qu¸t, ta cã s¬ ®å khèi cña hÖ thèng ®iÒu khiÓn sè (HT§KS) nh• h×nh 2. Interface Power Object out Amplifier PC Interface Pre- in Amplifier Sensor H×nh 2: S¬ ®å khèi tæng qu¸t cña hÖ thèng ®iÒu 1.2. C¸c ph•¬ng ph¸p ®iÒu khiÓn ®éngkhiÓn c¬ sè kh«ng ®ång bé ba pha §éng c¬ kh«ng ®ång bé (§CK§B) ba pha ®•îc sö dông réng r·i trong c«ng nghiÖp, tõ c«ng suÊt nhá ®Õn c«ng suÊt trung b×nh vµ chiÕm tû lÖ rÊt lín so víi nh÷ng ®éng c¬ kh¸c. ¦u ®iÓm cña nã lµ dÔ chÕ t¹o, vËn hµnh an toµn, sö dông nguån ¸p trùc tiÕp tõ l•íi ®iÖn xoay chiÒu 3 pha. Tuy nhiªn, tr•íc ®©y, c¸c hÖ thèng truyÒn ®éng §CK§B cã ®iÒu chØnh tèc ®é l¹i chiÕm tû lÖ rÊt nhá do viÖc ®iÒu chØnh tèc ®é §CK§B khã kh¨n h¬n §C mét chiÒu. Trong thêi gian gÇn ®©y, do viÖc ph¸t triÓn m¹nh c«ng nghiÖp chÕ t¹o b¸n dÉn c«ng suÊt vµ kü thuËt ®iÖn tö tin häc, §CK§B míi khai th¸c ®•îc c¸c •u ®iÓm cña m×nh vµ dÇn cã xu h•íng thay thÕ cho §C mét chiÒu trong c¸c hÖ truyÒn ®éng. §Ó ®iÒu chØnh tèc ®é §CK§B 3 pha, tr•íc hÕt ta viÕt l¹i ph•¬ng tr×nh ®Æc tÝnh c¬ : 3U 2R M 1 2 2 (1) R s R 2 X 2 1 1 s nm trong ®ã : 1 _tèc ®é gãc cña tõ tr•êng quay 2 f f víi f _ tÇn sè cña ®iÖn ¸p stator 1 p 1 p _ sè ®«i cùc tõ U1 _ trÞ sè hiÖu dông cña ®iÖn ¸p pha stator R1 _ ®iÖn trë cña cuén d©y stator ' R2 _ ®iÖn trë rotor ®· quy ®æi vÒ stator X nm _ ®iÖn kh¸ng ng¾n m¹ch s _ hÖ sè tr•ît cña ®éng c¬ 7
  6. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha s 1 víi lµ tèc ®é gãc cña ®éng c¬ 1 Ph•¬ng tr×nh (1) cho thÊy M=f(s) phô thuéc vµo c¸c ®¹i l•îng U1, 1, R2’. T•¬ng øng víi c¸c ®¹i l•îng ®ã ta cã ph•¬ng ph¸p ®iÒu chØnh ®iÖn ¸p ®éng c¬, ph•¬ng ph¸p ®iÒu chØnh ®iÖn trë m¹ch rotor vµ ph•¬ng ph¸p ®iÒu chØnh tÇn sè. Sau ®©y chóng ta sÏ xem xÐt lÇn l•ît tõng ph•¬ng ph¸p vµ ý t•ëng thùc hiÖn chóng trong c¸c HT§KS. 1.2.1. Ph•¬ng ph¸p ®iÒu chØnh ®iÖn ¸p §CK§B ba pha (gi÷ nguyªn tÇn sè) Nh• ®· tr×nh bµy ë phÇn trªn, momen cña §CK§B ba pha tû lÖ víi b×nh ph•¬ng ®iÖn ¸p ®Æt lªn stator. §iÒu ®ã cã nghÜa lµ nÕu thay ®æi ®iÖn ¸p stator th× m« men cña ®éng c¬ sÏ thay ®æi ®i b×nh ph•¬ng lÇn. Dùa vµo ®ã cã thÓ ®iÒu khiÓn ®•îc tèc ®é cña §CK§B ba pha. S¬ ®å khèi nguyªn lÝ vµ ®Æc tÝnh c¬ ®iÒu chØnh cña ph•¬ng ph¸p nµy ®•îc chØ ra trªn h×nh 3. a) b) Ul,fl ®ttn,U®m,Rf=0 §AXCC U®k ®tgh,U®m,Rf fl Ub sth Ub2 Ub1 Rf Mc 0 M Mth H×nh 3: §iÒu chØnh ®iÖn ¸p §CK§B: a) S¬ ®å khèi nguyªn lý. b) §Æc tÝnh c¬ ®iÒu chØnh. §Ó ®iÒu chØnh ®iÖn ¸p §CK§B, ph¶i dïng c¸c bé biÕn ®æi ®iÖn ¸p xoay chiÒu. Bé biÕn ®æi ®iÖn ¸p xoay chiÒu phæ biÕn nhÊt hiÖn nay lµ sö dông van b¸n dÉn cã cùc ®iÒu khiÓn (h×nh 4). B»ng c¸ch thay ®æi c¸c tÝn hiÖu ®iÒu khiÓn ®ãng më c¸c van b¸n dÉn, ta cã thÓ ®iÒu chØnh ®•îc ®iÖn ¸p stator, tõ ®ã thay ®æi ®•îc tèc ®é ®éng c¬. ViÖc ph¸t ra xung ®iÒu khiÓn hoµn toµn cã thÓ thùc hiÖn ®•îc b»ng m¸y tÝnh. TÝn hiÖu tõ vi xö lý qua c¸c bé biÕn ®æi 8
  7. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha cã thÓ ®•a tíi khèi ®iÒu khiÓn Thyristor. §ång thêi tÝn hiÖu ph¶n håi dßng vµ ph¶n håi tèc ®é cña ®éng c¬ ®•îc ®•a vÒ vi xö lý th«ng qua bé biÕn ®æi ®Ó vi xö lý tÝnh to¸n ®•a ra tÝn hiÖu ®iÒu khiÓn. H×nh 5 sau ®©y sÏ minh ho¹ cho c¸c diÔn gi¶i trªn. H×nh 4: §AXC dïng van b¸n dÉn §AXC Data Buffer Latch ADC > VXL M¹ch K§ gi¶i m· Latch DAC B§ H×nh 5: S¬ ®å khèi cña ph•¬ng ph¸p ®iÒu chØnh ®iÖn ¸p stator 9
  8. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha Ph•¬ng ph¸p ®iÒu chØnh ®iÖn ¸p stator cã nh•îc ®iÓm lµ g©y ra tæn thÊt n¨ng l•îng, nhÊt lµ khi ®iÖn ¸p kh«ng sin sÏ sinh ra dßng Fuc« lµm nãng ®éng c¬. 1.2.2. §iÒu chØnh tèc ®é ®éng c¬ kh«ng ®ång bé b»ng ®iÒu chØnh ®iÖn trë m¹ch rotor a. S¬ ®å m¹ch nguyªn lý b. Nguyªn lý ®iÒu chØnh §iÒu chØnh ®iÖn trë rotor b»ng ph•¬ng ph¸p xung. Khi ®iÖn ¸p ®•îc chØnh l•u bëi cÇu diode, ®•îc cÊp vµo m¹ch ®iÒu chØnh gåm cã ®iÖn trë R0 nèi song song víi mét kho¸ b¸n dÉn T1. Kho¸ nµy sÏ ®•îc ®ãng c¾t theo chu kú ®Ó ®iÒu chØnh gi¸ trÞ trung b×nh cña ®iÖn trë toµn m¹ch. c. Ph•¬ng ph¸p ®iÒu chØnh Khi kho¸ T1 ®ãng, ®iÖn trë R0 bÞ lo¹i ra khái m¹ch, dßng rotor t¨ng lªn, khi kho¸ T1 më ®iÖn trë R0 l¹i ®•îc ®•a vµo m¹ch, dßng ®iÖn rotor gi¶m. Nhê cã ®iÖn c¶m L mµ dßng rotor coi nh• kh«ng ®æi. Víi tÇn sè ®ãng ng¾t nhÊt ®Þnh, ta cã mét gi¸ trÞ ®iÖn trë t•¬ng ®•¬ng Re trong m¹ch. 10
  9. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha Ph•¬ng ph¸p ®iÒu chØnh nµy râ rµng chØ ¸p dông ®•îc víi ®éng c¬ kh«ng ®ång bé rotor d©y quÊn, trong khi ®éng c¬ kh«ng ®ång bé rotor lång sãc ®•îc dïng phæ biÕn h¬n bëi cÊu t¹o ®¬n gi¶n, ®é tin cËy cao vµ kh«ng cÇn b¶o d•ìng. V× vËy ta kh«ng cÇn quan t©m ®Õn ph•¬ng ph¸p nµy l¾m. 1.2.3. Ph•¬ng ph¸p ®iÒu chØnh tÇn sè Ph•¬ng ph¸p ®iÒu chØnh ®iÖn ¸p stator vµ ®iÒu chØnh ®iÖn trë rotor ¸p dông chñ yÕu cho viÖc ®iÒu khiÓn §CK§B ba pha rotor d©y quÊn. ViÖc ®iÒu khiÓn §CK§B 3 pha rotor lång sãc tr•íc ®©y rÊt khã thùc hiÖn. Ngµy nay, sù ph¸t triÓn m¹nh mÏ cña ®iÖn tö c«ng suÊt lín vµ kü thuËt vi xö lý ®· më ra kh¶ n¨ng øng dông cã hiÖu qu¶ ph•¬ng ph¸p ®iÒu khiÓn ®éng c¬ lång sãc b»ng thiÕt bÞ biÕn tÇn. Ph•¬ng ph¸p nµy cho phÐp ®iÒu chØnh tèc ®é ®éng c¬ trong ph¹m vi réng víi ®é chÝnh x¸c cao. Khi ®iÒu chØnh tÇn sè, ®Ó duy tr× chÕ ®é lµm viÖc tèt nhÊt, ph¶i ®iÒu chØnh c¶ ®iÖn ¸p stator. §èi víi hÖ thèng biÕn tÇn nguån ¸p th•êng cã yªu cÇu gi÷ cho kh¶ n¨ng qu¸ t¶i vÒ momen lµ kh«ng ®æi: M th const M trong ®ã: _ hÖ sè qu¸ t¶i m« men Mth _ m« men tíi h¹n Víi ®Æc tÝnh c¬ d¹ng gÇn ®óng cña m¸y s¶n xuÊt lµ : 11
  10. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha x M c M dm dm Mc _ m« men øng víi tèc ®é Mdm _ m« men øng víi tèc ®é ®Þnh møc dm x_ hÖ sè tuú thuéc vµo lo¹i m¸y s¶n xuÊt Ta cã luËt ®iÒu chØnh ®iÖn ¸p lµ : x 1 U f 2 1 1 U1dm f1dm hay ë d¹ng ®¬n vÞ kh«ng tªn: x 1 2 u1 f1 S¬ ®å khèi nguyªn lý vµ ®Æc tÝnh c¬ ®•îc cho trong h×nh d•íi. Udm , fdm 0dm U,f 0 Mc 0 M Mth Mthdm FG _ m¸y ph¸t hµm Ru _ bé ®iÒu chØnh ®iÖn ¸p Rf _ bé ®iÒu chØnh tÇn sè ë ®©y ta sÏ xÐt ®Õn bé biÕn tÇn nguån ¸p lµm viÖc theo nguyªn lý ®iÒu chÕ ®é réng xung (PWM –Pulse Width Modulation). Bé biÕn tÇn nµy cho phÐp ®iÒu chØnh ®ång thêi c¶ tÇn sè vµ ®iÖn ¸p. MÆt kh¸c, nã cßn t¹o ra ®•îc ®iÖn ¸p vµ dßng ®iÖn gÇn nh• h×nh sin (h×nh 6) 12
  11. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha H×nh 6: S¬ ®å bé biÕn tÇn nguån ¸p B»ng ph•¬ng ph¸p PWM ta cã gi¶n ®å ®iÖn thÕ vµ ®iÖn ¸p pha A nh• h×nh 7. H×nh 7: Ph•¬ng ph¸p PWM H×nh 8 d•íi ®©y lµ s¬ ®å khèi cña hÖ thèng ®iÒu khiÓn sè dïng ®Ó ®iÒu khiÓn §CK§B ba pha rotor lång sãc sö dông thiÕt bÞ biÕn tÇn (VF_Varied Frequency). 13
  12. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha Data DAC VF Buffer VXL Encoder M¹ch gi¶i Couter m· H×nh 8: M« h×nh hÖ ®iÒu khiÓn sè HÖ thèng ®iÒu khiÓn §CK§B rotor lång sãc b»ng biÕn tÇn lµ hÖ thèng truyÒn ®éng ®iÖn ®iÒu chØnh cã nhiÒu triÓn väng øng dông. ViÖc nghiªn cøu hÖ thèng nµy cã nhiÒu xu h•íng kh¸c nhau. Nh•îc ®iÓm cña nã lµ gi¸ thµnh cao, phøc t¹p. Theo xu h•íng ph¸t triÓn hiÖn nay cña c¸c hÖ thèng ®iÒu khiÓn truyÒn ®éng ®iÖn vµ c¨n cø vµo yªu cÇu cô thÓ cña ®Ò bµi, ph•¬ng ph¸p ®iÒu khiÓn §CK§B ba pha rotor lång sãc dïng biÕn tÇn sÏ ®•îc sö dông trong bµi tËp nµy. S¬ ®å khèi cña hÖ thèng ®iÒu khiÓn sÏ ®•îc x©y dùng nh• trong h×nh 8. 14
  13. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha 4. PHÂN TÍCH HỆ THỐNG ĐIỀU KHIỂN SỐ Khi ch•a cã bé ®iÒu khiÓn trong hÖ thèng, s¬ ®å khèi cña hÖ thèng nh• sau: K K y v u W (s) b W (s) dc ZOH bt T s 1 dc T s 1 T b dc Trong ®ã:  Wbt(s) lµ hµm truyÒn cña biÕn tÇn, víi: Kb = 65; Tb = 0.02 (s)  Wdc(s) lµ hµm truyÒn cña ®éng c¬, víi: Kdc = 6 - 10; Tdc = 0.1 (s) H»ng sè thêi gian nhá nhÊt trong ®èi t•îng lµ Tb = 0.02 (s) nªn chu k× lÊy mÉu T ph¶i nhá h¬n 0.02 (s). C¨n cø vµo kh¶ n¨ng ho¹t ®éng cña m¸y tÝnh vµ ®iÒu kiÖn trªn, chän chu k× lÊy mÉu T = 0.005 s = 5 ms. Cho Kdc = 9. 2.1. Hµm truyÒn ®¹t vµ ph•¬ng tr×nh tr¹ng th¸i cña ®èi t•îng: §èi t•îng ®iÒu khiÓn ë ®©y bao gåm biÕn tÇn vµ ®éng c¬. Nh• vËy hµm 65K truyÒn cña ®èi t•îng lµ W (s) W .W dc . dt bt dc (0.02s 1)(0.1s 1) ChuyÓn hµm truyÒn cña ®èi t•îng sang d¹ng rêi r¹c (miÒn Z) víi chu k× lÊy mÉu T = 0.005 s = 5 ms ta cã: z 1 W (s) W (z) .Z dt dt z s W (s) 65K 1 0.25 1.25 Z dt Z dc 65K .Z s s(0.02s 1)(0.1s 1) dc s s 50 s 10 W (s) z 0.25z 1.25z Z dt 65K s dc z 1 z e 50T z e 10T Suy ra: z 1 z 0.25z 1.25z 0.25(z 1) 1.25(z 1) W (z) .65K 65K 1 dt z dc z 1 z e 50T z e 10T dc z e 50T z e 10T (z e 50T )(z e 10T ) 0.25(z 1)(z e 10T ) 1.25(z 1)(z e 50T ) 65K dc (z e 50T )(z e 10T ) §Æt A = e-50T , B = e-10T ta cã: 15
  14. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha z 2 (A B)z AB (z 1)( z 1.25A 0.25B) W (z) 65K dt dc (z A)(z B) (0.25A 1.25B 1)z (AB 1.25A 0.25B) 65K dc z 2 (A B)z AB Thay T = 0.005s cã: A = 0.7788; B = 0.9512 vµ do ®ã: 0.3705K .z 0.3311K W (z) dc dc (3.1) dt z 2 1.73z 0.7408 ChuyÓn sang ph•¬ng tr×nh tr¹ng th¸i: 1.73 0.7408 1 x(k 1) .x(k) u(k) 1 0 0 (3.2) y(k) 0.3705K dc 0.3311K dc x(k) Hai c«ng thøc trªn lµ hµm truyÒn ®¹t vµ ph•¬ng tr×nh tr¹ng th¸i cña ®èi t•îng (bao gåm biÕn tÇn vµ ®éng c¬) trong miÒn rêi r¹c víi chu k× lÊy mÉu lµ 5ms hay 0.005s. 2.2. KiÓm tra tÝnh ®iÒu khiÓn ®•îc vµ tÝnh quan s¸t ®•îc cña ®èi t•îng: Ta ®· x¸c ®Þnh ®•îc ph•¬ng tr×nh tr¹ng th¸i cña ®èi t•îng ®iÒu khiÓn (c«ng thøc 3.2). §Ó kiÓm tra tÝnh ®iÒu khiÓn ®•îc cña ®èi t•îng cÇn tÝnh ma trËn ®iÒu khiÓn ®•îc: Pd [Bd , Ad .Bd ] 1 1.73 0.7408 1 0 1 0 0 1 1.73 0 1 Cã det{Pd} = 1 0 suy ra rank{Pd} = 2 do ®ã ®èi t•îng lµ ®iÒu khiÓn ®•îc. §Ó kiÓm tra tÝnh quan s¸t ®•îc cña ®èi t•îng cÇn x¸c ®Þnh ma trËn quan s¸t ®•îc cña ®èi t•îng. Ta cã: 16
  15. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha Cd N d Cd .Ad 0.3705K dc 0.3311K dc 1.73 0.7408 0.3705K 0.3311K . dc dc 1 0 0.3705 0.3311 K dc 0.9721 - 0.2745 2 Suy ra det{Nd} = -0,4235.Kdc . NÕu Kdc 0 th× det{Nd} 0 vµ do ®ã rank{Nd} = 2 nªn ®èi t•îng quan s¸t ®•îc. Thùc tÕ th× lu«n cã Kdc 0 nªn ®èi t•îng lu«n quan s¸t ®•îc. Tøc lµ ta cã thÓ kh«i phôc ®•îc tr¹ng th¸i cña ®èi t•îng th«ng qua quan s¸t ®Çu ra cña ®èi t•îng (®Çu vµo ®•¬ng nhiªn lu«n biÕt). §ã lµ c¬ së ®Ó sau nµy cã thÓ thiÕt kÕ ®•îc bé quan s¸t tr¹ng th¸i phôc vô cho håi tiÕp tr¹ng th¸i. 2.3. XÐt æn ®Þnh cña ®èi t•îng: PhÇn nµy sÏ xÐt æn ®Þnh cña ®èi t•îng, nghÜa lµ xÐt æn ®Þnh cña mét hÖ thèng hë trong ®ã kh«ng cã bé ®iÒu khiÓn. C«ng thøc (3.1) ®· cho biÕt hµm truyÒn ®¹t rêi r¹c cña ®èi t•îng. Ph•¬ng tr×nh ®Æc tÝnh cña ®èi t•îng lµ z 2 1.73z 0.7408 0 . Gi¶i ph•¬ng tr×nh bËc hai nµy ta cã c¸c ®iÓm cùc cña ®èi t•îng lµ z1 = 0.9512 vµ z2 = 0.7788. C¸c ®iÓm cùc nµy ®Òu n»m bªn trong ®•êng trßn ®¬n vÞ, do vËy ®èi t•îng lµ æn ®Þnh, tøc lµ hÖ thèng hë lµ æn ®Þnh. Ngoµi ra, do c¸c ®iÓm cùc nµy ®Òu thùc nªn kh«ng cã qu¸ ®iÒu chØnh. 2.4. XÐt æn ®Þnh cña hÖ thèng kÝn khi ch•a cã bé ®iÒu khiÓn: XÐt ®èi t•îng trong mét hÖ thèng kÝn nh•ng ch•a cã bé ®iÒu khiÓn (xem h×nh vÏ). CÇn xÐt 65 Kdc æn ®Þnh cña hÖ 0.02s+1 0.1s+1 thèng nµy. Step Zero-Order Transfer Fcn Transfer Fcn1 Scope Hold Hµm truyÒn rêi r¹c cña ®èi t•îng ®•îc cho trong c«ng thøc (3.1): 0.3705K .z 0.3311K W (z) dc dc dt z 2 1.73z 0.7408 Hµm truyÒn ®¹t cña hÖ thèng cã håi tiÕp ©m lµ: 17
  16. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha Wdt (z) Wht (z) 1 Wdt (z) 0.3705K dc z 0.3311K dc 2 z 1.73z 0.7408 0.3705K dc z 0.3311K dc 0.3705K dc z 0.3311K dc 2 z (0.3705K dc 1.73)z (0.7408 0.3311K dc ) Víi Kdc = 9 ta cã: 3.3345z 2.9799 W (z) ht z 2 1.6045z 3.7207 Ph•¬ng tr×nh ®Æc tÝnh cña hÖ thèng lµ z2+1.6045z+3.7207=0 Gi¶i ph•¬ng tr×nh trªn ta cã c¸c ®iÓm cùc cña hÖ thèng lµ z1 = -0.8023 + 1.7542i vµ z2 = -0.8023 - 1.7542i. Mo®un cña hai ®iÓm cùc trªn ®Òu lµ ( 0.8023)2 1.75422 1.9289> 1, tøc lµ c¶ hai ®iÓm cùc ®Òu n»m ngoµi ®•êng trßn ®¬n vÞ, do ®ã hÖ kÝn kh«ng æn ®Þnh. 2.5. Qu¸ tr×nh qu¸ ®é cña hÖ thèng kÝn khi ch•a cã bé ®iÒu khiÓn: VÉn tiÕp tôc xÐt hÖ kÝn chØ chøa ®èi t•îng mµ kh«ng chøa bé ®iÒu khiÓn (m« h×nh trªn). Ta ®· x¸c ®Þnh ®•îc hµm truyÒn ®¹t rêi r¹c cña hÖ thèng kÝn lµ: 0.3705K dc z 0.3311K dc Wht (z) 2 z (0.3705K dc 1.73)z (0.7408 0.3311K dc ) 1 2 0.3705K dc z 0.3311K dc z 1 2 1 (0.3705K dc 1.73)z (0.7408 0.3311K dc )z Y(z) W (z) ChuyÓn sang ph•¬ng tr×nh sai ph©n ta cã: -1 -2 -1 Kdc(0.3705z + 0.3311z ).W(z) = [1+ (0.3705Kdc – 1.73)z + (0.7408 + -2 0.3311Kdc)z ].Y(z) Kdc[0.3705.w(k-1) + 0.3311.w(k-2)] = = y(k) + (0.3705Kdc – 1.73).y(k-1) + (0.7408 + 0.3311Kdc).y(k-2) y(k) = Kdc[0.3705.w(k-1) + 0.3311.w(k-2)] – - (0.3705Kdc – 1.73).y(k-1) - (0.7408 + 0.3311Kdc).y(k-2) Víi Kdc = 9 , ph•¬ng tr×nh sai ph©n trë thµnh: 18
  17. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha y(k) = 3,3345.w(k-1) + 2,9799.w(k-2) – 1,6045.y(k-1) – 3,7207.y(k-2) NÕu tÝn hiÖu vµo w(k) lµ Step th× ta cã: w(k)=1 khi k 0 & w(k)=0 khi k #include #include #include #include float y_old[2] = {0.0,0.0}; inline int w(register int k) { return (k > n; } while (n Nmax); 19
  18. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha int gm,gd=DETECT; initgraph(&gd,&gm,"c:\\Borland\\TC\\BGI"); if (graphresult() != grOk) { cerr ymax) ymax = yvalues[k]; if (yvalues[k] 0) ymin = 0; if (ymax = ymin) { tmp = (ymax - k*100.0)*scale_y + 49; line(32, tmp, 34, tmp); gcvt(k*100.0, 4, string); outtextxy(31, tmp, string); k; 20
  19. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha } moveto(34, ymax*scale_y+49); for (k=0; k<n; ++k) { lineto(34+scale_x*k, gety()); lineto(getx(), (ymax - yvalues[k])*scale_y + 49); } delete[] yvalues; getch(); closegraph(); return 0; } DÞch vµ ch¹y ch•¬ng tr×nh trªn víi sè b•íc tÝnh lµ 9, ta cã kÕt qu¶ qu¸ tr×nh qu¸ ®é nh• h×nh sau: 2.6. So s¸nh kÕt qu¶ víi MatLab / Simulink: Còng hÖ thèng trªn, m« pháng trªn MatLab ta cã: » Wdt = tf(65, [0.02 1])*tf(9, [0.1 1]) Transfer function: 585 0.002 s^2 + 0.12 s + 1 21
  20. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha » Wdtz=c2d(Wdt, 0.005, 'zoh') Transfer function: 3.313 z + 2.998 z^2 - 1.73 z + 0.7408 Sampling time: 0.005 » Wht=feedback(Wdtz, 1) Transfer function: 3.313 z + 2.998 z^2 + 1.583 z + 3.739 Sampling time: 0.005 » step(Wht, 0.04) KÕt qu¶ ta cã qu¸ tr×nh qu¸ ®é nh• h×nh sau: Step Response F r o m : U ( 1 ) 200 150 100 50 T o : Y ( 1 ) A m p litu d e 0 - 5 0 - 1 0 0 0 0 .0 0 5 0 .0 1 0 .0 1 5 0 .0 2 0 .0 2 5 0 .0 3 0 .0 3 5 0 .0 4 Time (sec.) Cã thÓ thÊy qu¸ tr×nh qu¸ ®é ®•îc vÏ b»ng MatLab vµ b»ng ch•¬ng tr×nh C++ lµ gièng hÖt nhau, ®iÒu ®ã cho thÊy kÕt qu¶ tÝnh to¸n ë c¸c phÇn tr•íc lµ chÝnh x¸c. 22
  21. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha 4. TỔNG HỢP HỆ THỐNG 3.1 Tæng hîp hÖ thèng dïng bé ®iÒu khiÓn PID: 3.1.1. Bé ®iÒu khiÓn PID vµ viÖc t×m c¸c th«ng sè cho bé ®iÒu khiÓn PID: Bé ®iÒu khiÓn PID (Proportional – Integral – Derivative) lµ bé ®iÒu khiÓn kinh ®iÓn, ®•îc sö dông rÊt nhiÒu khi tæng hîp hÖ thèng. MÆc dï hiÖn nay ®· cã c¸c ph•¬ng ph¸p tæng hîp hÖ thèng kh¸c tèt h¬n (nh• ph•¬ng ph¸p dïng håi tiÕp tr¹ng th¸i sÏ ®•îc xÐt ë phÇn II) nh•ng bé ®iÒu khiÓn PID vÉn tiÕp tôc ®•îc sö dông réng r·i. Bé ®iÒu khiÓn PID gåm ba thµnh phÇn: thµnh phÇn tØ lÖ, thµnh phÇn tÝch ph©n vµ thµnh phÇn vi ph©n. Mçi thµnh phÇn cã nh÷ng ¶nh h•ëng nhÊt ®Þnh ®Õn chÊt l•îng cña hÖ thèng, vµ viÖc lùa chän mét bé tham sè phï hîp cho ba thµnh phÇn ®ã sÏ ®em l¹i cho hÖ thèng chÊt l•îng mong muèn. Hµm truyÒn liªn tôc cña bé ®iÒu khiÓn PID cã thÓ ®•îc viÕt d•íi d¹ng sau: K W (s) K I K s PID P s D §Ó chuyÓn tõ bé PID liªn tôc sang bé PID sè cã vµi c¸ch kh¸c nhau. Mét ph•¬ng ph¸p lµ chuyÓn gÇn ®óng tõng thµnh phÇn cña bé PID liªn tôc sang d¹ng rêi r¹c nh• sau: . Thµnh phÇn tØ lÖ ®•îc gi÷ nguyªn. . Thµnh phÇn tÝch ph©n ®•îc lÊy gÇn ®óng theo Tustin: K K T(z 1) I I s 2(z 1) . Thµnh phÇn vi ph©n ®•îc lÊy gÇn ®óng theo c«ng thøc: K (z 1) K .s D D T.z Nh• vËy, hµm truyÒn rêi r¹c cña bé PID sè lµ: K T (z 1) K (z 1) W (z) K I D PID P 2(z 1) T.z 2.T.K .z.(z 1) K .T 2 .z.(z 1) 2K (z 1) 2 P I D 2.T.z.(z 1) K K K (K 0.5K T D )z 2 (K 0.5K T 2 D )z D P I T P I T T z(z 1) 23
  22. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha Cã thÓ thÊy, bé ®iÒu khiÓn PID sè cã 2 ®iÓm cùc (0 vµ 1) vµ tèi ®a 2 ®iÓm Zero. Cã nhiÒu ph•¬ng ph¸p kh¸c nhau ®Ó tæng hîp hÖ thèng dïng bé ®iÒu khiÓn PID nãi chung vµ bé ®iÒu khiÓn PID sè nãi riªng. Tuy nhiªn, hiÖn vÉn ch•a cã mét ph•¬ng ph¸p tæng qu¸t vµ chÝnh x¸c nµo ®Ó t×m ®•îc bé ®iÒu khiÓn PID tèt nhÊt cho mét hÖ thèng. C¸c ph•¬ng ph¸p cho ®Õn nay vÉn chØ cho phÐp x¸c ®Þnh mét c¸ch t•¬ng ®èi c¸c th«ng sè cña bé PID (®¸p øng ®•îc phÇn nµo chÊt l•îng mong muèn). Sau ®ã, ph¶i tiÕp tôc thay ®æi c¸c th«ng sè (trong mét l©n cËn xung quanh gi¸ trÞ t×m ®•îc) vµ “mß” cho ®Õn khi t×m ®•îc bé th«ng sè ®¸p øng yªu cÇu chÊt l•îng ®· ®Ò ra. Nh• vËy, viÖc x¸c ®Þnh c¸c th«ng sè cho bé PID mang nhiÒu tÝnh chÊt “mß mÉm”. TÊt nhiªn “mß mÉm” còng ph¶i cã ph•¬ng ph¸p. ViÖc dß t×m c¸c th«ng sè cho bé ®iÒu khiÓn PID ph¶i dùa trªn c¸c nguyªn t¾c vÒ ¶nh h•ëng cña tõng thµnh phÇn trong bé ®iÒu khiÓn PID ®Õn chÊt l•îng cña hÖ thèng. Mét c¸ch chung nhÊt, cã thÓ tãm t¾t c¸c nguyªn t¾c ®ã trong b¶ng sau: Rise Time Overshoot Settling Steady State Time Error KP Gi¶m T¨ng Thay ®æi Ýt Gi¶m KI Gi¶m T¨ng T¨ng TriÖt tiªu KD Thay ®æi Ýt Gi¶m Gi¶m Thay ®æi Ýt LÊy mét vÝ dô, víi sai lÖch tÜnh (Steady State Error), khi t¨ng KP sÏ lµm gi¶m sai lÖch tÜnh, t¨ng KI sÏ cã thÓ triÖt tiªu ®•îc sai lÖch tÜnh, cßn KD Ýt cã ¶nh h•ëng. TÊt nhiªn, c¸c nguyªn t¾c trªn kh«ng ®óng tuyÖt ®èi bëi ba th«ng sè trªn cã ¶nh h•ëng lÉn nhau vµ sù thay ®æi cña bÊt k× mét th«ng sè nµo còng cã thÓ g©y ¶nh h•ëng kh«ng nhá ®Õn t¸c dông cña hai th«ng sè cßn l¹i. Riªng ®èi víi bé PID sè, cã hai h•íng chÝnh ®Ó tæng hîp lµ: . H•íng thø nhÊt lµ tæng hîp bé ®iÒu khiÓn PID liªn tôc tr•íc, sau ®ã chuyÓn bé ®iÒu khiÓn t×m ®•îc sang miÒn rêi r¹c b»ng c«ng thøc gÇn ®óng ®· tr×nh bµy ë trªn. H•íng nµy chØ ¸p dông ®•îc khi chu k× lÊy mÉu cña hÖ sè nhá h¬n rÊt nhiÒu lÇn so víi h»ng sè thêi gian nhá nhÊt trong ®èi t•îng. . H•íng thø hai lµ tæng hîp trùc tiÕp trong miÒn rêi r¹c. Ph•¬ng ph¸p nµy kh«ng bÞ h¹n chÕ vÒ chu k× lÊy mÉu nh• ph•¬ng ph¸p trªn. Râ rµng, trong tr•êng hîp cô thÓ cña bµi tËp nµy, do chu k× lÊy mÉu (0.005s) kh«ng nhá h¬n nhiÒu so víi h»ng sè thêi gian nhá nhÊt trong ®èi t•îng (0.02s) nªn ta ph¶i chän ph•¬ng ph¸p thø hai, tøc lµ tæng hîp trùc tiÕp trong miÒn rêi r¹c. 24
  23. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha 3.1.2. Chän th«ng sè cho bé ®iÒu khiÓn PID: Ta ®· biÕt r»ng hÖ xung sè sÏ æn ®Þnh khi tÊt c¶ c¸c ®iÓm cùc (nghiÖm cña ph•¬ng tr×nh ®Æc tÝnh mµ kh«ng trïng víi ®iÓm cùc) cña hÖ thèng n»m trong ®•êng trßn ®¬n vÞ. VÞ trÝ cña c¸c ®iÓm cùc còng ¶nh h•ëng ®Õn chÊt l•îng cña qu¸ tr×nh qu¸ ®é. Tr•íc hÕt, cÇn ph¶i x¸c ®Þnh mét c¸ch t•¬ng ®èi bé th«ng sè cho bé ®iÒu khiÓn PID sao cho hÖ thèng tr•íc hÕt ph¶i æn ®Þnh, sau n÷a lµ ®¹t chÊt l•îng t•¬ng ®èi tèt. Trong tr•êng hîp nµy cã thÓ sö dông ph•¬ng ph¸p quÜ ®¹o nghiÖm sè ®Ó x¸c ®Þnh c¸c ®iÓm cùc cho hÖ thèng. Mét c«ng cô rÊt tiÖn lîi vµ m¹nh phôc vô cho môc ®Ých nµy ®· cã s½n trong MatLab, ®ã lµ ch•¬ng tr×nh rltool. Ch•¬ng tr×nh nµy cho phÐp thiÕt kÕ c¸c bé ®iÒu khiÓn trong mét hÖ kÝn b»ng c¸ch ®Æt vÞ trÝ cña c¸c ®iÓm cùc vµ ®iÓm Zero cña bé ®iÒu khiÓn (hay cßn gäi lµ bé bï – Compensator) vµ cña c¶ hÖ thèng. Sö dông ch•¬ng tr×nh nµy ®Ó t×m s¬ bé c¸c th«ng sè cho bé PID. Tr•íc hÕt ph¶i khai b¸o trong MatLab hµm truyÒn ®¹t rêi r¹c cña ®èi t•îng: >> Wdt = tf(65,[0.02 1])*tf(9,[0.1 1]) Transfer function: 585 0.002 s^2 + 0.12 s + 1 >> T = 0.005; Wdtz = c2d(Wdt,T,’zoh’) Transfer function: 3.313 z + 2.998 z^2 - 1.73 z + 0.7408 Sampling time: 0.005 Vµ gäi ch•¬ng tr×nh rltool b»ng lÖnh : >> rltool Sau khi ch•¬ng tr×nh rltool ®· ®•îc më, nhËp m« h×nh cña ®èi t•îng vµo b»ng c¸ch vµo menu File\Import Model. Mét hép tho¹i hiÖn ra cho phÐp nhËp m« h×nh cña ®èi t•îng vµo (xem h×nh bªn). Chän biÕn Wdtz cho ®èi t•îng P vµ chän OK. 25
  24. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha TiÕp theo cÇn nhËp m« h×nh cho bé bï (hay bé ®iÒu khiÓn). Ta ®· biÕt lµ bé ®iÒu khiÓn PID sè cã hai ®iÓm cùc lµ 0 vµ 1, vµ cã hai ®iÓm Zero. Do ®ã ta sÏ t¹o ra bé PID sè b»ng c¸ch thªm 2 ®iÓm cùc vµ 2 ®iÓm Zero cho bé bï. Chän menu Tool\Edit Compensator , mét hép tho¹i hiÖn ra cho phÐp t¹o c¸c ®iÓm cùc vµ ®iÓm Zero cña bé bï. Thªm c¸c ®iÓm cùc vµ ®iÓm Zero cho bé bï nh• mong muèn (xem h×nh bªn). Sau ®ã, quan s¸t trªn ®å thÞ quÜ ®¹o nghiÖm vµ tiÕn hµnh kÐo c¸c ®iÓm Zero cña bé bï vµ ®iÓm cùc cña hÖ thèng cho ®Õn khi ®¹t ®•îc vÞ trÝ nh• mong muèn. Sau mét thêi gian thö c¸c vÞ trÝ kh¸c nhau cña c¸c ®iÓm Zero vµ ®iÓm cùc, ta t×m ®•îc vÞ trÝ nh• trong h×nh d•íi ®©y víi chÊt l•îng c¬ b¶n lµ tèt. Tõ bé bï t×m ®•îc trªn rltool ta rót ra ®•îc c¸c th«ng sè PID sau: KP = 0.01812 KI = 0.1605 KD = 0.00026 §Ó thö l¹i bé PID ®· t×m ®•îc vµ còng ®Ó tiÖn lîi cho viÖc tiÕp tôc tinh chØnh c¸c th«ng sè PID võa t×m ®•îc, ta xËy dùng mét m« h×nh trªn Simulink. S¬ ®å m« h×nh trªn Simulink ®•îc cho ë h×nh d•íi. Trong ®ã chó ý lµ bé PID sè ®· ®•îc ®Æt mÆt n¹ (Mask). CÊu tróc bªn trong cña khèi PID sè còng ®•îc cho ë h×nh d•íi. TiÕn hµnh m« pháng trªn Simulink víi bé th«ng sè ®· t×m ®•îc, ta cã kÕt qu¶ nh• h×nh d•íi. 26
  25. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha 65 9 In1 Out1 0.02s+1 0.1s+1 Step Transfer Fcn Transfer Fcn1 Scope PID Zero-Order Hold M« h×nh m« pháng trªn Simulink Kp P Ki*T.z+Ki*T 1 1 In1 2z-2 Out1 I Kd.z-Kd T.z D S¬ ®å cÊu tróc bªn trong cña khèi PID sè 1 .4 1 .2 1 0 .8 0 .6 0 .4 0 .2 0 0 0 .0 1 0 .0 2 0 .0 3 0 .0 4 0 .0 5 0 .0 6 0 .0 7 0 .0 8 0 .0 9 0 .1 KÕt qu¶ m« pháng víi bé sè t×m ®•îc Qua ®å thÞ ta thÊy hÖ thèng cã ®é qu¸ ®iÒu chØnh nh•ng kh«ng lín, thêi gian ®iÒu chØnh kho¶ng 40ms vµ kh«ng cã sai lÖch tÜnh. Dïng Simulink ®Ó tinh chØnh c¸c th«ng sè, cuèi cïng ta cã bé sè nh• sau: KP = 0.01676 KI = 0.14224 KD = 0.000246 27
  26. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha Qu¸ tr×nh qu¸ ®é cña hÖ thèng víi bé 1 .4 th«ng sè trªn nh• sau: 1 .2 HÖ thèng cã ®é qu¸ ®iÒu chØnh < 1 1%, thêi gian qu¸ 0 .8 ®é kho¶ng 30ms. Nh• vËy hÖ thèng 0 .6 ®· ®¹t chÊt l•îng rÊt tèt. 0 .4 0 .2 0 0 0 .1 0 .2 0 .3 0 .4 0 .5 0 .6 0 .7 1 .4 §Ó kiÓm tra sù ¶nh h•ëng cña nhiÔu 1 .2 ®Õn hÖ thèng, ta cho mét nhiÔu ë ®Çu vµo 1 cña ®èi t•îng b¾t ®Çu t¹i thêi ®iÓm t = 0 .8 0.06s. KÕt qu¶ m« pháng trªn Simulink 0 .6 nh• sau: 0 .4 Cã thÓ thÊy lµ sau khi chÞu t¸c ®éng 0 .2 cña nhiÔu, hÖ thèng 0 lÖch khái gi¸ trÞ x¸c 0 0 .1 0 .2 0 .3 0 .4 0 .5 0 .6 0 .7 lËp nh•ng sau ®ã l¹i quay trë vÒ gi¸ trÞ x¸c lËp nµy (t¹i thêi ®iÓm 0.4s th× l¹i trë vÒ ®Õn gi¸ trÞ x¸c lËp). Nh• vËy nhiÔu kh«ng ¶nh h•ëng ®Õn sai lÖch tÜnh cña hÖ thèng. 28
  27. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha VËy bé PID sè ®•îc chän ë ®©y cã c¸c th«ng sè nh• sau: KP = 0.01676 KI = 0.14224 KD = 0.000246 vµ cã hµm truyÒn ®¹t lµ: 0.14224.T.(z 1) 0.000246.(z 1) W (z) 0.01676 PID 2(z 1) T.z 0.06632 z 2 - 0.1148z + 0.0492 z(z 1) 3.2. Tæng hîp hÖ thèng dïng håi tiÕp tr¹ng th¸i: MÆc dï bé ®iÒu khiÓn PID sè ®· ®•îc sö dông rÊt réng r·i vµ phæ biÕn nh•ng nã cã nhiÒu nh•îc ®iÓm khã kh¾c phôc nh•: viÖc tæng hîp vµ thiÕt kÕ phøc t¹p, mang nÆng tÝnh “mß mÉm”, kÐm chÝnh x¸c, chÊt l•îng khã cã thÓ cao, chØ ¸p dông ®•îc víi tõng tr•êng hîp cô thÓ mµ kh«ng thÓ tæng qu¸t ho¸, ch•a cã mét ph•¬ng ph¸p tæng qu¸t vµ chÝnh x¸c ®Ó thiÕt kÕ (t×m bé th«ng sè), HiÖn nay, ®· xuÊt hiÖn nhiÒu ph•¬ng ph¸p tæng hîp hÖ thèng hiÖn ®¹i h¬n, tèt h¬n vµ kh¾c phôc ®•îc c¸c nh•îc ®iÓm kÓ trªn cña bé PID sè. Mét trong c¸c ph•¬ng ph¸p ®ã lµ ph•¬ng ph¸p tæng hîp hÖ thèng dïng håi tiÕp tr¹ng th¸i. Sö dông ph•¬ng ph¸p nµy cã thÓ ¸p ®Æt kh¸ chÝnh x¸c c¸c ®iÓm cùc cho hÖ thèng, mµ ta ®· biÕt c¸c ®iÓm cùc sÏ quyÕt ®Þnh ®Õn tÝnh chÊt, chÊt l•îng cña hÖ thèng. PhÇn nµy sÏ tr×nh bµy ph•¬ng ph¸p tæng hîp hÖ thèng dïng håi tiÕp tr¹ng th¸i ¸p dông cho bµi tËp cô thÓ nµy. 3.2.1. Nh¾c l¹i vÒ m« h×nh cña ®èi t•îng Nh• ®· tr×nh bµy ë ch•¬ng 3, c«ng thøc (3.1) cho ta ph•¬ng tr×nh tr¹ng th¸i cña ®èi t•îng (bao gåm c¶ bé biÕn tÇn vµ ®éng c¬): 1.73 0.7408 1 x(k 1) .x(k) u(k) 1 0 0 y(k) 0.3705K dc 0.3311K dc x(k) trong ®ã Kdc lµ mét hÖ sè n»m trong kho¶ng tõ 6 ®Õn 10. Trong bµi tËp nµy ta ®· chän Kdc = 9. Trong ch•¬ng 3 còng ®· kiÓm tra tÝnh ®iÒu khiÓn ®•îc vµ tÝnh quan s¸t ®•îc cña ®èi t•îng vµ ®· kh¼ng ®Þnh : ®èi t•îng lµ quan s¸t ®•îc khi Kdc 0 mµ ®iÒu nµy lu«n tho¶ m·n, do ®ã ®èi t•îng lu«n quan s¸t ®•îc. §ång thêi ta còng ®· chøng minh ®èi t•îng lu«n ®iÒu khiÓn ®•îc víi mäi gi¸ trÞ cña 29
  28. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha Kdc . Hai tÝnh chÊt trªn lµ ®iÒu kiÖn quan träng ®Ó cã thÓ tæng hîp hÖ thèng dïng håi tiÕp tr¹ng th¸i. 3.2.2. C¸c ph•¬ng ph¸p t×m bé håi tiÕp tr¹ng th¸i Cho mét ®èi t•îng ®•îc m« t¶ b»ng ph•¬ng tr×nh tr¹ng th¸i sau: x(k 1) A.x(k) B.u(k) (3.2.1) y(k) C.x(k) C¸c ®iÓm cùc cña ®èi t•îng lµ nghiÖm cña ph•¬ng tr×nh ®Æc tÝnh: det(z.I – A) = 0. Gi¶i ph•¬ng tr×nh ®Æc tÝnh ta cã ®•îc c¸c ®iÓm cùc cña ®èi t•îng : {pc1, pc2, , pcn} w x y VÞ trÝ cña c¸c ®iÓm cùc sÏ B z-1 C ¶nh h•ëng ®Õn chÊt l•îng cña hÖ thèng. Gi¶ sö ta cÇn t×m mét bé håi tiÕp tr¹ng th¸i cho ®èi A t•îng trªn sao cho hÖ thèng (®· håi tiÕp) cã c¸c ®iÓm cùc nh• K mong muèn lµ {c1, c2, , cn}. M« h×nh cña hÖ thèng cã håi tiÕp tr¹ng th¸i ®•îc cho ë h×nh bªn. Cho ®Çu vµo w = 0 ta cã: x(k 1) A.x(k) B.u(k) u(k) K.x(k) (3.2.2) x(k 1) A.x(k) B.K.x(k) (A BK ).x(k) Nh• vËy hÖ míi sÏ cã ph•¬ng tr×nh ®Æc tÝnh lµ det(z.I – A + B.K) = 0 vµ theo yªu cÇu ®· ®Ò ra, ph•¬ng tr×nh ®Æc tÝnh nµy ph¶i cã nghiÖm lµ {pm1, pm2, , pmn}. Cã mét sè c¸ch ®Ó x¸c ®Þnh K tho¶ m·n yªu cÇu trªn nh• sau: a. C¸ch 1 V× ph•¬ng tr×nh ®Æc tÝnh míi det(z.I – A + B.K) = 0 ph¶i cã c¸c nghiÖm lµ {pm1, pm2, , pmn} nªn nã ph¶i cã d¹ng sau: n n-1 det(z.I – A + B.K) =(z - pm1)(z - pm2) (z - pmn)=z + c1.z + + cn Trong ®ã K chØ lµ mét vector c¸c hÖ sè : K = [K1, K2, , Kn]. Khai triÓn ®¼ng thøc trªn vµ c©n b»ng hÖ sè hai vÕ ta t×m ®•îc K = [K1, K2, , Kn] 30
  29. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha b. C¸ch 2 . Gäi P lµ ma trËn ®iÒu khiÓn ®•îc cña ®èi t•îng: P = [B, AB, , An-1B] . §Þnh nghÜa mét ma trËn W nh• sau: an 1 an 2  a1 1 an 2 an 3  1 0 W      a1 1  0 0 1 0  0 0 n n-1 trong ®ã det(z.I – A) = z + a1.z + + an . TÝnh ma trËn T = P.W . TÝnh K theo c«ng th•c sau: -1 K = [cn – an , cn-1 – an-1 , , c1 – a1 ].T c. C¸ch 3 n n-1 . TÝnh (A) = A + c1.A + + cn.I . TÝnh K theo c«ng thøc: K = [0, 0, 1].[B, AB, , An-1B]-1. (A) Ba c¸ch trªn tuy ph•¬ng ph¸p kh¸c nhau nh•ng lµ hoµn toµn t•¬ng ®•¬ng vµ ®Òu cho kÕt qu¶ gièng nhau. 3.2.3. Ph•¬ng ph¸p chän ®iÓm cùc cña Bessel Khi ®· cã ph•¬ng ph¸p t×m bé håi tiÕp tr¹ng th¸i th× vÊn ®Ò cßn l¹i b©y giê lµ chän ®iÓm cùc míi cña hÖ thèng thÕ nµo ®Ó hÖ thèng ®¹t chÊt l•îng nh• mong muèn. Bessel ®· x¸c ®Þnh c¸c ®iÓm cùc chuÈn cho c¸c hÖ thèng (liªn tôc) bËc k sao cho víi c¸c ®iÓm cùc ®ã, hÖ thèng ®¹t chÊt l•îng nh• sau: kh«ng cã qu¸ ®iÒu chØnh vµ thêi gian qu¸ ®é lµ T = 1s. Bessel ®· tæng kÕt c¸c ®iÓm cùc chuÈn ®ã trong b¶ng sau (chó ý ë ®©y chØ tr×nh bµy phÇn b¶ng cho c¸c hÖ thèng bËc 1,2,3 lµ c¸c bËc cã dïng ®Õn trong bµi tËp nµy). BËc §iÓm cùc chuÈn 1 - 4.6200 2 - 4.0530 2.3400i 3 - 5.0093, -3.9668 3.7845i NÕu muèn hÖ thèng cã qu¸ tr×nh qu¸ ®é kh«ng cã qu¸ ®iÒu chØnh vµ thêi gian qu¸ ®é lµ T bÊt k× (trong mét giíi h¹n nhÊt ®Þnh nµo ®ã) th× hÖ thèng cÇn 31
  30. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha cã c¸c ®iÓm cùc ®•îc x¸c ®Þnh b»ng c¸ch lÊy c¸c ®iÓm cùc chuÈn trong b¶ng cña Bessel chia cho T. Víi hÖ thèng xung – sè, ®Ó x¸c ®Þnh c¸c ®iÓm cùc cÇn thiÕt, tr•íc hÕt ta x¸c ®Þnh c¸c ®iÓm cùc trong miÒn liªn tôc theo qui t¾c trªn (gi¶ sö ®•îc c¸c ®iÓm cùc lµ p1, p2, , pn), sau ®ã chuyÓn c¸c ®iÓm cùc nµy sang miÒn Z theo T. pk c«ng thøc: zk e 3.2.4. X©y dùng bé •íc l•îng tr¹ng th¸i (bé quan s¸t tr¹ng th¸i) Mét vÊn ®Ò n¶y sinh khi tæng hîp hÖ thèng dïng håi tiÕp tr¹ng th¸i lµ trong thùc tÕ, hiÕm khi cã thÓ ®o ®•îc trùc tiÕp c¸c biÕn tr¹ng th¸i (x) cña ®èi t•îng. VËy, cÇn ph¶i lµm c¸ch nµo ®ã x¸c ®Þnh ®•îc c¸c biÕn tr¹ng th¸i cña ®èi t•îng chØ dùa trªn c¸c ®¹i l•îng ®o ®•îc hoÆc biÕt ®•îc (nh• tÝn hiÖu ®iÒu khiÓn, ®Çu ra cña ®èi t•îng, ). X©y dùng ®•îc mét hÖ thèng nh• thÕ chÝnh lµ x©y dùng mét bé •íc l•îng tr¹ng th¸i (hay bé quan s¸t tr¹ng th¸i). Bé •íc l•îng tr¹ng th¸i dùa vµo c¸c ®¹i l•îng §èi t•îng cã thÓ biÕt ®•îc lµ ®Çu vµo cña ®èi t•îng (chÝnh lµ tÝn hiÖu ®iÒu khiÓn) vµ ®Çu ra y cña ®èi t•îng ®Ó x¸c ®Þnh ~x(k 1) ~x(k) ~y z-1 tr¹ng th¸i cña ®èi t•îng. B C ChØ lµm ®•îc ®iÒu nµy khi ®èi t•îng lµ quan s¸t ®•îc. A Râ rµng ®èi t•îng trong bµi tËp nµy tho¶ m·n ®iÒu kiÖn ®ã, do vËy cã thÓ x©y dùng Ke ®•îc bé •íc l•îng tr¹ng th¸i cho ®èi t•îng. Bé •íc l•îng tr¹ng th¸i ®•îc x©y dùng theo m« h×nh bªn. Ta cã: x(k 1) A.x(k) B.u(k) ~x(k 1) A.~x(k) B.u(k) Ke.( y(k) ~y(k)) A.~x(k) B.u(k) Ke.(C.x(k) C.~x(k)) A.~x(k) B.u(k) Ke.C(x(k) ~x(k)) x(k 1) ~x(k 1) A.(x(k) ~x(k)) Ke.C.(x(k) ~x(k)) e(k 1) (A Ke.C).e(k) e(k) x(k 1) ~x(k 1) Môc ®Ých cña bé •íc l•îng tr¹ng th¸i lµ ph¶i lµm sao cho e(k) tiÕn ®Õn 0. NhËn thÊy hÖ ph•¬ng tr×nh trªn cã d¹ng gièng nh• hÖ (3.2.2). V× vËy ta cã thÓ ¸p dông ph•¬ng ph¸p ®Æt ®iÓm cùc ®Ó t×m Ke. 32
  31. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha Víi ®èi t•îng cô thÓ cña bµi tËp nµy, ta chän ®iÓm cùc theo Bessel cho hÖ bËc hai sao cho thêi gian qu¸ ®é lµ T = 0.005s, suy ra ®iÓm cùc cÇn thiÕt lµ: p1,2 = (- 4.0530 2.3400i) / 0.005 vµ trong miÒn Z th× ®iÓm cùc lµ: zp1,2 = exp(0.005.p1,2) = - 0.0121 0.0125i Suy ra ph•¬ng tr×nh ®Æc tÝnh míi ph¶i lµ: det(z.I – A + Ke.C) = (z – zp1)(z – zp2) = (z + 0.0121 + 0.0125i)( z + 0.0121 - 0.0125i) = z2 + 0.024164.z + 0.000302 Ta l¹i cã: det(z.I A Ke.C) 1 0 1.73 0.7408 Ke1 det(z. 0.3705K 0.3311K ) 0 1 1 0 Ke2 dc dc z 1.73 0.3705.Ke1.K 0.7408 0.3311Ke1.K det( dc dc ) 1 0.3705.Ke2.K dc z 0.3311Ke2.K dc 2 z (0.3705.Ke1.K dc 0.3311Ke2.K dc 1.73).z (0.7408 0.3311Ke1.K dc 0.8473Ke2.K dc ) C©n b»ng hai vÕ cña ph•¬ng tr×nh ®Æc tÝnh ta cã hÖ ph•¬ng tr×nh sau: 0.3705.Ke1.K 0.3311Ke2.K 1.73 0.024164 dc dc 0.7408 0.3311Ke1.K dc 0.8473Ke2.K dc 0.000302 Gi¶i ra ta cã nghiÖm: Ke1 = 2.9302/Kdc Ke2 = 2.0191/Kdc hay: 1 2.9302 Ke K dc 2.0191 §ã chÝnh lµ d¹ng tæng qu¸t cña Ke ¸p dông cho bé •íc l•îng tr¹ng th¸i. Thay sè Kdc = 9 ta cã: 0.32557 Ke 0.22434 33
  32. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha §Ó tiÖn lîi khi kh¶o s¸t vµ tæng hîp hÖ thèng sau nµy, ta sÏ x©y dùng mét khèi con (sub-system) trªn Simulink chøa bé •íc l•îng tr¹ng th¸i vµ ®Æt mÆt n¹ (Mask) cho nã råi ®•a vµo th• viÖn. S¬ ®å cÊu tróc cña bé •íc l•îng tr¹ng th¸i trªn Simulink nh• h×nh sau: 2 yk 1 xk 1 K 1 K uk Matrix z Matrix Gain4 Unit Delay1 Gain6 Matrix Gain5 K Ke K 3.2.5. Tæng hîp hÖ thèng dïng håi tiÕp tr¹ng th¸i: S¬ ®å khèi cña hÖ thèng cã håi tiÕp tr¹ng th¸i ®· ®•îc tr×nh bµy trong môc 2. Mét thµnh phÇn ®•îc thªm vµo s¬ ®å trªn lµ bé •íc l•îng tr¹ng th¸i. Tuy nhiªn, nÕu thuÇn tuý chØ håi tiÕp tr¹ng th¸i qua bé håi tiÕp K nh• vËy th× hÖ thèng sÏ cã sai lÖch tÜnh rÊt lín. §iÒu nµy ®•îc gi¶i thÝch do trong ®èi t•îng vµ c¶ trong hÖ kÝn ®Òu kh«ng cã kh©u tÝch ph©n, ngoµi ra ®èi t•îng cã hÖ sè khuÕch ®¹i rÊt lín (lªn ®Õn h¬n 500). Kh«ng nh÷ng thÕ, khi cã nhiÔu t¸c ®éng vµo hÖ thèng (chñ yÕu lµ nhiÔu ë ®èi t•îng) th× hÖ thèng sÏ bÞ ¶nh h•ëng rÊt lín vµ sai lÖch tÜnh sÏ cã thÓ rÊt lín. §Ó kh¾c phôc ®•îc vÊn ®Ò nµy, cã hai gi¶i ph¸p cã thÓ ®•îc sö dông: . Dïng c¸c kh©u bï ®Çu vµo vµ bï song song ®Ó gi¶m sai lÖch tÜnh cña hÖ thèng vµ h¹n chÕ ¶nh h•ëng cña nhiÔu nh• h×nh d•íi. Thùc tÕ, ph•¬ng ph¸p nµy kh«ng thÓ triÖt tiªu h¼n ®•îc sai lÖch tÜnh vµ vÉn chÞu ¶nh h•ëng kh«ng nhá cña nhiÔu. Së dÜ nh• vËy lµ v× khi thiÕt kÕ bé bï, ta kh«ng thÓ tÝnh chÝnh x¸c ®•îc c¸c th«ng sè mµ lu«n cã sù lµm trßn, vµ b¶n th©n c¸c th«ng sè cña ®èi t•îng còng sÏ bÞ thay ®æi trong qu¸ tr×nh ho¹t ®éng. 34
  33. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha Nu Nx K §èi t•îng ¦íc l•îng tr¹ng th¸i . §•a thªm kh©u tÝch ph©n vµo vÞ trÝ thÝch hîp trong hÖ thèng (xem h×nh d•íi). Kh©u tÝch ph©n cã ®Æc ®iÓm lµ nã cã kh¶ n¨ng triÖt tiªu hoµn toµn ®•îc sai lÖch tÜnh vµ gi¶m ¶nh h•ëng cña nhiÔu ®Õn hÖ thèng. Víi hÖ xung – sè kh©u tÝch ph©n ®•îc lùa chän cã hµm truyÒn ®¹t sè lµ: K W (z) I I z 1 S¬ ®å khèi cña hÖ thèng ®· bï b»ng kh©u tÝch ph©n nh• sau: yI r K u §èi t•îng y I z 1 K ¦íc l•îng tr¹ng th¸i Sau khi ®iÓm qua hai ph•¬ng ph¸p trªn, ta thÊy ph•¬ng ph¸p thªm kh©u tÝch ph©n (ph•¬ng ph¸p 2) cã nhiÒu •u ®iÓm h¬n, bëi vËy trong bµi tËp nµy sÏ sö dông ph•¬ng ph¸p thªm kh©u tÝch ph©n. Tr•íc hÕt cÇn t×m ph•¬ng tr×nh tr¹ng th¸i cña kh©u tÝch ph©n. Theo s¬ ®å trªn ta cã: YI (z) K I U (z) z 1 I xI (k 1) xI (k) uI (k) yI (k) K I .xI (k) 35
  34. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha Ta thÊy kh©u tÝch ph©n nµy chØ cã mét biÕn tr¹ng th¸i duy nhÊt vµ ®Çu ra cña kh©u tÝch ph©n tØ lÖ víi biÕn tr¹ng th¸i nµy. x(k) §Æt X (k) ta cã: xI (k) u(k) K I .xI (k) K.x(k) K K I .X (k) uI (k) C.x(k) x(k 1) A.x(k) B.u(k) xI (k 1) xI (k) uI (k) C.x(k) xI (k) A 0 B X (k 1) X (k) u(k) C 1 0 u(k) K K I .X (k) A 0 B X (k 1) . K K X (k) C 1 0 I §Æt e(k)=X(k) – X( ) lµ sai lÖch tÜnh ta cã: A 0 B e(k 1) . K K .e(k) C 1 0 I Môc ®Ých cña ta lµ ph¶i lµm cho e(k) tiÕn ®Õn 0 cµng nhanh cµng tèt ®Ó triÖt tiªu ®•îc sai lÖch tÜnh. §Õn ®©y ta l¹i thÊy d¹ng quen thuéc cña (3.2.2) vµ do ®ã cã thÓ ¸p dông ph•¬ng ph¸p t×m bé håi tiÕp tr¹ng th¸i (®· tr×nh bµy ë phÇn 2) ®Ó t×m [K –KI]. HÖ míi b©y giê cã bËc lµ 3 chø kh«ng cßn lµ 2 n÷a. Sö dông b¶ng ®iÓm cùc chuÈn cña Bessel cho hÖ bËc 3 vµ chän thêi gian qu¸ ®é lµ T = 20ms = 0.02s ta cã ®iÓm cùc míi lµ: 5.0093 3.9668 3.7845i p 250.46; p 198.34 189.23i 1 0.02 2,3 0.02 0.005. p1 0.005( 250.46) 0.005. p2,3 0.005( 198.34 189.23i) zp1 e e 0.2858; zp2,3 e e 0.2169 0.3009i Ph•¬ng tr×nh ®Æc tÝnh míi lµ: 36
  35. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha A 0 B det z.I . K K C 1 0 I z 0 0 1.73 0.7408 0 1 det 0 z 0 1 0 0 0 . K1 K2 K I 0 0 z 0.3705K dc 0.3311K dc 1 0 z 1.73 K1 0.7408 K2 K I det 1 z 0 0.3705K dc 0.3311K dc z 1 3 2 z + (-2.73+ K1)z + (2.4708- K1 + 0.3705KI .K dc + K2)z + 0.3311.KI .K dc - 0.7408- K2 MÆt kh¸c ta l¹i cã: A 0 B det z.I . K K C 1 0 I (z zp1 )(z zp2 )(z zp3 ) (z 0.2858)(z 0.2169 0.3009i)(z 0.2169 0.3009i) z3 - 0.7196.z2 + 0.2616z- 0.0393 C©n b»ng hai vÕ cña hai ph•¬ng tr×nh trªn ta cã: - 2.73+ K1 -0.7196 2.4708- K1 + 0.3705KI .K dc + K2 0.2616 0.3311.KI .K dc - 0.7408- K2 -0.0393 K1 2.0103 K2 0.4643 0.7163 K I K dc VËy ta ®· t×m ®•îc c¸c hÖ sè cÇn thiÕt mét c¸ch tæng qu¸t. NhËn thÊy gi¸ trÞ cña K1, K2 kh«ng phô thuéc vµo Kdc nghÜa lµ c¸c gi¸ trÞ ®ã phï hîp víi mäi Kdc. Trong bµi tËp nµy, chän Kdc = 9 ta cã: KI = 0.0796. Thùc hiÖn m« h×nh hÖ thèng trªn trong Simulink ta cã s¬ ®å sau: 37
  36. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha Dau ra Ki 65*9 z-1 0.002s 2 +0.12s+1 Step Discrete Zero-Order Doi tuong Transfer Fcn Hold Phan hoi K trang thai K Zero-Order Hold1 Discrete State Estimator uk xk yk Víi c¸c gi¸ trÞ K1, K2, KI ®· tÝnh ë trªn, thay vµo m« h×nh ta cã qu¸ tr×nh qu¸ ®é nh• sau: 1 .4 1 .2 1 0 .8 0 .6 0 .4 0 .2 0 0 0 .0 1 0 .0 2 0 .0 3 0 .0 4 0 .0 5 0 .0 6 0 .0 7 0 .0 8 0 .0 9 0 .1 NhËn xÐt thÊy qu¸ tr×nh qu¸ ®é rÊt tèt, thêi gian qu¸ ®é kho¶ng 20ms, ®é qu¸ ®iÒu chØnh rÊt nhá vµ kh«ng cã sai lÖch tÜnh. XÐt ¶nh h•ëng cña mét nhiÔu ë ®Çu vµo cña ®èi t•îng ta cã: 38
  37. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha 1 .4 1 .2 1 0 .8 0 .6 0 .4 0 .2 0 0 0 .0 2 0 .0 4 0 .0 6 0 .0 8 0 .1 0 .1 2 0 .1 4 0 .1 6 0 .1 8 0 .2 Cã thÓ thÊy ngay lµ hÖ thèng rÊt Ýt bÞ ¶nh h•ëng cña nhiÔu. 3.2.6. So s¸nh hai bé ®iÒu khiÓn t×m ®•îc: Qua so s¸nh kÕt qu¶ m« pháng víi hai bé ®iÒu khiÓn: bé ®iÒu khiÓn PID sè vµ bé håi tiÕp tr¹ng th¸i ta cã nhËn xÐt: . HÖ thèng víi bé håi tiÕp tr¹ng th¸i cã thêi gian qu¸ ®é nhanh h¬n, tuy nhiªn h¬i cã qu¸ ®iÒu chØnh nh•ng rÊt nhá. . HÖ thèng víi bé håi tiÕp tr¹ng th¸i Ýt chÞu ¶nh h•ëng cña nhiÔu h¬n, tøc lµ nã bÒn v÷ng h¬n. Qua c¸c kÕt luËn trªn, em quyÕt ®Þnh chän bé håi tiÕp tr¹ng th¸i (cã kh©u tÝch ph©n) ®Ó x©y dùng hÖ thèng ®iÒu khiÓn sè cho ®éng c¬ kh«ng ®ång bé ba pha. 39
  38. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha Ch•¬ng III THIẾT KẾ PHẦN CỨNG HỆ THỐNG ĐIỀU KHIỂN SỐ ĐỘNG CƠ KĐB 3 PHA 4. SƠ ĐỒ KHỐI VẦ Ý TƯỞNG THIẾT KẾ Cho ®Õn nay, cã nhiÒu ph•¬ng ph¸p kh¸c nhau ®Ó ®iÒu khiÓn ®éng c¬ kh«ng ®ång bé pha (nh• ®· tr×nh bµy ë trªn). Mçi ph•¬ng ph¸p cã nh÷ng •u, nh•îc ®iÓm riªng vµ tuú tõng øng dông cô thÓ mµ cÇn lùa chän mét ph•¬ng ph¸p thÝch hîp. HiÖn nay, ph•¬ng ph¸p tèt nhÊt vµ ®•îc øng dông nhiÒu nhÊt lµ ph•¬ng ph¸p ®iÒu chØnh tÇn sè nguån cung cÊp cho ®éng c¬ b»ng c¸c bé biÕn tÇn. Ph•¬ng ph¸p nµy cã nh÷ng •u ®iÓm so víi c¸c ph•¬ng ph¸p kh¸c nh• cho phÐp ®iÒu chØnh trong mét d¶i tèc ®é réng, hiÖu suÊt cao, cho phÐp thùc hiÖn c¸c ph•¬ng ph¸p ®iÒu chÕ kh¸c nhau víi ®é chÝnh x¸c (trong ®iÒu khiÓn) vµ chÊt l•îng cao, Tuy nhiªn, so víi c¸c ph•¬ng ph¸p kh¸c, ph•¬ng ph¸p nµy cã nh•îc ®iÓm lµ phøc t¹p, phÇn cøng ®¾t tiÒn, ®ßi hái hÖ thèng ph¶i cã tèc ®é nhanh vµ n¨ng lùc xö lý cao. Tuy nhiªn, víi xu thÕ ph¸t triÓn hiÖn nay cña kÜ thuËt vµ sù xuÊt hiÖn cña nhiÒu lo¹i biÕn tÇn chÕ t¹o s½n cña c¸c h·ng kh¸c nhau, viÖc sö dông ph•¬ng ph¸p ®iÒu chØnh tÇn sè nguån cung cÊp cho ®éng c¬ ®· trë thµnh mét lùa chän tÊt yÕu. V× lÝ do ®ã, trong bµi tËp nµy, em quyÕt ®Þnh chän ph•¬ng ph¸p ®iÒu chØnh tÇn sè nguån cung cÊp ®Ó ®iÒu khiÓn ®éng c¬ kh«ng ®ång bé ba pha. S¬ ®å khèi c¬ b¶n cña hÖ thèng ®iÒu khiÓn ®éng c¬ kh«ng ®ång bé ba pha dïng m¸y tÝnh b»ng ph•¬ng ph¸p ®iÒu chØnh tÇn sè nguån cung cÊp nh• sau: u~ udk DAC BiÕn tÇn §C M¸y tÝnh Bé ®Õm Encoder (®o tèc ®é) Nguyªn lý ho¹t ®éng cña s¬ ®å khèi trªn nh• sau: Encoder ®o tèc ®é quay cña ®éng c¬ (§C) d•íi d¹ng c¸c xung göi vÒ bé ®Õm. Bé ®Õm ®Õm sè xung, tõ ®ã x¸c ®Þnh ®•îc tèc ®é quay cña ®éng c¬. Tèc ®é nµy ®•îc håi tiÕp vÒ bé ®iÒu khiÓn mÒm (soft - controller, d•íi d¹ng ch•¬ng tr×nh ®iÒu khiÓn trong m¸y tÝnh). Bé ®iÒu khiÓn mÒm tÝnh 40
  39. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha to¸n theo mét thuËt to¸n x¸c ®Þnh (sÏ ®•îc tr×nh bµy cô thÓ ë ch•¬ng IV vµ V) dùa trªn ®Çu vµo lµ tèc ®é ®Æt (do ng•êi sö dông ®Æt) vµ tèc ®é thùc cña ®éng c¬ håi tiÕp vÒ, tõ ®ã cã ®•îc tÝn hiÖu ®iÒu khiÓn thÝch hîp. TÝn hiÖu ®iÒu khiÓn nµy ®•îc m¸y tÝnh ®•a qua bé biÕn ®æi Sè - T•¬ng tù (DAC), biÕn ®æi thµnh ®iÖn ¸p ®iÒu khiÓn (udk) ®Ó ®iÒu khiÓn biÕn tÇn. C¨n cø theo ®iÖn ¸p ®iÒu khiÓn, biÕn tÇn cung cÊp cho ®éng c¬ mét ®iÖn ¸p xoay chiÒu ba pha cã tÇn sè nh• mong muèn. Do tÇn sè ®iÖn ¸p cung cÊp ®•îc thay ®æi, ®Æc tÝnh c¬ cña ®éng c¬ còng thay ®æi theo (nh• ®· tr×nh bµy ë ch•¬ng I), lµm thay ®æi tèc ®é cña ®éng c¬ víi momen t¶i x¸c ®Þnh. Nh• vËy, ®Ó ®iÒu khiÓn ®éng c¬ kh«ng ®ång bé ba pha b»ng m¸y tÝnh, vÊn ®Ò chñ yÕu cßn l¹i lµ x©y dùng m¹ch ghÐp nèi vµo/ra víi m¸y tÝnh. M¹ch ghÐp nèi ®•îc thiÕt kÕ trªn c¬ së ý t•ëng sau: §Ó ®o tèc ®é quay cña ®éng c¬, ta dïng Encoder. Nguyªn t¾c ho¹t ®éng cña Encoder lµ dïng mét ®Üa trßn cã nhiÒu lç bè trÝ theo mÐp ®Üa g¾n víi trôc quay cña ®éng c¬. Sè lç cã thÓ thay ®æi, tuú thuéc vµo ®é ph©n gi¶i cÇn thiÕt. Hai bªn ®Üa cã l¾p LED vµ c¶m biÕn quang häc ®èi diÖn nhau. Khi cã mét lç ®i qua chç g¾n c¶m biÕn th× c¶m biÕn quang häc sÏ nhËn ®•îc ¸nh s¸ng tõ LED vµ t¹o ra mét xung. C¨n cø vµo xung ®ã vµ sè lç (hay sè xung, hay ®é ph©n gi¶i) trong mét vßng quay cña Encoder, cã thÓ tÝnh ®•îc tèc ®é quay cña ®éng c¬. Cã hai c¸ch ®Ó x¸c ®Þnh tèc ®é quay tõ Encoder: - C¸ch 1: ®Õm sè xung do Encoder göi vÒ trong mét kho¶ng thêi gian T x¸c ®Þnh. Gi¶ sö Encoder cã N xung/mét vßng quay vµ trong thêi gian T ®Õm ®•îc k xung ph¸t ra tõ Encoder. Khi ®ã, tèc ®é quay cña ®éng c¬ 60.k ®•îc tÝnh theo c«ng thøc sau: n (vßng/phót). Sai sè tèc ®é quay lµ: T.N 60 60 n k . Víi sai sè l•îng tö cña k th× n lµ h»ng sè vµ chØ phô T.N T.N thuéc vµo thêi gian ®Õm xung T vµ ®é ph©n gi¶i N cña Encoder. - C¸ch 2: ®Õm sè xung phô tÇn sè cao trong mét chu k× xung cña Encoder. §å thÞ sau gióp thÓ hiÖn râ h¬n c¸ch nµy. Gi¶ sö xung phô cã tÇn sè f, vµ sè xung phô ®Õm ®•îc trong mét chu k× xung cña Encoder lµ q. Khi ®ã, tèc ®é quay cña ®éng c¬ ®•îc tÝnh theo 41
  40. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha 60. f c«ng thøc sau: n (vßng/phót). Sai sè tèc ®é quay øng víi sai sè N.q 60. f 1 l•îng tö cña q lµ: n . Râ rµng sai sè tèc ®é quay trong N q(q 1) tr•êng hîp nµy kh«ng cè ®Þnh mµ thay ®æi theo q. Khi q cµng lín, nghÜa lµ tèc ®é quay cµng chËm, th× sai sè cµng nhá vµ ng•îc l¹i. Bëi vËy c¸ch nµy chØ thÝch hîp khi ®o tèc ®é quay chËm. Trong bµi tËp nµy, c¨n cø theo yªu cÇu cô thÓ cña viÖc ®iÒu chØnh tèc ®é ®éng c¬, em chän c¸ch ®o tèc ®é quay thø nhÊt. Nh• sÏ tr×nh bµy sau nµy, thêi gian trÝch mÉu (chu k× ®iÒu khiÓn) ®•îc chän lµ TS = 5ms = 0,005s. Encoder ®•îc chän cã N = 2000 (xung/vßng) (xem phÇn sau). Do ®ã, sai sè ®o tèc ®é quay sÏ lµ n = 6 vßng. Sai sè nµy kh«ng nhá, nh•ng lµ chÊp nhËn ®•îc víi bµi tËp. §Ó gi¶m sai sè ®o tèc ®é quay, cã thÓ chän lo¹i Encoder kh¸c cã N lín h¬n (cã thÓ lªn tíi 4096, 8000 hay h¬n n÷a), khi ®ã sai sè sÏ ®•îc gi¶m ®i ®¸ng kÓ. Mét gi¶i ph¸p kh¸c lµ x©y dùng m¹ch ®o theo c¶ hai ph•¬ng ph¸p trªn, vµ lùa chän c¸ch ®Õm mét c¸ch linh ho¹t c¨n cø theo tèc ®é hiÖn thêi lµ nhanh hay chËm: khi tèc ®é cao th× dïng c¸ch 1, khi tèc ®é thÊp th× dïng c¸ch 2. Tuy nhiªn, trong bµi tËp nµy kh«ng cÇn thiÕt ph¶i x©y dùng m¹ch ®o nh• vËy. §Ó ®Õm sè xung tõ Encoder göi vÒ, bé ®Õm ®•îc sö dông lµ vi m¹ch 8254. §©y lµ vi m¹ch ®Õm - thêi gian lËp tr×nh ®•îc víi kh¶ n¨ng rÊt m¹nh vµ linh ho¹t. Vi m¹ch cã ba kªnh (®•îc ®¸nh sè tõ 0 ®Õn 2) cã thÓ ho¹t ®éng hoµn toµn ®éc lËp víi nhau. TÇn sè ho¹t ®éng tèi ®a lµ 4MHz, hoµn toµn ®¸p øng ®•îc yªu cÇu cña bµi tËp. §Ó t¹o ra thêi gian ®Õm chuÈn T, mét vi m¹ch thêi gian LM555 ®•îc sö dông ®Ó t¹o ra xung ®ång hå chuÈn tÇn sè 10Khz. Xung nµy ®•îc chia tÇn bëi mét kªnh cña 8254, t¹o ra mét xung kh¸c cã chu k× lµ 2*T. Xung nµy ®•îc ®•a vµo ch©n Gate cña kªnh ®Õm xung Encoder (cã xung Encoder ®•a vµo ch©n Clock) ®Ó t¹o ra thêi gian ®Õm chuÈn T. Gi¶i ph¸p ®¬n gi¶n lµ chØ dïng mét kªnh ®Ó ®Õm xung Encoder. Tuy nhiªn, gi¶i ph¸p nµy cã nh•îc ®iÓm lµ mçi khi cÇn ®o tèc ®é, ch•¬ng tr×nh cÇn ph¸t tÝn hiÖu b¾t ®Çu ®Õm vµ ph¶i chê ®Õn khi ®Õm xong míi ®äc ®•îc tèc ®é quay. Mét gi¶i ph¸p kh¸c ®•îc lùa chän lµ dïng c¶ hai kªnh cßn l¹i cña 8254 ®Ó ®Õm xung Encoder nh•ng ®Õm lÖch nhau, nghÜa lµ khi kªnh nµy ®Õm th× kªnh kia ngõng vµ chèt sè ®Õm, vµ ng•îc l¹i. Nh• vËy, khi cÇn ®äc tèc ®é quay, chØ viÖc x¸c ®Þnh kªnh nµo ®ang ®Õm vµ ®äc sè ®Õm tõ kªnh kia. ViÖc x¸c ®Þnh kªnh ®ang ®Õm cã thÓ ®•îc thùc hiÖn dÔ dµng nhê kh¶ n¨ng ®äc ng•îc tr¹ng th¸i (Readback command) cña 8254. V× ®Çu ra OUT cña bé ®Õm chia tÇn cña 8254 cã hai gi¸ trÞ lµ 0 vµ 1 t•¬ng øng víi hai tr•êng hîp ho¹t ®éng kh¸c nhau cña hai bé ®Õm cßn l¹i, do ®ã, ®Ó thuËn tiÖn khi lËp tr×nh x¸c ®Þnh ®Þa chØ cæng cña bé ®Õm ®ang chèt sè ®Õm (bé ®Õm ®ang kh«ng ho¹t ®éng), ta sÏ dïng bé ®Õm 2 ®Ó chia tÇn vµ hai bé ®Õm 0 vµ 1 ®Ó ®Õm xung Encoder. Khi ®Çu ra OUT2 = 0 th× bé ®Õm 0 ngõng ®Õm (chèt sè ®Õm) cßn bé ®Õm 1 sÏ ®•îc phÐp ®Õm, vµ ng•îc l¹i. Nh• vËy viÖc x¸c ®Þnh ®Þa chØ cæng cña bé ®Õm ®ang chèt sè ®Õm (®Ó ®äc sè ®Õm) sÏ ®¬n gi¶n chØ lµ vµi lÖnh dÞch bit vµ OR sè häc. 42
  41. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha §Ó ph¸t ra ®iÖn ¸p ®iÒu khiÓn biÕn tÇn, mét bé biÕn ®æi sè - t•¬ng tù (DAC) ®•îc sö dông. Mét nguyªn t¾c cÇn ®•îc ®¶m b¶o lµ ®iÖn ¸p ®Çu ra cña DAC ph¶i lu«n ®•îc gi÷ æn ®Þnh (kh«ng ®æi) trong suèt chu k× ®iÒu khiÓn cho ®Õn khi cã tÝn hiÖu míi xuÊt ra. Nh•ng d÷ liÖu trªn bus d÷ liÖu l¹i lu«n lu«n thay ®æi. Bëi vËy, cÇn ph¶i cã mét bé chèt ë tr•íc DAC ®Ó chèt d÷ liÖu cò l¹i cho DAC cho ®Õn khi m¸y tÝnh ghi mét d÷ liÖu míi ra ®ã. Nh• vËy, ch•¬ng tr×nh sÏ kh«ng thao t¸c trùc tiÕp víi DAC mµ th«ng qua mét bé chèt. Bé chèt ®•îc sö dông ë ®©y lµ vi m¹ch 74LS373. Cã thÓ tãm t¾t l¹i ý t•ëng trªn qua s¬ ®å sau: u Chèt DAC dk ISA Slot 8254 Gi¶i m· Encoder ®Þa chØ Kªnh 0 Kªnh 1 Kªnh 2 t¹o xung 555 PhÇn trªn ®· tr×nh bµy ý t•ëng thiÕt kÕ c¬ b¶n cña m¹ch ®iÒu khiÓn ®éng c¬ kh«ng ®ång bé ba pha. PhÇn sau ®©y sÏ tr×nh bµy s¬ ®å m¹ch cô thÓ ®Ó hiÖn thùc ho¸ ý t•ëng trªn. 5. SƠ ĐỒ MẠCH GHÉP NỐI VÀO RA S¬ ®å m¹ch ®iÖn (xem cuèi ch•¬ng) tr×nh bµy s¬ ®å nguyªn lý cña m¹ch ghÐp nèi vµo/ra víi m¸y tÝnh th«ng qua slot ISA cña m¸y tÝnh. Ngo¹i trõ biÕn tÇn vµ Encoder, toµn bé c¸c thµnh phÇn cßn l¹i cña hÖ thèng ®iÒu khiÓn ®éng c¬ kh«ng ®ång bé ba pha ®Òu ®•îc ®Æt trªn card ghÐp nèi nµy. Gi÷a card vµ c¸c thiÕt bÞ ngoµi (bé biÕn tÇn vµ Encoder) ®•îc nèi víi nhau th«ng qua mét jack c¾m lo¹i DB-9. Môc 3 sau ®©y sÏ tr×nh bµy cô thÓ h¬n vÒ c¸c linh kiÖn, c¸c trÞ sè ®•îc dïng trong m¹ch. 3. GIẢI THÍCH SƠ ĐỒ MẠCH NGUYÊN LÝ S¬ ®å m¹ch nguyªn lý cã c¸c thµnh phÇn c¬ b¶n sau ®©y:  Vi m¹ch gi¶i m· ®Þa chØ 74LS138: ®©y lµ vi m¹ch gi¶i m· 3-8 víi ba ®Çu vµo lùa chän A,B,C. T¸m ®Çu ra cã møc tÝch cùc thÊp: cã møc ®iÖn ¸p thÊp khi tÝch cùc vµ ng•îc l¹i. Cã ba ®Çu vµo cho phÐp, trong ®ã cã hai ®Çu tÝch cùc thÊp ( G2A,G2B) vµ mét ®Çu tÝch cùc cao (G1). S¬ ®å ch©n vµ b¶ng ch©n lý cña vi m¹ch gi¶i m· ®•îc tr×nh bµy ë h×nh sau: 43
  42. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha Vµo Ra EN C B 7 6 5 4 3 A 2 1 0 Vcc Y0 Y1 Y2 Y3 Y4 Y5 Y6 0 x x 1 1 1 1 1 x 1 1 1 A B C G2A G2B G1 Y7 GND 1 0 0 1 1 1 1 1 0 1 1 0 1 0 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 0 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 EN G2A G2B G1  Bé ®Öm 74LS245 (Bus Transceiver, Octal Bus, 3 states): vi m¹ch nµy gåm t¸m bé ®Öm ba tr¹ng th¸i hai chiÒu, th•êng ®•îc dïng lµm ®Öm hai chiÒu cho Bus d÷ liÖu. C¸c ch©n A0-A7 vµ B0-B7 lµ c¸c ch©n vµo/ra hai chiÒu. Ch©n DIR x¸c ®Þnh chiÒu ®i cña d÷ liÖu: DIR=1 th× chiÒu tõ A sang B, DIR=0 th× chiÒu tõ B sang A. Ch©n E tÝch cùc thÊp sÏ cho phÐp hay kh«ng cho phÐp ®•a d÷ liÖu qua. Khi E=0, c¸c ®Çu d÷ liÖu ra sÏ gièng c¸c ®Çu d÷ liÖu vµo t•¬ng øng (nh•ng cã kh¶ n¨ng chÞu t¶i t¨ng lªn, tøc lµ c«ng suÊt t¨ng lªn). Khi E=1, c¸c ®Çu ra ®Òu bÞ treo ë tr¹ng th¸i cao trë. S¬ ®å ch©n cña vi m¹ch nµy ®•îc tr×nh bµy ë h×nh sau. Vcc E B1 B2 B3 B4 B5 B6 B7 B8 DIR A1 A2 A3 A4 A5 A6 A7 A8 GND  Bé chèt hexa 74LS373: vi m¹ch gåm t¸m flip-flop lo¹i D ba tr¹ng th¸i, th•êng ®•îc dïng ®Ó chèt d÷ liÖu. Khi ch©n LE ë møc cao, d÷ liÖu tõ c¸c ®Çu vµo (Dx) ®•îc chèt vµo trong flip-flop, s½n sµng ®Ó ®•a ra ë c¸c ®Çu ra t•¬ng øng (Qx). Khi ch©n LE ë møc thÊp, c¸c ®Çu vµo kh«ng ¶nh 44
  43. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha h•ëng g× ®Õn c¸c ®Çu ra. Khi ch©n /OE (tÝch cùc thÊp) ë møc thÊp, c¸c ®Çu ra ®•îc ®•a d÷ liÖu ra. Khi ch©n /OE ë møc cao, c¸c ®Çu ra ®•îc ®Æt lªn tr¹ng th¸i cao trë, c¸ch li khái bus. Sau ®©y lµ s¬ ®å ch©n vµ b¶ng ch©n lý cña 74LS373. EN LE Vµo Ra Qx Vcc E B1 B2 B3 B4 B5 B6 B7 B8 Dx 1 x x High Z DIR A1 A2 A3 A4 A5 A6 A7 A8 GND 0 1 1 1 0 1 0 0 0 0 x Qx  Vi m¹ch 74LS02: ®©y lµ vi m¹ch gåm bèn cæng NOR hai ®Çu vµo.  Vi m¹ch DAC0808: lµ vi m¹ch chuyÓn ®æi sè - t•¬ng tù (DAC) 8-bit. Thêi gian chuyÓn ®æi tèi ®a lµ 150 ns. Tiªu thô c«ng suÊt 33 mW víi nguån nu«i 5V. §Çu ra lµ dßng ®iÖn cã gi¸ trÞ phô thuéc vµo m· nhÞ ph©n ®•a vµo. DAC0808 t•¬ng thÝch vµ giao tiÕp ®•îc víi c¸c møc logic TTL, DTL hay CMOS. Nguån nu«i cña vi m¹ch cho phÐp trong kho¶ng tõ -18V ®Õn +18V. Dßng vµo so s¸nh lµ 2-5 mA. NhiÖt ®é lµm viÖc b×nh th•êng lµ 0-75 C. Trong c¸c øng dông th«ng th•êng, ch©n 14 ®•îc nèi lªn ®iÖn ¸p so s¸nh Vref th«ng qua ®iÖn trë R14 cã gi¸ trÞ sao cho Vref/ R14 = 2 mA. Mét khuÕch ®¹i thuËt to¸n ®•îc sö dông ®Ó chuyÓn dßng ®iÖn ®Çu ra (ch©n 4) thµnh ®iÖn ¸p ra thÝch hîp. S¬ ®å ch©n cña DAC0808 ®•îc tr×nh bµy ë h×nh bªn.  Bé ®Õm - thêi gian kh¶ tr×nh 8254: ®©y lµ vi m¹ch ®Õm - thêi gian kh¶ tr×nh rÊt m¹nh cña Intel. Vi m¹ch nµy ®•îc øng dông réng r·i ®Ó: ®Õm thêi gian, ®Õm sù kiÖn, chia tÇn sè, t¹o xung, Cã thÓ thÊy vi m¹ch nµy rÊt h÷u dông trong m¹ch ®Õm xung Encoder. So víi vi m¹ch 8253, vi m¹ch 8254 cã tÇn sè lµm viÖc tèi ®a lín h¬n (®Õn 4 MHz), cã thªm lÖnh ®äc ng•îc (Read-back command) sÏ ®•îc dïng ®Õn trong bµi tËp nµy. Trong 8254 cã ba bé ®Õm ®éc lËp víi nhau, ®•îc ®¸nh sè tõ 0 ®Õn 2. Ngoµi ra trong 8254 cßn cã mét thanh ghi tõ ®iÒu khiÓn (CWR – Control Word Register) dïng ®Ó lËp tr×nh cho ho¹t ®éng 45
  44. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha cña vi m¹ch. Nh• vËy, 8254 cÇn 4 ®Þa chØ cæng ®Ó giao tiÕp, bao gåm 3 ®Þa chØ cho 3 bé ®Õm vµ 1 ®Þa chØ cho CWR. Mçi bé ®Õm cã 6 chÕ ®é lµm viÖc. Trong bµi tËp nµy cã sö dông 2 chÕ ®é lµ: chÕ ®é 3 (t¹o xung vu«ng) vµ chÕ ®é 2. Víi chÕ ®é 3, khi ®· n¹p sè ®Õm vµ GATE=0, bé ®Õm b¾t ®Çu ®Õm lïi theo b•íc 2 (mçi nhÞp Clock gi¶m sè ®Õm ®i 2); khi vÒ 0, ch©n OUT ®¶o tr¹ng th¸i vµ sè ®Õm ®•îc n¹p l¹i ®Ó ®Õm l¹i tõ ®Çu. Nh• vËy tÝn hiÖu ë OUT lµ xung vu«ng víi tÇn sè fCLK/N. Víi chÕ ®é 2, khi ®· n¹p sè ®Õm vµ GATE=1, bé ®Õm b¾t ®Çu ®Õm lïi; khi ®Õm hÕt hoÆc khi GATE cã s•ên lªn th× sè ®Õm ®•îc n¹p l¹i vµ ®Õm l¹i tõ ®Çu; nÕu ®ang ®Õm mµ GATE=0 th× ngõng ®Õm vµ chèt sè ®Õm l¹i. Nh• vËy, chÕ ®é 3 ®•îc dïng víi bé ®Õm chia tÇn, cßn chÕ ®é 2 ®•îc dïng víi c¸c bé ®Õm ®Õm xung Encoder. D¹ng thøc thanh ghi tõ ®iÒu khiÓn (CWR): SC1 SC0 RW1 RW0 M2 M1 M0 BCD Trong ®ã: . SC1, SC0 ®Ó chän bé ®Õm hoÆc lÖnh ®äc ng•îc (11) . RW1, RW0 ®Ó chän chÕ ®é ghi/®äc. ChÕ ®é 11 lµ chÕ ®é ®äc / ghi LSB råi ®Õn MSB . M2, M1, M0 ®Ó chän chÕ ®é ®Õm: 010 cho chÕ ®é 2 vµ 011 cho chÕ ®é 3. . BCD b»ng 0 nÕu ®Õm theo Binary, b»ng 1 nÕu ®Õm theo BCD D¹ng thøc thanh ghi tõ ®iÒu khiÓn ë lÖnh ®äc ng•îc: 1 1 CNT STS C2 C1 C0 0 Trong ®ã: . CNT = 0 nÕu chèt sè ®Õm . STS = 0 nÕu chèt tr¹ng th¸i . C2,C1,C0: ®Ó chän bé ®Õm nµo ®•îc chèt (cho b»ng 1) Khi ®äc ng•îc tr¹ng th¸i, bit 7 (MSBit) lµ tr¹ng th¸i ch©n OUT cña bé ®Õm t•¬ng øng. H×nh trªn lµ s¬ ®å cña 8254.  Vi m¹ch LM555: ®©y lµ vi m¹ch thêi gian rÊt h÷u dông. Sö dông LM555 cã thÓ t¹o ra c¸c xung vu«ng, xung One-shot, t¹o trÔ thêi gian, víi ®é chÝnh x¸c rÊt cao vµ rÊt linh ho¹t. Kh«ng chØ t¹o ®•îc c¸c xung ®Òu ®Æn, LM555 cßn cã thÓ t¹o ra c¸c xung phøc t¹p nÕu ®iÒu khiÓn ch©n CV. LM555 ho¹t ®éng víi gi¶i ®iÖn ¸p réng (3V-15V). Trong bµi tËp nµy, LM555 ®•îc dïng ®Ó t¹o xung ®Õm chuÈn 10KHz. 46
  45. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha  Encoder OMRON E6B2-CWZ3E: ®©y lµ lo¹i Encoder ®a môc ®Ých (General Purpose) cña OMRON. ChØ tiªu kÜ thuËt: . Kh¶ n¨ng chÞu t¶i lín. . §iÖn ¸p nguån: tõ 5V ®Õn 24V. . §é ph©n gi¶i: 2000 xung/vßng. . Dßng tiªu thô tèi ®a: 100mA. . TÇn sè lµm viÖc tèi ®a: 100KHz. . Tèc ®é quay tèi ®a: 6000 vßng/phót. . §Çu ra: ®iÖn ¸p trùc tiÕp, kh«ng cÇn ®iÖn trë treo. . KÕt nèi trùc tiÕp ®•îc víi c¸c thiÕt bÞ TTL, LSTTL, CMOS mµ kh«ng cÇn c¸ch li. Gi¶i thÝch s¬ ®å nguyªn lý: Hai vi m¹ch 74LS138 lµm nhiÖm vô gi¶i m· ®Þa chØ. Vi m¹ch 8254 ®•îc chän theo d¶i ®Þa chØ 310h-313h, víi c¸c ch©n ®Þa chØ A0, A1 ®•a th¼ng vµo 8254 ®Ó chän bé ®Õm vµ CWR. Vi m¹ch DAC0808 ®•îc chän (gi¸n tiÕp th«ng qua bé ®Öm 74LS373) ë mét trong c¸c ®Þa chØ 314h-317h. Vi m¹ch nµy ®•îc gi¶i m· kh«ng ®Çy ®ñ, nghÜa lµ khi ghi vµo bÊt k× cæng nµo trong d¶i 314h-317h ®Òu lµ giao tiÕp víi DAC0808. Tr•íc DAC0808 cã mét bé chèt 74LS373 ®Ó chèt d÷ liÖu hiÖn thêi cho DAC, vµ nã chØ cËp nhËp gi¸ trÞ míi khi ghi (IOW=0) vµo mét trong c¸c cæng 314h-317h. Mét vi m¹ch ®Öm hai chiÒu 74LS245 ®•îc dïng ®Ó ®Öm Bus d÷ liÖu cho c¶ card. Vi m¹ch 8254: ch©n GATE2 ®•îc nèi xuèng ®Êt ®Ó bé ®Õm 2 lu«n ®Õm khi ®· ®•îc n¹p sè ®Õm. Ch©n CLK2 ®•îc nèi víi ®Çu ra cña vi m¹ch LM555, cung cÊp xung ®Õm chuÈn. Bé ®Õm 2 sÏ ®•îc lËp tr×nh ®Ó chia xung nµy ra thµnh xung cã tÇn sè nhá h¬n ®Ó cung cÊp thêi gian ®Õm cho hai bé ®Õm cßn l¹i. §Çu ra OUT2 ®•îc ®•a vµo ch©n GATE cña 2 bé ®Õm cßn l¹i ®Ó cho phÐp hay kh«ng cho phÐp hai bé ®Õm nµy ®Õm. Tr•íc khi ®i vµo GATE1, tÝn hiÖu nµy ®•îc ®¶o ®i ®Ó hai bé ®Õm 0 vµ 1 lu«n lµm viÖc lÖch nhau. TÝn hiÖu xung tõ Encoder ®•îc ®•a vµo CLK0 vµ CLK1. Vi m¹ch LM555 ®•îc thiÕt lËp ë chÕ ®é t¹o xung vu«ng víi tÇn sè ®•îc tÝnh 1.44 f . Chän C = 0,01 F th× ®Ó cã f = 10KHz ph¶i chØnh VR3 vµ (VR3 2VR4)C4 VR4 sao cho VR3 + 2VR4 = 14,4K . Tô C3 = 10nF ®•îc sö dông ®Ó läc nhiÔu khái ch©n CV, gióp æn ®Þnh xung ®Çu ra. Vi m¹ch DAC0808: ®iÖn ¸p so s¸nh d•¬ng (ch©n Vref(+)) ®•îc nèi lªn nguån +12V th«ng qua ®iÖn trë R1 (1K ) vµ biÕn trë VR1 (5K ). §iÒu chØnh 47
  46. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha biÕn trë ®Ó dßng ®iÖn I14 = Vref(+) / (R1 + VR1) n»m trong kho¶ng 2-5mA. Th•êng ®iÒu chØnh sao cho I14 = 2mA. Tô ®iÖn C2 (0,1 F) ®•îc dïng ®Ó läc c¸c nhiÔu tÇn sè cao trong nguån xuèng ®Êt, gióp æn ®Þnh ®iÖn ¸p so s¸nh. Ch©n Vref(-) ®•îc nèi xuèng ®iÖn ¸p -12V. §Çu ra (dßng ®iÖn) cña DAC0808 ®•îc ®•a qua mét khuÕch ®¹i thuËt to¸n (LM358) ®Ó biÕn ®æi dßng ®iÖn thµnh ®iÖn ¸p ®iÒu khiÓn ®Çu ra. Gi¶ sö sè ®Æt vµo DAC0808 lµ n (n = 0 255) th× dßng ®iÖn Vref n ®Çu ra ®•îc tÝnh theo c«ng thøc I out . §iÖn ¸p ®Çu ra ®•îc tÝnh R1 VR1 255 R2 VR2 n theo c«ng thøc uout udk (R2 VR2 )I out Vref . NÕu ®iÒu chØnh sao R1 VR1 255 n cho R +VR =R +VR th× u u V . 2 2 1 1 out dk 255 ref Cæng nèi DB-9 ®•îc dïng ®Ó kÕt nèi gi÷a Card vµ c¸c thiÕt bÞ bªn ngoµi. C¸c ch©n 1 vµ 2 ®•îc dïng ®Ó ®•a ®iÖn ¸p Vcc ra ngoµi. Ch©n 3 dïng ®Ó ®•a ®iÖn ¸p ®iÒu khiÓn ra biÕn tÇn. C¸c ch©n 4, 5 lµ c¸c ch©n ®•a tÝn hiÖu xung Encoder vµo trong m¸y tÝnh. C¸c ch©n 6,7,8,9 ®•îc dïng ®Ó nèi chung ®Êt gi÷a m¹ch ngoµi vµ trong m¸y tÝnh. Bªn m¹ch ngoµi, biÕn tÇn ®•îc nèi chung ®Êt víi m¹ch trong (ch©n 6) vµ ®Çu Control ®•îc nèi víi ®iÖn ¸p ®iÒu khiÓn tõ m¸y tÝnh ra (ch©n 3). Encoder ®•îc nèi chung ®Êt víi m¹ch trong m¸y tÝnh (ch©n 9) vµ ®•îc cÊp nguån qua ch©n 2. C¸c ch©n tÝn hiÖu xung ra cña Encoder ®•îc nèi víi ch©n 4 vµ 5 cña DB-9. ch•¬ng iii 48
  47. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha THIẾT KẾ PHẦN MỀM HỆ THỐNG ĐIỀU KHIỂN SỐ ĐỘNG CƠ KĐB 3 PHA 1. PHƯƠNG TRÌNH SAI PHÂN CỦA BỘ ĐIỀU KHIỂN Nh• ®· tr×nh bµy ë ch•¬ng 1, phần 3, bé ®iÒu khiÓn PID cã hµm truyÒn ®¹t nh• sau: Az2 Bz C Wz() pid zz( 1) trong ®ã: (KTKKT2 2 2 ) A i d p 2T (KTKTK2 2 4 ) B i p d 2T K C d T Tõ hµm truyÒn ®¹t nµy, chuyÓn thµnh ph•¬ng tr×nh sai ph©n: U (z) Az 2 Bz C A B.z 1 C.z 2 W (z) pid E(z) z 2 z 1 z 1 E(z).(A B.z 1 C.z 2 ) U (z)(1 z 1 ) A.e(k) B.e(k 1) C.e(k 2) u(k) u(k 1) u(k) u(k 1) A.e(k) B.e(k 1) C.e(k 2) Tõ ph•¬ng tr×nh sai ph©n trªn cã ®•îc thuËt to¸n x©y dùng bé PID sè nh• sau:  Khai b¸o 1 biÕn ®Ó l•u gi¸ trÞ cò cña u vµ 1 m¶ng ®Ó l•u c¸c gi¸ trÞ cò cña e : float u_old; float e_old[2]; C¸c gi¸ trÞ nµy ®Òu ®•îc khëi ®Çu b»ng 0. TÝnh A,B,C theo Kp, Ti, Td ®· chän.  C¸c b•íc tÝnh cho bé PID sè: o §äc gi¸ trÞ håi tiÕp vÒ y vµ gi¸ trÞ ®Æt w. TÝnh sai lÖch e = w - y. o TÝnh gi¸ trÞ tÝn hiÖu ®iÒu khiÓn hiÖn thêi: 49
  48. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha u = u_old + A*e + B*e[0] + C*e[1]; o XuÊt tÝn hiÖu ®iÒu khiÓn ra. o CËp nhËp l¹i c¸c biÕn l•u: u_old = u; e[1]=e[0]; e[0]=e; o LÆp l¹i tõ ®Çu. 2. PHƯƠNG ÁN XÂY DỰNG CHƯƠNG TRÌNH ĐIỀU KHIỂN. Ch•¬ng tr×nh ®iÒu khiÓn vµ giao diÖn bao gåm hai phÇn ®éc lËp: phÇn giao diÖn ng•êi dïng vµ phÇn thùc hiÖn thuËt to¸n ®iÒu khiÓn.  PhÇn giao diÖn ng•êi dïng: o HiÓn thÞ kÕt qu¶ qu¸ tr×nh ®iÒu khiÓn, ë ®©y lµ hiÓn thÞ tèc ®é cña ®éng c¬ d•íi d¹ng sè vµ ®å thÞ. o NhËn tèc ®é ®Æt (tèc ®é mong muèn) tõ ng•êi dïng. o NhËn c¸c th«ng sè thiÕt lËp cho hÖ thèng tõ ng•êi dïng. o Yªu cÇu cña phÇn nµy lµ giao diÖn ph¶i dÔ dïng, thuËn tiÖn cho ng•êi sö dông. Giao diÖn ph¶i hîp lý. Mét phong c¸ch chung trong giao diÖn ®iÒu khiÓn lµ m« pháng c¸c bµn ®iÒu khiÓn thiÕt bÞ (Instrument Panel).  PhÇn thùc hiÖn thuËt to¸n ®iÒu khiÓn: o Thùc hiÖn thuËt to¸n ®iÒu khiÓn (nh• ®· tr×nh bµy ë phÇn trªn). o Giao tiÕp víi phÇn cøng ®Ó ®iÒu khiÓn ®èi t•îng còng nh• nhËn c¸c kÕt qu¶ ®o ®¹c tõ c¸c Sensor. o NhËn th«ng sè hÖ thèng vµ gi¸ trÞ ®Æt tõ ng•êi dïng th«ng qua phÇn giao diÖn. o Cung cÊp c¸c sè liÖu cho phÇn giao diÖn (tèc ®é). o Yªu cÇu cña phÇn nµy lµ tèc ®é ph¶i nhanh, ®¸p øng ®•îc yªu cÇu vÒ thêi gian cña hÖ thèng ®iÒu khiÓn. Ngoµi ra, viÖc thùc hiÖn thuËt to¸n ®iÒu khiÓn ph¶i chÝnh x¸c. C¨n cø vµo c¸c yªu cÇu trªn, ®Ó thuËn tiÖn cho phÇn giao diÖn, ch•¬ng tr×nh sÏ ®•îc viÕt trªn m«i tr•êng Windows. M«i tr•êng hÖ ®iÒu hµnh Windows lµ mét m«i tr•êng ®å ho¹ hoµn thiÖn, cung cÊp rÊt nhiÒu c¸c c«ng cô ph¸t triÓn còng nh• c¸c thµnh phÇn ®å ho¹ c¬ b¶n (menu, cöa sæ, hép tho¹i, ) gióp cho viÖc ph¸t triÓn c¸c øng dông ®•îc dÔ dµng vµ nhanh chãng. MÆc dï m«i tr•êng Windows lu«n h¹n chÕ viÖc truy nhËp cÊp thÊp víi phÇn cøng, tuy nhiªn trªn Windows 9x th× viÖc thùc hiÖn c¸c vµo ra c¬ b¶n víi phÇn cøng lµ ®•îc phÐp. §iÒu nµy hoµn toµn ®¸p øng ®•îc yªu cÇu trong bµi tËp nµy. 50
  49. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha M«i tr•êng Windows lµ m«i tr•êng ®a nhiÖm, nghÜa lµ c¸c ch•¬ng tr×nh ch¹y trªn ®ã ®•îc thùc hiÖn gÇn nh• lµ ®ång thêi vµ chia sÎ tµi nguyªn víi nhau. Bëi lÏ ®ã, khi thùc hiÖn phÇn ®iÒu khiÓn, phÇn ch•¬ng tr×nh yªu cÇu tèc ®é nhanh vµ ®¸p øng kÞp thêi, cÇn ph¶i t¨ng møc •u tiªn (priority) cho phÇn m· ®ã lªn møc cao h¬n b×nh th•êng. Møc •u tiªn High tá ra lµ phï hîp, tuy nhiªn nÕu cÇn thiÕt cã thÓ t¨ng lªn møc •u tiªn Real-time. Ngoµi ra, viÖc sö dông Thread cho riªng phÇn ®iÒu khiÓn lµ cÇn thiÕt ®Ó tr¸nh bÞ ¶nh h•ëng bëi phÇn giao diÖn. Nh• vËy, ch•¬ng tr×nh sÏ cã hai phÇn chÝnh t•¬ng øng víi hai Thread kh¸c nhau cña cïng mét Process. 3. CHỌN CÔNG CỤ LẬP TRÌNH Víi c¸c bµi to¸n ®iÒu khiÓn, ng«n ng÷ C/C++ d•êng nh• lµ lùa chän b¾t buéc, bëi ng«n ng÷ nµy cho phÐp viÕt c¸c ch•¬ng tr×nh m¹nh, nhanh, nhá gän, truy nhËp s©u vµo phÇn cøng (vÒ mÆt nµy th× kh«ng b»ng hîp ng÷). Tuy nhiªn, ®Ó tèi •u phÇn m· ®iÒu khiÓn, mét sè ®o¹n tr×nh hîp ng÷ sÏ ®•îc sö dông thªm vµo ®o¹n m· C/C++. VÒ c«ng cô vµ méi tr•êng ph¸t triÓn: hiÖn nay cã hai c«ng cô ph¸t triÓn rÊt m¹nh dïng ng«n ng÷ C/C++, ®ã lµ Visual C++ cña Microsoft vµ CBuilder cña Inprise (tªn míi cña Borland). Trong khi Visual C++ •u tiªn kh¶ n¨ng can thiÖp s©u vµo hÖ thèng vµ chØ ®ãng gãi ®¬n gi¶n c¸c thµnh phÇn (®å ho¹, file, ) cña hÖ thèng th× CBuilder l¹i tËn dông tèi ®a kh¶ n¨ng h•íng ®èi t•îng trong C++ ®Ó ®ãng gãi c¸c thµnh phÇn hÖ thèng, gióp lËp tr×nh viªn cµng Ýt ph¶i can thiÖp chi tiÕt vµo hÖ thèng cµng tèt. TÊt nhiªn CBuilder sÏ cã chót h¹n chÕ khi lËp tr×nh viªn muèn lËp tr×nh cÊp thÊp. Víi môc ®Ých nhanh chãng t¹o ra ch•¬ng tr×nh víi giao diÖn phï hîp, dÔ sö dông mµ vÉn ®¶m b¶o yªu cÇu vÒ tèc ®é, tÝnh hiÖu qu¶, c«ng cô CBuilder ®•îc chän ®Ó thùc hiÖn phÇn mÒm cho bµi tËp nµy. 4. Mà NGUỒN CỦA CHƯƠNG TRÌNH Ch•¬ng tr×nh nguån ®•îc viÕt d•íi d¹ng mét project trong CBuilder. HÖ thèng module trong project ®•îc tæ chøc nh• sau: Tªn file Chó thÝch ACMotor.bpr File Project ACMotor.cpp, File module chÝnh vµ file resource ACMotor.res UMain.* C¸c file nguån cho module cña form chÝnh UAbout.* C¸c file nguån cho module cña hép tho¹i About USettings.* C¸c file nguån cho module cña hép tho¹i Settings common.h, common.cpp Module chøa c¸c ®inh nghÜa biÕn chung UControl.* Module chøa Thread Class ®Ó ®iÒu khiÓn hÖ thèng 51
  50. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha Néi dung m· nguån cô thÓ nh• sau: a. Module chÝnh: File ACMotor.cpp #include #pragma hdrstop USERES("ACMotor.res"); USEFORM("UMain.cpp", frmMain); USEUNIT("UControl.cpp"); USEFORM("UAbout.cpp", AboutBox); USEFORM("USettings.cpp", dlgSettings); USEUNIT("common.cpp"); USEUNIT(" \ \userlib\GraphScope.cpp"); WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { try { Application->Initialize(); Application->Title = "Three-phase Motor Digital Controller"; Application->CreateForm(__classid(TfrmMain), &frmMain); Application->CreateForm(__classid(TAboutBox), &AboutBox); Application->CreateForm(__classid(TdlgSettings), &dlgSettings); Application->Run(); } catch (Exception &exception) { Application->ShowException(&exception); } return 0; } // b. Module cña form chÝnh: File UMain.h // #ifndef UMainH #define UMainH // 52
  51. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha #include #include #include #include #include #include #include "GraphScope.h" #include "UControl.h" // class TfrmMain : public TForm { __published: // IDE-managed Components TPanel *pnlitle; TLabel *lblTitle; TPanel *pnlSystem; TPanel *pnlButtons; TButton *btnSettings; TButton *btnControl; TButton *btnExit; TButton *btnAbout; TPanel *pnlControlPanel; TPanel *pnlGraph; TTimer *timSpeedUpdate; TPanel *pnlParams; TRadioButton *PController; TRadioButton *PIController; TRadioButton *PDController; TRadioButton *PIDController; TLabel *Label1; TEdit *KpEdit; TEdit *TiEdit; TEdit *TdEdit; TLabel *Label2; TLabel *Label3; TLabel *Label4; TPanel *Panel1; TLabel *btnDefault; TLabel *Label5; TLabel *curSpeed; TLabel *Label7; TLabel *Label6; TLabel *desiredSpeed; 53
  52. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha TButton *SetNewSpeed; void __fastcall FormCreate(TObject *Sender); void __fastcall btnAboutClick(TObject *Sender); void __fastcall btnExitClick(TObject *Sender); void __fastcall FormDestroy(TObject *Sender); void __fastcall btnControlClick(TObject *Sender); void __fastcall timSpeedUpdateTimer(TObject *Sender); void __fastcall PControllerClick(TObject *Sender); void __fastcall btnDefaultClick(TObject *Sender); void __fastcall btnSettingsClick(TObject *Sender); void __fastcall SetNewSpeedClick(TObject *Sender); private: TControlThread *CtrlThread; public: // User declarations TGraphScope *SpeedScope; __fastcall TfrmMain(TComponent* Owner); void __fastcall ChangeControlState(); __fastcall ~TfrmMain(); protected: }; // extern PACKAGE TfrmMain *frmMain; #endif File UMain.cpp // #include #pragma hdrstop #include #include "UMain.h" #include "UAbout.h" #include "common.h" #include #include "USettings.h" // #pragma package(smart_init) #pragma resource "*.dfm" TfrmMain *frmMain; 54
  53. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha // __fastcall TfrmMain::TfrmMain(TComponent* Owner) : TForm(Owner) { ::randomize(); ThreadProtect = new TCriticalSection; } // void __fastcall TfrmMain::FormCreate(TObject *Sender) { btnDefault->Caption = "D\nE\nF\nA\nU\nL\nT"; SpeedScope = new TGraphScope(this); SpeedScope->Parent = pnlGraph; SpeedScope->Align = alClient; } // void __fastcall TfrmMain::btnAboutClick(TObject *Sender) { AboutBox->Show(); } // void __fastcall TfrmMain::btnExitClick(TObject *Sender) { if (bControlling) { CtrlThread->Terminate(); timSpeedUpdate->Enabled = false; lblTitle->Caption = "Terminating "; Cursor = crHourGlass; CtrlThread->WaitFor(); } Close(); } // void __fastcall TfrmMain::FormDestroy(TObject *Sender) { delete SpeedScope; } 55
  54. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha // void __fastcall TfrmMain::ChangeControlState() { if (!bControlling) btnControl->Caption = "&Control"; else btnControl->Caption = "Stop &Control"; btnControl->Enabled = true; } void __fastcall TfrmMain::btnControlClick(TObject *Sender) { if (bControlling) { CtrlThread->Terminate(); timSpeedUpdate->Enabled = false; pnlParams->Enabled = true; btnSettings->Enabled = true; btnDefault->Enabled = true; } else { SpeedScope->NumValue = 0; SpeedScope->AddValue(0.0, 0.0); Kp = StrToFloat(KpEdit->Text); Ki = StrToFloat(TiEdit->Text); Kd = StrToFloat(TdEdit->Text); CtrlThread = new TControlThread(false); StartControlTime = time(NULL); timSpeedUpdate->Enabled = true; pnlParams->Enabled = false; btnSettings->Enabled = false; btnDefault->Enabled = false; } btnControl->Enabled = false; } // void __fastcall TfrmMain::timSpeedUpdateTimer(TObject *Sender) { double myspeed; 56
  55. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha ThreadProtect->Acquire(); myspeed = dSpeed; ThreadProtect->Release(); SpeedScope->AddValue(difftime(time(NULL), StartControlTime), myspeed); curSpeed->Caption = FloatToStr(dSpeed); } // __fastcall TfrmMain::~TfrmMain() { delete ThreadProtect; } void __fastcall TfrmMain::PControllerClick(TObject *Sender) { TiEdit->Enabled = false; TdEdit->Enabled = false; if (PIDController->Checked || PIController->Checked) TiEdit->Enabled = true; if (PIDController->Checked || PDController->Checked) TdEdit->Enabled = true; } // void __fastcall TfrmMain::btnDefaultClick(TObject *Sender) { if (PIDController->Checked) { KpEdit->Text = "0.01767"; TiEdit->Text = "0.15"; TdEdit->Text = "0.00026"; } else if (PIController->Checked) { KpEdit->Text = "1"; TiEdit->Text = "0.1"; } else if (PDController->Checked) { KpEdit->Text = "1"; 57
  56. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha TdEdit->Text = "0.01"; } else KpEdit->Text = "1"; } // void __fastcall TfrmMain::btnSettingsClick(TObject *Sender) { if (dlgSettings->ShowModal() == mrOk) { NumPulse = StrToInt(dlgSettings->EncNumPulse->Text); TSamp = dlgSettings->SampTime->Value / 1000.0; } } // void __fastcall TfrmMain::SetNewSpeedClick(TObject *Sender) { AnsiString value; double newSpeed, oldSpeed; ThreadProtect->Acquire(); oldSpeed = desSpeed; ThreadProtect->Release(); value = FloatToStr(oldSpeed); if (InputQuery("Set Desired Speed", "Enter the desired speed", value)) { newSpeed = StrToFloat(value); if (newSpeed >= 0 && newSpeed Acquire(); desSpeed = newSpeed; ThreadProtect->Release(); desiredSpeed->Caption = FloatToStr(newSpeed); } } } 58
  57. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha c. Module cña hép tho¹i About: File UAbout.h #ifndef UAboutH #define UAboutH // #include #include #include #include #include #include #include #include #include #include // class TAboutBox : public TForm { __published: TPanel *Panel1; TLabel *ProductName; TLabel *Copyright; TButton *OKButton; TMemo *Memo1; TLabel *Notice; void __fastcall FormClose(TObject *Sender, TCloseAction &Action); void __fastcall OKButtonClick(TObject *Sender); private: public: virtual __fastcall TAboutBox(TComponent* AOwner); }; // extern PACKAGE TAboutBox *AboutBox; // #endif File UAbout.cpp // 59
  58. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha #include #pragma hdrstop #include "UAbout.h" // #pragma resource "*.dfm" TAboutBox *AboutBox; // __fastcall TAboutBox::TAboutBox(TComponent* AOwner) : TForm(AOwner) { } // void __fastcall TAboutBox::FormClose(TObject *Sender, TCloseAction &Action) { Action = caHide; } // void __fastcall TAboutBox::OKButtonClick(TObject *Sender) { Close(); } // d. Module chøa Thread Class ®iÒu khiÓn: File UControl.h // #ifndef UControlH #define UControlH // 60
  59. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha #include #include "GraphScope.h" // class TControlThread : public TThread { private: __int64 SmplCnt; //Sampling Time Count Value protected: void __fastcall Execute(); void __fastcall RunWhenTerminate(TObject *Sender); void __fastcall ChangebControlling(); public: __fastcall TControlThread(bool CreateSuspended); }; // #endif File UControl.cpp // #include #pragma hdrstop #include #include "UControl.h" #include "common.h" #include "UMain.h" #pragma package(smart_init) // // Important: Methods and properties of objects in VCL can only // be // used in a method called using Synchronize, for example: // // Synchronize(UpdateCaption); // 61
  60. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha // where UpdateCaption could look like: // // void __fastcall Unit1::UpdateCaption() // { // Form1->Caption = "Updated in a thread"; // } // __fastcall TControlThread::TControlThread(bool CreateSuspended) : TThread(CreateSuspended) { Priority = tpHighest; FreeOnTerminate = true; OnTerminate = RunWhenTerminate; //Khoi tao phan cung //So dem cho 8254 unsigned short int Count8254 = TSamp * 20000; asm { MOV DX, 0x313 MOV AL, 0xB6 OUT DX, AL MOV DX, 0x312 MOV AX, Count8254 OUT DX, AL XCHG AH, AL OUT DX, AL //Counter0: mode 2, 16bit, value=FFFF MOV DX, 0x313 MOV AL, 0x34 OUT DX, AL MOV DX, 0x310 MOV AL, 0xFF OUT DX, AL NOP //delay OUT DX, AL //Counter1: mode 2, 16bit, value=FFFF MOV DX, 0x313 MOV AL, 0x74 OUT DX, AL MOV DX, 0x311 62
  61. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha MOV AL, 0xFF OUT DX, AL NOP //delay OUT DX, AL } } // void __fastcall TControlThread::Execute() { double u_old, e_old[2]; double y, w, u, e; double A,B,C; Synchronize(ChangebControlling); u_old = 0.0; e_old[0] = e_old[1] = 0.0; A = (Ki*TSamp*TSamp + 2*Kd + 2*Kp*TSamp)/2/TSamp; B = (Ki*TSamp*TSamp - 2*Kp*TSamp - 4*Kd)/2/TSamp; C = Kd/TSamp; _LARGE_INTEGER freq; if (!(::QueryPerformanceFrequency(&freq))) { MessageDlg("No high-accuracy timer found.", mtError, TMsgDlgButtons() << mbOK, 0); return; } _LARGE_INTEGER lastTime; ::QueryPerformanceCounter(&lastTime); _LARGE_INTEGER curTime = lastTime; SmplCnt = TSamp * freq.QuadPart; register unsigned short int PulsesCounted; double heso = 60.0/(NumPulse*TSamp); double heso_u = 255.0/12; unsigned char udk; while (!Terminated) { while (curTime.QuadPart - lastTime.QuadPart < SmplCnt) ::QueryPerformanceCounter(&curTime); //Doc toc do asm { //Read-back command, latch Counter 2 status MOV DX, 0x313 63
  62. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha MOV AL, 0xE8 OUT DX, AL //Read status MOV DX, 0x312 IN AL, DX MOV AH, AL //save status2 to AH //Read-back command, latch Counter 0 & 1 MOV DX, 0x313 MOV AL, 0xD6 OUT DX, AL MOV AL, AH //restore status2 MOV CL, 7 //Shift Right to get OUT2 SHR AL, CL XOR AH, AH //now, AX contains the offset of the latch counter MOV DX, 0x310 ADD DX, AX //now DX contains the port addr of the latch counter //And read count value now IN AL, DX MOV AH, AL IN AL, DX XCHG AH, AL //FFFF-AX = number of pulses counted NOT AX MOV PulsesCounted, AX } y = PulsesCounted*heso; ThreadProtect->Acquire(); dSpeed = y; w = desSpeed; ThreadProtect->Release(); //Thuat toan dieu khien e = w - y; u = u_old + A*e + B*e_old[0] + C*e_old[1]; //Va xuat tin hieu dieu khien ra u_dk = u*heso_u; asm { MOV DX, 0x314 MOV AL, u_dk OUT DX, AL } 64
  63. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha u_old = u; e_old[1] = e_old[0]; e_old[0] = e; lastTime = curTime; } } // void __fastcall TControlThread::RunWhenTerminate(TObject *Sender) { Synchronize(ChangebControlling); } void __fastcall TControlThread::ChangebControlling() { bControlling = !bControlling; frmMain->ChangeControlState(); } e. Module cña hép tho¹i Settings: File USettings.h // #ifndef USettingsH #define USettingsH // #include #include #include #include #include #include #include #include #include #include #include "CSPIN.h" // class TdlgSettings : public TForm 65
  64. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha { __published: TButton *OKBtn; TButton *CancelBtn; TGroupBox *GroupBox1; TLabel *Label1; TEdit *EncNumPulse; TButton *Button1; TGroupBox *GroupBox2; TLabel *Label4; TCSpinEdit *SampTime; TButton *Button2; void __fastcall Button1Click(TObject *Sender); void __fastcall Button2Click(TObject *Sender); private: public: virtual __fastcall TdlgSettings(TComponent* AOwner); }; // extern PACKAGE TdlgSettings *dlgSettings; // #endif File USettings.cpp // #include #pragma hdrstop #include "USettings.h" // #pragma link "CSPIN" #pragma resource "*.dfm" TdlgSettings *dlgSettings; // __fastcall TdlgSettings::TdlgSettings(TComponent* AOwner) : TForm(AOwner) { } 66
  65. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha // void __fastcall TdlgSettings::Button1Click(TObject *Sender) { EncNumPulse->Text = "2000"; } // void __fastcall TdlgSettings::Button2Click(TObject *Sender) { SampTime->Value = 5; } // f. Module chøa c¸c ®Þnh nghÜa biÕn chung: File common.h #ifndef COMMONH #define COMMONH #include #include //bControlling: is the computer controlling the Motor ? extern bool bControlling; //dSpeed: current speed (rpm) extern double dSpeed; //StartControlTime: the time at which controlling starts extern time_t StartControlTime; //ThreadProtect: protect thread crisis extern TCriticalSection *ThreadProtect; //NumPulse: Number of Pulse per Rotate extern unsigned int NumPulse; //TSamp: Sampling Time extern double TSamp; //desSpeed: desired speed extern double desSpeed; //Kp, Ki, Kd: parameters of PID controller extern double Kp, Ki, Kd; #endif COMMONH 67
  66. Nghiên cứu, thiết kế hệ thống điều khiển số cho động cơ KĐB 3 pha File common.cpp #include "common.h" bool bControlling = false; double dSpeed = 0.0; double desSpeed = 0.0; //desired speed time_t StartControlTime; TCriticalSection *ThreadProtect; unsigned int NumPulse = 2000; double TSamp = 0.005; double Kp, Ki, Kd; 68