ĐỀ TÀI: THIẾT KẾ BỘ ĐIỀU KHIỂN THÔNG MINH CÂN BẰNG HỆ XE CON LẮC NGƯỢC PHẦN MỞ ĐẦU 1 1 Lý do lựa chọn đề tài 1 2 Mục tiêu nghiên cứu 1 3 Giới hạn đề tài 2 4 Phương pháp nghiên cứu 2 5 Nội dung nghiên cứu 2 CHƯƠNG 1. CƠ SỞ LÝ THUYẾT 1 1.1 Mô hình hệ xe con lắc ngược 1 1.2 Mô hình toán học hệ xe con lắc ngược 2 1.3 Tuyến tính hoá hệ xe con lắc ngược 3 CHƯƠNG 2. THIẾT KẾ BỘ ĐIỀU KHIỂN FUZZYPID 6 2.1 Giới thiệu về bộ điều khiển mờ trực tiếp 6 2.2 Thiết kế bộ điều khiển mờ 7 2.3 Mô phỏng bộ điều khiển mờ 11 2.4 Kết quả mô phỏng 17 2.5 Kết luận 19 CHƯƠNG 3. THIẾT KẾ BỘ ĐIỀU KHIỂN THẦN KINH 21 3.1 Lý thuyết về mang thần kinh 21 3.2 Cấu trúc mạng thần kinh 22 3.3 Xây dựng mô hình thu thập dữ liệu đầu vào và ra 23 3.4 Thiết kế bộ điều khiển mạng thần kinh 25 3.5 Kết quả mô phỏng 30 3.5.1 Dùng mạng thần kinh thay thế cho bộ điều khiển Fuzzy – PI 30 3.5.2 So sánh sai số giữa bộ điều khiển Fuzzy – PI và mạng thần kinh 33 3.6 Kết luận 35 CHƯƠNG 4. THIẾT KẾ BỘ ĐIỀU KHIỂN PID DÙNG GA 36 4.1 Lý thuyết về giải thuật di truyền 36 4.2 Cấu trúc của giải thuật di truyền 37 4.3 Lý thuyết về bộ điều khiển PID dùng GA 38 4.4 Thiết kết bộ điều khiển PID dùng GA cho hệ xe con lắc ngược 39 4.5 Kết quả mô phỏng 44 4.6 Kết luận 46 CHƯƠNG 5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 47 5.1 Kết luận 47 5.2 Hướng phát triển 47 TÀI LIỆU THAM KHẢO 48
111Equation Chapter Section 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HCM KHOA ĐIỆN – ĐIỆN TỬ BÁO CÁO MÔN HỌC MÔN HỌC: ĐIỀU KHIỂN THÔNG MINH ĐỀ TÀI: THIẾT KẾ BỘ ĐIỀU KHIỂN THÔNG MINH CÂN BẰNG HỆ XE CON LẮC NGƯỢC DANH MỤC HÌNH ẢNH DANH MỤC BẢNG BIỂU Thành phố Hồ Chí Minh, tháng năm 2022 CHƯƠNG THIẾT KẾ BỘ ĐIỀU KHIỂN PID DÙNG GA MỤC LỤC CHƯƠNG THIẾT KẾ BỘ ĐIỀU KHIỂN PID DÙNG GA LỜI CẢM ƠN Chúng em chân thành cảm ơn, quý thầy cô trường Đại Học Sư Phạm kỹ Thuật TP.HCM nói chung q thầy mơn Điều khiển tự động nói riêng, trang bị kiến thức giúp đỡ chúng em, giải khó khăn q trình làm báo cáo mơn học Đặc biệt chúng em xin chân thành cảm ơn thầy Trần Đức Thiện, giảng viên trường Đại học Sư phạm Kỹ Thuật Thành Phố Hồ Chí Minh hướng dẫn, cung cấp tài liệu để nhóm hồn thành báo cáo Sau nhóm xin cảm ơn bạn bè giúp đỡ để báo cáo môn học hoàn thành tốt đẹp Tuy nhiên chưa tự nghiên cứu kĩ lưỡng chun mơn cịn hạn chế, nên khơng tránh khỏi sai sót Chúng em mong nhận thơng cảm, góp ý hướng dẫn quý thầy cô bạn Xin chúc quý thầy cô nhiều sức khoẻ thành công q trình cơng tác học tập Chúng em xin chân thành cảm ơn Tp Hồ Chí Minh, ngày 30 tháng 06 năm 2022 Sinh viên thực Lý Phi Cường – Tạ Trần Nhật Minh – Trần Minh Khiêm PHẦN MỞ ĐẦU Lý lựa chọn đề tài Thuật ngữ “ Điều khiển thông minh” giới thiệu khoảng ba thập niên với phương pháp điều khiển có mục tiêu tham vọng so với hệ thống truyền thống Trong hệ thống truyền thống thường cần chi tiết dù nhiều dù trình điều khiển hệ thống điều khiển thơng minh điều khiển cách tự chủ hệ thống phức tạp, trình chưa hiểu biết nhiều thí dụ mục tiêu điều khiển Hệ thống hoạt động hệ thống có thay đổi tham số hay mơi trường điều khiển, thơng qua q trình học từ kinh nghiệm, tiếp thu tổ chức kiến thức môi trường xung quanh hành vi tới hệ thống CHƯƠNG THIẾT KẾ BỘ ĐIỀU KHIỂN PID DÙNG GA Hệ xe lắc ngược đơn giản lắc có khối lượng m gắn l có chiều dài đầu gắn lên xe lắc Hệ thống khơng cịn lạ với nhiều điều khiển áp dụng hệ để tiến hành đánh giá chất lượng điều khiển, điều khiển tiêu tốn lượng phải kể đến với điều khiển “LQR”, “LQG”, “Sliding Mode Control”, “Hồi Tiếp Tuyến Tính”, “PID”, “Fuzzy PID”, “Neural Network”, “Genetic Algorithm”… Ở nhóm tụi em tìm hiểu cách xây dựng phương trình vi phân cho hệ xe lắc ngược xây dựng điều khiển “Fuzzy PID”, “Neural Network” “Genetic Algorithm” lắc ổn định vị trí cân vị trí xe ln ổn định vị trí đặt Đây lý nhóm em lựa chọn đề tài “Thiết kế điều khiển ổn định cho hệ Xe Con Lắc Ngược” Mục tiêu nghiên cứu Thiết kết điều khiển “Fuzzy PID” điều khiển ổn định hệ xe lắc ngược, tụi em tiến hành thu thập liệu góc lệch lắc, vận tốc góc lắc, vị trí xe vận tốc xe để sử dụng “Neural Network” để tiến hành học theo thay điều khiển “Fuzzy PID” Cùng với tụi em xây dựng điều khiển “PID” nhằm ổn định vị trí xe giữ cho gốc quay lắc ln vị trí cân sử dụng “Genetic Algorithm” để tìm thơng số Kp, Ki Kd thích hợp với hệ thống Giới hạn đề tài Đề tài dừng lại việc mô phỏng, chưa thực thực tế nên chưa điều chỉnh thông số để phù hợp với yêu cầu Ngoài hệ thống đáp ứng tốt lắc không lệch 17.19o (0.3 Rad ) so với phương thẳng đứng lệch hệ thống cân Phương pháp nghiên cứu Dựa đề tài nghiên cứu có sách, báo, tạp chí khoa học… từ nghiên cứu phát triển đề tài Khảo sát mơ hình hệ xe lắc để hiểu nguyên lí hoạt động hệ thống Sử dụng Matlab/Simulink phần mềm khác mô CHƯƠNG THIẾT KẾ BỘ ĐIỀU KHIỂN PID DÙNG GA để chạy mô hệ thống Nhóm sử dụng phương pháp thiết kế điều khiển “Fuzzy PID”, “Neural Network” “Genetic Algorithm” để mô Cùng với kinh nghiệm học môn học “Điều Khiển Thông Minh” để tiến hành thiết kế hệ thống Nội dung nghiên cứu Chương 1: CƠ SỞ LÝ THUYẾT Chương trình bày lý thuyết mơ hình tốn hệ xe lắc ngược Chương 2: THIẾT KẾ BỘ ĐIỀU KHIỂN FUZZY – PID Chương trình bày phần xây dựng tập mờ dựa vào phương pháp chuyên gia để tiến hành thiết kế mơ hình điều khiển Fuzzy PID Simulink sau tiến hành mơ hệ thống Chương 3: THIẾT KẾ BỘ ĐIỀU KHIỂN THẦN KINH Chương tụi em xây dựng mạng thần kinh để thu thập liệu huấn luyện mạng thần kinh học theo thay điều khiển FUZZY PID sau mô Simulink tiến hành đánh giá chất lượng hệ thống Chương 4: THIẾT KẾ BỘ ĐIỀU KHIỂN PID DÙNG GA Chương trình bày cách xây dựng giải thuật di truyền để tiến hành dò tìm thơng số Kp, Ki Kd giúp ổn định hệ thống điểm làm việc cân Chương 5: KẾT LUẬN Chương trình bày đánh giá chung điều khiển mà nhóm chúng em xây dựng Hướng phát triển tương lai đề tài CHƯƠNG THIẾT KẾ BỘ ĐIỀU KHIỂN PID DÙNG GA CHƯƠNG CƠ SỞ LÝ THUYẾT 1.1 Mơ hình hệ xe lắc ngược Hệ lắc ngược mơ tả Hình 1.1 Con lắc ngược gắn vào xe kéo động điện, nghĩa lắc di chuyển mặt phẳng, đồng thời khơng thể ổn định ln ngã xuống trừ có lực tác động thích hợp Giả sử khối lượng lắc tập trung đầu hình vẽ (khối lượng khơng đáng kể) Lực điều khiển F tác động vào xe Do u cầu tốn điều khiển vị trí xe giữ cho lắc ngược ln thẳng đứng tức hệ lắc ngược cân Hình 1.1 Mơ hình hệ xe lắc ngược Trong đó: x vị trí xe (m) & x& gia tốc xe (m/s2) F lực tác động vào xe (N) CHƯƠNG THIẾT KẾ BỘ ĐIỀU KHIỂN PID DÙNG GA M m θ khối lượng xe (kg) khối lượng lắc (kg) góc lắc phương thẳng đứng (rad) θ& vận tốc góc lắc (rad/s) θ&& gia tốc góc lắc (rad/s2) l g chiều dài lắc (m) gia tốc trọng trường ( g = 9.81 cm/s2) 1.2 Mơ hình tốn học hệ xe lắc ngược Phân tích vị trí lắc theo phương ngang phương thẳng đứng ta có: xi = x + l sin θ x j = l cos θ 212\* MERGEFORMAT (.) Đạo hàm vị trí lắc theo thời gian ta vận tốc lắc theo hai phương ngang thẳng đứng sau: x&i = x&+ lθ&cosθ & x&j = −lθ sin θ 313\* MERGEFORMAT (.) Từ vận tốc 13 khối lượng lắc, ta tính động lắc: WP = = 2 1 mx&i + mx&j = m( x&+ lθ&cos θ ) + m( −lθ&sin θ ) 2 2 2 mx& + mlx& θ&cosθ + ml 2θ&2 2 414\* MERGEFORMAT (.) Vì xe di chuyển theo phương ngang nên động xe tính sau: WC = Mx&2 515\* MERGEFORMAT (.) Từ 14 15 ta có tổng động hệ thống xác định sau: CHƯƠNG THIẾT KẾ BỘ ĐIỀU KHIỂN PID DÙNG GA WD = WP + WC 1 2 1 ( M + m) x&2 + mlx& θ&cos θ + ml 2θ&2 2 = mx&2 + mlx&θ&cos θ + ml 2θ&2 + Mx&2 = 616\* MERGEFORMAT (.) Thế hệ thống: WT = mgl cos θ 717\* MERGEFORMAT (.) Toán tử Larrange, ta có: 1 L = WD − WT = ( M + m) x&2 + mlx&θ&cos θ + ml 2θ&2 − mgl cosθ 2 818\* MERGEFORMAT (.) Hệ phương trình tốn học theo phương pháp Euler-Lagrange: d ∂L ∂L dt ∂x&÷− ∂x = F d ∂L − ∂L = dt ∂θ&÷ ∂θ 919\* MERGEFORMAT (.) Công thức 18 biểu diễn theo biến trạng thái tác động đến hệ thống bên trái ngoại lực tác động xét theo hướng chuyển động Ta có: ∂L & ∂x&= ( M + m) x&+ mlθ cosθ ∂L = ∂x ∂L = ml cos θ x&+ ml 2θ& ∂θ& ∂L = mglsinθ − ml sin θθ&x& ∂θ 10110\* MERGEFORMAT (.) Thay 110 vào 19 ta hệ phương trình: CHƯƠNG THIẾT KẾ BỘ ĐIỀU KHIỂN PID DÙNG GA &cos θ − mlθ&2 sin θ = F ( M + m) & x&+ mlθ& &= mg sin θ &cosθ + mlθ& mx& 11111\* MERGEFORMAT (.) Từ 111 ta mơ tả đặc tính động học hệ thống phương trình vi phân: F − ml (sin θ )θ&2 + mg cosθ sin θ x&= & M + m − m(cosθ ) &2 θ& &= F cos θ − ( M + m) g sin θ + ml cos θ sin θθ ml (cos θ ) − ( M + m)l 12112\* MERGEFORMAT (.) 1.3Tuyến tính hố hệ xe lắc ngược x1 = θ x2 = θ& x3 = x x4 = x& u = F Đặt biến trạng thái là: ; ; ; Đưa mơ hình tốn học lắc ngược dạng chuẩn: x1 θ f1 d d x2 d θ& f x = f ( x, u , t ) = = = dt dt x3 dt x f x& f x4 13113\* MERGEFORMAT (.) Trong đó: dx1 = x2 = θ& dt dx2 & u cos x1 − ( M + m) g sin x1 + x2 ml cos x1 sin x1 & f2 = =θ = dt ml (cos x1 ) − ( M + m)l f1 = dx3 = x4 = x& dt dx u − mg cos x1 sin x1 + mlx2 sin x1 f4 = = & x&= dt M + m − m(cos x1 ) f3 = Tuyến tính hóa mơ hình xung quanh điểm làm việc thẳng đứng x0 = u0 = : CHƯƠNG THIẾT KẾ BỘ ĐIỀU KHIỂN PID DÙNG GA d ∂f ∂f δ x = ( x0 , u0 )δ x + ( x0 , u0 )δ u dt ∂x ∂u 14114\* MERGEFORMAT (.) A= Đặt ∂f ∂f B= ∂x ( x0 ,u0 ) ∂u ; ( x0 ,u0 ) ; δx ≅ x δu ≅ u Ta có phương trình trạng thái hệ thống mô tả sau: x&= Ax + Bu y = Cx 15115\* MERGEFORMAT (.) Tính toán ma trận A: A= ∂f ∂x ( x0 ,u0 ) ∂f1 ∂x ∂f ∂x = ∂f ∂x1 ∂f ∂x1 ∂f1 ∂x2 ∂f1 ∂x3 ∂f ∂x2 ∂f ∂x3 ∂f ∂x2 ∂f ∂x3 ∂f ∂x2 ∂f ∂x3 ∂f1 ∂x4 ∂f ( M + m) g ∂x4 Ml = ∂f ∂x4 −mg M ∂f ∂x4 0 0 0 0 0 0 0 16116\* MERGEFORMAT (.) Tính toán ma trận B: B= ∂f ∂u ( x0 ,u0 ) ∂f1 ∂u ∂f −1 ∂u = = M ∂f ∂u ∂f M ∂u 17117\* MERGEFORMAT (.) Thay thông số hệ thống vào 116 117 ta giá trị hai ma trận A B sau: 10 CHƯƠNG THIẾT KẾ BỘ ĐIỀU KHIỂN PID DÙNG GA par=Init(pop_size,npar,range); Terminal=0; generation = 0; stall_generation=0; for pop_index=1:pop_size, Kp1=par(pop_index,1); Ki1=par(pop_index,2); Kd1=par(pop_index,3); Kp2=par(pop_index,4); Ki2=par(pop_index,5); Kd2=par(pop_index,6); sim('GA_Xe_con_lac_nguoc.slx'); J=15000*(e'*e) + 10000*(e1'*e1)+rho*(u'*u); fitness(pop_index)=1/(J+eps); end [bestfit0,bestchrom]=max(fitness); Kp10=par(bestchrom,1); Ki10=par(bestchrom,2); Kd10=par(bestchrom,3); Kp20=par(bestchrom,4); Ki20=par(bestchrom,5); Kd20=par(bestchrom,6); J0=1/bestfit0-0.001; while ~Terminal, generation = generation+1; disp(['generation #' num2str(generation) ' of maximum ' num2str(max_generation)]); pop=Encode_Decimal_Unsigned(par,sig,dec); parent=Select_Linear_Ranking(pop,fitness,0.2,elitism,bes tchrom); child=Cross_Twopoint(parent,cross_prob,elitism,bestchrom ); 44 CHƯƠNG THIẾT KẾ BỘ ĐIỀU KHIỂN PID DÙNG GA pop=Mutate_Uniform(child,mutate_prob,elitism,bestchrom); par=Decode_Decimal_Unsigned(pop,sig,dec); for pop_index=1:pop_size, Kp1=par(pop_index,1); Ki1=par(pop_index,2); Kd1=par(pop_index,3); Kp2=par(pop_index,4); Ki2=par(pop_index,5); Kd2=par(pop_index,6); sim('GA_Xe_con_lac_nguoc.slx'); J=15000*(e'*e) + 10000*(e1'*e1)+rho*(u'*u); fitness(pop_index)=1/(J+eps); end; [bestfit(generation),bestchrom]=max(fitness); if generation == max_generation Terminal = 1; elseif generation>1, if abs(bestfit(generation)-bestfit(generation1))