Đại học quốc gia thành phố Hồ Chí Minh Trường Đại học Bách Khoa Báo cáo thí nghiệm Lý thuyết điều khiển nâng cao BÀI THÍ NGHIỆM 1: ĐIỀU KHIỂN HỆ PHI TUYẾN CON LẮC NGƯỢC QUAY BÀI THÍ NGHIỆM 3: ĐIỀU KHIỂN VỊ TRÍ ĐỘNG CƠ DC DÙNG BỘ TỰ CHỈNH STR (SELFTUNING REGULATOR) BÀI THÍ NGHIỆM 4: ĐIỀU KHIỂN NHIỆT ĐỘ DÙNG DÙNG BỘ ĐIỀU KHIỂN THÍCH NGHI PID AUTO – TUNING BÀI THÍ NGHIỆM 5: ĐIỀU KHIỂN HỒI TIẾP BIẾN TRẠNG THÁI Và các bài chuẩn bị...........
Trang 1ĐẠI HỌC QUỐC GIA TPHCM TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA ĐIỆN - ĐIỆN TỬ -
BÁO CÁO THÍ NGHIỆM
LÝ THUYẾT ĐIỀU KHIỂN NÂNG CAO
GVHD: Thầy Lê Quang Thuần
Sinh viên thực hiện:
Tháng 6/2022
Trang 2MỤC LỤC
BÀI THÍ NGHIỆM 1: 2
BÀI THÍ NGHIỆM 3: 24
BÀI THÍ NGHIỆM 4: 39
BÀI THÍ NGHIỆM 5: 48
BÀI CHUẨN BỊ: 54
BÀI CHUẨN BỊ BÀI 1: 54
BÀI CHUẨN BỊ BÀI 3: 67
BÀI CHUẨN BỊ BÀI 4: 79
BÀI CHUẨN BỊ BÀI 5: 82
Trang 3Điều khiển cân bằng con lắc ngược bằng LQR
a Khảo sát ảnh hưởng của ma trận Q và ma trận R
Giá trị khởi tạo của các trạng thái (θ1 = dθ1/dt=dθ2/dt = 0, θ2 = 10), thay đổi giá trị các ma trận Q và R tương ứng với các trường hợp và tính vector K, vẽ đáp ứng ngõ ra
- Nhận xét về ảnh hưởng của việc thay đổi ma trận Q đến đáp ứng của góc lệch θ2?
Trang 4- Nhận xét về ảnh hưởng của việc thay đổi ma trận R đến đáp ứng của góc lệch θ2 ?
*Kết quả sau các lần chạy
Công thức tính sai POT các bài sau đây: POT = |ymin – y(0)|
|𝑦𝑥𝑙−𝑦(0)|
*Lần1: Q = diag([1,1,0.001,1]); R = 1;
=> K = [-1 -1.9536 110.3185 23.3228]
Đồ thị đáp ứng ngõ ra:
Trang 5Xét 2 (góc xoay của thanh lắc);
POT = 44.4% ; txl = 3.72s; sai số xác lập exl = 6.823*10-10
*Lần 2: Q = diag([1,1,1,1]); R = 1;
=> K = [ -1.0000 -1.9537 110.3279 23.3239]
Trang 8Đồ thị đáp ứng ngõ ra:
Xét 2 (góc xoay của thanh lắc):
POT = 46% ; txl = 3.36s; sai số xác lập exl = 0.00183
Trang 10- Khi tăng giá trị Q3 của ma trận Q lên từ 0.001 đến 1 thì thấy đồ thị ngõ ra Theta 2 gần như không đổi; từ 1 lên 10^4 thì nhận thấy độ vọt lố giảm từ 45.1% xuống 28%, thời gian xác lập tăng, triệt tiêu được sai số xác lập Vậy nhìn chung khi Q3 của ma trận Q tăng thì giảm độ vọt lố, thời gian xác lập tăng và triệt tiêu được sai số của góc lệch θ2
- Khi tăng giá trị R lên từ 0.01 đến 1 và từ 1 lên 100 thì đồ thị ngõ ra Theta 2 có độ vọt lố giảm từ 46% xuống 28%, thời gian xác lập tăng hầu như không đổi, sai số xác lập được triệt tiêu Vậy nhìn chung khi tăng R thì giảm độ vọt lộ, thời gian xác lập không đổi
và triệt tiêu được sai số của góc lệch θ2
b Khảo sát ảnh hưởng của giá trị khởi tạo góc θ 2
- Đặt giá trị cho ma trận Q = diag([1, 1, 1, 1]) và ma trận R = 1 và tìm lại vector hồi tiếp trạng thái K
- Giá trị khởi tạo của các trạng thái (θ1 = dθ1/dt=dθ2/dt = 0), thay đổi giá trị khởi tạo góc θ2 tương ứng như các trường hợp sau và vẽ đáp ứng ngõ ra
Nhận xét sự ảnh hưởng của giá trị khởi tạo θ2 đến đáp ứng của hệ thống ?
*Kết quả sau các lần chạy
*Lần 1: θ2 = 10;
Tương tự lần 1 của 5a
Trang 11Xét Theta 2:
POT = 55.4% ; txl = 5.19s; sai số xác lập = 0.001372
*Lần 3: θ2 = 20;
Đồ thị đáp ứng ngõ ra:
Trang 12Xét Theta 2:
POT = 109.2% ; txl = 3.18s; sai số xác lập = 0.005647
*Lần 4: θ2 = 25;
Đồ thị đáp ứng ngõ ra:
Trang 13ổn định và không thể quay lại vị trí ban đầu (xác lập ở vị trí khác)
5.2 Bộ ước lượng trạng thái:
- Thực hiện tính lại vector hồi tiếp trạng thái K với ma trận Q = diag ([1 1 1 1]) và ma trận R = 1
- Giá trị khởi tạo của các trạng thái (θ1 = dθ1/dt=dθ2/dt = 0, θ2 = 100)
- Tính độ lợi Kalman cho bộ ước lượng
Trang 14Sinh viên đánh giá sai số ước lượng đối với tín hiệu θ1 và θ2 trong trường hợp sau
*Kết quả:
Vector hồi tiếp trạng thái K = [-1 -1.9537 110.3279 23.3239]
Độ lợi Kalman như trên: L0=
Trang 15Sai số ước lượng đối với θ1 là không đáng kể gần như không thấy được(hai đồ thị gần như trùng nhau) Trong khi đó sai số ước lượng đối với thông số của θ2 là lớn hơn có thể nhận thấy được qua đồ thị.(hai đồ thị lệch nhau và quan sát được)
5.3 Điều khiển swing-up con lắc bằng phương pháp năng lượng
Sơ đồ khối điều khiển Swingup
Trang 16*Thay đổi tốc độ Swingup
- Chức năng chuyển đổi bộ điều khiển: bộ điều khiển LQR được sử dụng nếu (θ2 <
200, dθ2/dt < 2 ), bộ điều khiển swing-up được sử dụng nếu điều kiện trên không thỏa
- Thực hiện tính lại vector hồi tiếp trạng thái LQR với ma trận Q = diag ([0.01 0.01 1 1]) và ma trận R = 1
- Giá trị khởi tạo của các trạng thái (θ1 = dθ1/dt=0, θ2 = 1800 , dθ2/dt = 0.1)
- Thay đổi các giá trị Ksw và nhận xét về tốc độ swing-up
Trang 17*Lần 1: Ksw = 10
Hiển thị của Scope:
Hiển thị của Scope1:
Trang 18*Lần 2: Ksw = 15
Hiển thị của Scope:
Hiển thị của Scope1:
Trang 19*Lần 3: Ksw = 50
Hiển thị của Scope:
Hiển thị của Scope1:
Trang 20*Lần 4: Ksw = 100
Hiển thị của Scope:
Hiển thị của Scope1:
Trang 21*Nhận xét:
Vì giá trị của Ksw đặc trưg cho tốc độ swing-up nên Ksw càng lớn thì tốc độ swing
up càng nhanh Tuy nhiên khi tăng tới 1 ngưỡng nhất định tốc độ sẽ không thay đổi nữa
do điều khiển swing-up dựa trên phương pháp năng lượng dẫn đến khi điện năng cung cấp cho hệ thống tới 1 ngưỡng Ksw nào đó sẽ bị bão hòa không thể tăng tốc độ được nữa 5.4 Thiết kế bộ điều khiển hồi tiếp tuyến tính hóa
- Sinh viên nhập các hàm a(x) và b(x) của khối hồi tiếp tuyến tính hóa đã chuẩn bị ở nhà vào khối hồi tiếp tuyến tính hóa
- Chọn các cực của bộ điều khiển bám để đáp ứng thỏa mãn yêu cầu: POT < 10% và tqđ < 0.3s
Từ hai giá POT và tqd, áp dụng công thức ta tìm được phương trình đặc trưng và từ
đó tính được K1 và K2
*Kết quả mô phỏng
Trang 22*Nhận xét
Hệ thống không có độ vọt lố và với tqd < 0.3 (ứng với Y = 0.007)
5.5 Thiết kế bộ điều khiển trượt:
Chọn mặt trượt và vị trí nghiệm của đa thức đặc trưng và giá trị của hệ số K để đáp ứng hệ thống thỏa mãn điều kiện POT < 10% và tqđ < 0.3s
Nhận xét khi về tín hiệu điều khiển khi thay thế hàm sign(x) bởi hàm sat(x) ?
*Kết quả sau khi chạy
Dùng hàm sign(x):
Dùng hàm sat(x):
Trang 23Câu hỏi cuối báo cáo:
1 Dựa vào đáp ứng ngõ ra của các trường hợp trong thí nghiệm 5.1, nêu ý nghĩa của ma trận Q và ma trận R ? Ta có thể điều khiển θ 1 đến góc 30 được không ?
- Ý nghĩa ma trận Q: Ma trận Q là ma trận trọng số biến trạng thái Khi tăng trọng số của θ2 trong ma trận Q, độ vọt lố của góc lệch θ2 giảm Đáp ứng của góc lệch θ2 được cải thiện
- Ý nghĩa của ma trận R: Ma trận R có tác dụng tối ưu về năng lượng, là ma trận trọng
số ngõ vào Khi tăng trọng số trong ma trận R, độ vọt lố của góc lệch θ2 giảm, tuy nhiên thời gian xác lập của thay đổi
Trang 24- Ta không thể điều khiển góc θ1 từ 0 đến góc 30, từ thực nghiệm, ta thấy nếu góc đặt của θ2 nằm trong vùng làm việc tuyến tính, thì góc θ1 được trở lại vị trí góc 0 sau khi xác lập Khi góc θ2 nằm ngoài vùng làm việc tuyến tính, lúc này góc θ1 tăng tuyến tính với tốc độ góc khác 0 để đưa θ2 đến vị trí ổn định mới
2 Trong thí nghiệm 5.2, tại sao khi góc khởi tạo của θ 2 lớn (θ 2 = 25) thì hệ thống không thể cân bằng ?
Vì vị trí 25 này lệch quá xa so với điểm dừng của hệ thống Góc 25 nằm ngoài vùng làm việc tuyến tính của hệ thống nên sẽ gây ra sự mất ổn định, không thể đưa hệ thống về
vị trí cân bằng Lúc này, thanh quay phải quay liên tục để giữ cho thanh lắc ổn định dẫn đến góc θ1 tăng tuyến tính và vận tốc góc của thanh tiến đến giá trị mới khác 0
3 Trong thí nghiệm 5.3, giải thích vì sao khi tăng Ksw lên rất lớn thì tốc độ
swing-up không tăng được nữa ?
Điều khiển swing-up dựa trên phương pháp năng lượng, dẫn đến khi điện năng cung cấp cho hệ thống tới 1 ngưỡng Ksw tức là đạt công suất tối đa, khi đó không thể tăng tốc
độ được nữa Khi đó, ta tăng Ksw tới 1 ngưỡng nhất định tốc độ sẽ không thay đổi nữa
4 Trong thí nghiệm 5.4 và 5.5, quan sát giá trị ngõ ra θ1 và dθ1/dt và giải thích hiện tượng ?
Để θ2 đạt được trạng sái cân bằng, sai số hội tụ về 0 thì motor phải quay liên tục, làm góc θ1 thay đổi để tạo moment cho con lắc đứng yên vì thế nên dθ1/dt sẽ có 1 giá trị xác lập khác 0 vì luôn vận động theo thời gian và θ1 luôn tăng tuyến tính
Trang 25BÀI THÍ NGHIỆM 3:
ĐIỀU KHIỂN VỊ TRÍ ĐỘNG CƠ DC DÙNG BỘ TỰ CHỈNH STR
(SELF-TUNING REGULATOR)
I Mục đính
- Khảo sát đáp ứng vị trí của động cơ DC theo thời gian khi tín hiệu đầu vào thay đổi
để nhận dạng hàm truyền của động cơ Dựa vào thông số nhận dạng để xây dựng bộ điều khiển thích nghi tự chỉnh theo phương pháp đặt cực
- Hiểu rõ ảnh hưởng của hệ số quên lên tốc độ hội tụ của các tham số cần nhận dạng
- Biết cách xây dựng thuật toán nhận dạng off – line và on – line cho một đối tượng
đã được tìm ra, khối Tính thông số bộ điều khiển sẽ tính ra được các thông số của
bộ điều khiển dựa vào yêu cầu thiết kế cho trước (độ vọt lố, sai số xác lập,…)
Trang 292.2 Kết quả thí nghiệm:
Code bổ sung trong khối Identification:
function [P,Theta] = Uocluong(uk,yk,P_,Theta_)
lamda = 0.9999;
PHI =[-yk(2);-yk(3);uk(1);uk(2)];
e = yk(1) - PHI'*Theta_;
L = P_*PHI / (lamda + PHI'*P_*PHI);
P = 1/lamda*(P_ - P_*PHI*PHI'*P_ /(lamda + PHI'*P_*PHI));
Trang 30Theta = Theta_ + L*e;
q1 = a2/b2 - q2*(b1/b2 - a1/a2 +1);
q0 = 1/b1*(d1+1-a1-gama);
Kết quả sau khi chạy chương trình:
Trang 33Nhận xét: Chọn cặp cực càng xa trục ảo thì đáp ứng càng tốt, bám nhanh, thời gian xác lập nhỏ và ổn định
3 Xây dựng bộ điều khiển tự chỉnh theo phương pháp đặt cực miền rời rạc 3.1 Công thức lý thuyết
Trang 34
3.2 Kết quả thí nghiệm:
Code bổ sung trong khối Identification:
function [P,Theta] = Uocluong(uk,yk,P_,Theta_) lamda = 0.96;
PHI =[-yk(2);-yk(3);uk(1);uk(2)];
e = yk(1) - PHI'*Theta_;
L = P_*PHI / (lamda + PHI'*P_*PHI);
P = 1/lamda*(P_ - P_*PHI*PHI'*P_ /(lamda + PHI'*P_*PHI));
Theta = Theta_ + L*e;
Trang 35r6 = b1^2 *(a2*x3 + a1*x4 - a2*x4);
r7 = b2*(b1*(a1*x4 + a2*x2 - x4) - b2*(a2*x1+x4));
p1 = (r5 - r1)/r1; p2 = -r5/r1; q0 = r0 - (r2+r3+r4)/r1; q1 = (r2 + r3 + r4 - r6 -r7)/r1; q2 = (r6+r7)/r1;
…
Kết quả sau khi mô phỏng:
Trang 38- Với 𝛼 = 0, 𝛽 = 0:
Nhận xét: 𝛼 càng lớn thì chất lượng hệ thống càng tệ: thời gian xác lập tăng
III Trả lời câu hỏi:
1, Từ bảng số liệu ở bảng 1, viết hàm truyền rời rạc vị trí động cơ Nhận xét ảnh hưởng của hệ số quên 𝜆 lên sai số ước lượng
Hàm truyền rời rạc vị trí của động cơ:
𝐺(𝑧) = −0.05308𝑧
−1+ 5.5128𝑧−2
Trang 39- Càng tăng hệ số λ thì thông số ước lượng càng chính xác, sai số ước lượng nhỏ hơn,
λ lớn thì cần bộ nhớ lớn để lưu trữ các thông số trước đó
2, Dựa vào kết quả thí nghiệm ở mục 5.2, nhận xét chất lượng của hệ thống (độ vọt lố, thời gian quá độ, sai số xác lập)
- Chọn cặp cực quyết định càng xa trục ảo thì chất lượng hệ thống càng tốt: thời gian xác lập giảm, ngõ ra ổn định hơn
- Tất cả các trường hợp mô phỏng trong thí nghiệm đều cho sai số xác lập và độ vọt
lố bằng không vì cặp cực quyết định nằm bên trái mặt phẳng phức
3, Dựa vào kết quả thí nghiệm ở mục 5.3, nhận xét chất lượng của hệ thống (độ vọt lố, thời gian quá độ, sai số xác lập)
- 𝛼 càng lớn thì thời gian xác lập càng tăng
- Khi cho 𝛼 hoặc 𝛽 âm thì hệ thống mất ổn định, mặc dù cặp cực quyết định vẫn nằm trong đường tròn đơn vị
- Khi cặp cực quyết định nằm ngoài đường tròn đơn vị, hệ thống mất ổn định
- Các trường hợp mô phỏng đều cho sai số xác lập và độ vọt lố bằng 0 vì cặp cực
quyết định nằm trong đường tròn đơn vị
Trang 41b Cài đặt chu kì lấy mẫu T = 1s và thời gian lấy mẫu 1500s
c Cài đặt Setpoint = 70 và Output when on = 0.3 Chuyển ‘Switch’ ở chế độ ON-OFF
d Mở scope xem đáp ứng ngõ ra từ đó tính độ lợi Kc và Tc ta được bảng sau:
Từ đáp ứng ngõ ra ta tìm được:
TA = 1112s
TB = 700s
Trang 43Từ đáp ứng ngõ ra ta được kết quả là bảng sau:
5.2 Điều khiẻn thích nghi PID auto-tuning
a) Mở file temp_autotuning.mdl
Trang 44b Code trong khối PID
Trang 47*Giá trị biên độ M được tính bằng cách:
Đoạn code trên cho phép tìm 2 thời điểm A và B, hai thời điểm này khi relay chuyển trạng thái
từ OFF sang ON Tại thời điểm A, biến idx = 1 và tại B biến idx = 2
Đoạn code tiếp theo cho ta thấy, trong khi idx = 1 (tức khi đáp ứng trong khoảng A và B) thì tiến hành tìm emin và emax tức độ lệch nhiệt độ lớn nhất và nhỏ nhất so với giá trị đặt là 70 trong đoạn AB Từ đây giá trị biên độ dao động trong code M = |emax| + |emin| Đây chính là giá trị 2M
từ lý thuyết
*Thời điểm A, B được tính bằng cách:
Từ đoạn code trên, sau mỗi chu kì lấy mẫu Ts, chương trình luôn thực hiện kiểm tra trạng thái hiện tại và trạng thái trước đó của relay Nếu trạng thái đó là chuyển từ OFF sang ON, thì đây chính là thời điểm A và B, đồng thời giá trị idx được tăng lên 1 đơn vị Ứng với idx = 1, đây chính là điểm A, tiến hành lưu giá trị thời điểm T1 = cnt Tương tự idx = 2 là điểm B, lưu giá trị thời điểm T2
Trang 48c Cài đặt thời gian lấy mẫu T = 1s và thời gian chạy 1800s Biên dịch và chạy chương trình
d Mở Scope xem đáp ứng
*Nhận xét:
Sau khoảng 1145s, hệ thống chuyển từ chế độ ON-OFF sang PID, đây cũng chính là thời điểm của B
Trả lời câu hỏi:
1 Từ bảng số liệu ở Bảng 1, xác định độ lợi tới hạn và chu kì tới hạn của hệ thống? Đánh giá chất lượng của hệ thống khi bộ điều khiển PID được thiết kế theo công thức (3) - (5)? Ảnh hưởng của hệ số 𝜶 lên chất lượng hệ thống?
M = 5.6
Độ lợi tới hạn : Kc = 0.0341
Chu kì tới hạn: Tc = 412
Trang 49+ Khi tăng thông số α thì hệ số Ki tăng làm cho độ vọt lố tăng, thời gian xác lập tăng, độ ổn định giảm, sai số xác lập giảm
2 Dựa vào kết quả thí nghiệm ở mục 5.2 Nhận xét sau thời gian gian bao lâu thì hệ thống chuyển từ chế độ ON – OFF sang chế độ PID ? Làm cách nào để giảm khoảng thời gian này ?
Sau khoảng 1180s hệ thống chuyển từ ON-OFF sang chế độ PID Để giảm thời gian này thì thay đổi giá trị của các trường “Switch on/off point” của khối Relay (Giảm giá trị Switch on point, tăng giá trị Switch off point Vd: (0.001,-0.001) so với ban đầu (0.1,-0.1))
3.Nhận xét về chất lượng của hệ thống khi sử dụng bộ điều khiển PID auto-tuning ( độ vọt lố, thời gian quá độ, sai số xác lập) ?
Độ lọt vố: POT≈0%, thời gian xác lập nhỏ Thời gian quá độ nhanh hơn khi điều khiển bằng
bộ điều khiển PID ở thí nghiệm 1 Sai số xác lập : exl= 1.8 Hệ thống ổn định Không cần phải thay đổi thông số bộ điều khiển nếu thay đổi nhiệt độ lò nhiệt
- Biết cách thu thập dữ liệu và nhận dạng mô hình đối tượng xe – lò xo
- Đánh giá được chất lượng điều khiển dùng phương pháp điều khiển hồi tiếp biến trạng thái
II Thí nghiệm
1 Tìm thông số của hệ xe – lò xo:
1.1 Tìm k 1 , b 1 :
a, Công thức lý thuyết:
Trang 50Trong đó: m1 là khối lượng xe 1 (kg)
k12 là độ cứng của lò xo 1, cũng là độ cứng của lò xo 2 (N/m)
b1 là hệ số ma sát của xe 1 (N.s/m)
θ là vector tham số
x1, x2 là các biến trạng thái
T là thời gian lấy mẫu (s)
N là số mẫu dữ liệu thu thập được (mẫu)
Trang 51Trong đó: m2 là khối lượng xe 2 (kg)
T là thời gian lấy mẫu (s)
N là số mẫu dữ liệu thu thập được (mẫu)
Trang 52Hình 2: Cấu trúc bộ điều khiển hồi tiếp biến trạng thái
Phương trình biến trạng thái của hệ sẽ là:
2.2 Kết quả thí nghiệm:
Lần
Độ vọt lố (%)
Sai số xác lập (mm)
T/g xác lập (s)
Trang 538 [0 0 10 0.1] 20.68 0.690 0.120
Bảng 5: Bảng giá trị K f
Ảnh hưởng của từng hệ số Kf3 và Kf4 lên chất lượng hệ thống:
- Hệ số Kf3: Hệ số này cho kết quả điều khiển tốt nhất Khi tăng Kf3, sai số xác lập giảm đáng kể, thời gian xác lập giảm, xe 2 tiến gần đến giá trị đặt hơn Tuy nhiên, nhược điểm khi tăng Kf3 là độ vọt lố ngày càng lớn, hệ thống càng dao động nhiều hơn dẫn tới mất ổn định
- Hệ số Kf4: Hệ số này giúp cải thiện chất lượng của hệ thống Khi tăng Kf4, độ vọt lố giảm đáng kể, thời gian xác lập nhanh hơn, do đó chất lượng hệ thống tốt hơn Tuy nhiên, hệ số Kf4 không làm thay đổi được sai số xác lập, và nếu tăng quá cao sẽ làm cho hệ thống bị mất
Sai số xác lập (mm)