1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thiết kế hệ thống điều khiển và giám sát tải giả lập trình được

96 0 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Lời đầu tiên, em xin được gửi lời cảm ơn tới thầy Hoàng Đức Chính đã giao đề tài, hướng dẫn và đưa ra lời khuyên để em có thể thực hiện phần thiết kế giao diện của đề tài, cảm ơn sự tận tình của thầy trong suốt thời gian mà em làm đồ án tốt nghiệp này. Em cũng xin cân thành cảm ơn thầy Hoàng Anh và thầy Nguyễn Duy Đỉnh đã hướng dẫn và đưa ra lời khuyên giúp chúng em thực hiện phần thiết kế mạch điều khiển và mạch công suất. Trong suốt quá trình làm đồ án, em đã gặp rất nhiều những khó khăn, khúc mắc khó mà giải quyết nhưng nhờ sự giúp đỡ của các thầy mà chúng em có thể hoàn thành đồ án tốt nghiệp đúng thời hạn. Em cũng xin gửi lời cảm ơn tới bạn Trần Ngọc Diệu, người bạn cùng em thực hiện đồ án tốt nghiệp này, đã chia sẻ những kiến thức đã học được, giúp đỡ nhau hoàn thiện đề tài. Em cũng xin gửi lời cảm ơn tới Nhà trường, viện Điện và bộ môn Tự động hóa Công nghiệp đã tạo điều kiện cho em có cơ hội được thực hiện đồ án cũng như cho em sử dụng cơ sở vật chất giúp em dễ dàng thực hiện đồ án này. Em xin chân thành cảm ơn

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI ĐỒ ÁN TỐT NGHIỆP Thiết kế hệ thống điều khiển giám sát tải giả lập trình ĐẶNG TIẾN ĐẠT dat.dt209526@sis.hust.edu.vn Ngành Kỹ thuật Điều khiển Tự động Hóa Chuyên ngành Tự động hóa Cơng nghiệp Giảng viên hướng dẫn: TS Hồng Đức Chính Bộ mơn: Tự động hóa cơng nghiệp Viện: Điện HÀ NỘI, 7/2021 Chữ ký GVHD Lời cảm ơn Lời đầu tiên, em xin gửi lời cảm ơn tới thầy Hồng Đức Chính giao đề tài, hướng dẫn đưa lời khuyên để em thực phần thiết kế giao diện đề tài, cảm ơn tận tình thầy suốt thời gian mà em làm đồ án tốt nghiệp Em xin cân thành cảm ơn thầy Hoàng Anh thầy Nguyễn Duy Đỉnh hướng dẫn đưa lời khuyên giúp chúng em thực phần thiết kế mạch điều khiển mạch công suất Trong suốt trình làm đồ án, em gặp nhiều khó khăn, khúc mắc khó mà giải nhờ giúp đỡ thầy mà chúng em hồn thành đồ án tốt nghiệp thời hạn Em xin gửi lời cảm ơn tới bạn Trần Ngọc Diệu, người bạn em thực đồ án tốt nghiệp này, chia sẻ kiến thức học được, giúp đỡ hoàn thiện đề tài Em xin gửi lời cảm ơn tới Nhà trường, viện Điện mơn Tự động hóa Cơng nghiệp tạo điều kiện cho em có hội thực đồ án cho em sử dụng sở vật chất giúp em dễ dàng thực đồ án Em xin chân thành cảm ơn! Tóm tắt nội dung đồ án Chúng em cần thực thiết kế tải giả lập trình để phục vụ cho nhiều ứng dụng khác thử loại nguồn, mô công suất tiêu thụ, tiêu tán lượng cần thiết Đề tài chia làm hai phần lớn cần thực thết kế mạch điều khiển thiết kế mạch công suất Các công cụ mà chúng em sử dụng gồm: Về phần mềm, sử dụng STM32CubeMx để thiết lập cấu hình ban đầu cho chương trình, Proteus Professional để mơ chức cần sử dụng, Keil uvision dùng để viết chương trình, Altium Designer để thiết kế mạch in Ngồi cịn sử dụng Visual Studio 2019 để thiết kế giao diện điều khiển cho hệ thống Về phần cứng, chúng em lựa chọn Kit STM32f103c8 cho mạch điều khiển, linh kiện phục vụ cho chức mạch điều khiển chức hiển thị sử dụng LCD 16x2 giao tiếp thông qua module I2C, giao tiếp người dùng thông qua nút bấm,… Kết mà chúng em đạt phù hợp với vấn đề đặt Trong tương lai, chúng em cải tiến mạch điều khiển, mạch cơng suất, tích hợp tồn hệ thống, phát triển thành sản phẩm hồn chỉnh, áp dụng vào thực tế Qua đồ án này, em có thêm kiến thức thiết kế, điều khiển trau dồi thêm kỹ tìm tịi, học hỏi, làm việc nhóm vượt qua áp lực khó khăn đề hoàn thành nhiệm vụ MỤC LỤC CHƯƠNG GIỚI THIỆU CHUNG 1.1 Đặt vấn đề 1.2 Đối tượng nghiên cứu 1.2.1 Định nghĩa .2 1.2.2 Nguyên lý hoạt động .2 1.2.3 Các đặc điểm 1.2.4 Thông tin sản phẩm tải giả khả trình 1.3 Mục tiêu thiết kế CHƯƠNG TÍNH TỐN VÀ THIẾT KẾ MẠCH CƠNG SUẤT 2.1 Giới thiệu .6 2.2 Tổng quan chỉnh lưu tia ba pha 2.3 Tổng quan Thyristor 2.3.1 Nguyên lý hoạt động: 2.3.2 Đặc tính Volt-Ampe thyristor 2.4 Tính tốn thiết kế mạch chỉnh lưu 2.4.1 Sơ đồ nguyên lý mạch chỉnh lưu .8 2.4.2 Tính chọn thyristor 2.4.3 Tính chọn Aptomat bảo vệ q dịng 10 2.4.4 Tính chọn mạch Snubber circuit 11 2.5 Tính tốn thiết kế mạch phát xung thyristor 12 2.5.1 Sơ đồ nguyên lý mạch kích thyristor .12 2.5.2 Tính chọn biến áp xung 12 2.5.3 Tính chọn linh kiện khác 13 CHƯƠNG TÍNH TỐN VÀ THIẾT KẾ MẠCH ĐIỀU KHIỂN 16 3.1 Sơ đồ khối mạch điều khiển 16 3.2 Khối xử lý trung tâm 17 3.2.1 Lựa chọn vi điều khiển cho khối xử lý trung tâm 17 3.3 Khối nguồn 19 3.4 Khối đo lường 19 3.4.1 Thiết kế mạch đo dòng điện đầu vào .19 3.4.2 Thiết kế mạch đo điện áp xoay chiều đầu vào .24 3.4.3 Thiết kế mạch đo dòng điện đầu .24 3.5 Khối hiển thị 26 3.5.1 Lựa chọn linh kiện 26 3.5.2 Thiết kế khối hiển thị 28 3.6 Khối đèn báo 28 3.6.1 Thiết kế khối đèn báo 28 3.6.2 Lựa chọn linh kiện 28 3.7 Khối keyboard .29 3.7.1 Thiết kế khối keyboard 29 3.7.2 Lựa chọn linh kiện khối keyboard 30 3.8 Khối thời gian thực 30 3.9 Khối ACDET .31 3.9.1 Thiết kế khối ACDET 31 3.9.2 Lựa chọn linh kiện khối ACDET 31 3.10 Giao tiếp với mạch công suất 32 3.11 Giao tiếp với máy tính 32 3.12 Sơ đồ nguyên lý mạch điều khiển .33 CHƯƠNG XÂY DỰNG PHẦN MỀM ĐIỀU KHIỂN TRÊN MÁY TÍNH 34 4.1 Tổng quan phần mềm điều khiển máy tính 34 4.2 Truyền thông máy tính mạch điều khiển 34 4.3 Giao diện điều khiển giám sát 35 4.3.1 Giao diện .35 4.3.2 Lựa chọn công truyền thông giao tiếp – COM port .35 4.3.3 Lựa chọn chế độ điều khiển 36 4.3.4 Lựa chọn hiển thị 36 4.3.5 Đồ thị 37 4.3.6 Bảng 37 4.3.7 Sơ đồ hướng dẫn sử dụng giao diện 38 4.4 Cơ sở liệu 39 CHƯƠNG XÂY DỰNG MÔ HÌNH THỰC NGHIỆM VÀ KẾT QUẢ .41 5.1 Giới thiệu .41 5.2 Mạch điều khiển 41 5.2.1 Phần cứng 41 5.2.2 Phần mềm 43 5.2.3 Kiểm tra tín hiệu điều khiển 49 5.2.4 Mạch kích xung điều khiển mở thyristor .51 5.2.5 Mạch chỉnh lưu .52 5.3 Giao diện máy tính 53 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 54 6.1 Kết luận: 54 6.1.1 Hoàn thành 54 6.1.2 Hạn chế 54 6.2 Hướng phát triển tương lai 54 TÀI LIỆU THAM KHẢO 55 PHỤ LỤC 56 DANH MỤC HÌNH VẼ Hình 1.1: Tải giả tự động AC415-1200kW Hình 1.2: Sơ đồ khối chức hệ thống tải giả Hình 2.1: Chỉnh lưu tia ba pha có điều khiển Hình 2.2: Thyristor SCR .7 Hình 2.3: Đường đặc tính Volt-Ampe thyristor Hình 2.4: Sơ đồ nguyên lý mạch chỉnh lưu Hình 2.5: Thyristor BT152-800 TO220 20A 800V 10 Hình 2.6: Mạch R-C bảo vệ thyristor 11 Hình 2.7 Mạch R-C bảo vệ nguồn .11 Hình 2.8: Mạch phát xung mở thyristor 12 Hình 2.9: Lõi ferit EE16 13 Hình 2.10: Phía sơ cấp biến áp xung 14 Hình 2.11: Phía thứ cấp biến áp xung .15 Hình 3.1: Sơ đồ mạch điều khiển 16 Hình 3.2: Kit STM32F103C8T6 .17 Hình 3.3: MCU 18 Hình 3.4: Khối nguồn 19 Hình 3.5: Cảm biến dòng Hall 100A 19 Hình 3.6: Tính tốn cảm biến Hall 20 Hình 3.7: Lựa chọn thông số .21 Hình 3.8: Khối đo dịng vào 22 Hình 3.9: Cách sử dụng cảm biến Hall 23 Hình 3.10: Khối đo điện áp .24 Hình 3.11: Khối đo dịng .25 Hình 3.12: Điện trở Shunt 26 Hình 3.13: LCD 16x2 26 Hình 3.14: Module I2C .27 Hình 3.15: Kết nối LCD với I2C .28 Hình 3.16: Khối đèn báo 28 Hình 3.17: Led vàng 29 Hình 3.18: Khối keyboard 29 Hình 3.19: Nút bấm 30 Hình 3.20: Sơ đồ chân IC 74LS21 30 Hình 3.21: Khối thời gian thực 30 Hình 3.22: Pin 3V .31 Hình 3.23: Khối ACDET 31 Hình 3.24: IC LM741 32 Hình 3.25: Cổng nối mạch điều khiển với mạch cơng suất .32 Hình 3.26: Sơ đồ nguyên lý mạch điều khiển 33 Hình 4.1: Các khối phần mềm 34 Hình 4.2: Giao diện điều khiển giám sát .35 Hình 4.3: Group box "Select COM" 35 Hình 4.4: Group box "Control" 36 Hình 4.5: Group box “Display” 36 Hình 4.6: Đồ thị 37 Hình 4.7: Bảng hiển thị .37 Hình 4.8: Lưu đồ thuật tốn 38 Hình 4.9: Giao diện MySQL Workbench 39 Hình 4.10: Bảng Database 39 Hình 5.1: Mối quan hệ phần 41 Hình 5.2: Thiết kế mạch Altium 42 Hình 5.3: Mạch điều khiển thực tế 42 Hình 5.4 Khi kết nối với máy tính với mạch điều khiển dây cáp USB .43 Hình 5.5: Chế độ thơng tin đo lường 43 Hình 5.6: Hiển thị thơng tin dịng điện, điện áp đầu vào chế độ “Measurement” 44 Hình 5.7: Hiển thị thơng tin cơng suất đặt thực tế chế độ “Measurement” 44 Hình 5.8 Hiển thị cơng suất công suất thời điểm 45 Hình 5.9 Chế độ cài đặt cơng suất .46 Hình 5.10 Cài đặt cơng suất mong muốn 46 Hình 5.11: Cảnh báo giá trị đặt không phù hợp 47 Hình 5.12 Chế độ chọn góc alpha .47 Hình 5.13 Lựa chọn góc alpha xoay biến trở 48 Hình 5.14 Chế độ “Real Time” 48 Hình 5.15: Hiển thị thời gian thực .49 Hình 5.16: Tín hiệu điều khiển .50 Hình 5.17: Tín hiệu điều khiển .50 Hình 5.18: Tín hiệu điều khiển .51 Hình 5.19: Mạch kích xung điều khiển dạng 3D .51 Hình 5.20: Mạch kích xung điều khiển thực tế 52 Hình 5.21: Mạch chỉnh lưu dạng 3D 52 Hình 5.22: Giao diện người dùng trạng thái hoạt động .53 DANH MỤC BẢNG Bảng 1.1: Thông số kỹ thuật .4 Bảng 2.1: Một vài thông số quan trọng transistor .13 Bảng 2.2: Một vài thông số quan trọng thyristor 15 CHƯƠNG GIỚI THIỆU CHUNG 1.1 Đặt vấn đề Điện nguồn lượng thiếu sinh hoạt, sản xuất, phát triển kinh tế Ngày nay, với tiến khoa học cơng nghệ, người ta tạo nguồn điện nhiều cách khác từ nguồn lượng khác thủy điện, nhiệt điện, hạt nhân, lượng mặt trời, điện gió, v.v… Các thiết bị điện cần cung cấp điện với giá trị điện áp, công suất phù hợp với thân thiết bị Việc quan trọng đối định suất, tuổi thọ, an toàn thiết bị Trước yêu cầu quan trọng này, vấn đề đặt với đa dạng mình, làm để lựa chọn nguồn điện phù hợp loại thiết bị, với lượng tiêu thụ định mà khơng gây tổn thất, hỏng hóc cho thiết bị Trước lắp đặt nguồn điện sử dụng nguồn điện đó, ta nên kiểm tra xem có đạt cơng suất mong muốn hay khơng, hoạt động cung cấp điện để tránh việc sử dụng nguồn điện khơng đạt u cầu, gây tổn thất điện, lãng phí gây hư hại cho thiết bị điện Để thực việc tải giả phương pháp dùng để kiểm tra nguồn điện Tải giả lập trình mơ tình tải khác nhau, phản ứng, mức tiêu thụ điện khác Nó thiết bị tiêu thụ điện dạng điều khiển kỹ thuật số, mô nhiều hoạt động nhiều loại phụ tải động cảm ứng, hệ thống chiếu sáng, thiết bị sưởi ấm chí tổng tải tịa nhà, phân xưởng hay khu vực Ngày nay, với phát triển kỹ thuật cơng nghệ, người ta cho phương pháp tích hợp để thiết kế kiểm tra đối tượng Tuy nhiên hệ thống điều khiển giám sát tải giả lập trình được, trình bày này, cung cấp tảng nơi mà hoạt động điều khiển, đo lường hay hiển thị tích hợp phần cứng với mức cơng suất thực người dùng yêu cầu Tải vừa cung cấp giá trị công suất tải khác tùy yêu cầu người sử dụng, vừa kiểm tra cho phép sử đổi thơng số giao diện người dùng chí điều khiển từ xa thơng qua Internet [1] Do đó, cung cấp tảng linh hoạt thiết bị điều khiển giám sát khác Vì lý nên chúng em chọn đề tài thiết kế “Tải giả thơng minh khả trình” 1.2 Đối tượng nghiên cứu Mục tiêu thiết kế hệ thống điều khiển giám sát tải giả lập trình Do trạng thái tải phải gần với thực tế kết nối nguồn điện phải MX_TIM1_Init(); MX_TIM2_Init(); MX_TIM3_Init(); MX_USB_DEVICE_Init(); lcd_init(); ts = HAL_GetTick(); while (1){ while(tg1==0){ HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_3); if(check == 1) tg1=6; RUN = 0; j = 0; a = 1; HAL_GPIO_WritePin(GPIOB, GPIO_PIN_10, 0); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, 1); if (tg2==0){ lcd_goto_XY(1,0); lcd_send_string(" Select Mode "); lcd_send_string("< Measurement >"); lcd_goto_XY(2,0); } 73 if (tg2==1){ lcd_goto_XY(1,0); lcd_send_string(" Select Mode "); Setting >"); Select Mode "); Test Alpha >"); Select Mode "); Real Time >"); lcd_goto_XY(2,0); lcd_send_string("< } if (tg2==2){ lcd_goto_XY(1,0); lcd_send_string(" lcd_goto_XY(2,0); lcd_send_string("< } if (tg2==3){ lcd_goto_XY(1,0); lcd_send_string(" lcd_goto_XY(2,0); lcd_send_string("< } } 74 while(tg1==1){ if(check == 1) tg1=6; get_adc(); measure_u(); measure_i(); measure_io(); value[3] = value[2] * R; P = value[2]*value[3]; if(tg4==0){ lcd_goto_XY(1,0); sprintf(row1,"U=%4.1f ",value[0],value[1]); I=%4.2f lcd_send_string(row1); lcd_goto_XY(2,0); sprintf(row2,"Ur=%4.1f ",value[3],value[2]); Ir=%4.2f lcd_send_string(row2); } if(tg4==1){ lcd_goto_XY(1,0); 75 sprintf(row1,"Pd=%d ",t); lcd_send_string(row1); lcd_goto_XY(2,0); sprintf(row2,"Pr=%4.0f ",P); lcd_send_string(row2); } if (HAL_GetTick() - time > 10000){ sprintf(transmit_data,"%f,%f",P,value[3]); CDC_Transmit_FS((uint8_t strlen(transmit_data)); *)transmit_data, time = HAL_GetTick(); } } while(tg1==2){ if(check == 1) tg1=6; HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, 1); lcd_goto_XY(1,0); sprintf(row1,"Set Pd: %d%d%d%d ",t1,t2,t3,t4); lcd_send_string(row1); 76 lcd_goto_XY(2,0); lcd_send_string(" "); if(tg3==0){ lcd_goto_XY(2,8); lcd_send_string("* "); } if(tg3==1){ lcd_goto_XY(2,8); lcd_send_string(" * "); } if(tg3==2){ lcd_goto_XY(2,8); lcd_send_string(" * "); } if(tg3==3){ lcd_goto_XY(2,8); lcd_send_string(" *"); } } 77 while(tg1==8){ lcd_goto_XY(1,0); lcd_send_string(" Loading "); lcd_goto_XY(2,0); lcd_send_string(" "); HAL_Delay(1000); tg1=2; } while(tg1==4){ if(t>4000){ HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, 0); lcd_goto_XY(1,0); lcd_send_string(" Value max "); Pd = 4000 "); lcd_goto_XY(2,0); lcd_send_string(" HAL_Delay(2000); tg1=2; } else { 78 val2 = 180.0 / PI; alpha = acos(sqrt(t*0.000548)-1) * val2; talpha = alpha * 55.556 - 1; //talpha=alpha*20000/360 - talpha = round(talpha); HAL_TIM_SetAutoreload(&htim2, talpha); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, 0); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_10, 1); RUN=1; tg1=1; } } while(tg1==3){ if(check == 1) tg1=6; lcd_goto_XY(1,0); lcd_send_string(" Test Alpha "); HAL_ADC_Start_DMA(&hadc1,(uint32_t*)madc,4); talpha = madc[3]*0.0339+60; talpha2 = round(talpha); 79 if((talpha2180)){ RUN=0; HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, 0); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, 1); lcd_goto_XY(2,0); lcd_send_string(" a150 "); } else{ HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, 1); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, 0); lcd_goto_XY(2,0); sprintf(row2," %d ",talpha2); lcd_send_string(row2); talpha = talpha * //talpha=alpha*20000/360 - 55.556 - 1; talpha = round(talpha); HAL_TIM_SetAutoreload(&htim2, talpha); RUN=1; } 80 } while(tg1==5){ if(check == 1) tg1=6; HAL_RTC_GetTime(&hrtc, &sTime, RTC_FORMAT_BIN); lcd_goto_XY(1,0); sprintf(row1,"%d%d:%d%d:%d%d", sTime.Hours/10, sTime.Hours%10, sTime.Minutes/10, sTime.Minutes%10, sTime.Seconds/10, sTime.Seconds%10); HAL_RTC_GetDate(&hrtc, &sDate, RTC_FORMAT_BIN); lcd_send_string(row1); lcd_goto_XY(2,0); sprintf(row2,"%d%d-%d%d-20%d%d", sDate.Date%10, sDate.Month/10, sDate.Year/10, sDate.Year%10); sDate.Date/10, sDate.Month%10, lcd_send_string(row2); } while(tg1==6){ j=0;t = 0; for(int i=0;iInstance == TIM2){ HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1); HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_3); HAL_TIM_Base_Stop_IT(&htim2); HAL_TIM_Base_Start_IT(&htim3); } if(htim->Instance == TIM3){ a++; if (a==2){ HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_2); HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_1); } if (a==3){ HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_3); HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_2); 86 a = 1; HAL_TIM_Base_Stop_IT(&htim3); } } } 87

Ngày đăng: 27/05/2023, 19:30

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w