Nâng cao chất lượng điều khiển hòa đồng bộ hệ thống phát điện sức gió sử dụng máy điện đồng bộ nam châm vĩnh cửu bằng phương pháp điều khiển thích nghi
Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 112 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
112
Dung lượng
4,22 MB
Nội dung
ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP NGUYỄN NGỌC QUÂN NÂNG CAO CHẤT LƢỢNG ĐIỀU KHIỂN HOÀ ĐỒNG BỘ HỆ THỐNG PHÁT ĐIỆN SỨC GIÓ SỬ DỤNG MÁY ĐIỆN ĐỒNG BỘ NAM CHÂM VĨNH CỬU BẰNG PHƢƠNG PHÁP ĐIỀU KHIỂN THÍCH NGHI Chuyên ngành Kỹ thuật điều khiển tự động hoá MÃ SỐ 60520216 TÓM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT Thái Nguyên, 2014 Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ LỜI GIỚI THIỆU Tính cấp thiết đề tài Đề tài đặt sở vấn đề thực tế là: - Xu hướng phát triển mạnh việc sử dụng nguồn lượng giới nước - Nhu cầu tăng cao lượng điện nước - Do yêu cầu chất lượng điện hệ thống lượng điện ngày cao, đòi hỏi hệ thống máy phát điện sức gió phải bám lưới lỗi lưới Trong tuốc bin gió lỗi lưới với mức sụt điện áp lớn buộc phải cắt hệ thống khỏi lưới để bảo vệ biến đổi khỏi dòng lớn - Các giải pháp điều khiển cố gắng trì máy phát bám lưới cách hạn chế độ lớn sức phản điện động cảm ứng mạch rotor nguyên nhân sinh Tuy nhiên giải pháp điều khiển tuyến tính chưa hồn tồn phù hợp với chất phi tuyến hệ thống nghịch lưu hệ thống phát điện sức gió (PĐSG) Vì để nâng cao chất lượng hệ thống PĐSG mạng hệ thống lượng điện, tác giả chọn đề tài: “ Nâng cao chất lượng điều khiển hoà đồng hệ thống phát điện sức gió sử dụng máy điện đồng nam châm vĩnh cửu phương pháp điều khiển thích nghi” Đối tƣợng nghiên cứu Hệ thống phát điện sức gió sử dụng máy điện đồng nam châm vĩnh cửu Bộ nghịch lưu hịa lưới Mục đích nghiên cứu Nâng cao chất lượng hệ thống phát điện chạy sức gió sử dụng máy điện đồng nam châm vĩnh cửu sở tổng hợp điều khiển nghịch lưu phía lưới theo phương pháp điều khiển thích nghi Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ Phạm vi nghiên cứu Phạm vi nghiên cứu đề tài thiết kế điều khiển nghịch lưu hịa đồng phía lưới theo phương pháp điều khiển thích nghi Backsteping để nâng cao chất lượng hịa đồng Phƣơng pháp nghiên cứu - Nghiên cứu tài liệu lý luận phương pháp điều khiển thích nghi Backsteping - Mơ Off-Line sở sử dụng phần mềm matlab/simulink/plecs - Thực nghiệm sở mơ hình thí nghiệm (tự làm) Ý nghĩa đề tài - Đã thực việc điều khiển hồ đồng hệ thống nghịch lưu phía lưới vào lưới sở điều khiển phi tuyến việc tính chọn giá trị đặt - Đã thực điều khiển hệ thống nghịch lưu công suất tác dụng phản kháng lên lưới chế độ bình thường Những điểm luận văn - Đã áp dụng thành công phương pháp điều khiển phi tuyến sở kỹ thuật thích nghi Backstepping để điều khiển nghịch lưu phía lưới - Với việc áp dụng phương pháp điều khiển phi tuyến thích nghi Backstepping, luận văn giải vấn đề mà phương pháp tuyến tính đề cập dao động điện áp lưới, điểm đóng góp luậnvăn nhằm nâng cao chất lượng điều khiển hệ thống lỗi lưới ngắn mạch ba pha Kết nghiên cứu luận văn chứng minh chất lượng điều khiển hệ thống nghịchlưu hệ thống PĐSG lỗi lưới ngắn mạch ba pha đối xứng tốt so với phương pháp điều khiển tuyến tính thơng thường - Đã góp phần làm sáng tỏ chất phương pháp thích nghi Backstepping sở lý thuyết ổn định Lyapunov áp dụng cho hệ thống PĐSG sử dụng máy điện đồng nam châm vĩnh cửu, là: chất phương Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ pháp kết hợp phương pháp điều khiển thích nghi Backstepping (bản chất chuyển hệ tọa độ trạng thái) mơ hình đối tượng tổng hợp điều khiển cho đối tượng sở lý thuyết ổn định Lyapunov, đồng thời đưa biện pháp để nâng cao chất lượng tĩnh động hệ thống Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ Chƣơng TỔNG QUAN HỆ THỐNG MÁY PHÁT ĐIỆN SỨC GIÓ 1.1 GIÓ VÀ NĂNG LƢỢNG GIÓ Từ lâu người biết sử dụng lượng gió để tạo thay cho sức lao động nặng nhọc, điển hình thuyền buồm chạy sức gió, cối xay gió xuất từ kỷ 14 dùng phổ biến từ kỷ 17, thịnh vượng vào kỷ 18 đặc biệt Hà Lan với hàng ngàn Từ kỷ 19 đến nửa đầu kỷ 20 với xuất phát triển máy nước loại động đốt trong, cối xay gió bị lãng quên Nhưng từ vài chục năm gần với nguy cạn dần nguồn nhiên liệu khai thác từ lịng đất vấn đề nhiễm mơi trường việc đốt hàng ngày khối lượng lớn nguồn nhiên liệu hóa thạch nêu Việc nghiên cứu sử dụng dạng lượng tái tạo thiên nhiên có lượng gió lại nhiều nước giới kể nước có cơng nghiệp lượng phát triển mạnh Nga, Mỹ, Pháp, CHLB Đức, Hà Lan, Anh, Đan Mạch, Thụy Điển…đặc biệt quan tâm Trên sở áp dụng thành tựu nhiều nghành khoa học tiên tiến thủy khí động lực học, tự động điều khiển, học kết cấu, truyền động thủy lực, vật liệu mới…việc nghiên cứu sử dụng lượng gió đạt tiến lớn chất lượng thiết bị quy mô ứng dụng Từ cối xay gió với cánh gió đơn giản hiệu suất sử dụng lượng thấp khoảng 20%, đến động gió phát điện với cánh quạt có biên dạng khí động học ngày hồn thiện đạt hiệu suất sử dụng lượng cao tới 42% Nhiều phương pháp hệ thống tự động điều khiển đại sử dụng để tự động ổn định số vòng quay động gió Những động gió phát điện lớn cịn dùng hệ thống tự động điện thủy lực máy tính điện tử điều khiển Nhiều vật liệu sử dụng để chế tạo cánh hợp kim nhôm, polime cốt sợi thủy tinh với độ bền cao điều kiện thời tiết chịu sức gió bão Tại nơi có gió tốt, người ta ghép nhiều động gió với tạo thành “rừng máy phát điện gió” Người ta chế tạo động gió phát điện lớn đường kính tới 80m, cơng suất tới 3000 Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ kW Tuy nhiên nước quy mô phát triển việc ứng dụng lượng gió cịn phụ thuộc vào vị trí địa lý, đặc điểm tiềm gió trình độ cơng nghiệp Gió dạng lượng mặt trời Gió sinh nguyên nhân mặt trời đốt nóng khí quyển, trái đất xoay quanh mặt trời không đồng bề mặt trái đất Luồng gió thay đổi tuỳ thuộc vào địa hình trái đất, luồng nước, cối, người sử dụng luồng gió chuyển động lượng cho nhiều mục đích như: thuyền, thả diều phát điện Năng lượng gió mơ tả q trình, sử dụng để phát lượng điện Tuabin gió chuyển đổi từ động lực gió thành lượng Năng lượng sử dụng cho cơng việc cụ thể bơm nước máy nghiền lương thực cho máy phát chuyển đổi từ lượng thành lượng điện Trong số nguồn lượng thay thế, lượng gió đại diện cho hội tăng trưởng mạnh Việt Nam Các khảo sát cho thấy khoảng 85% đất đai Việt Nam có độ cao tốc độ gió trung bình phù hợp để phát lượng gió Các chuyên gia Ngân hàng Thế giới kết luận Việt Nam có khả tạo 513.360 MW hàng năm từ lượng gió – gấp 10 lần tổng công suất phát điện quốc gia dự kiến cho năm 2020 Hình 1: Ưu đãi đầu tư cho dự án lượng mặt trời gió Việt Nam Đặc biệt tỉnh Bình Thuận Ninh Thuận ven biển xem có tiềm lớn cho lượng gió vùng đất lớn khô cằn Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ đất nơng nghiệp màu mỡ Hiện nay, có 20 dự án điện gió Việt Nam, chủ yếu Bình Thuận (12 dự án đất liền huyện đảo Phú Quý), Ninh Thuận, Bình Định, Phú Yên huyện đảo Côn Đảo tỉnh Bà Rịa- Vũng Tàu, nơi lượng gió tốc độ gió trung bình cao so với phần lại đất nước * Tổng quan máy phát điện sử dụng lƣợng gió (phong điện) Các máy phát điện sử dụng sức gió sử dụng nhiều nước châu Âu, Mỹ nước công nghiệp phát triển khác Nước Đức dẫn đầu giới công nghệ điện sử dụng sức gió (phong điện) Bảng 1.1: Thống kê sử dụng lượng gió giới Số thứ tự Quốc gia Công suất (MW) 01 Đức 22.247 02 Mỹ 16.818 03 Tây Ban Nha 15.145 04 Ấn Độ 8.000 05 Trung Quốc 6.050 06 Đan Mạch 3.125 07 Ý 2.726 08 Pháp 2.454 09 Anh 2.389 10 Bồ Đào Nha 2.150 11 Ca na đa 1.846 12 Hà Lan 1.746 13 Nhật 1.538 14 Áo 982 Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 15 Hy Lạp 871 16 Úc 824 17 Ai Len 805 18 Thụy Điển 788 19 Na Uy 333 20 Niu Di Lân 322 21 Những nước khác 2.953 22 Thế giới 94.112 "Nguồn: World Wind Energy Association, thời điểm: Cuối 2007 dịch từ Wikipedia Đức" Tới đa số máy phát điện tuabin gió trục ngang, gồm máy phát điện có trục quay nằm ngang, với rotor (phần quay) giữa, liên hệ với tuabin cánh đón gió Máy phát điện đặt tháp cao hình Trạm phát điện kiểu mang dáng dấp cối xay gió châu Âu từ kỷ trước, nhã đại Các máy phát điện tuabin gió trục đứng gồm máy phát điện có trục quay thẳng đứng, rotor nằm ngồi nối với cánh đón gió đặt thẳng đứng Loại hoạt động bình đẳng với hướng gió nên hiệu qủa cao hơn, lại có cấu tạo đơn giản, phận có kích thước khơng q lớn nên vận chuyển lắp ráp dễ dàng, độ bền cao, tu bảo dưỡng đơn giản Hiện có loại máy phát điện dùng sức gió với cơng suất khác nhau, từ 1kW tới hàng chục ngàn kW Các trạm phát điện hoạt động độc lập nối với mạng điện quốc gia Các trạm độc lập cần có nạp, ắcquy đổi điện Khi dùng khơng hết, điện tích trữ vào ắc quy Khi khơng có gió sử dụng điện phát từ ắc-quy Các trạm nối với mạng điện quốc gia khơng cần nạp ắc-quy Các trạm phát điện dùng sức gió phát điện tốc độ gió từ m/s (11 km/h), tự ngừng phát điện tốc độ gió vượt 25 m/s Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ (90 km/h) Tốc độ gió hiệu qủa từ 10 m/s tới 17 m/s, tùy theo loại máy phát điện Hình 2: Hình ảnh bên MPĐ sức gió * Những ƣu điểm phong điện Ưu điểm dễ thấy phong điện không tiêu tốn nhiên liệu, không gây ô nhiễm môi trường nhà máy nhiệt điện, dễ chọn địa điểm tiết kiệm đất xây dựng, khác hẳn với nhà máy thủy điện xây dựng gần dòng nước mạnh với điều kiện đặc biệt cần diện tích lớn cho hồ chứa nước.Các trạm phong điện đặt gần nơi tiêu thụ điện, tránh chi phí cho việc xây dựng đường dây tải điện.Trước đây, công nghệ phong điện cịn ứng dụng, việc xây dựng trạm phong điện tốn kém, chi phí cho thiết bị xây lắp đắt nên áp dụng số trường hợp thật cần thiết Ngày phong điện trở nên phổ biến, thiết bị sản xuất hàng loạt, công nghệ lắp ráp hồn thiện phí cho việc hồn thành trạm phong điện 1/4 so với năm 1986 Phong điện trở thành giải pháp lượng quan trọng nhiều nước, phù hợp với điều kiện Việt Nam Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 10 * Các trạm phong điện đặt đâu? Trạm phong điện đặt địa điểm vị trí khác nhau, với giải pháp linh hoạt phong phú Các trạm phong điện đặt ven biển cho sản lượng cao trạm nội địa bờ biển thường có gió mạnh Giải pháp tiết kiệm đất xây dựng, đồng thời việc vận chuyển cấu kiện lớn biển thuận lợi Giải bờ biển Việt Nam 3000 km tạo cơng suất hàng tỷ kW phong điện Những mỏm núi, đồi hoang không sử dụng cho cơng nghiệp, nơng nghiệp đặt trạm phong điện Trường hợp không cần làm trụ đỡ cao, tiết kiệm đáng kể chi phí xây dựng Trên mái nhà cao tầng đặt trạm phong điện, dùng cho nhu cầu nhà cung cấp điện cho thành phố khơng dùng hết điện Trạm điện có ý nghĩa thiết thực thành phố bất ngờ bị điện.Ngay khu chế xuất đặt trạm phong điện Nếu tận dụng khơng gian phía nhà xưởng để đặt trạm phong điện giảm tới mức thấp diện tích đất xây dựng chi phí làm đường dây điện.Điện khí hóa ngành đường sắt xu hướng tất yếu nước công nghiệp Chỉ cần đặt với khoảng cách 10 km trạm 4800kW dọc tuyến đường sắt có đủ điện cho tất đồn tàu Việt nam Các vùng phong điện lớn đặt gần tuyến đường sắt thuận tiện việc vận chuyển dựng lắp Các đầu máy diesel than đá tiêu thụ lượng nhiên liệu lớn gây ô nhiễm môi trường thay đầu máy điện tương lai.Đặt trạm phong điện bên cạnh trạm bơm thủy lợi xa lưới điện quốc gia tránh việc xây dựng đường dây tải điện với chi phí lớn gấp nhiều lần chi phí xây dựng trạm phong điện Việc bảo quản trạm phong điện đơn giản việc bảo vệ đường dây tải điện nhiều Nhà máy nước đặt cạnh trạm phong điện mơ hình tối ưu để giải việc cung cấp nước cho vùng đồng sông Cửu Long, tiết kiệm nhiên liệu đường dây điện Một trạm phong điện kW đủ điện cho trạm kiểm lâm rừng sâu hải đăng xa đất liền Một trạm 10 kW đủ cho đồn biên phòng núi cao, đơn vị hải quân nơi đảo xa Một trạm 40 kW đủ cho xã vùng cao, đồn Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 98 /* dinh nghia Kieu So Nguyen Khong Dau */ typedef unsigned char uint8_t; typedef unsigned int uint16_t; typedef unsigned long int uint32_t; /* dinh nghia Kieu So Thuc */ typedef float float32_t; // dinh nghia cac chan dieu khien LCD #define LCD_D4 PORTC.4 #define LCD_D5 PORTC.5 #define LCD_D6 PORTC.6 #define LCD_D7 PORTC.7 #define LCD_RS PORTC.0 #define LCD_RW PORTC.1 #define LCD_EN PORTC.2 #include // khai bao thu vien LCD // dinh nghia cac chan dau xung, xung dong bo, nut nhan Start #define XUNG #define DB #define START PORTD.5 PORTD.4 PINB.0 // Ham ngat tran Timer ************************************** interrupt [TIM0_OVF] void timer0_ovf_isr(void) { Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 99 if(ngat0>=solanngat0){DB=1;TCNT0=0;} // neu so lan ngat tran bang so lan ngat can thiet thi phat xung dong bo else {ngat0++;DB=0;} } // Ham ngat so sanh Timer 1A ********************************/ interrupt [TIM1_COMPA] void timer1_compa_isr(void) { if(ngat1==0){XUNG=0;ngat1++;OCR1AH=time2/256;OCR1AL=time2%256;} // neu ngat lan thu thi phat xung xuong else if(ngat1==1){ngat1=0;TCNT1H=0;TCNT1L=0;XUNG=1;OCR1AH=time1/256;O CR1AL=time1%256;ngat0=0;} // neu ngat lan thu thi phat xung len } // dinh nghia cac ghi cua bo ADC, de lay gia tri tu cac chiet ap #define FIRST_ADC_INPUT #define LAST_ADC_INPUT unsigned int adc_data[LAST_ADC_INPUT-FIRST_ADC_INPUT+1]; #define ADC_VREF_TYPE 0x00 // Ham doc gia tri tu bo ADC, ham phan men tu viet ra, khong can quan tam interrupt [ADC_INT] void adc_isr(void) { static unsigned char input_index=0; adc_data[input_index]=ADCW; Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 100 if (++input_index > (LAST_ADC_INPUT-FIRST_ADC_INPUT)) input_index=0; ADMUX=(FIRST_ADC_INPUT | (ADC_VREF_TYPE & 0xff))+input_index; delay_us(10); ADCSRA|=0x40; } // Ham chuong trinh chinh ********************************/ void main(void) { // Chon che hoat dong cho cac chan dau vao/ra*********************/ PORTA=0x00; DDRA=0x00; PORTB=0x01; DDRB=0x00; PORTC=0x00; DDRC=0xFF; PORTD=0x00; DDRD=0x32; // Chon che hoat dong cho Time ***********************************/ // Tan so: 1000.000 kHz // cho phep ngat tran time TCCR0=0x02; TCNT0=0x00; OCR0=0x00; Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 101 // Chon che hoat dong cho Time ***********************************/ // Tan so 125.000 kHz // cho phep ngat tran time kenh A TCCR1A=0x00; TCCR1B=0x03; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x02; OCR1AL=0x00; OCR1BH=0x01; OCR1BL=0x00; // Cho phep cac ngat hoat dong TIMSK=0xDF; // cho phep bo chuyen doi ADC hoat dong ADMUX=FIRST_ADC_INPUT | (ADC_VREF_TYPE & 0xff); ADCSRA=0xCE; // Global enable interrupts #asm("sei") // Khoi tao LCD1602 ==================================== LCD_Init(); LCD_Clear(); LCD_Gotoxy(0,0); Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 102 LCD_Puts(" HOA DONG BO"); LCD_Gotoxy(0,1); LCD_Puts(" MODULE PHAT"); delay_ms(500); while(START); // cho den nhan nut Start LCD_Clear(); while (1) { // Tinh tan so , bien do, pha tu cac gia tri ADC lay ve tu chiet ap tanso=adc_data[0]/11+5; biendo=adc_data[1]/4.5+5; pha=adc_data[2]/6+1; // tinh thoi gian tre pha, thoi gian xung len, chu ky (da doi sang so xung cua time voi tan so 125Khz time=125000/tanso; time=time*(pha+15); time0=time/360; time=125000/tanso; time=time*biendo; time1=time/250; time2=125000/tanso; solanngat0=(time2-time0)/32; // tinh so lan ngat tran time de tao goc cham pha // Hien thi cac thong so len LCD************************************/ LCD_Clear(); LCD_Gotoxy(0,0);sprintf(str,"TS=%i",tanso);LCD_Puts(str); LCD_Gotoxy(8,0);sprintf(str,"BD=%i",biendo);LCD_Puts(str); LCD_Gotoxy(0,1);sprintf(str,"PHA=%i",pha);LCD_Puts(str); delay_ms(200); Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 103 } } B) Mã nguồn nap cho Chip vi điều khiển nghịch lƣu hoà đồng Chip type : ATmega16 Program type : Application AVR Core Clock frequency: 8.000000 MHz Memory model : Small External RAM size :0 Data Stack size : 256 *****************************************************/ #include #include #include #include // khai bao cac bien*************************************/ int tanso, biendo, pha; int tansodo=10,biendodo=10,phado=10; // bien bien do, tan so, goc pha cua xung phat int ngat1=0,ngatngoai1=0,ngattime2=0; // bien bien do, tan so, goc pha cua xung duoc int m[10],i=0,j=0,tinh=0; // vi phep goc pha co sai so nen can tinh trung binh cua 10 lan Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 104 long time0=200, time1=1000, time2=1500;// cac bien luu thoi gian xung len, chu ky xung, thoi gian tre pha long time,timelen=0,timexuong=0,timetong=0,phaxung=0,ngattime0=0,solanngattime0=0; // cac bien luu so lan ngat tran cua time0, time1 char str[16],chedo=0,lechtan=0,lechbien=0, lechpha=0; /*dinh nghia Kieu So Nguyen Co Dau typedef signed */ char int8_t; typedef signed int int16_t; typedef signed long int int32_t; /*dinh nghia Kieu So Nguyen Khong Dau */ typedef unsigned typedef unsigned char uint8_t; int uint16_t; typedef unsigned long int uint32_t; /*dinh nghia Kieu So Thuc */ typedef float float32_t; // dinh nghia cac chan dieu khien LCD #define LCD_D4 PORTC.4 #define LCD_D5 PORTC.5 #define LCD_D6 PORTC.6 #define LCD_D7 PORTC.7 #define LCD_RS PORTC.0 #define LCD_RW PORTC.1 #define LCD_EN PORTC.2 #include // khai bao thu vien LCD Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 105 // dinh nghia cac chan dau xung, Role, nut nhan Start, nut chon che #define XUNG PORTD.5 #define ROLE PORTD.7 #define START PINB.0 #define CHEDO PINB.1 // Ngat ngoai 0, de bat xung dong bo************************/ interrupt [EXT_INT0] void ext_int0_isr(void) { TCNT0=0;ngattime0=0; } // Ngat ngoai 1, de tan so, bien do, goc pha xung phat tu module phat interrupt [EXT_INT1] void ext_int1_isr(void) { if(ngatngoai1==0) { // lan chon la ngat suon suong de lay thoi gian xung xuong timexuong=TCNT2+256*ngattime2; phaxung=TCNT0+256*ngattime0; TCNT2=0;ngattime2=0; MCUCR=0x0B; ngatngoai1=1; if(chedo)XUNG=1; } else if(ngatngoai1==1) // lan chon la ngat suon len de lay thoi gian xung len { timelen=TCNT2+256*ngattime2;TCNT2=0;ngattime2=0; Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 106 MCUCR=0x0F; ngatngoai1=0; if(chedo)XUNG=0; } } // Ngat ngoai 2, de lay tin hieu phan hoi tu bo nghich luu*************/ interrupt [EXT_INT2] void ext_int2_isr(void) { } // Ham ngat tran Timer ************************************** interrupt [TIM0_OVF] void timer0_ovf_isr(void) { ngattime0++; } // Ham ngat so sanh Timer ********************************/ interrupt [TIM0_COMP] void timer0_comp_isr(void) { if(chedo==0)if(lechtan)if(ngattime0==solanngattime0){XUNG=1;TCNT1H=0;TC NT1L=0;OCR1AH=time1/256;OCR1AL=time1%256;} } // Ham ngat so sanh Timer 1A ********************************/ interrupt [TIM1_COMPA] void timer1_compa_isr(void) { if(chedo==0)if(lechtan){ XUNG=0;} Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 107 else if(ngat1==0){XUNG=0;ngat1++;OCR1AH=time2/256;OCR1AL=time2%256;} // neu ngat lan thu thi phat xung xuong else if(ngat1==1){ngat1=0;TCNT1H=0;TCNT1L=0;XUNG=1;OCR1AH=time1/256;O CR1AL=time1%256;} // neu ngat lan thu thi phat xung len } // Ham ngat tran Timer ************************************** interrupt [TIM2_OVF] void timer2_ovf_isr(void) { ngattime2++; } // dinh nghia cac ghi cua bo ADC, de lay gia tri tu cac chiet ap ******/ #define FIRST_ADC_INPUT #define LAST_ADC_INPUT unsigned int adc_data[LAST_ADC_INPUT-FIRST_ADC_INPUT+1]; #define ADC_VREF_TYPE 0x00 // Ham doc gia tri tu bo ADC, ham phan men tu viet ra, khong can quan tam interrupt [ADC_INT] void adc_isr(void) { static unsigned char input_index=0; // Read the AD conversion result adc_data[input_index]=ADCW; // Select next ADC input Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 108 if (++input_index > (LAST_ADC_INPUT-FIRST_ADC_INPUT)) input_index=0; ADMUX=(FIRST_ADC_INPUT | (ADC_VREF_TYPE & 0xff))+input_index; // Delay needed for the stabilization of the ADC input voltage delay_us(10); // Start the AD conversion ADCSRA|=0x40; } // Ham chuong trinh chinh *************************/ void main(void) { // Chon che hoat dong cho cac chan dau vao/ra*****************/ PORTA=0x00; DDRA=0x00; PORTB=0x03; DDRB=0x00; PORTC=0x00; DDRC=0xFF; PORTD=0x00; DDRD=0xE0; // Chon che hoat dong cho Time ***************************/ // Tan so: 125.000 Hz // cho phep ngat tran va ngat so sanh time TCCR0=0x03; Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 109 TCNT0=0x00; OCR0=0x00; // Chon che hoat dong cho Time ****************************/ // Tan so 125.000 kHz // cho phep ngat tran time kenh A TCCR1A=0x00; TCCR1B=0x03; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Chon che hoat dong cho Time ***********************************/ // Tan so 62.500 kHz // cho phep ngat tran time ASSR=0x00; TCCR2=0x05; TCNT2=0x00; OCR2=0x0F; // Cho phep cac ngat ngoai hoat dong******************************/ GICR|=0xE0; Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 110 MCUCR=0x0F; MCUCSR=0x40; GIFR=0xE0; // Cho phep cac ngat hoat dong*************************/ TIMSK=0x5B; // cho phep bo chuyen doi ADC hoat dong ADMUX=FIRST_ADC_INPUT | (ADC_VREF_TYPE & 0xff); ADCSRA=0xCE; // Global enable interrupts #asm("sei") // Khoi tao LCD1602 ==================================== LCD_Init(); LCD_Clear(); LCD_Gotoxy(0,0); LCD_Puts(" HOA DONG BO"); LCD_Gotoxy(0,1); LCD_Puts(" MODULE THU"); delay_ms(500); while(START); // cho den nhan nut Start********************* LCD_Clear(); while (1) { // Tinh tan so , bien do, pha tu cac gia tri time duoc Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 111 timetong=timelen+timexuong; tansodo=62500/timetong; biendodo=(250*timelen)/timetong; tinh=phaxung*tansodo/340; // vi phep goc pha co sai so nen can tinh trung binh cua 10 lan m[i]=tinh;for(j=0;j