Khái quát về cơ sở hệ thống tự động
Các thành phần cơ bản của hệ thống điều khiển
Để thực hiện quá trình điều khiển, một hệ thống điều khiển cần ba thành phần cơ bản: thiết bị đo lường (cảm biến), bộ điều khiển và đối tượng điều khiển Thiết bị đo lường thu thập thông tin, bộ điều khiển xử lý thông tin và đưa ra quyết định điều khiển, trong khi đối tượng điều khiển chịu sự tác động từ tín hiệu điều khiển Hệ thống điều khiển rất đa dạng, với sơ đồ khối thể hiện cấu hình thường gặp nhất.
Hệ thống con lắc ngược có hai điểm cân bằng: ổn định và không ổn định Trong trạng thái cân bằng ổn định, con lắc hướng xuống dưới và tự động duy trì trạng thái này khi không có lực tác động Ngược lại, ở trạng thái cân bằng không ổn định, con lắc hướng lên và cần một lực tác động để giữ vững vị trí Do đó, mục tiêu chính trong việc đ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, một vấn đề quan trọng cần được nghiên cứu trong bài tập lớn.
KẾT QUẢ NGHIÊN CỨU
Đề bào và nội dung cần nghiên cứu
2.1.1.Xác định hàm truyền của hệ thống và các dữ kiện bài cho 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
Các tham số của hệ:
M: khối lượng của xe 0,5kg m: khối lượng của con lắc 0,2kg b: hệ số ma sát của xe với nền 0,1N/m /giây l: chiều dài con lắc tới trọng tâm 0,3m
I: mô men quán tính khối của thanh lắc 0,006 kg*m ^2
F: lực tác dụng lên xe x: Lượng dịch chuyển của xe
𝜃: Góc của thanh lắc so với phương thằng đứng
- 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 cần lắc thay đổi thừ 0.1 đến 1.0 kg - Mục tiêu/chuẩn đầu ra: L2
Thiết bị điều khiển sớm pha được sử dụng để khảo sát mối quan hệ giữa chất lượng điều khiển vị trí và các tham số điều khiển sớm pha Mục tiêu của nghiên cứu này là đạt được chuẩn đầu ra L3, nhằm nâng cao hiệu quả và độ chính xác trong việc điều khiển vị trí.
Mô hình hóa hệ thống
Hình 1.1:Phân tích lực tác dụng lên vật
-Tiến hành tổng hợp các lực tác động vào xe con lắc theo phương ngang ta được các phương trình về chuyển động:
M𝑥̈ + b𝑥̇ + N = F (1.1) -Tổng hợp lực của thanh con lắc theo chiều ngang ta được: m𝑥̈ + ml𝜃 ̈ cos( 𝜃 ) - ml𝜃 ̇ 2 sin( 𝜃 ) =N (1.2)
Trong đó là chiều dài từ tâm con lắc tới điểm gốc là: 𝑙 = 𝐿
Từ phương trình 1.1 và 1.2 ta được:
-Tổng hợp các lực vuông góc với thanh con lắc:
Psin(𝜃 ) + Ncos( 𝜃 ) - mgsin( 𝜃 ) = ml𝜃 ̈ + m𝑥̈ cos(𝜃 ) (1.4)
-Để làm triệt tiêu hai điều kiện P và N ta tiến hành tổng hợp moment tại trọng tâm thanh con lắc:
2.2.1.Phân tích và mô hình hóa theo hệ phi tuyến:
Từ 1.3 và 1.6 ta thu được hệ phương trình mô tả đặc tính động học phi tuyến của hệ thống:
-Phân tích và mô hình hóa theo hệ phi tuyến:
Biến đổi hệ pt 1.7 ta được:
𝜃 ̈ = 𝑚𝑙[ 𝑏𝑥̇ cos(𝜃 )−𝐹 cos(𝜃 )−𝑚𝑙𝜃 ̇ 2 sin( θ )cos(𝜃 )+(𝑀+𝑚)𝑔 sin(𝜃 )]
2.2.2.Phân tích và mô hình hóa theo hệ tuyến tính:
Vì góc , góc lệch 𝜃 đang xét rất nhỏ đặt 𝜃 = 𝜙 + 𝜋 thì chúng ta có thể sử dụng những công thức gần đúng sau: cos(𝜃 ) = cos(𝜙 + 𝜋 ) = -1 sin(𝜃 ) = sin( 𝜙 + 𝜋 ) = - 𝜙
𝜃 ̇ 2 = 𝜙 ̇ 2 = 0 Thế vào hệ pt 1.7 ta được :
( M + m)ẍ + bẋ − mglθ̈ = F (1.9) -Biến đổi Laplace 2 vế của 2 phương trình ta được:
Thay 1.11 vào pt 1.5 và 1.6 ta được: ϕ(s)
F(s) = (I + m𝑙 2 )𝑠 2 − gml s 4 + b(I + ml 2 ) q s 3 − (M + m)mgl q s 2 − bmgl q s Với q = [(M + m)(I + m𝑙 2 ) −(𝑚𝑙) 2 ]
*Hàm truyền của hệ thống
Biểu diễn hàm truyền vòng hở của Φ(s) trên matlab:
I=0.006; 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]; ton=tf(num,den)
Chạy code ta thu được hàm truyền của hệ thống:
Hình 1.2:Biểu diễn hàm truyền của hệ thống
-Đá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
I=0.006; 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]; ton=tf(num,den); t=0:0.001:1; step (ton,t); grid on
Ta thu được đáp ứng như hình:
Hình 1.3:Đáp ứng góc theta của hệ thống 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
+Rise time: thời gian lên
+Steady state: sai số xác lập
Đồ thị cho thấy 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 khoảng 18.5 radian trong khi góc 𝜃 chỉ có giá trị nhỏ Khi góc 𝜃 quá lớn, con lắc sẽ bị đổ xuống Để cải thiện hiệu suất, giải pháp là thêm bộ điều khiển phản hồi vào hệ thống Biểu diễn hàm truyền vòng hở của X(s) có thể thực hiện trên MATLAB.
I=0.006; g=9.8; q=(M+m)*(I+m*l^2)-(m*l)^2; num=[(I+m*l^2) 0 -g*m*l]; den=[1 (b*(I+m*l^2))/q -((M+m)*m*g*l)/q -(b*m*g*l)/q 0]; def=tf(num,den)
Chạy code ta thu được hàm truyền của hệ thống:
Hình 1.4: Biểu diễn hàm truyền của hệ thống Đáp ứng của hệ thống theo thời gian
I=0.006; g=9.8; q=(M+m)*(I+m*l^2)-(m*l)^2; num=[(I+m*l^2) 0 -g*m*l]; den=[1 (b*(I+m*l^2))/q -((M+m)*m*g*l)/q -(b*m*g*l)/q 0]; def=tf(num,den); t=0:0.001:1; step (def,t); grid on
Ta thu được đáp ứng như hình :
Hình 1.5: Kết quả mô phỏng của X(s) trên Matlab
Khi con lắc ở vị trí cân bằng phía trên, đồ thị tăng vọt do góc Φ(s) rất nhỏ Tuy nhiên, khi có lực tác động, con lắc rơi xuống và góc Φ(s) trở nên rất lớn Hệ thống ngay lập tức mất ổn định khi chịu tác động từ lực, dẫn đến độ vọt lố của con lắc tăng cao.
Khi không có bộ điều khiển, con lắc không thể duy trì vị trí cân bằng tại 𝜃 = 𝜋 khi có lực tác động Do đó, việc sử dụng bộ điều khiển là cần thiết để đảm bảo sự ổn định cho hệ thống.
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, hệ thống sẽ có sự thay đổi và ảnh hưởng đến đáp ứng đầu ra Do đó, việc khảo sát sự phụ thuộc của đáp ứng hệ thống vào khối lượng cần lắc là rất cần thiết Mục tiêu là xác định giá trị khối lượng cần lắc phù hợp nhất Để thực hiện điều này, chúng ta sẽ nhập mã code để khảo sát sự biến đổi của đáp ứng đầu ra khi khối lượng cần lắc thay đổi, với các giá trị m lần lượt là 0.1; 0.2; 0.3; 0.4; 0.5; 0.6; 0.7; 0.8; 0.9; và 1.0 kg.
-Biểu diễn sự thay đổi của vị trí cần lắc bằng matlab
I=0.006; g=9.8; for I=ks; m=m+I; 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]; ton=tf(num,den); t=0:0.001:1; step(ton,t); hold on; end; legend('m=0.1','m=0.2','m=0.3','m=0.4','m=0.5','m=0.6','m=0.7','m=0.8','m=0.9',' m=1.0');
Ta thu được đáp ứng như hình :
Hình 1.6: Kết quả mô phỏng của cần lắc
-Biểu diễn sự thay đổi vị trí xe con lắc bằng matlab
I=0.006; g=9.8; for I=ks; m=m+I; q=(M+m)*(I+m*l^2)-(m*l)^2; num=[(I+m*l^2) 0 -g*m*l]; den=[1 (b*(I+m*l^2))/q -((M+m)*m*g*l)/q -(b*m*g*l)/q 0]; def=tf(num,den); hold on; t=0:0.01:5; impulse(def,t); axis([0 3 0 60]); end; legend('m=0.1','m=0.2','m=0.3','m=0.4','m=0.5','m=0.6','m=0.7','m=0.8','m=0.9',' m=1.0');
Ta thu được đáp ứng như hình :
Hình 1.7: Kết quả mô phỏng của xe con lắc
Độ dịch chuyển của xe con lắc giảm khi khối lượng cần lắc tăng lên, dẫn đến việc hệ thống nhanh chóng mất đi tính ổn định.
Thiết đ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
Bước 1: Dùng phương pháp quỹ đạo nghiệm số bằng cách sử dụng lệnh rlocus() trên phần mềm Matlab
I=0.006; 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]; ton=tf(num,den); rlocus(ton);
Hình 1.8:Quỹ đạo nghiệm số của hệ
Một nhánh của quỹ đạo nghiệm số không nằm hoàn toàn bên phải mặt phẳng phức, dẫn đến hệ kín không ổn định Để đảm bảo hệ thống ổn định, cần bổ sung các cực và zero vào bộ điều khiển.
+Đề xuất: Ta cần thêm 1 bộ điều khiển sớm pha và khảo sát cực, zero của hệ thống có dạng
I= 0.006; g = 9.8; l = 0.3; 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]; contr=tf([1 1],[1 0.0001]); ton=tf(num,den); rlocus(contr*ton);
Hình 1.9: Quỹ đạo nghiệm số của hệ khi đặt bộ điều khiển sớm pha
Viết tiếp tục vào code matlab:
I=0.006; 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]; tinh=tf(num,den); k00; z1=1;p1=0.0001; z2=1;p2P; num1=[1 z1]; den1=[1 p1]; num2=[1 z2]; den2=[1 p2]; numa=conv(num1,num2); dena=conv(den1,den2); pon=tf(numa,dena); huenedback(tinh,k*pon); impulse(huen);
Hình 1.10:Kết quả mô phỏng khi chưa hoàn thiện bộ điều khiển
Hệ thống đã ổn định tại vị trí 𝜙=0, nhưng độ vọt lố là 0.17 rad (9.74°) và thời gian xác lập khoảng 8 giây, điều này khó có thể chấp nhận Do đó, chúng ta cần tiếp tục điều chỉnh các thông số của hệ thống để nâng cao chất lượng hoạt động.
I=0.006; 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]; tinh=tf(num,den); k00; z1;p1=0.0001; z2=5;p2P; num1=[1 z1]; den1=[1 p1]; num2=[1 z2]; den2=[1 p2]; numa=conv(num1,num2); dena=conv(den1,den2); pon=tf(numa,dena); huenedback(tinh,k*pon); impulse(huen);
Hình 1.11:Kết quả mô phỏng khi hoàn thiện bộ điều khiển
Hệ thống đã ổn định với độ vọt lố khoảng 0,0075rad = 0.46°, thời gian ổn định khoảng 0.8s, các thông số có thể chấp nhận được
Vậy bộ điều khiển của ta có dạng :
Xây dựng mô hình trong matlab simulink
-Phân tích lực và thiết kế phương trình hệ thống:
-Từ phương trình (1.1) và (1.5) ở nội dung 1 ta có :
-Mô hình hóa các phương trình x y bổ xung cho cần lắc:
-Phương trình tọa độ xp yp của cần lắc:
-Xây dựng mô hình trong simulink
Ta xây dựng được mô hình mô phỏng hệ thống xe con lắc ngược bằng simulink như sau:
Hình 1.12:Mô hình hệ thống trong simulink
Bộ tạo xung được sử dụng để tạo ra một xung lớn nhưng có giới hạn trong khoảng thời gian ngắn Đặc biệt, độ lớn của xung nhân với độ dài của nó sẽ luôn bằng 1.
Trong quá trình mô phỏng, có thể xuất hiện một số thông báo lỗi liên quan đến các vòng lặp đại số Hệ thống này yêu cầu các vòng khép kín trong mô hình phải được giải quyết hoàn toàn tại mỗi bước thời gian trước khi xem xét động lực học Mặc dù đây không phải là vấn đề lớn, nhưng các vòng lặp đại số thường làm chậm quá trình mô phỏng và có thể gây ra những vấn đề nghiêm trọng nếu có sự không liên tục trong vòng lặp, chẳng hạn như độ bão hòa hoặc hàm dấu.
Con lắc dao động điều hòa do va chạm và xe máy chuyển động theo cách giật dần đều từ con lắc Các mô phỏng này khác biệt rõ rệt so với mô phỏng vòng hở trong MATLAB, bởi vì Simulink hỗ trợ các hệ thống phi tuyến hoàn toàn.