Luận văn Điều khiển mờ và giao thức can trong đồng bộ tốc độ hệ động cơ DC

Nhiệm vụ của đề tài là sử dụng giải thuật điều khiển kết hợp với vi điều khiển để ổn định và đồng bộ tốc độ hệ động cơ điện một chiều ( động cơ DC ). Đề tài được thực hiện như sau: Sử dụng giải thuật điều khiển PI-Mờ kết hợp với vi điều khiển 16-bit MC9S12DP512 để ổn định và đồng bộ tốc độ hệ động cơ DC . Mô hình phần cứng bao gồm 3 mô-đun mạch : mô-đun 0 đóng vai trò làm trung tâm điều khiển-giám sát toàn hệ thống , mô-đun 1 điều khiển động cơ 1, mô-đun 2 điều khiển động cơ 2 . Vi điều khiển trên mô-đun 1 sẽ nhận tốc độ đặt từ người dùng ,sử dụng giải thuật điều khiển PI-Mờ để điều rộng xung (PWM: Pulse Width Modulation) điều khiển động cơ 1 chạy đúng theo tốc độ đặt , đồng thời truyền giá trị tốc độ của động cơ 1 cho vi điều khiển trên môđun 2 qua Port A của 2 vi điều khiển. Vi điều khiển trên mô-đun 2 sẽ lấy giá trị tốc độ của động cơ 1 từ Port A để làm tốc độ đặt , và sử dụng giải thuật điều khiển PI-Mờ để điều rộng xung ( PWM ) điều khiển động cơ 2 chạy đúng theo tốc độ của động cơ 1. Cả 3 mô-đun đều được kết nối với nhau trong mạng CAN ( Controller Area Network) để hai mô-đun 1 và 2 có thể truyền nhanh dữ liệu về mô-đun 0 (có vai trò là trung tâm điều khiển-giám sát) cho người dùng có thể giám sát .Thêm vào đó , kết hợp với máy vi tính đặt tại mô-đun 0, người dùng có thể điều khiển toàn bộ hoạt động của hệ thống. Kết quả đạt được thỏa mãn khá tốt yêu cầu đề ra: Điều khiển ổn định được tốc độ động cơ DC , đồng bộ được tốc độ của 2 động cơ DC . Thay đổi tốc độ khá linh hoạt . Xây dựng thành công mạng CAN dùng để kết nối các mô-đun trong hệ thống , cho phép điều khiển và giám sát toàn hệ thống từ máy vi tính hay từ mô-đun điều khiển trung tâm. iv MỤC LỤC Đề mục Trang Trang bìa i Nhiệm vụ luận văn Lời cảm ơn ii Tóm tắt iii Mục lục iv CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI . 1 1.1 Đặt vấn đề .1 1.2 Các phương pháp đã được sử dụng để đồng bộ tốc độ động cơ và ứng dụng thực tế 2 1.3 Nhiệm vụ của luận văn .5 1.4 Thực hiện 5 1.5 Sơ lược về mô hình hệ thống .7 1.5.1 Sơ đồ khối của mô hình hệ thống .7 1.5.2 Mô tả hoạt động của mô hình hệ thống 7 CHƯƠNG 2: LÝ THUYẾT ĐIỀU KHIỂN MỜ , ĐIỀU KHIỂN PID . . .9 2.1 Lý thuyết điều khiển Mờ 9 2.1.1 Giới thiệu về Logic Mờ .9 2.1.2 Một số khái niệm cơ bản 11 2.1.3 Mệnh đề hợp thành mờ, luật hợp thành mờ 14 2.1.4 Bộ điều khiển mờ .17 2.2 Lý thuyết điều khiển PID .20 2.2.1 Khâu hiệu chỉnh tỷ lệ P 20 2.2.2 Khâu hiệu chỉnh vi phân tỷ lệ PD .20 2.2.3 Khâu hiệu chỉnh tích phân tỷ lệ PI .21 2.2.4 Khâu hiệu chỉnh vi tích phân tỷ lệ PID .21 2.2.5 Thiết kế bộ điều khiển PID 22 CHƯƠNG 3: LÝ THUYẾT GIAO THỨC CAN .24 3.1. Giới thiệu ( CAN: Controller Area Network ) .24 3.2. Giao thức CAN ( CAN Protocol ) .26 3.2.1 Nội dung giao thức 26 v 3.2.2 Mô hình CAN trong OSI .27 3.2.3 Lớp vật lý .29 3.2.4 Cấu trúc bức điện .32 3.2.5 Cấu trúc bit trong giao thức CAN 35 3.2.6 Truy cập và giải quyết tranh chấp trên đường truyền .37 3.2.7 Sự đồng bộ xung clock 38 CHƯƠNG 4: ĐỘNG CƠ ĐIỆN MỘT CHIỀU VÀ CÁC PHƯƠNG PHÁP ĐIỀU KHIỂN .40 4.1 Đặc tính cơ tĩnh của động cơ điện một chiều ( Động cơ DC ) 40 4.2 Sơ lược về các phương pháp điều khiển tốc độ động cơ DC 44 4.2.1 Điều khiển từ thông 45 4.2.2 Điều khiển điện áp phần ứng .46 4.2.3 Điều khiển hỗn hợp điện áp phần ứng và từ thông kích từ .47 4.3 Phương pháp điều rộng xung (PWM: Pulse Width Modulation) 48 4.4 Giới thiệu về Encoder được sử dụng trong luận văn 50 CHƯƠNG 5: HỌ VI ĐIỀU KHIỂN HCS12 VÀ VI ĐIỀU KHIỂN MC9S12DP512 .53 5.1 Giới thiệu chung về họ vi điều khiển HCS12 53 5.1.1 Các thành phần cơ bản của bộ xử lý 55 5.1.2 Các chế độ hoạt động 56 5.2 Vi điều khiển được sử dụng trong Luận văn - MC9S12DP512 .58 5.2.1 Các Port xuất nhập đa dụng 60 5.2.2 Khối chức năng thời gian ( Timer ) .63 5.2.3 Bộ điều rộng xung ( PWM ) 67 5.2.4 Giao tiếp nối tiếp bất đồng bộ ( SCI ) 70 5.2.5 Khối chức năng Key-WakeUp 72 5.2.6 Khối Mô-đun chức năng CAN ( Controller Area Network ) 73 CHƯƠNG 6: THIẾT KẾ VÀ THI CÔNG MÔ HÌNH PHẦN CỨNG 79 6.1 Cấu trúc phần cứng của các mô-đun trong mô hình 79 6.2 Các khối mạch chức năng trên mô-đun điều khiển động cơ và mô-đun trung tâm. .80 6.2.1 Khối mạch vi điều khiển trung tâm 81 6.2.2 Khối mạch giao tiếp máy vi tính qua cổng nối tiếp 82 6.2.3 Khối giao tiếp CAN 84 6.2.4 Khối giao tiếp song song giữa 2 mô-đun điều khiển 2 động cơ 85 6.2.5 Khối bàn phím điều khiển động cơ ( 4 phím) 85 6.2.6 Khối bàn phím chọn các chế độ hoạt động cho mô hình 86 vi 6.2.7 Khối mạch nguồn 5 Vdc cho hệ thống điều khiển 87 6.2.8 Khối thời gian thực .87 6.2.9 Khối hiển thị LCD 91 6.2.10 Khối mạch động lực điều khiển động cơ .92 6.2 Khối nguồn 24/12/5 Vdc cung cấp cho mạch động lực và động cơ .94 6.3 Sơ đồ mạch BDM-Pod :Mạch dùng để Nạp ,Debug cho họ HCS12 .95 Hình ảnh thật của mô hình phần cứng luận văn . .96 CHƯƠNG 7: GIẢI THUẬT CHƯƠNG TRÌNH . 97 7.1 Thiết kế bộ điều khiển PI-Mờ , ổn định tốc độ động cơ DC .97 7.1.1 Sơ lược sơ đồ khối và hệ phương trình toán 97 7.1.2 Thiết kế bộ điều khiển PI-Mờ 98 7.1.3 Cách tính tốc độ của động cơ DC được sử dụng trong luận văn .102 7.2 Cách thức điều khiển từ máy vi tính ( PC ) .103 7.3 Lưu đồ giải thuật cho vi điều khiển trên các mô-đun 110 7.3.1 Lưu đồ giải thuật đoạn chương trình MAIN 112 7.3.2 Trình tự chi tiết trong các chương trình con và 5 chương trình phục vụ Ngắt .116 CHƯƠNG 8: KẾT QUẢ ĐẠT ĐƯỢC , HƯỚNG PHÁT TRIỂN ĐỀ TÀI .123 8.1 Một số hình ảnh về hoạt động của hệ thống 123 8.1.1 Tại giao diện trên máy tính ở mô-đun điều khiển động cơ 1 .123 8.1.2 Hình ảnh tại giao diện trên máy tính và mô-đun ở trung tâm điều khiển 125 8.2 Các kết quả đã đạt được 127 8.3 Một số điểm hạn chế .128 8.4 Hướng khắc phục các điểm hạn chế và phát triển đề tài 128 8.4.1 Hướng khắc phục các điểm hạn chế 128 8.4.2 Hướng phát triển đề tài 129 TÀI LIỆU THAM KHẢO 130 PHỤ LỤC: BẢN VẼ TỔNG HỢP SƠ ĐỒ NGUYÊN LÝ CÁC MẠCH

