Trang 1 TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA: CƠ KHÍ BÁO CÁO BÀI TẬP LỚN Tên chủ đề: Mô hình hóa và khảo sát chất lượng, và thiết kế bộ điều khiển của hệ thống Giáo viên hướng dẫn : TS
lOMoARcPSD|39211872 TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA: CƠ KHÍ BÁO CÁO BÀI TẬP LỚN Tên chủ đề: Mô hình hóa và khảo sát chất lượng, và thiết kế bộ điều khiển của hệ thống Giáo viên hướng dẫn : TS Bùi Thanh Lâm Sinh viên thực hiện : Vũ Đăng Quý MSV : 2021605745 Lớp : 20221ME6048004 Khóa : K16 Hà Nội, /Năm 2022 Downloaded by mon hon (monmon1@gmail.com) lOMoARcPSD|39211872 PHIẾU HỌC TẬP CÁ NHÂN/NHÓM I Thông tin chung 1 Họ tên thành viên: Vũ Đăng Quý 2 Mã sinh viên: 2021605745 3 Tên lớp: 20221ME6048004 Khoá: 16 II Nội dung học tập 1 Tên chủ đề: Mô hình hóa và khảo sát chất lượng, và thiết kế bộ điều khiển của hệ thống M Khối lượng xe 0.5 kg m Khối lượng thanh lắc 0.2 kg b Hệ số ma sát của xe 0.1 N/m/sec l Chiều dài thanh lắc 0.3 m I Mômen quán tính thanh lắc 0.006 kg*m^2 F Lực tác dụng vào xe x Tọa độ vị trí của xe θ Góc của thanh lắc so với phương thẳng đứng 2 Hoạt động của sinh viên - Nội dung 1: Mô hình hóa hệ thống, tìm đáp ứng hệ thống theo thời gian - Mục tiêu/chuẩn đầu ra: L1 - Nội dung 2: Khảo sát sự phụ thuộc của đáp ứng hệ thống theo khối lượng xe đẩy thay đổi từ 0.1 đến 1 kg - Mục tiêu/chuẩn đầu ra: L2 - Nội dung 3: Thiết lập điều khiển sớm pha khảo sát sự phụ thuộc chất lượng điều khiển vị trí theo các tham số điều khiển sớm pha - Mục tiêu/chuẩn đầu ra: L3 - 3 Sản phẩm nghiên cứu: Bài thu hoạch và các chương trình mô phỏng trên Matlab Downloaded by mon hon (monmon1@gmail.com) lOMoARcPSD|39211872 - III Nhiệm vụ học tập 1 Hoàn thành tiểu luận, bài tập lớn, đồ án/dự án theo đúng thời gian quy định (từ ngày 17/11/2022 đến ngày 08/12/2022) 2 Báo cáo sản phẩm nghiên cứu theo chủ đề được giao trước giảng viên và những sinh viên khác IV.Học liệu tiểu luận, bài tập lớn, đồ án/dự án 1 Tài liệu học tập: Sách Cơ sở hệ thống tự động, tài liệu Matlab 2 Phương tiện, nguyên liệu thực hiện tiểu luận, bài tập lớn, đồ án/dự án (nếu có): Máy tính KHOA/TRUNG TÂM GIÁO VIÊN HƯỚNG DẪN TS Nguyễn Anh Tú TS Bùi Thanh Lâm Downloaded by mon hon (monmon1@gmail.com) lOMoARcPSD|39211872 MỤC LỤC MỞ ĐẦU 5 KẾT QUẢ NGHIÊN CỨU 6 I Nội dung 1: Mô hình hóa hệ thống, tìm đáp ứng hệ thống theo thời gian 6 1 Mô hình hóa hệ thống 6 2 Biểu diễn trên Matlab 8 II Nội dung 2: Khảo sát sự phụ thuộc của đáp ứng hệ thống theo khối lượng cần lắc thay đổi từ 0.1 đến 1.0 kg 11 III Nội dung 3: Thiết lập điều khiển sớm trễ pha khảo sát sự phụ thuộc chất lượng điều khiển vị trí theo các tham số điều khiển sớm pha 14 KẾT LUẬN VÀ BÀI HỌC KINH NGHIỆM 22 I Kết Luận 22 II Bài học kinh nghiệm 22 Downloaded by mon hon (monmon1@gmail.com) lOMoARcPSD|39211872 MỞ ĐẦU Con lắc ngược là một vấn đề kinh điển trong điều khiển hệ thống phi tuyến bởi những đặc tính không ổn định tại điểm cân bằng, được sử dụng trong các Trường đại học trên khắp thế giới Đây là một hệ thống SIMO điển hình ( một ngõ vào nhiều ngõ ra ) và là mô hình lý tưởng thường được dùng để kiểm tra các thuật toán điều khiển ( như LQR, PID, fuzzy logic, điều khiển mờ, mạng nơron …) Hệ thống con lắc ngược có hai điểm cân bằng : ổn định và không ổn định Ở trạng thái cân bằng ổn định con lắc sẽ hướng xuống phía dưới và khi không có lực nào tác động thì hệ thống mặc nhiên ở trạng thái này Ở trạng thái cân bằng không ổn định vị trí của con lắc sẽ hướng lên và vì thế cần một lực tác động để duy trì trạng thái này Vì vậy mục tiêu điều khiển con lắc ngược quay là duy trì trạng thái đứng cân bằng hướng lên của con lắc Đây là vấn đề quan trọng cần nghiên cứu trong bài tập lớn Downloaded by mon hon (monmon1@gmail.com) lOMoARcPSD|39211872 KẾT QUẢ NGHIÊN CỨU I Nội dung 1: Mô hình hóa hệ thống, tìm đáp ứng hệ thống theo thời gian 1 Mô hình hóa hệ thống 1.1 Xác định hàm truyền của hệ thống Dưới đây là hai sơ đồ của hệ thống: Hình 1.1 Phân tích lực tác dụng lên con lắc ngược Tổng hợp các lực trong sơ đồ theo chiều ngang, ta sẽ có được phương trình chuyển động: 𝑀𝑥̈ + 𝑏𝑥̇ + 𝑁 = 𝐹 Tổng hợp các lực trong sơ đồ của con lắc theo chiều ngang, ta có thể nhận được một phương trình cho N: 𝑁 = 𝑚𝑥̈ + 𝑚𝑙𝜃̈ cos 𝜃 − 𝑚𝑙𝜃̇2 sin 𝜃 Thay thế phương trình này vào phương trình đầu tiên, bạn sẽ có được phương trình đầu tiên về chuyển động cho hệ thống này: (𝑀 + 𝑚)̈𝑥 + 𝑏̇𝑥 + 𝑚𝑙̈𝜃 cos 𝜃 − 𝑚𝑙̇𝜃2 sin 𝜃 = 𝐹 (1) Để có được phương trình thứ hai của chuyển động, tổng hợp các lực lượng vuông góc với con lắc Giải quyết hệ thống dọc theo trục này sẽ hạn chế các đại lượng đại số Ta sẽ nhận được phương trình sau: 𝑃 sin 𝜃 + 𝑁 cos 𝜃 − 𝑚𝑔 sin 𝜃 = 𝑚𝑙̈𝜃 + 𝑚𝑥̈ cos 𝜃 Để loại bỏ đại lượng P và N trong phương trình trên, tổng hợp lực tại trọng tâm của con lắc để có được phương trình sau: −𝑃𝑙 sin 𝜃 − 𝑁𝑙 cos 𝜃 = 𝐼̈𝜃 Kết hợp hai phương trình cuối cùng, ta sẽ có được phương trình thứ hai: Downloaded by mon hon (monmon1@gmail.com) lOMoARcPSD|39211872 (𝐼 + 𝑚𝑙2)𝜃̈ + 𝑚𝑔𝑙 sin 𝜃 = − 𝑚𝑙𝑥̈ cos 𝜃 (2) MATLAB chỉ có thể làm việc với các chức năng tuyến tính, thiết lập này của phương trình nên được tuyến tính về 𝜃 = 𝜋 Cho rằng 𝜃 = 𝜋 +(đại diện cho một góc nhỏ từ hướng đi lên theo chiều dọc) Vì vậy, 𝑐𝑜𝑠𝜃 = −1, 𝑠𝑖𝑛𝜃 = −𝜃 và (𝑑𝜃⁄ )2 𝑑𝑡 Sau khi tuyến tính hai phương trình chuyển động trở thành (u đại diện cho đầu vào): (𝐼 + 𝑚𝑙2)ϕ̈ − 𝑚𝑔𝑙ϕ = ml𝑥̈(3) (𝑀 + 𝑚)𝑥̈ + 𝑏𝑥̇ − 𝑚𝑙𝜙̈ = 𝑢 (4) Hàm Truyền Biến đổi Laplace 2 phương trình 3 và 4 (𝐼 + 𝑚𝑙2)𝑠2𝜙(𝑠) − 𝑚𝑔𝑙𝜙(𝑠) = 𝑚𝑙𝑠2𝑋(𝑠) (𝑀 + 𝑚)𝑠2𝑋(𝑠) + 𝑏𝑠𝑋(𝑠) − 𝑚𝑙𝑠2𝜙(𝑠) = 𝑈(𝑠) Vì chúng ta sẽ xem xét các góc 𝜙 như đầu ra, giải quyết các phương trình đầu tiên cho X(s): 𝑋(𝑠) = [𝐼 + 𝑚𝑙2 𝑚𝑙 − 𝑠2 𝑔 ] 𝜙(𝑠) sau đó thay thế vào phương trình thứ hai, ta có 𝜙(𝑠) 𝑚𝑙 𝑠2 𝑞 𝐺(𝑠) = 𝑈(𝑠) = 4 𝑏(𝐼 + 𝑚𝑙2) 3 (𝑀 + 𝑚) 2 𝑏𝑚𝑔𝑙 𝑠 + 𝑞 𝑠 − 𝑞 𝑚𝑔𝑙𝑠 − 𝑞 𝑠 với 𝑞 = ((𝑀 + 𝑚)(𝐼 + 𝑚𝑙2) − (𝑚𝑙)2) Từ hàm truyền trên có thể thấy rằng hàm truyền có một điểm cực và một điểm không tại 𝑚𝑙 𝜙(𝑠) 𝑞𝑠 𝐺(𝑠) = 𝑈(𝑠) = 3 𝑏(𝐼 + 𝑚𝑙2) 2 (𝑀 + 𝑚) 𝑏𝑚𝑔𝑙 𝑠 + 𝑞 𝑠 − 𝑞 𝑚𝑔𝑙𝑠 − 𝑞 Downloaded by mon hon (monmon1@gmail.com) lOMoARcPSD|39211872 1.2 Mô hình hóa hệ thống Hình 1.2: Mô hình hóa hệ thống 2 Biểu diễn trên Matlab Hàm truyền của hệ thống Tạo một m-file và nhập code biểu diễn hàm truyền trên Matlab M=0.5; m=0.2; b=0.1; l=0.3; i=0.06; g=9.8; q=(M+m)*(i+m*l^2)-(m*l)^2; num=[m*l/q 0]; den=[1 b*(i+m*l^2)/q -(M+m)*m*g*l/q -b*m*g*l/q]; G=tf(num,den) Chạy code ta thu được hàm truyền của hệ thống: Downloaded by mon hon (monmon1@gmail.com) lOMoARcPSD|39211872 Lưu m-file với tên conlacnguoc Đáp ứng của hệ thống theo thời gian Đánh giá phản ứng của xung vòng mở (không có hồi tiếp) với tín hiệu đầu vào là hàm step Tiếp tục sử dụng m-file conlacnguoc để vẽ đáp ứng của hệ thống với tín hiệu đầu vào là hàm step Code Matlab: M=0.5; m=0.2; b=0.1; l=0.3; i=0,006; Downloaded by mon hon (monmon1@gmail.com) lOMoARcPSD|39211872 g=9,8; q=(M+m)*(i+m*l^2)-(m*l)^2; num=[m*l/q 0]; den=[1 b*(i+m*l^2)/q -(M+m)*m*g*l/q -b*m*g*l/q]; G1=tf(num,den); t=0:0.001:1; step (G1,t); grid on Ta thu được đáp ứng như hình vẽ: Đồ thị biểu diễn đáp ứng của hệ thống với đầu vào là hàm step Để xác định các thông số ta kích chuột phải vào biểu đồ và chọn characteristic : Pear response: độ vọt lố Settling time: thời gian xác lập Downloaded by mon hon (monmon1@gmail.com) lOMoARcPSD|39211872 Rise time: thời gian lên Steady state: sai số xác lập Dựa vào đồ thị ta thấy đáp ứng của hệ thống không đạt yêu cầu và mất ổn định trong vòng lặp mở với biên độ đầu ra tăng 18.5 radian trong khi 𝜃 chỉ có giá trị nhỏ Trong thực tế con lắc sẽ bị đổ xuống khi góc 𝜃 quá lớn II Nội dung 2: Khảo sát sự phụ thuộc của đáp ứng hệ thống theo khối lượng cần lắc thay đổi từ 0.1 đến 1.0 kg Khi khối lượng cần lắc thay đổi sẽ dẫn đến sự thay đổi của hệ thống và đáp ứng đầu ra của hệ thống Do vậy ta cần khảo sát sự phụ thuộc của đáp ứng hệ thống theo sự thay đổi của khối lượng cần lắc Từ đó đưa ra giá trị khối lượng cần lắc phù hợp nhất Để khảo sát ta tạo một m-file mới là conlacnguoc2 Trong m-file này, ta sẽ nhập code để khảo sát sự thay đổi của đáp ứng đầu ra khi khối lượng của cần lắc thay đổi Thay giá trị m = 0.1; 0.2; 0.3; 0.4; 0.5; 0.6; 0.7; 0.8; 0.9; 1.0 kg Code Matlab: M=0.5; l=0.3; b=0.1; i=0.006; g=9.8; t=0:0.01:1; m=0.1; q=(M+m)*(i+m*l^2)-(m*l)^2; num = [m*l/q 0]; den = [1 b*(i+m*l^2)/q -(M+m)*m*g*l/q -b*m*g*l/q]; G1 = tf(num,den); step(G1,t,'