Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 62 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
62
Dung lượng
1,59 MB
Nội dung
TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM TRƢỜNG ĐẠI HỌC TÔN ĐỨC THẮNG KHOA ĐIỆN-ĐIỆN TỬ ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI: ĐIỀU KHIỂN MƠ HÌNH BỒN NƢỚC ĐƠI Giảng viên hƣớng dẫn : Th.S TRẦN QUANG VINH Sinh viên thực hiện: HÙNG TẤN NGỌC MINH Lớp :09040003 Mssv:40900082 Khoá : 13 TP Hồ Chí Minh, ngày 22 tháng 07 năm 2015 LỜ Đầu tiên em xin gửi lời chào lời cảm ơn chân thành đến thầ tận tình giúp đỡ em liên tục để bồn nƣớc đơi, linh kiện điều khiển, cách đóng mở van tay để điều chỉnh mực nƣớc đầu em làm bồn nƣớ tránh khỏi sai sót kiến thức nhƣ trình bày chƣa đầy đủ mức độ khả dụng to lớn cơng nghiệp nhƣ đời sống Kính mong thầy giúp em bổ sung thêm kiến thức thiếu sai sót Em xin chân thành cảm ơn CƠNG TRÌNH ĐƢỢC HỒN THÀNH TẠI TRƢỜNG ĐẠI HỌC TƠN ĐỨC THẮNG Tơi xin cam đoan cơng trình nghiên cứu riêng tơi đƣợc hƣớng dẫn khoa học Quang Vinh; Các nội dung nghiên cứu, kết đề tài trung thực chƣa cơng bố dƣới hình thức trƣớc Những số liệu bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá đƣợc tác giả thu thập từ nguồn khác có ghi rõ phần tài liệu tham khảo Ngồi ra, luận văn cịn sử dụng số nhận xét, đánh giá nhƣ số liệu tác giả khác, quan tổ chức khác có trích dẫn thích nguồn gốc Nếu phát có gian lận tơi xin hoàn toàn chịu trách nhiệm nội dung luận văn Trƣờng đại học Tơn Đức Thắng khơng liên quan đến vi phạm tác quyền, quyền tơi gây q trình thực (nếu có) TP Hồ Chí Minh, ngày tháng năm Tác giả (ký tên ghi rõ họ tên) ĐẠI HỌC TÔN ĐỨC THẮNG KHOA ĐIỆN –ĐIỆN TỬ - CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc Tp.HCM, ngày tháng năm 201 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP (Bản nhiệm vụ đóng vào trang thứ đồ án tốt nghiệp) Họ Tên đề ớp:09040003 …… MSSV:40900082…… Nhiệm vụ (yêu cầu nội dung số liệu ban đầu): Ngày giao nhiệm vụ đồ án tốt nghiệp: …………………………………… Ngày bảo vệ 50% đồ án tốt nghiệp: …………………………………… Ngày hoàn thành nộp khoa: …………………………………… Giáo viên hƣớng dẫn: Phần hƣớng dẫn: Nội dung yêu cầu ĐATN thông qua Khoa Bộ mơn Ngày tháng năm 201 CHỦ NHIỆM BỘ MƠN TRƢỞNG KHOA GIẢNG VIÊN HƢỚNG DẪN ĐỀ TÀI: ĐIỀU KHIỂN MÔ HÌNH BỒN NƢỚC ĐƠI MỤC LỤC ẢNH CHƢƠNG 1: GIỚI THIỆU TỔNG QUAN ĐỀ TÀI 1.1 Giới thiệu bồn nƣớc đôi 1.2 Cấu hình bồn nƣớc đơi .5 1.2.1 Mơ hình tốn học .5 1.2.2 Phƣơng trình tốn học .6 CHƢƠNG 2: GIỚI THIỆU VỀ VI ĐIỀU KHIỂN ARM, BOARD STM32F4 VÀ PHẦN MỀM LẬP TRÌNH 2.1 Giới thiệu chung ARM Cortex M4 2.1.1 Giới thiệu 2.1.2 Kiến trúc 2.1.3 Các tính 10 2.2 Board STM32F4 Discovery 11 2.2.1 Giới thiệu 11 2.2.2 Một vài đặc điểm bật STM32 .11 2.2.3 Giới thiệu số tính Board STM32F4 Discovery .13 2.3 Phần mềm Keil Arm STM32 Cube 15 2.3.1 Giới thiệu 15 2.3.2 Tạo dự án 15 CHƢƠNG 3: THIẾT KẾ VÀ THI CÔNG 20 3.1 Giới thiệu mơ hình chi tiết 20 3.1.1 UART 21 3.1.2 Driver động 23 3.1.3 Khối cảm biến 25 3.1.4 Khối nguồn, động DC vi điều khiển 26 SVTH: Hùng Tấn Ngọc Minh GVHD: Th.s Trần Quang Vinh Trang ĐỀ TÀI: ĐIỀU KHIỂN MƠ HÌNH BỒN NƢỚC ĐƠI 3.2 Giải thuật điều khiển mờ (fuzzy) 26 3.2.1 Tổng quan logic mờ 26 3.2.2 Cấu trúc điều khiển mờ 27 3.2.3 Luật hợp thành mờ 28 3.2.4 Áp dụng vào mơ hình thực tế 30 3.3 Giao tiếp máy tính dùng GUI Matlab .32 CHƢƠNG 4: KẾT LUẬN 40 TÀI LIỆU THAM KHẢO 41 PHỤ LỤC 42 SVTH: Hùng Tấn Ngọc Minh GVHD: Th.s Trần Quang Vinh Trang ĐỀ TÀI: ĐIỀU KHIỂN MƠ HÌNH BỒN NƢỚC ĐƠI ẢNH Hình 1.1: Cấu hình bồn nƣớc đơi liên kết hệ SISO Hình 2.1: Board STM32F4 Discovery 14 Hình 2.2: Design Support 14 Hình 2.3: Mở STM32 CubeMX 15 Hình 2.4.a: Cấu hình ngoại vi 16 Hình 2.4.b: Cấu hình ngoại vi 16 Hình 2.4.c: Cấu hình ngoại vi 17 Hình 2.4.d: Cấu hình ngoại vi 17 Hình 2.5: Khởi tạo dự án 18 Hình 2.6: Mở dự án 18 Hình 2.7: Chƣơng trình Keil Arm 19 Hình 3.1: Mơ hình bồn nƣớc đơi 20 Hình 3.2: Sơ đồ khối 21 Hình 3.3: Sơ đồ mạch 23 Hình 3.4: Mạch thực tế 24 Hình 3.5: Cảm biến mức 25 Hình 3.6: Các khối chức điều khiển mờ 27 Hình 3.7: Các điều khiển mờ 28 Hình 3.8: Mơ tả hàm liên thuộc luật hợp thành 30 Hình 3.9: Độ cao mực nƣớc sau mờ hóa 31 Hình 3.10: Luật hợp thành mờ 31 Hình 3.11: GUIDE Quick Start 32 SVTH: Hùng Tấn Ngọc Minh GVHD: Th.s Trần Quang Vinh Trang ĐỀ TÀI: ĐIỀU KHIỂN MƠ HÌNH BỒN NƢỚC ĐƠI Hình 3.12: Cửa sổ GUI 33 Hình 3.13: Tạo giao diện ngƣời dùng 34 Hình 3.14: Uicontrol 35 Hình 3.15: Callback 36 Hình 3.16: Cửa sổ lập trình 37 Hình 3.17: Đoạn code giao tiếp máy tính 37 Hình 3.18: Code cho nút Stop Exit 38 Hình 3.19: Code ngắt 39 SVTH: Hùng Tấn Ngọc Minh GVHD: Th.s Trần Quang Vinh Trang ĐỀ TÀI: ĐIỀU KHIỂN MƠ HÌNH BỒN NƢỚC ĐÔI CHƢƠNG 1: GIỚI THIỆU TỔNG QUAN ĐỀ TÀI 1.1 Giới thiệu bồn nƣớc đôi Hiện nay, với phát triển vƣợt bậc cơng nghiệp hóa đại hóa, đặc biệt lĩnh vực kỹ thuật, việc sử dụng phần tử cảm biến, ic tích hợp giúp cho dễ dàng việc điều khiển giám sát trình tự động hay bán tự động, qua hiệu suấ ện rõ rệt Trong cơng nghiệp hóa dầu, lọc dầu, xử lý nƣớc thải,… việ ển lƣu lƣợng mực nƣớc để ổn định mức chất lỏng với độ xác cao giúp cho việc sản xuất đạt hiệu tốt Với yêu cầu ứng dụng thực tế nhƣ vậy, đề tài nghiên cứu đối tƣợng hệ bồn nƣớc đơi Hệ bồn nƣớc đơi đƣợc hình thành với hệ thống bơm xả chất lỏng nhƣng giữ ổn định theo giá trị mức đặt trƣớc, cột chất lỏng hai bồn đƣợc trì ổn định Để làm đƣợc điều địi hỏi phải điều khiển đóng mở van để điều tiết lƣu lƣợng dòng chảy nhƣ điều khiển lƣu lƣợng chất lỏng từ máy bơm bơm vào hệ thống bồn nƣớc đôi, làm mức nƣớc hai bồn luôn giữ giá trị đặt trƣớc không đổi Việc điều khiển hệ thống để giữ đƣợc mức chất lỏng hai bồn ổn định tƣơng đối khó, cần phải có điều khiển phối hợp van máy bơm Từ mơ hình có s n thực tế, ứng dụng lợi ích từ động đƣợc tích hợp vi điều khiển Ta dùng board STM32F4 , kết hợp với van xả tay, phao dùng biến trở để điều khiển mực nƣớc bồn 1.2 Cấu hình bồn nƣớc đơi 1.2.1 Mơ hình tốn học Mơ hình bồn nƣớc: bồn nƣớc có diện tích SVTH: Hùng Tấn Ngọc Minh GVHD: Th.s Trần Quang Vinh Trang ĐỀ TÀI: ĐIỀU KHIỂN MƠ HÌNH BỒN NƢỚC ĐƠI Hình 1.1: Cấu hình bồn nƣớc đơi liên kết hệ SISO 1.2.2 Phƣơng trình tốn học Lƣu lƣợng nƣớc chảy vào bồn từ máy bơm: Qi = KpU(t) (1.1) Vận tốc nƣớc chảy từ van xả A VA CdA 2gH1 (t ) (1.2) Vận tốc nƣớc chảy từ van xả B VB CdB 2g ( H1 (t ) H (t )) (1.3) Diện tích mặt cắt bồn 1: A1 * D12 (1.4) Diện tích mặt cắt van xả A bồn 1: aA * DB2 SVTH: Hùng Tấn Ngọc Minh GVHD: Th.s Trần Quang Vinh (1.5) Trang ĐỀ TÀI: ĐIỀU KHIỂN MƠ HÌNH BỒN NƢỚC ĐƠI printf("%4.2f\r\n",I); time = 0; } } void bomnuoc( IO uint16_t E) { HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1); HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_1); D=E*175; thap=D-700; vua=D-400; cao=D; vvua=14; vcao=18; A=vua-thap; B=cao-vua; if(ICCR1 = volt*20000/100; } if((I>thap) && (ICCR1 = (volt)*20000/100; } if(((I-thap)*100)/A>50) { m=((I-thap)*100)/A; n=100-m; volt=(n*vcao+m*vvua)/vcao; TIM1->CCR1 = (volt)*20000/100; } } if((I>=vua) && (ICCR1 = (volt)*20000/100; } //if((I>vua) && (I50) //{ // m=100-((I-vua)*100/B); // volt=(m*vvua)/vcao; // TIM1->CCR1 = (volt)*20000/100; // if(voltCCR1 = 35*20000/100; SVTH: Hùng Tấn Ngọc Minh GVHD: Th.s Trần Quang Vinh Trang 46 ĐỀ TÀI: ĐIỀU KHIỂN MƠ HÌNH BỒN NƢỚC ĐƠI // } //} //} if(I>=cao) { volt=1; TIM1->CCR1 = (volt)*20000/100; } } void onoff( IO uint16_t E) { HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1); HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_1); D=E*175; if(ICCR1 = 20000; } if(I>=D) { TIM1->CCR1 = 0; } } SVTH: Hùng Tấn Ngọc Minh GVHD: Th.s Trần Quang Vinh Trang 47 ĐỀ TÀI: ĐIỀU KHIỂN MÔ HÌNH BỒN NƢỚC ĐƠI /* USER CODE END */ int main(void) { /* USER CODE BEGIN */ /* USER CODE END */ /* MCU Configuration */ /* Reset of all peripherals, Initializes the Flash interface and the Systick */ HAL_Init(); /* Configure the system clock */ SystemClock_Config(); /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_DMA_Init(); MX_ADC1_Init(); MX_RNG_Init(); MX_TIM1_Init(); MX_USART1_UART_Init(); /* USER CODE BEGIN */ GPIOA_CLK_ENABLE(); PIN.Pin = GPIO_PIN_0; PIN.Mode = GPIO_MODE_INPUT; SVTH: Hùng Tấn Ngọc Minh GVHD: Th.s Trần Quang Vinh Trang 48 ĐỀ TÀI: ĐIỀU KHIỂN MƠ HÌNH BỒN NƢỚC ĐƠI PIN.Pull = GPIO_NOPULL; PIN.Speed = GPIO_SPEED_HIGH; HAL_GPIO_Init(GPIOA, &PIN); GPIOD_CLK_ENABLE(); PIN.Pin = GPIO_PIN_12 | GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15; PIN.Mode = GPIO_MODE_OUTPUT_PP; PIN.Pull = GPIO_NOPULL; PIN.Speed = GPIO_SPEED_HIGH; HAL_GPIO_Init(GPIOD, &PIN); HAL_ADC_Start_DMA(&hadc1, (uint32_t*)&ADC_value, 16); /* USER CODE END */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN */ if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0)==GPIO_PIN_SET) T++; for(J=0;J