pdf139 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2516 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Luận văn Điều khiển mờ và giao thức can trong đồng bộ tốc độ hệ động cơ DC, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
D4 -:- D7 - Caùc chaân cuûa LCD keát noái vôùi Port K cuûa vi ñieàu khieån MC9S12DP512. Trình töï keát noái caùc chaân: RS - PK0 ; Enable - PK1 ; D[4:7] - PK[2:5] Baûng 6.2 : Sô ñoà chaân cuûa LCD kyù töï Chaân Kí hieäu Chöùc naêng Chöông 6: Thieát keá vaø thi coâng moâ hình phaàn cöùng GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 92 1 VSS Mass 2 VDD Nguoàn cung caáp cho LCD 3 V_Cons Chænh ñoä töông phaûn cho LCD 4 /RS Choïn thanh ghi trong LCD 5 R/W Ñoïc (1) / Ghi döõ lieäu (0) 6 Enable Cho pheùp choïn LCD 7 D0 Bit 0 cuûa byte döõ lieäu 8 D1 Bit 1 cuûa byte döõ lieäu 9 D2 Bit 2 cuûa byte döõ lieäu 10 D3 Bit 3 cuûa byte döõ lieäu 11 D4 Bit 4 cuûa byte döõ lieäu 12 D5 Bit 5 cuûa byte döõ lieäu 13 D6 Bit 6 cuûa byte döõ lieäu 14 D7 Bit 7 cuûa byte döõ lieäu 15 LED_A Nguoàn cho ñeøn LED neàn cuûa LCD 16 LED_K Mass cho ñeøn LED neàn cuûa LCD - Vì trong chöông trình , chæ söû duïng cheá ñoä: ghi ra trò leân LCD ( Write) maø khoâng coù ñoïc giaù trò töø LCD veà ( Read) neân chaân R/W cuûa LCD ñöôïc noái vôùi Mass . - Bieán trôû 20K ( R14 ) duøng ñeå chænh ñoä töông phaûn cho LCD , khi V_Cons = 0V thì LCD coù maøu ñaäm nhaát. - Nuùt nhaán SW4 duøng ñeå baät ñeøn Led neàn beân trong LCD , khi ñoù coù theå söû duïng LCD vaøo ban ñeâm. 6.2.10 Khoái maïch ñoäng löïc ñieàu khieån ñoäng cô ( Chæ coù treân 2 moâ-ñun ñieàu khieån ñoäng cô) Chöông 6: Thieát keá vaø thi coâng moâ hình phaàn cöùng GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 93 Hình 6.15: Khoái maïch ñoäng löïc ñieàu khieån ñoäng cô - Maïch söû duïng MosFet - IRF540 ñeå ñieàu khieån ñoäng cô. - Maïch ñoäng löïc duøng nguoàn 24V-12V rieâng , khoâng chung Mass vôùi moâ-ñun ñieàu khieån. Söû duïng OPTO ñeå : caùch ly maïch ñoäng löïc vôùi maïch vi ñieàu khieån vaø chuyeån möùc logic. - Caëp BJT boå phuï Q1 ( D468 ) vaø Q3 ( B562 ) caûi thieän quaù trình ñoùng ngaét cuûa MosFet IRF540. Diod D6 duøng ñeå xaû naêng löôïng tích luõy trong ñoäng cô . - Nguyeân taéc hoaït ñoäng nhö sau: + Khi tín hieäu cuûa chaân ñieàu roäng xung PWM0 cuûa vi ñieàu khieån MC9S12DP512 ôû möùc cao , seõ laøm cho OPTO khoâng hoaït ñoäng . AÙp taïi ñieåm 4 (tröôùc Diod D5) seõ laø 12Volt à laøm Q1 daãn ,Q3 taét , noái taét cöïc C vaø cöïc E cuûa Q1 à Cöïc G cuûa MosFet IRF540 seõ ôû möùc logic cao (12V) , MosFet daãn à Ñoäng cô seõ chaïy. + Ngöôïc laïi: Khi tín hieäu cuûa chaân ñieàu roäng xung PWM0 cuûa vi ñieàu khieån MC9S12DP512 ôû möùc thaáp, seõ laøm cho OPTO hoaït ñoäng . AÙp taïi ñieåm 4 (tröôùc Diod D5 ) seõ laø 0 Volt – do noái taét xuoáng mass à Laøm Q1 taét , Q3 daãn, noái taét cöïc C vaø cöïc E cuûa Q3 à Cöïc G cuûa MosFet IRF540 seõ ôû möùc logic thaáp ( 0 Volt – do noái taét vôùi Mass ) , MosFet bò taét à Ñoäng cô seõ döøng laïi. Chöông 6: Thieát keá vaø thi coâng moâ hình phaàn cöùng GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 94 - Chuù yù: Trong tröôøng hôïp söû duïng OPTO ñeå caùch ly seõ bò moät haïn cheá laø- Khi ñieàu roäng xung taàn soá cao ( töø 10 Khz trôû leân ), caùc OPTO coù chaát löôïng ñoùng ngaét keùm seõ khoâng ñaùp öùng toát daãn ñeán chaát löôïng ñoùng ngaét cuûa MosFet IRF540 giaûm . Töø ñoù ñoäng cô hoaït ñoäng seõ khoâng nhö yù muoán. Vì theá ,khi muoán ñieàu roäng xung ôû taàn soá cao ; treân sô ñoà maïch ñoäng löïc, ta coù theå choïn kieåu ñieàu khieån tröïc tieáp ( khoâng duøng OPTO ) nhö sau: + ÔÛ coâng taéc gaït SW9 , ta keùo leân ON vò trí thöù 2 ( kyù hieäu Direct_0 ) vaø keùo veà OFF vò trí thöù 3 ( vò trí duøng OPTO ). + Keát noái Mass chung giöõa maïch vi ñieàu khieån vaø maïch ñoäng löïc. - Daây tín hieäu Encoder ñöa veà seõ ñöôïc gaén vaøo Jump ( J18 hay J19 )- keát noái tröïc tieáp vôùi chaân PortT.7 , laø chaân chöùc naêng cho boä ñeám xung A cuûa vi ñieàu khieån MC9S12DP512. 6.2 Khoái nguoàn 24/12/5 Vdc cung caáp cho maïch ñoäng löïc vaø ñoäng cô Hình 6.16: Khoái maïch nguoàn 24/12/5 VDC duøng cho maïch ñoäng löïc vaø ñoäng cô ø Chöông 6: Thieát keá vaø thi coâng moâ hình phaàn cöùng GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 95 - Ngoõ vaøo laø ñieän aùp xoay chieàu, bieân ñoä 24VAC/ 5A . Sau ñoù qua caàu chænh löu diod ,thaønh ñieäp aùp moät chieàu . Tuï ñieän C10 ( 4700 uF/50V) duøng ñeå laøm phaúng ñieän aùp sau chænh löu. Ñieän aùp sau chænh löu seõ qua IC oån aùp LM7824 thaønh aùp 24VDC, tieáp tuïc qua tuï C9 (2200uF ) vaø IC oån aùp LM7812 thaønh aùp 12VDC , cuoái cuøng qua IC oån aùp LM7805 thaønh aùp 5VDC. - Caùc BJT coâng suaát loaïi PNP laø: Q2 vaø Q3 ( BJT 2SA1302 ) duøng ñeå khuyeách ñaïi doøng ñieän ngoõ ra sau caùc IC oån aùp (LM7824:24V , LM7812:12V ). Caùc ñieän trôû coâng suaát R7, R6 ( 3 Ohm/2W ) ñöôïc söû duïng coù caùc chöùc naêng sau: + Ñieän aùp möùc daãn treân cöïc E-B cuûa Q2 vaø Q3: V EB = 0.7 V ( theo datasheet) , neân caùc BJT Q2 vaø Q3 chæ hoaït ñoäng khi doøng ñieän vaøo caùc IC oån aùp (LM7824 vaø LM7812) vöôït qua ngöôõng : )(233)(233.0 3 7.0 7 mAA R VI EBnguong ==== . Coù nghóa laø chæ khi caùc ngoõ ra 24V ( hay 12V) caàn söû duïng doøng lôùn ( töø 233mA trôû leân ) thì caùc BJT coâng suaát môùi hoaït ñoäng ñeå khuyeách ñaïi doøng ngoõ ra. + Ngoaøi ra ,caùc ñieän trôû R6, R7 coøn coù chöùc naêng caûi thieän toát vieäc ñoùng/ngaét cuûa caùc BJT: Q2,Q3. - Caùc diod D9 , D10 , D13 coù nhieäm vuï baûo veä caùc IC oån aùp khi ngoõ vaøo maát ñieän ñoät ngoät - Caùc Led D14, D15 , D16 coù nhieäm vuï baùo hieäu khi coù caùc möùc ñieän aùp 24V , 12 V , 5V - Khoái nguoàn naøy ñöôïc söû duïng theo caùc muïc ñích sau: + Ñieän aùp 24V ñöôïc keát noái vaøo 2 khoái maïch ñoäng löïc : cung caáp cho 2 ñoäng cô DC (24V/20W) trong moâ hình. + Ñieän aùp 12V ñöôïc keát noái vaøo 2 khoái maïch ñoäng löïc : thöïc hieän phaân cöïc cho caùc BJT ( D468 vaø B562) laùi MosFet IRF540. 6.3 Sô ñoà maïch BDM-Pod : duøng ñeå Naïp hay Debug cho hoï vi ñieàu khieån HCS12 Sô ñoà maïch naøy söû duïng vi ñieàu khieån 8-bit AT90S2313 , thuoäc hoï AVR cuûa haõng Atmel. Vi ñieàu khieån AT90S2313 seõ ñöôïc naïp vaøo 1 chöông trình -goïi laø FirmWare . Sô ñoà maïch vaø FirmWare ñöôïc thöïc hieän döïa theo taøi lieäu höôùng daãn cuûa haõng FreeScale . Chöông 6: Thieát keá vaø thi coâng moâ hình phaàn cöùng GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 96 Hình 6.17: Maïch BDM-Pod Hình 6.18: Hình aûnh thöïc teá cuûa moâ hình phaàn cöùng trong luaän vaên Chöông 7: Giaûi thuaät chöông trình GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 97 CHÖÔNG 7 GIAÛI THUAÄT CHÖÔNG TRÌNH 7.1 Thieát keá boä ñieàu khieån PI-Môø , oån ñònh toác ñoä ñoäng cô DC 7.1.1 Sô löôïc sô ñoà khoái vaø heä phöông trình toaùn Hình 7.1 : Sô ñoà khoái toång quaùt cuûa boä ñieàu khieån PI-Môø + ÔÛ ñaây, boä ñieàu khieån Môø ñoùng vai troø laø Boä chænh ñònh caùc thoâng soá cho boä ñieàu khieån PI , döïa vaøo caùc bieán ñaàu vaøo laø : Sai soá e(t) vaø ñaïo haøm sai soá ( de/dt ). + Boä ñieàu khieån PI môùi taïo ra tín hieäu ñieàu khieån tröïc tieáp ñoái töôïng · Moâ hình toaùn cho boä ñieàu khieån PI : ò+= t IP dxxeKteKtu 0 )()()( (7.1) ))(1)(()( 0 ò+= t I P dxxeT teKtu (7.2) )(teK dt deK dt du IP += (7.3) Chöông 7: Giaûi thuaät chöông trình GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 98 )11()( sT K s KKsG i P I pPI +=+= (7.4) D P I K KK a 2 = D I T T =a (7.5) 7.1.2 Thieát keá boä ñieàu khieån PI-Môø · Caùc nguyeân taéc taïo luaät hôïp thaønh cho caùc thoâng soá cuûa boä ñieàu khieån PI-Môø : - ÔÛ ñaây, ta seõ xaây döïng caùc luaät hôïp thaønh cho caùc thoâng soá PK , DK ,a roài töø ñoù tính ra giaù trò cuûa heä soá IK ( theo coâng thöùc (7.5) : D P I K KK a 2 = ) . Hình 7.2 : Sô ñoà chi tieát cuûa boä ñieàu khieån PI-Môø ñöôïc duøng trong luaän vaên - Trong ñieàu khieån Môø , khoâng coù trình töï thieát keá (caùc luaät hôïp thaønh cho caùc thoâng soá PK , DK ,a ) moät caùch chính quy ,nhöng ta cuõng coù moät vaøi nguyeân taéc cô baûn ñeå chænh ñònh nhö sau : - Nguyeân taéc chung laø laø baét ñaàu caùc trò PK , DK , a theo Zeigler-Nichols , sau ñoù döïa vaøo ñaùp öùng cuûa heä thoáng vaø thay ñoåi daàn ñeå tìm ra höôùng chænh ñònh thích hôïp. Chöông 7: Giaûi thuaät chöông trình GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 99 Hình 7.3: Ñöôøng cong ñaùp öùng Zeigler-Nichols + Laân caän 1a ta caàn luaät ñieàu khieån maïnh ñeå ruùt ngaén thôøi gian leân, do vaäy choïn : PK lôùn , DK nhoû vaø a nhoû. + Laân caän 1b ta traùnh voït loá lôùn neân choïn : PK nhoû, DK lôùn , a lôùn + Laân caän 1c vaø 1d gioáng nhö laân caän 1a vaø 1b. + Khi giaù trò tuyeät ñoái cuûa sai leäch lôùn ta caàn coù tín hieäu ñieàu khieån maïnh ñeå ñöa nhanh sai leäch veà 0. Döïa theo nguyeân taéc naøy ta coù ma traän quan heä chænh ñònh ( Baûng luaät hôïp thaønh Môø ) caùc thoâng soá PK , DK , a thöôøng seõ coù daïng gaàn ñoái xöùng qua ñöôøng cheùo chính hoaëc truïc phuï. - Nguyeân taéc thöù 2 : Suy ñoaùn coù logic döïa vaøo giaù trò caùc bieán ngoân ngöõ ñaàu vaøo.Ví duï nhö : + Khi giaù trò sai soá e(t) laø aâm nhieàu ( nghóa laø toác ñoä thaät cuûa ñoäng cô ñang nhoû hôn raát nhieàu so vôùi toác ñoä ñaët ) vaø giaù trò ñaïo haøm cuûa sai soá dt tde )( cuõng aâm nhieàu ( nghóa laø ñoäng cô ñang coù xu höôùng tieáp tuïc giaûm nhanh toác ñoä ) thì giaù trò cuûa heä soá PK phaûi laø Lôùn Nhaát ñeå taêng toác maïnh cho ñoäng cô , coøn DK vaø a coù giaù trò nhoû nhaát. + Khi giaù trò sai soá e(t) laø aâm ít ( nghóa laø toác ñoä thaät cuûa ñoäng cô ñang nhoû hôn khoâng bao nhieâu so vôùi toác ñoä ñaët ) vaø giaù trò ñaïo haøm cuûa sai soá dt tde )( cuõng aâm ít ( nghóa laø ñoäng cô ñang coù xu höôùng giaûm toác ñoä ôû möùc chaäm ) thì giaù trò cuûa heä soá PK seõ laø Lôùn ñeå taêng toác (nhöng khoâng quaù maïnh) cho ñoäng cô , coøn DK vaø a coù giaù trò nhoû. Chöông 7: Giaûi thuaät chöông trình GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 100 · Caùc bieán ngoân ngöõ : - Ñaàu vaøo : 2 bieán + Sai leäch: ET = toác ñoä ño – toác ñoä ñaët ; (caùch tính toác ñoä ñoäng cô: Chöông 7-Phaàn 7.1.3 ) + Toác ñoä taêng T iEiETDET )()1( -+= ; vôùi T laø chu kì laáy maãu (ôû ñaây, T = 20ms ) - Ñaàu ra: 3 bieán + PK : heä soá tyû leä + DK : heä soá vi phaân + IK : heä soá tích phaân ( tính ra töø giaù trò trung gian a : D P I K KK a 2 = ) - Soá löôïng bieán ngoân ngöõ : 5 baäc + ET = { aâm nhieàu , aâm ít , zero , döông ít , döông nhieàu } = {N2 , N1 , Z , P1 , P2 } + DET = { aâm nhieàu , aâm ít , zero , döông ít , döông nhieàu } = {N2 , N1 , Z , P1 , P2 } + PK / DK = { zero , nhoû, trung bình , lôùn , raát lôùn } = { Z , S , M , L , U } + a = { möùc 1, möùc 2 , möùc 3 , möùc 4 , möùc 5 } = { L1 , L2 , L3 , L4 , L5 } Taàm giaù trò: ]20;20[];20;20[ -=-= DETET Chöông 7: Giaûi thuaät chöông trình GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 101 Hình 7.4: Caùc bieán ngoân ngöõ vaøo/ra · Luaät hôïp thaønh: Coù toång coäng 5x5x3 = 75 luaät IF…Then Baûng 7.1, 7.2 , 7.3: Luaät hôïp thaønh môø cho caùc thoâng soá PK , DK vaø a DET PK N2 N1 Z P1 P2 N2 U L M Z Z N1 L M S Z Z Z M S Z S M P1 Z Z S M L ET P2 Z Z M L U Chöông 7: Giaûi thuaät chöông trình GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 102 DET DK N2 N1 Z P1 P2 N2 Z S M L U N1 S M L U L Z M L U L M P1 L U L M S ET P2 U L M S Z DET a N2 N1 Z P1 P2 N2 L1 L2 L3 L4 L5 N1 L2 L3 L4 L5 L4 Z L3 L4 L5 L4 L3 P1 L4 L5 L4 L3 L2 ET P2 L5 L4 L3 L2 L1 · Luaät hôïp thaønh môø : Choïn luaät MAX – MIN · Giaûi môø : Theo phöông phaùp ñoä cao 7.1.3 Caùch tính toác ñoä cuûa ñoäng cô DC ñöôïc söû duïng trong luaän vaên - Moãi ñoäng cô ñöôïc gaén ñoàng truïc vôùi 1 encoder quang loaïi töông ñoái 100 xung/voøng. Chöông 7: Giaûi thuaät chöông trình GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 103 - Goïi: + Toác ñoä tính theo voøng/phuùt (R.P.M : Round Per Minute) laø: Speed_RPM + Soá xung cuûa encoder trong 20ms ( xung/20ms) laø: Pulse_20MS - Ta coù: + Soá xung cuûa encoder trong 1 giaây laø: 60 100_ RPMxSpeed ( xung/s) + Soá xung cuûa encoder trong 20ms seõ laø: ( 1 s = 1000 ms = 50 x 20ms ) Pulse_20MS ( xung/ 20ms) = 60 100_ RPMxSpeed x 50 1 (7.6) Vaäy soá xung cuûa encoder trong 20ms seõ baèng toác ñoä cuûa ñoäng cô ( ñôn vò voøng/phuùt: R.P.M ) chia cho 30 . Do ñoù ,khi tính ñöôïc soá xung cuûa encoder trong 20ms , ta chæ caàn nhaân giaù trò naøy cho 30 laø seõ ñöôïc toác ñoä cuûa ñoäng cô ( tính theo ñôn vò voøng/phuùt: R.P.M ) (7.7) 7.2 Caùch thöùc ñieàu khieån töø maùy vi tính ( PC ) Trong luaän vaên , toâi ñaõ thieát keá 2 giao dieän treân PC ñeå ñieàu khieån vaø giaùm saùt heä thoáng: + Moät giao dieän treân maùy vi tính ñöôïc ñaët taïi moâ-ñun ñieàu khieån 1 : Duøng ñeå ñieàu khieån- giaùm saùt 2 moâ-ñun ñieàu khieån 1 vaø 2 ( töông öùng vôùi node 1 vaø node 2 trong maïng CAN quaûn lyù heä thoáng ) + Moät giao dieän treân maùy vi tính ñöôïc ñaët taïi moâ-ñun 0 ,ñieàu khieån-giaùm saùt trung taâm ( Laø node 0 cuûa maïng ) : Duøng ñeå ñieàu khieån-giaùm saùt vaø thu thaäp döõ lieäu cuûa toaøn heä thoáng. 7.2.1 Caùc loaïi khung truyeàn-nhaän giöõa maùy tính vaø moâ-ñun ñieàu khieån ñoäng cô 1 · Giao dieän treân maùy tính ñaët taïi moâ-ñun ñieàu khieån ñoäng cô 1 ( Node 1): Pulse_20MS ( xung/ 20ms) = 30 _ RPMSpeed Speed_RPM ( voøng/phuùt) = Pulse_20MS ( xung/ 20ms) x 30 Chöông 7: Giaûi thuaät chöông trình GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 104 Hình 7.5: Giao dieän ñieàu khieån-giaùm saùt treân maùy tính cuûa node Ø Caùch söû duïng giao dieän naøy – Nhaäp toác ñoä ñaët vaøo oâ Toác ñoä ôû Baûng thoâng soá ; neáu söû duïng ôû cheá ñoä ñoàng boä – Check vaøo “goàm Motor 2 ” , neáu khoâng check thì chæ ñieàu khieån rieâng ñoäng cô 1. – Sau khi nhaäp xong thoâng soá, Click vaøo nuùt NHAÄP ñeå löu , tieáp ñeán laø Click vaøo nuùt TRUYEÀN ñeå truyeàn khung tín hieäu ñieàu khieån xuoáng vi ñieàu khieån. – Söû duïng caùc nuùt ñeå ñieàu khieån ñoäng cô: CHAÏY , DÖØNG , TAÊNG , GIAÛM Ø Khung truyeàn ñeå thieát laäp Toác ñoä ñaët töø PC xuoáng moâ-ñun: Goàm 3 byte Baûng 7.4: Khung thieát laäp toác ñoä ñaët töø PC taïi node 1 xuoáng node 1 Byte 0: Maõ caøi ñaët thoâng soá Byte 1: Toác ñoä ñaët Byte 2: Checksum-kyù töï “F” + Byte Maõ caøi ñaët thoâng soá : laø byte kyù töï “1” – Duøng cho vieäc ñaët toác ñoä + Byte toác ñoä ñaët ( laø soá xung encoder/ 20ms): Giaù trò laøm troøn cuûa Toác ñoä caàn ñaët Chöông 7: Giaûi thuaät chöông trình GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 105 (voøng/phuùt) chia cho 30 ( xem caùch tính toác ñoä ñoäng cô ôû Chöông 7 - Phaàn 7.1.3 ) + Byte Checksum : Laø kyù töï “F” ( F: Finish ) Ø Khung truyeàn caùc leänh ñieàu khieån töø PC xuoáng moâ-ñun: Goàm 2 byte Baûng 7.5: Khung truyeàn leänh ñieàu khieån töø PC taïi node 1 xuoáng node 1 Byte 0: Leänh ñieàu khieån Byte 1: Checksum ( kyù töï “F” ) - Byte 0 - Leänh ñieàu khieån, laø moät kyù töï : + “S” : Ñoäng cô chaïy ( Töông öùng khi nhaán nuùt CHAÏY treân giao dieän) + “P” : Ñoäng cô döøng (Töông öùng khi nhaán nuùt DÖØNG treân giao dieän) + “I” : Taêng toác ñoä cuûa ñoäng cô (Töông öùng khi nhaán nuùt TAÊNG treân giao dieän) + “D” : Giaûm toác ñoä cuûa ñoäng cô (Töông öùng khi nhaán nuùt GIAÛM treân giao dieän) + “Y” : Hai ñoäng cô 1 vaø 2 hoaït ñoäng ñoàng boä ( Khi check vaøo “goàm Motor 2 ”) + “N” : Hai ñoäng cô 1 vaø 2 hoaït ñoäng ñoäc laäp vôùi nhau.(Khoâng check vaøo“goàm Motor 2 ”) Ø Chuoãi döõ lieäu töø moâ-ñun 1 leân PC: Laø moät chuoãi byte nhö hình sau Hình 7.6: Caùc chuoãi byte truyeàn leân PC khi ñoäng cô döøng vaø khi ñoäng cô chaïy · Giao dieän treân maùy tính ñaët taïi moâ-ñun trung taâm ( Node 0): - Moâ-ñun trung taâm coù nhieäm vuï trong vieäc ñieàu phoái tín hieäu ñieàu khieån töø maùy tính taïi trung taâm(coù quyeàn ñieàu khieån cao nhaát) ñeán töøng moâ-ñun ñieàu khieån ñoäng cô trong maïng Chöông 7: Giaûi thuaät chöông trình GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 106 Hình 7.7: Löu ñoà caùch thöùc vi ñieàu khieån ôû moâ-ñun trung taâm phaân loaïi ñòa chæ caàn gôûi cuûa caùc khung truyeàn ñieàu khieån nhaän ñöôïc töø PC trung taâm. - Khung truyeàn töø maùy tính xuoáng moâ-ñun trung taâm seõ luoân baét ñaàu baèng byte ñòa chæ cuûa node caàn ñieàu khieån. Döïa vaøo byte ñòa chæ naøy, vi ñieàu khieån ôû moâ-ñun trung taâm seõ quyeát ñònh gôûi böùc ñieän (message) ñeán ñuùng ñòa chæ thoâng qua CAN-bus - Caùc maõ caên cöôùc ID cuûa böùc ñieän maø node 0 duøng ñeå gôûi: + Maõ ID 0x500 : Duøng ñeå gôûi rieâng khung truyeàn ñeán cho node 1 + Maõ ID 0x600 : Duøng ñeå gôûi rieâng khung truyeàn ñeán cho node 2 + Maõ ID 0x100 : Duøng ñeå gôûi chung khung truyeàn ñeán cho caû 2 node 1 vaø 2 Gôûi khung ñieàu khieån xuoáng moâ-ñun trung taâm Kieåm tra caàn ñieàu khieån node naøo ? Maùy tính(PC) taïi trung taâm Truyeàn khung ñieàu khieån caû 2 node: 1&2 ( Loaïi boû byte-ñòa chæ trong khung truyeàn ) Chæ truyeàn khung ñieàu khieån cho node 1 ( Loaïi boû byte ñòa chæ trong khung truyeàn ) Chæ truyeàn khung ñieàu khieån cho node 2 ( Loaïi boû byte-ñòa chæ trong khung truyeàn ) Node 2 Caû 2 node: 1&2 Node 1 Keát thuùc Chöông 7: Giaûi thuaät chöông trình GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 107 Hình 7.8: Giao dieän ñaët treân maùy tính taïi trung taâm ñieàu khieån-giaùm saùt heä thoáng Ø Caùch thöùc söû duïng giao dieän taïi trung taâm - Thoâng soá maëc ñònh: Heä thoáng chaïy ñoàng boä ,ñieàu khieån baèng tay, toác ñoä ñaët laø 2100 R.P.M - Caøi ñaët thoâng soá ( theo trình töï ) : Click vaøo nuùt “CAØI ÑAËT THOÂNG SOÁ ” ñeå vaøo Form caøi ñaët ( xem hình 7.9 ôû trang beân ) + Böôùc 1 : Choïn cheá ñoä ñieàu khieån ( baèng tay – Töï ñoäng) , caùc ñoäng cô hoaït ñoäng ñoàng boä hay ñoäc laäp à Coù 4 phöông phaùp ñieàu khieån ( xem ôû hình 7.9 vaø baûng 7.6 trang beân ) + Böôùc 2 : Nhaäp toác ñoä ñaët vaø node caàn ñieàu khieån + Böôùc 3 : Click vaøo “ NHAÄP” ñeå löu caùc thoâng soá caøi ñaët + Böôùc 4:Click vaøo “ TRUYEÀN” ñeå truyeàn döõ lieäu ñieàu khieán xuoáng vi ñieàu khieån ôû node0 - Nuùt “ Thôøi gian” treân Form chính duøng ñeå ñoàng boä ñoàng hoà cuûa maùy tính vaø cuûa node 0 Chöông 7: Giaûi thuaät chöông trình GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 108 Hình 7.9: Giao dieän thieát laäp thoâng soá vaø truyeàn döõ lieäu ñieàu khieån. - Töø khung Choïn cheá ñoä ñieàu khieån ôû giao dieän treân , ta seõ coù 4 phöông phaùp ñieàu khieån heä thoáng töø Trung Taâm ñieàu khieån nhö sau: Baûng 7.6: Caùc phöông phaùp ñieàu khieån ñöôïc caøi ñaët cho heä thoáng Caùc phöông phaùp ñieàu khieån CHEÁ ÑOÄ BAÈNG TAY CHEÁ ÑOÄ TÖÏ ÑOÄNG KIEÅU Ñoàng boä Phöông phaùp 1 Phöông phaùp 3 KIEÅU Ñoäc laäp Phöông phaùp 2 Phöông phaùp 4 + Phöông phaùp 1 : Caùc ñoäng cô hoaït ñoäng ñoàng boä ( ñoäng cô 2 phuï thuoäc vaøo ñoäng cô 1) , ngöôøi duøng ñieàu khieån ñoäng cô ( cho chaïy, döøng, taêng, giaûm ) baèng caùc nuùt nhaán treân giao dieän . + Phöông phaùp 2 : Caùc ñoäng cô hoaït ñoäng ñoäc laäp vôùi nhau ( bao goàm ñieàu khieån rieâng töøng ñoäng cô hay ñieàu khieån ñoàng thôøi nhieàu ñoäng cô) , ngöôøi duøng ñieàu khieån ñoäng cô ( cho Chöông 7: Giaûi thuaät chöông trình GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 109 chaïy , döøng , taêng, giaûm ) baèng caùc nuùt nhaán treân giao dieän + Phöông phaùp 3 : Caùc ñoäng cô hoaït ñoäng ñoàng boä ( ñoäng cô 2 phuï thuoäc vaøo ñoäng cô 1), ngöôøi duøng chæ caàn caøi ñaët thôøi ñieåm chaïy vaø döøng laïi , sau ñoù döïa vaøo Heä thoáng thôøi gian thöïc ( DS1307 ) – vi ñieàu khieån ôû moâ-ñun ñieàu khieån trung taâm seõ ñieàu khieån heä ñoäng cô chaïy hay döøng ñuùng thôøi gian. + Phöông phaùp 4 : Caùc ñoäng cô hoaït ñoäng ñoäc laäp vôùi nhau ( bao goàm ñieàu khieån rieâng töøng ñoäng cô hay ñieàu khieån ñoàng thôøi nhieàu ñoäng cô) , ngöôøi duøng chæ caàn caøi ñaët thôøi ñieåm chaïy vaø döøng laïi , sau ñoù döïa vaøo Heä thoáng thôøi gian thöïc ( DS1307 ) – vi ñieàu khieån ôû moâ-ñun ñieàu khieån trung taâm seõ ñieàu khieån heä ñoäng cô chaïy hay döøng ñuùng thôøi gian. - Caùc loaïi khung truyeàn-nhaän giöõa maùy tính vaø moâ-ñun trung taâm (node 0 ) : Caùc khung truyeàn luoân coù byte baét ñaàu laø: Byte 0-Ñòa chæ node (moâ-ñun ñoäng cô) caàn ñieàu khieån Ø Khung truyeàn ñeå thieát laäp Toác ñoä ñaët töø PC xuoáng moâ-ñun trung taâm (node 0): Coù 4 byte Baûng 7.7: Khung truyeàn ñeå thieát laäp Toác ñoä ñaët töø PC xuoáng moâ-ñun trung taâm (node 0): Byte0: Ñòa chæ Node caàn ñieàu khieån Byte 1: Cheá ñoä ñieàu khieån Byte 2: Toác ñoä ñaët Byte 3: Checksum ( kyù töï “F” ) + Byte 0 – Ñòa chæ node caàn ñieàu khieån: “1” : Ñieàu khieån moâ-ñun ñoäng cô 1 ( Khi check vaøo NODE 1 treân giao dieän ) “2” : Ñieàu khieån moâ-ñun ñoäng cô 2 ( Khi check vaøo NODE 2 treân giao dieän ) “A” : Ñieàu khieån caû 2 moâ-ñun ñoäng cô 1 vaø 2 (Khi check vaøo TAÁT CAÛ treân giao dieän) + Byte 1 – Cheá ñoä ñieàu khieån : “1” : Cheá ñoä ñieàu khieån baèng tay ( Chæ duøng cho cheá ñoä Manual) + Byte 2 – Toác ñoä ñaët (soá xung encoder/ 20ms) : Giaù trò laøm troøn cuûa Toác ñoä caàn ñaët (voøng/phuùt) chia cho 30 ( xem caùch tính toác ñoä ñoäng cô ôû Chöông 7 – Phaàn 7.1.3 ) + Byte 3 – checksum : trong chöông trình cuûa luaän vaên , laø kyù töï “F” ( F: Finish ) Chöông 7: Giaûi thuaät chöông trình GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 110 Ø Khung truyeàn trong cheá ñoä töï ñoäng ( töø PC taïi trung taâm xuoáng node 0): Coù 10 byte Baûng 7.8: Khung truyeàn töø PC taïi node 0 xuoáng node 0 – söû duïng trong cheá ñoä Töï ñoäng Byte 0 Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 Byte 7 Byte 8 Byte 9 Ñòa chæ Node “2” ( Auto) Toác ñoä ñaët Giôø chaïy Phuùt chaïy Giaây chaïy Giôø döøng Phuùt döøng Giaây döøng Checksum ( “ F ” ) Ø Khung truyeàn caùc leänh ñieàu khieån töø PC xuoáng moâ-ñun trung taâm (node 0): Coù2 byte Baûng 7.9: Khung truyeàn caùc leänh ñieàu khieån töø PC taïi node 0 xuoáng node 0 Byte 0: Ñòa chæ Node caàn ñieàu khieån Byte 1: Leänh ñieàu khieån Byte 2: Checksum ( kyù töï “F” ) - Byte 0 – Ñòa chæ node caàn ñieàu khieån: , maõ hoùa thaønh kyù töï: + “1” : Ñieàu khieån moâ-ñun ñoäng cô 1 + “2” : Ñieàu khieån moâ-ñun ñoäng cô 2 + “A” : Ñieàu khieån caû 2 moâ-ñun ñoäng cô 1 vaø 2 - Byte 1 – Leänh ñieàu khieån, laø moät kyù töï : + “S” : Ñoäng cô chaïy ( Töông öùng khi nhaán nuùt CHAÏY treân giao dieän) + “P” : Ñoäng cô döøng (Töông öùng khi nhaán nuùt DÖØNG treân giao dieän) + “I” : Taêng toác ñoä cuûa ñoäng cô (Töông öùng khi nhaán nuùt TAÊNG treân giao dieän) + “D” : Giaûm toác ñoä cuûa ñoäng cô (Töông öùng khi nhaán nuùt GIAÛM treân giao dieän) + “Y” : Hai ñoäng cô 1 vaø 2 hoaït ñoäng trong cheá ñoä ñoàng boä ( Khi choïn KIEÅU ÑOÀNG BOÄ ) + “N” : Hai ñoäng cô 1 vaø 2 hoaït ñoäng ñoäc laäp vôùi nhau ( khi check vaøo KIEÅU ÑOÄC LAÄP ) 7.3 Löu ñoà giaûi thuaät cho vi ñieàu khieån treân caùc moâ-ñun - Ghi chuù: Trong luaän vaên söû duïng maïng CAN ñeå quaûn lyù heä thoáng , moâ-ñun ñieàu khieån trung taâm(moâ-ñun 0) töông öùng laø Node 0 , moâ-ñun ñieàu khieån ñoäng cô 1 (moâ-ñun 1) töông öùng laø Node 1 , moâ-ñun ñieàu khieån ñoäng cô 2 (moâ-ñun 2) töông öùng laø Node 2 . Chöông 7: Giaûi thuaät chöông trình GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 111 · Giaûi thuaät chung cuûa chöông trình caùc vi ñieàu khieån treân caùc moâ-ñun laø : - Ñoaïn chöông trình MAIN (chính) coù nhieäm vuï: i. Khôûi ñoäng caùc khoái chöùc naêng caàn söû duïng ( 1 laàn duy nhaát luùc môùi Reset ) ii. Kieåm tra caùc côø baùo hoaøn thaønh vieäc nhaän döõ lieäu ñeå thöïc hieän caùc coâng vieäc ñöôïc yeâu caàu töông öùng , khi thöïc hieän xong coâng vieäc töông öùng – seõ cho giaù trò cuûa côø baùo hoaøn thaønh vieäc nhaän döõ lieäu ñoù veà 0. Caùc côø baùo hoaøn thaønh vieäc nhaän döõ lieäu chæ ñöôïc Set ( cho leân 1) trong caùc chöông trình phuïc vuï NGAÉT töông öùng iii. Taát caû caùc ñieàu kieän trong löu ñoà giaûi thuaät cuûa ñoaïn chöông trình MAIN ñeàu laø kieåm tra caùc côø baùo hoaøn thaønh vieäc nhaän döõ lieäu. Ví duï nhö: Khi Node 1 nhaän moät böùc ñieän ( message) töø Node 0 qua CAN-bus : + Vi ñieàu khieån seõ taïo moät NGAÉT ñeå nhaän döõ lieäu , trong chöông trình Ngaét nhaän döõ lieäu : Döõ lieäu trong böùc ñieän seõ löu tröõ vaøo bieán chuoãi rxdata ñaõ ñöôïc khai baùo saün vaø seõ cho côø baùo hoaøn thaønh vieäc nhaän döõ lieäu töø CAN-Bus laø: CAN_receive_flag = 1 + Trong chöông trình MAIN , trong voøng laëp seõ kieåm tra côø baùo hoaøn thaønh vieäc nhaän döõ lieäu töø CAN-Bus : neáu CAN_receive_flag = 1 thì seõ kieåm tra giaù trò byte ñieàu khieån ôû trong bieán chuoãi rxdata ñeå thöïc hieän coâng vieäc yeâu caàu töông öùng. Thöïc hieän xong coâng vieäc ñöôïc yeâu caàu thì seõ cho CAN_receive_flag = 0 (chuaån bò cho laàn kieåm tra keá tieáp) - 5 chöông trình phuïc vuï Ngaét goàm coù: Ngaét Timer 20ms ( thôøi gian laáy maãu toác ñoä ñoäng cô , chæ coù treân node 1 vaø 2) , Ngaét nhaän böùc ñieän CAN , Ngaét nhaän döõ lieäu töø SCI0 , Ngaét phím nhaán ( KeyWake-UP ) , Ngaét ngoaøi (theo chu kyø cuûa thôøi gian thöïc: 1s , chæ coù treân Node 0 ) . Trong moãi chöông trình Ngaét , sau khi nhaän vaø löu thaønh coâng döõ lieäu seõ cho giaù trò cuûa côø baùo hoaøn thaønh töông öùng vôùi Ngaét ñang thöïc thi leân 1. Chöông 7: Giaûi thuaät chöông trình GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 112 7.3.1 Löu ñoà giaûi thuaät ñoaïn chöông trình MAIN · Node 1 vaø Node 2 coù löu ñoà giaûi thuaät cuûa chöông trình MAIN haàu nhö gioáng nhau , chæ khaùc nhau ôû trong chi tieát cuûa caùc chöông trình con phuïc vuï NGAÉT, vaø caáu truùc böùc ñieän CAN maø moãi node naøy gôûi veà cho node 0 (Xem caáu truùc cuûa böùc ñieän naøy ôû Phaàn 7.3.2.1) Baét ñaàu Cho pheùp NGAÊT toaøn cuïc (Global Interrupt ) Ñaõ nhaän chính xaùc böùc ñieän töø CAN-Bus ? 1 Khôûi ñoäng caùc khoái chöùc naêng Ñaõ nhaän chính xaùc döõ lieäu töø PC qua RS232? Xöû lyù döõ lieäu nhaän töø SCI0 Coù phím Ñ.Khieån naøo ñöôïc nhaán ? Xöû lyù phím ñöôïc nhaán 2 Ñuùng Sai Ñuùng Sai Sai Ñuùng Xöû lyù böùc ñieän nhaän töø CAN-Bus Chöông 7: Giaûi thuaät chöông trình GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 113 Hình 7.10: Löu ñoà giaûi thuaät chöông trình Main cuûa node 1 vaø 2 Ñoäng cô ñöôïc pheùp chaïy? Sai soá: ET 0 ? 1 2 Boä ñieàu khieån PI-Môø Ñaõ ñuû chu kyø 200ms ? Caùc vieäc thöïc thi khi ñoäng cô döøng Caùc vieäc thöïc thi khi ñoäng cô chaïy Gôûi döõ lieäu toác ñoä thaät cuûa ñoäng cô veà cho Node 0 qua CAN-Bus ( Caáu truùc böùc ñieän ôû phaàn 7.3.2.1 ) Caäp nhaät toác ñoä ñaët vaø toác ñoä thaät cuûa ñoäng cô leân LCD 2x16 Ñuùng Sai Sai Ñuùng Reset côø baùo ñuû 200 ms Ñuùng Sai Chöông 7: Giaûi thuaät chöông trình GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 114 · Löu ñoà giaûi thuaät chöông trình MAIN cuûa Node 0 (moâ-ñun ñieàu khieån-giaùm saùt heä thoáng) Baét ñaàu Cho pheùp NGAÊT toaøn cuïc (Global Interrupt ) Ñaõ nhaän chính xaùc böùc ñieän töø CAN-Bus ? 3 Khôûi ñoäng caùc khoái chöùc naêng Nhaän döõ lieäu ñieàu khieån töø PC ( RS232 )? Coù phím ñöôïc nhaán ? (Ñ.Khieån, choïn MODE) 4 Ñuùng Sai Ñuùng Sai Sai Ñuùng Kieåm tra vaø gôûi ñeán ñòa chæ node caàn Ñ.K ( xem ôû hình 7.7 ) Gôûi döõ lieäu töø böùc ñieän leân PC ( RS232) Gôûi giaù trò phím ñöôïc nhaán ñeán caùc node ñeå caùc node thöïc hieän yeâu caàu töông öùng. Chöông 7: Giaûi thuaät chöông trình GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 115 Hình 7.11: Löu ñoà giaûi thuaät chöông trình Main cuûa Node 0 (moâ-ñun trung taâm) · Chuù yù: Khi coù ñieàu kieän ñuùng xaûy ra ( coù moät côø baùo hoaøn thaønh naøo ñoù = 1 ) , sau khi thöïc hieän xong coâng vieäc yeâu caàu töông öùng seõ Reset côø baùo hoaøn thaønh ñoù. Ñoïc giaù trò thôøi gian thöïc? ( chu kyø 1s ) Coù yeâu caàu ñoàng boä veà thôøi gian PC vaø MCU ? Coù yeâu caàu hoaït ñoäng cheá ñoä Auto töø PC ? 4 Ñuùng Sai Ñuùng Sai Sai Ñuùng Ghi ra giaù trò thôøi gian cuûa PC leân ñoàng hoà thôøi gian thöïc DS1307 Caäp nhaän caùc giaù trò : Giôø-Phuùt-Giaây Caøi ñaët giaù trò thôøi gian döøng vaø chaïy cuûa ñoäng cô 3 So saùnh vôùi thôøi gian caøi ñaët ( chaïy-döøng: neáu ôû cheá doä Auto) ñeå ñieàu khieån ñoängcô Hieån thò giaù trò thôøi gian leân LCD , PC Chöông 7: Giaûi thuaät chöông trình GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 116 7.3.2 Trình töï chi tieát trong caùc chöông trình con vaø 5 chöông trình phuïc vuï Ngaét 7.3.1.1 Trình töï chi tieát trong caùc chöông trình con (duøng trong caùc löu ñoà giaûi thuaät chöông trình MAIN ) · Chöông trình con Khôûi ñoäng caùc khoái chöùc naêng : Khôûi ñoäng theo trình töï sau + Boä PLL : Bus-Clock seõ laø 24 Mhz + Timer OC2 :duøng ñeå laáy maãu toác ñoä ñoäng cô – thôøi gian 20ms, coù söû duïng Ngaét ( Chæ coù treân Node 1& 2 ; Khoâng coù treân node 0 ) + Boä SCI0 : Toác ñoä laø 115200 Bit/s , coù söû duïng Ngaét khi nhaän döõ lieäu + Boä ñieàu xung PWM : Taàn soá xung ñieàu khieån laø 10 Khz ( Chæ coù treân Node 1& 2 ; Khoâng coù treân node 0 ) + Boä ñeám xung A : Ñeå ñeám xung töø Encoder , ñeám khi caïnh leân cuûa xung ( Chæ coù treân Node 1& 2 ; Khoâng coù treân node 0 ) + Boä giao tieáp CAN0: toác ñoä 1Mbit/s, söû duïng maõ caên cöôùc chuaån ( Standard ID) + Chöùc naêng Key-WakeUp ,duøng Ngaét ñeå ñoïc giaù trò phím ñöôïc nhaán + Khôûi ñoäng boä giao tieáp IIC vôùi heä thoáng thôøi gian thöïc DS1307 vaø söû duïng Ngaét ngoaøi ñeå ñoïc giaù trò thôøi gian töø DS1307 ( Chæ coù treân node 0 ) + Khoái hieån thò: LCD 2x16 ( ñoái vôùi Node 0 laø LCD 4x20 ) · Chöông trình con Xöû lyù böùc ñieän nhaän töø CAN-Bus: ( duøng cho node 1 vaø 2 ) + Döõ lieäu ñöôïc chöùa trong bieán chuoãi rxdata ( ñaõ ñöôïc löu giaù trò trong haøm Ngaét nhaän böùc ñieän CAN, böùc ñieän nhaän töø Node 0 gôûi ñeán ) + Caáu truùc döõ lieäu trong bieán chuoãi rxdata: rxdata = khung truyeàn goác (cuûa PC trung taâm truyeàn xuoáng node 0) sau khi loaïi boû Byte ñòa chæ node caàn ñieàu khieån ( laø byte 0) + Döïa vaøo caáu truùc töøng böùc ñieän seõ thöïc hieän coâng vieäc töông öùng ( Xem caáu truùc khung truyeàn cuûa PC trung taâm truyeàn xuoáng node 0 ôû Chöông 7 – phaàn 7.2.2) Chöông 7: Giaûi thuaät chöông trình GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 117 + Xoùa côø baùo hoaøn thaønh vieäc nhaän döõ lieäu töø CAN-Bus. · Chöông trình Xöû lyù döõ lieäu nhaän töø SCI0 ( duøng cho node 1 vaø 2 ) + Döïa vaøo caáu truùc khung truyeàn cuûa PC ôû taïi node truyeàn xuoáng node ( Chöông 7 – phaàn 7.2.1 ) ñeå kieåm tra giaù trò caùc byte ñieàu khieån ñeå thöïc hieän coâng vieäc töông öùng + Xoùa côø baùo hoaøn thaønh vieäc nhaän döõ lieäu töø coång noái tieáp COM · Chöông trình con Xöû lyù phím ñöôïc nhaán - Giaù trò nuùt ñöôïc nhaán, ñaõ ñöôïc löu laïi trong bieán key ( vieäc löu laø ôû trong haøm ngaét ). ÔÛ ñaây , ta chæ caàn kieåm tra giaù trò bieán key ñeå thöïc hieän: + Neáu giaù trò laø 0xE0: Phím ñöôïc nhaán laø phím CHAÏY à Cho ñoäng cô chaïy + Neáu giaù trò laø 0xD0: Phím ñöôïc nhaán laø phím DÖØNG à Cho ñoäng cô döøng + Neáu giaù trò laø 0xB0: Laø phím TAÊNG à Cho ñoäng cô taêng toác theâm 90 R.P.M + Neáu giaù trò laø 0x70 : Laø phím GIAÛM à Cho ñoäng cô giaûm toác bôùt 90 R.P.M - Xoùa côø baùo hoaøn thaønh vieäc phaùt hieän Phím nhaán ( cho giaù trò côø baèng 0 ) · Chöông trình con Boä ñieàu khieån PI-Môø - Môø hoùa caùc bieán ñaàu vaøo ET vaø DET - Giaûi môø ñeå tính caùc giaù trò PK , DK , a - Suy ra giaù trò IK theo coâng thöùc D P I K KK a 2 = - Ñieàu roäng xung cho maïch ñoäng löïc ñeå ñieàu khieån ñoäng cô. · Ñoaïn chöông trình con Caùc vieäc thöïc thi khi ñoäng cô döøng - Ñieàu roäng xung vôùi Hiduty = 2% ñeå döøng ñoäng cô - Khôûi taïo laïi (Reset) giaù trò caùc tham soá cuûa boä ñieàu khieån PI-Môø - Gôûi leân PC khung truyeàn nhö sau: Goàm 6 byte Chöông 7: Giaûi thuaät chöông trình GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 118 Baûng 7.10: Khung döõ lieäu töø node 1 truyeàn leân PC taïi ñoù – khi ñoäng cô döøng Byte 0 Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 “1”hoaëc “0” Kyù töï “-” “S” “T” “O” “P” Byte 0 : + Coù giaù trò laø kyù töï “1” khi ñoäng cô hoaït ñoäng ôû cheá ñoä ñoàng boä + Coù giaù trò laø kyù töï “0” khi ñoäng cô hoaït ñoäng ôû cheá ñoä ñoäc laäp Hình 7.12: Hình minh hoïa döõ lieäu truyeàn leân PC ôû node 1 khi ñoäng cô döøng · Ñoaïn chöông trình con Caùc vieäc thöïc thi khi ñoäng cô chaïy: - Gôûi leân PC moät chuoãi byte vôùi ñaày ñuû caùc thoâng tin: + Giaù trò xung ñoïc töø encoder trong 20ms ( Pulse: ) + Cheá ñoä maø ñoäng cô ñang hoaït ñoäng + Giaù trò vaän toác cuûa ñoäng cô 1 vaø ñoäng cô 2 Hình 7.13: Hình minh hoïa döõ lieäu truyeàn leân PC ôû node 1 khi ñoäng cô chaïy · Caáu truùc böùc ñieän CAN maø moãi node ( node 1 vaø node 2 ) gôûi veà cho node 0 - Caáu truùc böùc ñieän naøy seõ bao goàm caùc phaàn: Maõ caên cöôùc ID , ñoä öu tieân , chieàu daøi cuûa khung döõ lieäu trong böùc ñieän vaø khung döõ lieäu: + Böùc ñieän cuûa node 1 truyeàn veà seõ coù maõ caên cöôùc ID laø 0x200 + Böùc ñieän cuûa node 2 truyeàn veà seõ coù maõ caên cöôùc ID laø 0x300 - Caáu truùc khung döõ lieäu cuûa böùc ñieän naøy coù 8 bytes döõ lieäu Chöông 7: Giaûi thuaät chöông trình GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 119 Baûng 7.11: Khung truyeàn cuûa böùc ñieän CAN töø node 1 vaø node 2 truyeàn veà node 0 Byte 0 Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 Byte 7 Maõ baét ñaàu cuûa döõ lieäu Soá haøng ngaøn Soá haøng traêm Soá haøng chuïc Soá haøng ñôn vò Kyù töï “ - ” Cheá ñoä hoaït ñoäng Checksum (kyù töï “E”) Trong ñoù: Byte 0 : Laø maõ baét ñaàu cuûa döõ lieäu + Laø kyù töï “A” : Khung truyeàn cuûa Node 1 ; Laø kyù töï “B” : Khung truyeàn cuûa Node 2 Byte [1:4] : laø giaù trò haøng ngaøn , traêm, chuïc ,ñôn vò cuûa toác ñoä thaät ñoäng cô ( maõ hoùa ôû döôùi daïng töøng kyù töï ) Byte 6 : Phaûn hoài cho trung taâm bieát cheá ñoä hoaït ñoäng hieän giôø cuûa ñoäng cô + Laø kyù töï “1” : Ñoäng cô ñang hoaït ñoäng ôû cheá ñoä ñoàng boä + Laø kyù töï “0” : Ñoäng cô ñang hoaït ñoäng ôû cheá ñoä ñoäc laäp Byte 7: Laø byte checksum rieâng cuûa chuoãi khung truyeàn naøy – laø kyù töï “E” ( E: End ) Hình 7.14: Khung truyeàn cuûa böùc ñieän CAN töø node 1 vaø node 2 truyeàn veà node 0 7.3.1.2 5 chöông trình phuïc vuï Ngaét · Chöông trình ngaét Timer OC2 – duøng ñeå laáy maãu: ( chæ duøng cho Node1 vaø Node 2) - Ñoái vôùi node 1: + Ñoïc giaù trò trong boä ñeám xung A ( taïi thanh ghi PACN32) , löu vaøo bieán toc_do_do + Ñoïc giaù trò toác ñoä thaät cuûa ñoäng cô 2 töø Port H + Tính caùc giaù trò : Sai soá toác ñoä ET = toc_do_do – toc_do_dat ; vaø ñaïo haøm sai soá (toác ñoä taêng ): DET = ET_môùi – ET_cuõ + Gôûi toác ñoä thaät cuûa ñoäng cô 1 ( giaù trò toc_do_do) ra Port A ( neáu giaù trò toc_do_do coù thay ñoåi ) Chöông 7: Giaûi thuaät chöông trình GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 120 + Reset boä ñeám xung A (thanh ghi PACN32 = 0 ) ; khôûi taïo laïi giaù trò cho Timer OC2 vaø xoùa côø ngaét ( ôû thanh ghi TFLG1 ) ñeå cho pheùp timer ngaét ôû laàn 20ms keá tieáp. + Thoaùt khoûi chöông trình phuïc ngaét. - Ñoái vôùi node 2: + Ñoïc giaù trò trong boä ñeám xung A ( taïi thanh ghi PACN32) , löu vaøo bieán toc_do_do + Ñoïc caùc giaù trò cuûa ñoäng cô 1 töø Port A , löu vaøo giaù trò toc_do_dat + Tính caùc giaù trò : Sai soá toác ñoä ET = toc_do_do – toc_do_dat ; vaø ñaïo haøm sai soá (toác ñoä taêng ): DET = ET_môùi – ET_cuõ + Gôûi toác ñoä thaät cuûa ñoäng cô 2 ( giaù trò toc_do_do) ra Port H + Reset boä ñeám xung A (thanh ghi PACN32 = 0) ; khôûi taïo laïi giaù trò cho Timer OC2 vaø xoùa côø ngaét ( ôû thanh ghi TFLG1 ) ñeå cho pheùp timer ngaét ôû laàn 20ms keá tieáp + Thoaùt khoûi chöông trình phuïc ngaét. · Chöông trình ngaét nhaän döõ lieäu töø coång COM qua RS232 ÔÛ ñaây , caùc vi ñieàu khieån treân caû 3 moâ-ñun (node) ñeàu söû duïng boä SCI0. Chæ trình baøy chöông trình daønh cho node 1&2 ( coøn chöông trình daønh cho node 0 ñaõ ñöôïc trình baøy ñaày ñuû treân löu ñoà giaûi thuaät cuûa node 0 ) + Ñaõ khai baùo tröôùc 1 bieán kieåu maûng ,goïi laø SCI0_In[ index ] . Moãi khi vaøo thöïc thi chöông trình ngaét , giaù trò töø boä ñeäm seõ ñöôïc löu vaøo maûng , giaù trò chæ soá cuûa maûng : index seõ ñöôïc taêng theâm 1. + Döïa vaøo byte ñaàu tieân cuûa döõ lieäu nhaän ñöôïc ( khi ñoù ñaõ löu vaøo SCI0_In[0] ) , ta seõ ñònh bieát khung truyeàn ñang nhaän naøy seõ coù bao nhieâu byte . Töø ñoù xaùc ñònh chính xaùc chieàu daøi cuûa khung truyeàn , vaø löu vaøo bieán frame_len ( Ñeå xaùc ñònh ñöôïc chieàu daøi haõy xem caáu truùc Khung truyeàn töø PC xuoáng node 1 taïi Chöông 7 - phaàn 7.2.1 ) + Khi chæ soá index cuûa maûng SCI0_In[ index ] baèng giaù trò chieàu daøi frame_len , seõ reset giaù trò cuûa bieán index ( index = 0 ) vaø kieåm tra byte cuoái cuøng cuûa chuoãi - Neáu byte ñoù ñuùng laø byte CheckSum ( laø kyù töï “F” ) thì vieäc nhaän döõ lieäu thaønh coâng à Seõ cho côø baùo hoaøn thaønh nhaän döõ lieäu töø SCI0 leân 1. Chöông 7: Giaûi thuaät chöông trình GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 121 + Xoùa côø ngaét ( trong thanh ghi SCI0SR1 ) ñeå chuaån bò cho laàn ngaét nhaän keá tieáp vaø thoaùt khoûi chöông trình phuïc ngaét. · Chöông trình ngaét nhaän böùc ñieän CAN : + Ñoïc giaù trò chieàu daøi cuûa böùc ñieän trong thanh ghi CAN0RXDLR cuûa boä MSCAN0 + Laëp voøng ñeå löu taát caû döõ lieäu trong böùc ñieän vaøo bieán maûng rxdata[index] ( vôùi index laø chæ soá cuûa maûng ) + Kieåm tra byte CheckSum , neáu ñuùng laø kyù töï “F” thì cho côø baùo hoaøn thaønh vieäc nhaän döõ lieäu töø CAN-Bus leân 1. + Xoùa côø baùo ngaét ( trong thanh ghi CAN0RFLG) ñeå chuaån bò cho laàn ngaét nhaän keá tieáp . + Thoaùt khoûi chöông trình phuïc ngaét. · Chöông trình ngaét cuûa Phím nhaán ( chöùc naêng Key-WakeUp) + Caám taát caû caùc chaân thuoäc 4 bit cao cuûa Port P khoâng ñöôïc ngaét Key-WakeUp + Ñoïc giaù trò 4 bit cao cuûa Port P ( nôi keát noái vôùi 4 phím nhaán) , roài löu vaøo bieán key ñaõ khai baùo saün. Sau ñoù cho côø baùo hoaøn thaønh vieäc ñoïc giaù trò phím nhaán leân 1. + Xoùa côø ngaét vaø cho pheùp laïi caùc chaân thuoäc 4 bit cao cuûa Port P ñöôïc thöïc hieän chöùc naêng Key-WakeUp , sau cuøng laø thoaùt khoûi chöông trình phuïc vuï ngaét · Chöông trình ngaét ngoaøi ñeå caäp nhaät thôøi gian töø DS1307 : ( Ngaét naøy chæ coù ôû node 0 ) + Söû duïng giao tieáp IIC , ñoïc laàn löôït caùc giaù trò: giaây , phuùt , giôø ôû caùc ñòa chæ RAM cuûa DS1307 töông öùng laø: 0x00 , 0x01 , 0x02. Caùc giaù trò ôû döôùi daïng BCD . + Chuyeån caùc giaù trò nhaän ñöôïc ôû treân ( maõ BCD) sang soá daïng thaäp phaân vaø löu vaøo caùc bieán: sec , minute , hour ( caùc bieán naøy laø bieán toaøn cuïc ,ñöôïc khai baùo töø tröôùc ) + Cho côø baùo hoaøn thaønh vieäc ñoïc giaù trò thôøi gian leân 1. + Thoaùt khoûi chöông trình phuïc vuï ngaét. Chöông 8: Keát quaû ñaït ñöôïc , höôùng phaùt trieån ñeà taøi GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 123 CHÖÔNG 8 KEÁT QUAÛ ÑAÏT ÑÖÔÏC , HÖÔÙNG PHAÙT TRIEÅN ÑEÀ TAØI 8.1 Moät soá hình aûnh veà hoaït ñoäng cuûa heä thoáng 8.1.1 Taïi giao dieän treân maùy tính ôû moâ-ñun ñieàu khieån ñoäng cô 1 (node 1) - Chuù thích: Ñöôøng ñoà thò maøu ñoû laø toác ñoä ñaët , ñöôøng ñoà thò maøu xanh ñaäm laø toác ñoä cuûa ñoäng cô 1 , ñöôøng ñoà thò maøu xanh laù caây laø toác ñoä cuûa ñoäng cô 2. Hình 8.1: Hình aûnh hoaït ñoäng 2 ñoäng cô hoaït ñoäng ñoàng boä – khi coù gaén taûi ñeå thöû + Toác ñoä cuûa ñoä cô 1 thì baùm theo toác ñoä ñaët raát toát , thôøi gian leân vaø xaùc laäp ñeàu nhanh ( 8.0»lent giaây , 5.1»xlt giaây) , voït loá thaáp vaø sai soá xaùc laäp haàu nhö raát nhoû. + Ñoäng cô 2 baùm theo ñoäng cô 1 khaù toát . Boä ñieàu khieån vaãn ñaûm baûo chaát löôïng ñieàu khieån ngay caû khi coù taûi. Chöông 8: Keát quaû ñaït ñöôïc , höôùng phaùt trieån ñeà taøi GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 124 Hình 8.2: Hình aûnh 2 ñoäng cô hoaït ñoäng ñoàng boä – khi thay ñoåi caùc möùc toác ñoä ñaët khaùc nhau Hình 8.3: Toác ñoä 2 ñoäng cô treân caùc LCD , toác ñoä ñaët laø 750 R.P.M – hoaït ñoäng ñoàng boä Chöông 8: Keát quaû ñaït ñöôïc , höôùng phaùt trieån ñeà taøi GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 125 8.1.2 Hình aûnh taïi giao dieän treân maùy tính vaø moâ-ñun ôû trung taâm ñieàu khieån (node 0) Hình 8.4: Treân giao dieän taïi trung taâm– toác ñoä ñaët 2100 R.P.M, hoaït ñoäng ñoàng boä Hình 8.5: Hình aûnh treân LCD cuûa moâ-ñun trung taâm (node 0)– toác ñoä ñaët 2100 R.P.M . Chöông 8: Keát quaû ñaït ñöôïc , höôùng phaùt trieån ñeà taøi GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 126 Hình 8.6: Treân giao dieän taïi trung taâm– toác ñoä ñaët 3000 R.P.M, hoaït ñoäng ñoàng boä Hình 8.7: Treân giao dieän taïi trung taâm, toác ñoä ñaët 1200 R.P.M – ñieàu khieån rieâng ñoäng cô 1 Chöông 8: Keát quaû ñaït ñöôïc , höôùng phaùt trieån ñeà taøi GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 127 Hình 8.8: Treân giao dieän taïi trung taâm, Cheá ñoä ñieàu khieån töï ñoäng – caøi ñaët thôøi gian 8.2 Caùc keát quaû ñaõ ñaït ñöôïc – Ñaõ thieát keá vaø hoaøn thieän moâ hình phaàn cöùng goàm: 2 moâ-ñun ñieàu khieån 2 ñoäng cô vaø moät moâ-ñun ñieàu khieån-giaùm saùt toaøn heä thoáng . Moâ hình phaàn cöùng hoaït ñoäng oån ñònh – Boä ñieàu khieån PI-Môø trong vi ñieàu khieån MC9S12DP512 treân 2 moâ-ñun ñieàu khieån ñaõ oån ñònh ñöôïc toác ñoä ñoäng cô vôùi : ñaùp öùng quaù ñoä khaù toát , thôøi gian leân vaø xaùc laäp ñeàu nhanh ( 8.0»lent giaây , 5.1»xlt giaây) , voït loá thaáp vaø sai soá xaùc laäp haàu nhö raát nhoû … , ngay caû khi ñoäng cô hoaït ñoäng coù taûi hay ôû nhieàu giaù trò toác ñoä khaùc nhau. – Ñaõ ñoàng boä ñöôïc toác ñoä 2 ñoäng cô vôùi nhau vaø thay ñoåi toác ñoä khaù linh hoaït. – Xaây döïng thaønh coâng maïng ñieàu khieån-giaùm saùt heä thoáng theo giao thöùc CAN . Vieäc ñieàu khieån vaø trao ñoåi döõ lieäu giöõa caùc moâ-ñun coù toác ñoä nhanh (1Mbps) vaø oån ñònh, töø ñoù vieäc ñieàu khieån vaø giaùm saùt heä thoáng trôû neân deã daøng vaø ñaït hieäu quaû cao. Chöông 8: Keát quaû ñaït ñöôïc , höôùng phaùt trieån ñeà taøi GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 128 – Keát noái ñöôïc vi ñieàu khieån vôùi maùy tính theo chuaån RS232C ( vôùi toác ñoä trao ñoåi döõ lieäu toái ña: baurate = 115200 Bit/s) vaø ñaõ thieát keá hoaøn chænh caùc giao dieän treân maùy tính ñeå ñieàu khieån –giaùm saùt heä thoáng ( Söû duïng ngoân ngöõ Visual Basic 6 ) + Moät giao dieän ñöôïc ñaët treân maùy tính taïi moâ-ñun ñieàu khieån ñoäng cô 1: Coù theå ñieàu khieån ñoàng boä toác ñoä 2 ñoäng cô : 1 vaø 2 hay coù theå ñieàu khieån rieâng ñoäng cô 1. + Moät giao dieän khaùc ñöôïc ñaët treân maùy tính taïi moâ-ñun trung taâm (node 0) : Coù theå ñieàu khieån caùc ñoäng cô hoaït ñoäng ñoàng boä hay ñoäc laäp vôùi nhau. Treân giao dieän naøy , ngoaøi caùch thöùc ñieàu khieån baèng tay (Manual) , ngöôøi duøng coù theå söû duïng caùch thöùc ñieàu khieån töï ñoäng heä thoáng ( Auto) . + Ngoaøi chöùc naêng ñieàu khieån, caû 2 giao dieän ñeàu coù theå thu thaäp ñöôïc giaù trò toác ñoä cuûa caùc ñoäng cô , hieån thò , tính sai soá vaø veõ ñoà thò kieåm chöùng. 8.3 Moät soá ñieåm haïn cheá – Ñoäng cô ñöôïc söû duïng coù toác ñoä toái ña laø 3800 voøng/phuùt , boä ñieàu khieån PI-Môø cuûa luaän vaên ñieàu khieån toát ñoäng cô trong khoaûng toác ñoä töø :120 voøng/phuùt ñeán 3600 voøng/phuùt. Lyù do laø söû duïng encoder 100 xung/voøng neân khoâng theå ñieàu khieån ñöôïc ñoäng cô ôû caùc toác ñoä döôùi 120 voøng/phuùt. – Vieäc trao ñoåi giaù trò toác ñoä giöõa 2 vi ñieàu khieån treân 2 moâ-ñun ñieàu khieån ñoäng cô laø baèng giao tieáp song song ( qua PortA ) , öu ñieåm laø vieäc trao ñoåi giaù trò toác ñoä cuûa caùc ñoäng cô raát nhanh vaø deã daøng , khaù phuø hôïp vôùi yeâu caàu ñoàng boä toác ñoä theo thôøi gian thöïc ( chu kyø cho moãi laàn trao ñoåi toác ñoä söû duïng trong luaän vaên laø 20ms) , nhöng laïi coù nhöôïc ñieåm:Bò haïn cheá veà khoaûng caùch, chæ coù theå giao tieáp trong khoaûng caùch gaàn 8.4 Höôùng khaéc phuïc caùc ñieåm haïn cheá vaø phaùt trieån ñeà taøi 8.4.1 Höôùng khaéc phuïc caùc ñieåm haïn cheá – Coù theå söû duïng caùc loaïi encoder coù ñoä phaân giaûi cao nhö : 500 xung/voøng hay 1000 xung/voøng ñeå coù theå ñieàu khieån ñöôïc ñoäng cô ôû caùc toác ñoä döôùi 120 voøng/phuùt. Chöông 8: Keát quaû ñaït ñöôïc , höôùng phaùt trieån ñeà taøi GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 129 – Söû duïng caùc boä phaùt toác (encoder , tacho generator) gaén leân truïc quay cô khí coù keát noái vôùi ñoäng cô “chuû” ( ôû trong luaän vaên laø ñoäng cô 1) ñeå phaûn hoài toác ñoä thaät cuûa ñoäng cô “chuû” cho caùc boä ñieàu khieån cuûa caùc ñoäng cô “tôù” ( ôû trong luaän vaên laø ñoäng cô 2) . Caùch thöùc naøy seõ giaûi quyeát ñöôïc vaán ñeà veà khoaûng caùch trao ñoåi döõ lieäu cuûa giao tieáp song song. 8.4.2 Höôùng phaùt trieån ñeà taøi – Thieát keá caùc khoái maïch ñoäng löïc coù coâng suaát lôùn hôn ñeå coù theå ñieàu khieån toác ñoä caùc ñoäng cô DC coâng suaát cao duøng trong coâng nghieäp. – Nghieân cöùu vaø caûi tieán boä ñieàu khieån PI-Môø trong luaän vaên leân thaønh boä ñieàu khieån PI-Môø Thích nghi ñeå coù chaát löôïng ñieàu khieån toát hôn. – Ngoaøi vieäc ñoàng boä toác ñoä ñoäng cô , coù theå keát hôïp theâm ñieàu khieån moment ñeå coù theå söû duïng trong caùc baêng chuyeàn caàn toác ñoä quay thay ñoåi theo ñöôøng kính cuoän . Ví duï nhö: daây chuyeàn cuoán xaû giaáy trong coâng nghieäp … – Moâ hình heä thoáng trong luaän vaên söû duïng maïng CAN ñeå quaûn lyù, neân coù theå môû roäng ñeå aùp duïng nhö moät heä thoáng SCADA thöïc thuï nhaèm ñieàu khieån vaø giaùm saùt taát caû caùc daây chuyeàn saûn xuaát trong xöôûng hay nhaø maùy. – Töø vieäc xaây döïng maïng CAN ñeå quaûn lyù xöôûng-nhaø maùy,coù theå keát hôïp theâm vôùi caùc heä thoáng ñieän thoaïi , voâ tuyeán hay Internet ñeå coù theå lieân keát nhieàu xöôûng–nhaø maùy vôùi nhau, taïo thaønh moät heä thoáng lôùn. Töø ñoù, taïi caùc trung taâm ñieàu khieån ôû raát xa coù theå ñieàu khieån vaø giaùm saùt töø xa moïi hoaït ñoäng saûn xuaát ôû caùc xöôûng-nhaø maùy naøy. Ñieàu naøy cuõng seõ raát coù ích cho moät ngöôøi kyõ sö coù theå ñieàu khieån-giaùm saùt moät hay nhieàu daây chuyeàn do mình coù traùch nhieäm quaûn lyù ngay treân maùy vi tính taïi nhaø. Taøi lieäu tham khaûo GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 130 TAØI LIEÄU THAM KHAÛO v Taøi lieäu trong nöôùc [1] Nguyeãn Thò Phöông Haø, Huyønh Thaùi Hoaøng, Lyù thuyeát ñieàu khieån töï ñoäng , Nhaø xuaát baûn ñaïi hoïc quoác gia TP Hoà Chí Minh ,2003. [2] Nguyeãn Thò Phöông Haø, Lyù thuyeát ñieàu khieån hieän ñaïi , Nhaø xuaát baûn ñaïi hoïc quoác gia TP Hoà Chí Minh, 2007. [3] Nguyeãn Vaên Nhôø, Giaùo trình ñieän töû coâng suaát, Nhaø xuaát baûn ñaïi hoïc quoác gia TP Hoà Chí Minh. [4] Ngoâ Dieân Taäp, Laäp trình gheùp noái maùy tính trong Windows, Nhaø xuaát baûn khoa hoïc vaø kyõ thuaät Haø Noäi, 2000. [5] Nguyeãn Ñöùc Thaønh, Ño löôøng ñieàu khieån baèng maùy tính, Nhaø xuaát baûn ñaïi hoïc quoác gia TP Hoà Chí Minh, 2005. [6] Phan Quoác Phoâ, Nguyeãn Ñöùc Chieán, Giaùo trình caûm bieán , Nhaø xuaát baûn khoa hoïc vaø kyõ thuaät. [7] Nguyeãn Höõu Quoác, Giao thöùc CAN-ñieàu khieån vaø thu thaäp döõ lieäu trong xe bus, Luaän vaên toát nghieäp ñaïi hoïc, Ñaïi hoïc Baùch khoa Tp. HCM, 2006. v Taøi lieäu nöôùc ngoaøi [8] Farzan Rashidi ,Mehran Rasgidi, Arash Hashemi-Hosseini ,Applying Intelligent Controllers for Speed Regulation of DC Motors, Engineering Research Institute of Jercen – Iran. [9] J.C.Basilio , S.R.Matos , Design of PI and PID Controllers with Transient Performance Specification , IEEE Transactions on Education -VOL45 , 4/12/2002 [10] Jan Jantzen , Design of Fuzzy Controllers , Tuning of Fuzzy PID Controllers , Technical University of Denmark – Department of Automation , 30/9/1998 [11] Steve Mackay, Edwin Wright , etal…, Practical Industrial Data Networks: Design , Installation and Troubleshooting Taøi lieäu tham khaûo GVHD: KS. Leâ Ngoïc Ñình SVTH: Nguyeãn Gia Minh Thaûo 131 [12] E-Clock CAN bus board datasheet , Matrix Multimedia Website , 2005 [13] Jonathan W.Valvano , Embedded Microcomputer Systems - First , Second Editon ( for 68HC05 , 68HC11 , HC(S)12 ) , Thomson-Engineering Publishers , 2008 [14] Han-Way Huang , The HCS12/ 9S12 : An Introduction , Thomson Delmar Learning , 2006 [15] MC9S12DP512 Device Guide V1.25 , Motorola Inc , 5/7/2005 [16] Bosch Controler Area Network (CAN) V2.0 , FreeScale Semiconductor. [17] Rebeca Delgado, etal …,Application Note: Using MSCAN on the HCS12 Family, FreeScale Semiconductor, Mexico 2005. [18] Martyn Gallop , etal… , Designing Hardware for the HCS12 D-Family , FreeScale Semiconductor, 2004. v Caùc Website [19] www.freescale.com [20] [21] www.dientuvietnam.net [22] www.bkpro.info

Các file đính kèm theo tài liệu này:

  • pdfĐiều khiển mờ và giao thức can trong đồng bộ tốc độ hệ động cơ dc.pdf