You are on page 1of 53

BỘ GIÁO DỤC & ĐÀO TẠO

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT


TP. HỒ CHÍ MINH
KHOA ĐIỆN – ĐIỆN TỬ

BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN


-----------------⸙∆⸙-----------------

BÁO CÁO MÔN HỌC


MÔN: NHẬN DẠNG VÀ ĐIỀU KHIỂN HỆ
THỐNG
GVHD: TS. Trần Đức Thiện
SVTH:
Lý Phi Cường 19151206
Văn Hoàng Phước Toàn 19151298
Bùi Minh Khôi 19151245

Tp. Hồ Chí Minh tháng 6 năm 2022


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 và quý thầy cô bộ môn Điều khiển tự động nói riêng, đã
trang bị kiến thức và giúp đỡ chúng em, giải quyết những khó khăn trong quá
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 có thể hoàn thành bài báo cáo này.

Sau cùng nhóm xin cảm ơn các bạn bè đã giúp đỡ để báo cáo môn học được
hoàn thành tốt đẹp. Tuy nhiên do chưa tự nghiên cứu kĩ lưỡng cũng như chuyên
môn còn hạn chế, nên không tránh khỏi những sai sót.

Chúng em rất mong nhận được sự thông cảm, góp ý và hướng dẫn của quý
thầy cô cùng các bạn.

Xin chúc quý thầy cô nhiều sức khoẻ và thành công trong quá trình công tác
và học tập.

Chúng em xin chân thành cảm ơn.

Tp. Hồ Chí Minh, ngày 28 tháng 06 năm 2022

Sinh viên thực hiện

Lý Phi Cường - Bùi Minh Khôi – Văn Hoàng Phước Toàn


MỤC LỤC

LỜI CẢM ƠN.........................................................................................................i

MỤC LỤC.............................................................................................................ii

DANH SÁCH HÌNH ẢNH..................................................................................iv

DANH SÁCH BẢNG...........................................................................................vi

PHẦN MỞ ĐẦU....................................................................................................1

1 Đặt vấn đề......................................................................................................1

2. Mục tiêu........................................................................................................2

3. Giới hạn.........................................................................................................2

4. Phương pháp nghiên cứu..............................................................................2

5. Nội dung nghiên cứu.....................................................................................2

CHƯƠNG 1: TỔNG QUAN VỀ HỆ XE CON LẮC NGƯỢC.........................4

1.1 Mô hình hệ xe con lắc ngược......................................................................4

1.2 Mô hình toán học của hệ xe con lắc ngược.................................................5

1.3 Mô hình hóa hệ xe con lắc ngược...............................................................7

CHƯƠNG 2: NHẬN DẠNG THÔNG SỐ MÔ HÌNH SỬ DỤNG PHƯƠNG


PHÁP BÌNH PHƯƠNG CỰC TIỂU.................................................................10

2.1 Mô hình toán của hệ xe con lắc ngược.....................................................10

2.2 Các bước xây dựng mô hình thu thập dữ liệu từ hệ thống:.......................11

CHƯƠNG 3: THIẾT KẾ BỘ ĐIỀU KHIỂN LQR CHO HỆ XE CON LẮC


NGƯỢC...............................................................................................................18

3.1 Lý thuyết về bộ điều khiển LQR...............................................................18


3.2 Thiết kế mô phỏng bộ điều khiển LQR cho hệ xe con lắc ngược.............20

3.3. Mô hình bộ điều khiển LQR cho hệ xe con lắc ngược trong trường hợp
có nhiễu đo lường..............................................................................................26

CHƯƠNG 4: THIẾT KẾ KHẢO SÁT BỘ LỌC KALMAN CHO HỆ XE


CON LẮC NGƯỢC............................................................................................29

4.1 Lý thuyết về bộ lọc Kalman......................................................................29

4.2 Thiết kế khảo sát bộ lọc Kalman cho hệ xe con lắc ngược.......................30

CHƯƠNG 5: THIẾT KẾ MÔ PHỎNG BỘ ĐIỀU KHIỂN LQG CHO HỆ


XE CON LẮC NGƯỢC.....................................................................................34

5.1 Lý thuyết về bộ điều khiển LQR...............................................................34

5.2 Thiết kế mô phỏng bộ điều khiển LQG cho hệ xe con lắc ngược............34

CHƯƠNG 6: THIẾT KẾ BỘ ĐIỀU KHIỂN SLIDING MODE CONTROL


CHO HỆ XE CON LẮC NGƯỢC.....................................................................36

6.1 Lý thuyết về bộ điều khiển trượt...............................................................36

6.2 Xây dựng mô hình mô phỏng bộ điều khiển trượt....................................38

6.3 Kết luận bộ điều khiển trượt.....................................................................42

TÀI LIỆU THAM KHẢO..................................................................................43


DANH SÁCH HÌNH ẢNH

Hình 1.1: Mô hình hệ con lắc ngược.....................................................................4

Hình 2.1: Mô hình thu thập dữ liệu từ hệ thống..................................................12

Hình 2.2: Mô hình toán hệ Xe con lắc ngược......................................................12

Hình 2.3: Đặt các thông số đầu vào tác động đến hệ thống................................13

Hình 2.4: Tín hiệu ngõ vào lực tác động và hệ thống..........................................14

Hình 2.5: Tín hiệu ngõ ra góc Theta...................................................................14

Hình 2.6: Tín hiệu ngõ ra Vị trí của xe................................................................15

Hình 2.7: Thu thập dữ liệu từ phương trình vi phân và từ ngõ ra của hệ thống. 15

Hình 2.8: Kết quả sau khi thu thập được.............................................................16

Hình 3.1: Bộ điều khiển LQR...............................................................................18

Hình 3.2: Mô hình mô phỏng hệ con lắc ngược..................................................20

Hình 3.3: Mô hình mô phỏng điều khiển LQR cho hệ con lắc ngược.................21

Hình 3.4: Đáp ứng quá độ và năng lượng tiêu tốn của hệ trong trường hợp 1. .23

Hình 3.5: Đáp ứng quá độ và năng lượng tiêu tốn của hệ trong trường hợp 2. .24

Hình 3.6: Đáp ứng quá độ và năng lượng tiêu tốn của hệ trong trường hợp 3. .25

Hình 3.7: Mô hình mô phỏng điều khiển LQR cho hệ xe con lắc khi có nhiễu. . .26

Hình 3.8: Nhiễu đo vị trí xe.................................................................................27

Hình 3.9: Nhiễu đo góc lệch con lắc...................................................................27

Hình 3.10: Đáp ứng quá độ và năng lượng tiêu tốn của hệ thống khi có nhiễu đo
lường.....................................................................................................................28

Hình 4.1: Bộ lọc Kalman.....................................................................................30


Hình 4.2: Mô hình mô phỏng khảo sát bộ lọc Kalman........................................33

Hình 4.3: So sánh tín hiệu trước và sau khi qua bộ lọc Kalman cho góc lệch....34

Hình 4.4: So sánh tín hiệu trước và sau khi qua bộ lọc Kalman cho vị trí xe.....34

Hình 5.1: Mô hình mô phỏng điều khiển LQG cho hệ con lắc ngược.................35

Hình 5.2: Đáp ứng quá độ và năng lượng tiêu tổn khi dùng bộ điều khiẻn LQG
..............................................................................................................................36

Hình 6.1: Mô hình mô phỏng bộ điều khiển trượt...............................................40

Hình 6.2: Tín hiệu đầu vào thay đổi vị trí con xe................................................41

Hình 6.3: Tín hiệu đầu vào tác động đến vị trí xe...............................................42

Hình 6.4: Tín hiệu quan sát ở ngõ ra của hệ thống.............................................42


DANH SÁCH BẢNG

Bảng 1: Thông số liên quan đến phương trình vi phân :…………………..


17

Bảng 2: Thông số liên quan đến phương trình vi phân :……………….. 17


PHẦN MỞ ĐẦU

PHẦN MỞ ĐẦU

1 Đặt vấn đề
Với thời đại 4.0 thì mọi thứ đều được vận hành một các tự động thì để có thể
vận hành được hệ thống đó thì ta phải có các thông số của mô hình cần điều
khiển, các bộ điều khiển để có thể điều khiển hệ thống hoạt động một cách ổn
định và bám theo tín hiệu đặt mà ta đã đặt ra ban đầu. Nhờ vào nội dung của môn
học “Nhận Dạng Và Điều Khiển Hệ Thống” giúp cho tụi em có cái nhìn tổng
quan về các hệ thống để có thể tự thiết kế các bộ điều khiển thích hợp cho các hệ
thống từ đơn giản đến phức tạp, đáp ứng các yêu cầu về như cầu của thực tế trong
hiện tại và tương lai gần trong lĩnh vực điều khiển.

Trong lĩnh vực kỹ thuật điều khiển, “hệ xe con lắc ngược” là một trong
những lĩnh vực được nghiên cứu phổ biến nhất và đồng thời nó còn là hình mẫu
cho việc kiểm soát ổn định hệ thống. Ngày nay, mặc dù đã có nhiều công trình
nghiên cứu về hệ thống này nhưng các nhà khoa học vẫn không ngừng thí
nghiệm trên hệ con lắc ngược như một bước đệm để điều khiển ổn định cân bằng
các hệ thống phức tạp hơn như robot thăng bằng, tàu vũ trụ, máy bay không
người lái,…

Và trong điều khiển thông minh có khá nhiều bộ điều khiển để ổn định hệ
thống như bộ điều khiển kinh điển PID, LQR, LQG, Sliding Mode, Fuzzy,…
Trong đó bộ điều khiển LQG có khả năng thích ứng với các hệ phi tuyến khá tốt,
cũng như tính trực quan của nó. Với hệ xe con lắc ngược có bản chất là phi
tuyến, cùng với đó có khá nhiều chuyên gia trong lĩnh vực điều khiển thông minh
đã thành công trong việc xây dựng bộ điều khiển LQG và Sliding Mode Control
cho hệ xe con lắc ngược. Và đó là lí do nhóm em chọn đề tài “ Thiết kế mô
phỏng bộ điều khiển LQG và Sliding Mode Control cho hệ xe con lắc ngược”

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 1


PHẦN MỞ ĐẦU

2. Mục tiêu
Hệ xe con lắc ngược sẽ dễ bị mất ổn định ngay cả khi nhiễu tác động là nhỏ
nhất. Vì thế mục tiêu của đề tài là thiết kế bộ điều khiển LQG và bộ điều khiển
trượt điều khiển cho xe đứng yên tại vị trí đặt và khi đó con lắc sẽ bị lệch đi
nhưng sau cùng nó vẫn giữ được thăng bằng tức là lệch so với phương thẳng
đứng.

3. Giới hạn
Đề tài chỉ dừng lại ở việc mô phỏng, chưa thực hiện thực tế nên chưa điều
chỉnh được thông số để phù hợp với yêu cầu. Ngoài ra hệ thống chỉ đáp ứng tốt

khi con lắc không lệch quá so với phương thẳng đứng. Nếu lệch
quá hệ thống sẽ mất cân bằng.

4. Phương pháp nghiên cứu


Dựa trên các đề tài nghiên cứu có trên sách, báo, tạp chí khoa học,… từ đó
nghiên cứu và phát triển đề tài. Khảo sát các mô hình hệ xe con lắc để hiểu
nguyên lí hoạt động của hệ thống.

Sử dụng Matlab/Simulink hoặc các phần mềm khác có thể mô phỏng được
để chạy mô phỏng hệ thống.

Nhóm sử dụng phương pháp thiết kế bộ điều khiển LQG và điều khiển trượt
để mô phỏng. Cùng đó với kinh nghiệm đã được học ở học phần lý thuyết “Nhận
dạng và điều khiển hệ thống” để thiết kế có chọn lọc.

5. Nội dung nghiên cứu


Chương 1: Tổng quan về hệ xe con lắc ngược

Chương này trình bày lý thuyết về mô hình toán hệ xe con lắc ngược.

Chương 2: Nhận dạng thông số mô hình sử dụng phương pháp bình phương
cực tiểu

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 2


PHẦN MỞ ĐẦU

Chương này sẽ nhận dạng các thông số của hệ thống để so sánh giữa thông
số mô hình với thông số được nhận dạng dùng phương pháp bình phương cực
tiểu

Chương 3: Thiết kế bộ điều khiển LQR cho hệ xe con lắc ngược

Chương này trình bày về thiết kế mô hình bộ điều khiển LQR trên Simulink
và sau đó tiến hành mô phỏng hệ thống.

Chương 4: Thiết kế khảo sát bộ lọc Kalman cho hệ xe con lắc ngược

Chương này trình bày về thiết kế bộ lọc Kalman sau đó tiến hành mô phỏng
khảo sát bộ lọc trên Matlab Simulink.

Chương 5: Thiết kế mô phòng bộ điều khiển LQG cho hệ xe con lắc ngược

Chương này trình bày về kết quả khảo sát bộ điều khiển LQG sau khi áp
dụng bộ lọc Kalman vào bộ điều khiển LQR trên Matlab Simulink.

Chương 6: Thiết kế bộ điều khiển Sliding Mode Control cho hệ xe con lắc
ngược

Chương này trình bày về thiết kế mô hình bộ điều khiển Sliding Mode
Control trên Simulink và sau đó tiến hành mô phỏng hệ thống.

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 3


CHƯƠNG 1

CHƯƠNG 1: TỔNG QUAN VỀ HỆ XE CON LẮC


NGƯỢC

1.1 Mô hình hệ xe con lắc ngược

Hệ xe con lắc ngược được mô tả như trong (Hình 1.1) Con lắc ngược được
gắn vào xe kéo bởi động cơ điện, nghĩa là con lắc chỉ di chuyển trong mặt phẳng,
đồng thời nó không thể ổn định vì nó luôn ngã xuống trừ khi có lực tác động
thích hợp. Giả sử khối lượng của con lắc tập trung ở đầu thanh như hình vẽ (khối
lượng thanh không đáng kể). Lực điều khiển u tác động vào xe. Do đó yêu cầu
của bài toán là điều khiển vị trí xe và giữ cho con lắc ngược luôn thẳng đứng tức
hệ xe con lắc ngược luôn cân bằng.

Hình 1.1: Mô hình hệ xe con lắc ngược

Với các thông số hệ xe con lắc ngược như sau:

M=1.0 (kg): trọng lượng xe

m= 0.1 (kg) trong lượng con lắc

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 4


CHƯƠNG 1

l=1.0 (m): chiều dài con lắc

u: lực tác động vào xe (N)

g: gia tốc trọng trường (m/s2)

x: vị trí xe (m)

θ : góc giữa con lắc và phương thẳng đứng (rad)

1.2 Mô hình toán học của hệ xe con lắc ngược

Từ mô hình trên, ta phân tích các lực như hình vẽ. Từ đó, ta được các giá trị
như sau:111Equation Chapter 1 Section 1

Động năng của con lắc:

212\* MERGEFORMAT (.)

Động năng của xe:

313\* MERGEFORMAT (.)

Tổng động năng của hệ thống:

414\* MERGEFORMAT (.)

Thế năng của hệ thống:

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 5


CHƯƠNG 1

515\* MERGEFORMAT (.)

Toán tử Lagrangian, ta có:

616\*
MERGEFORMAT (.)

Hệ phương trình toán học theo phương pháp Euler-Lagrange:

717\* MERGEFORMAT (.)

Công thức (1.6) được biểu diễn theo từng biến trạng thái tác động đến hệ
thống và ở bên trái là ngoại lực tác động xét theo từng hướng chuyển động.

Ta có:

818\* MERGEFORMAT (.)

Từ phương trình (1.6) và (1.7) ta tìm được như sau:

919\* MERGEFORMAT (.)

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 6


CHƯƠNG 1

Tiếp theo cũng từ phương trình (1.6) và (1.7) ta tìm được như sau:

10110\* MERGEFORMAT (.)

Từ (1.8) và (1.9), ta có:

Phương trình vi phân của hệ xe con lắc ngược

11111\*
MERGEFORMAT (.)

1.3 Mô hình hóa hệ xe con lắc ngược

Đưa mô hình toán học của con lắc ngược về dạng chuẩn:

12112\*
MERGEFORMAT (.)

Đặt các biến trạng thái lần lượt là:

; ; ;

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 7


CHƯƠNG 1

Ta có:

Tuyến tính hóa mô hình xung quanh điểm làm việc thẳng đứng

13113\*
MERGEFORMAT (.)

Đặt ; ; và .

Ta có:

Sử dụng Matlab, ta sẽ tính được và

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 8


CHƯƠNG 1

14114\*
MERGEFORMAT (.)

15115\* MERGEFORMAT (.)

Thay các bộ thông số vào (3) và (4), ta được:

; và

Giả thuyết:

+ Đặc tính động của hệ xe con lắc ngược có thể được mô tả bởi hệ phương
trình biến trạng thái tuyến tính. Điều này chỉ đúng khi góc lệch θ̇ nhỏ.

+ Hệ thống phản hồi trạng thái đầy đủ, nghĩa là có thể đo được 4 biến trạng
thái (góc lệch, vận tốc góc, vị trí xe, vận tốc xe).

+ Không có nhiễu tác động vào hệ thống

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 9


CHƯƠNG 2

CHƯƠNG 2: NHẬN DẠNG THÔNG SỐ MÔ HÌNH SỬ


DỤNG PHƯƠNG PHÁP BÌNH PHƯƠNG CỰC TIỂU

2.1 Mô hình toán của hệ xe con lắc ngược

1612Equation Chapter (Next) Section 1 17217\*


MERGEFORMAT (.)

Trong đó: = 1(kg) là khối lượng của xe, = 0.1(kg) là khối lượng của
con lắc, = 1 (m), = 9.81( ), là lực điều khiển tác động đến xe con lắc
(N), là góc tạo bởi con lắc và phương thẳng đứng và là vị trí của con lắc so
với gốc tọa độ ban đầu.

Từ công thức (2.1) ta có thể thế các thông số , , và ta được hệ


phương trình như sau:

18218\*
MERGEFORMAT (.)

Từ công thức (2.2) có thể biểu diễn lại dưới dạng hồi quy tuyến tính theo
dạng bộ dự báo hồi quy tuyến tính như sau:

19219\*
MERGEFORMAT (.)

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 10


CHƯƠNG 2

Trong đó: là vector tham số ước lượng, là vector hồi quy ước lượng,

, ,

và .

Mô hình dự báo của hệ (2.3) được trình bày như sau:

20220\* MERGEFORMAT
(.)

Sai số dự báo :

21221\* MERGEFORMAT
(.)

Tiêu chuẩn ước lượng tham số:

22222\
* MERGEFORMAT (.)

Trong đó là số mẫu đã lấy.

Vector tham số ước lượng:

23223\* MERGEFORMAT
(.)

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 11


CHƯƠNG 2

Giải phương trình để tìm nghiệm

24224\*
MERGEFORMAT (.)

2.2 Các bước xây dựng mô hình thu thập dữ liệu từ hệ thống:

Xây dựng hệ thống và thu thập các thông số hệ thống dùng phương pháp
bình phương cực tiểu để tìm ra thông số của hệ thống:

Hình 2.1: Mô hình thu thập dữ liệu từ hệ thống

Bước 1: Xây dựng mô hình toán học cho hệ xe con lắc ngược:

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 12


CHƯƠNG 2

Hình 2.2: Mô hình toán hệ Xe con lắc ngược

Chương trình Matlab phương trình vi phân hệ thống:

function [x_2d,theta_2d]= Inverted_Pendulum(u,theta,theta_d)


m = 0.2; % Trọng luong con lắc kg
M = 1.2; % Trọng lượng của xe kg
l = 0.35; % Chiều dài con lắc m
g = 9.81; % Gia tốc trọng trường m/s^2
%% Hàm tính toán
%% Con lắc ngược trên xe
x_2d = (u+m*l*sin(theta)*(theta_d)^2-m*g*cos(theta)*sin(theta))/...
(M+m-m*(cos(theta))^2);
theta_2d = (u*cos(theta)-(M+m)*g*sin(theta)+m*l*(cos(theta)*sin(theta))*...
(theta_d)^2)/(m*l*(cos(theta))^2-(M+m)*l);
Bước 2: Thiết lập tín hiệu đặt Random tác động vào hệ thống để lấy dữ
liệu:

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 13


CHƯƠNG 2

Hình 2.3: Đặt các thông số đầu vào tác động đến hệ thống

Sau đây là dạng sóng tín hiệu ngõ vào tác động đến hệ thống, ngõ ra của
khối Random number:

Hình 2.4: Tín hiệu ngõ vào lực tác động và hệ thống

Bước 3: Dạng sóng ngõ ra từ Gốc Theta và Vị trí:

Dạng sóng ngõ ra từ Gốc Theta của hệ thống:

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 14


CHƯƠNG 2

Hình 2.5: Tín hiệu ngõ ra góc Theta

Dạng sóng ngõ ra từ vị trí của hệ thống:

Hình 2.6: Tín hiệu ngõ ra Vị trí của xe

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 15


CHƯƠNG 2

Bước 4: Thu thập dữ liệu từ ngõ ra của hệ thống:

Hình 2.7: Thu thập dữ liệu từ phương trình vi phân và từ ngõ ra của hệ thống

Trong đó: , , và .

Bước 5: Xử lý dữ liệu sau khi đã thu thập được:

clc
%% khai bao thong so mo hinh
M = 1; m = 0.1; l = 1; g = 9.81;

%% khai bao thong so tinh cho X 2dot


x_x2 = x_2d.signals.values;
ux = u.signals.values;
thex = theta.signals.values;
thex_2 = theta_2d.signals.values;
% trong do a = sin(theta)*theta_d^2, b = cos(theta)*theta_2d
ax1 = ax.signals.values;
bx1 = bx.signals.values;
phi1=[ax1(1:5001)';bx1(1:5001)';ux(1:5001)'];

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 16


CHƯƠNG 2

heso1=inv(phi1*phi1')*phi1*x_x2
%% khai bao thong so tinh cho theta 2dot
x2 = x_2d.signals.values;
the = theta.signals.values;
the2 = theta_2d.signals.values;
% trong do a = x_2d*cos(theta), b = sin(theta)
a1 = a.signals.values;
b1 = b.signals.values;
phi2=[a1(1:5001)';b1(1:5001)'];
heso2=inv(phi2*phi2')*phi2*the2
Kết quả sau khi thu thập được:

Hình 2.8: Kết quả sau khi thu thập được

Bảng 1: Thông số liên quan đến phương trình vi phân :

Hệ số trên lý thuyết Hệ số sau khi nhận dạng

0.0909 0.0909

-0.0909 -0.0909

0.9090 0.9091

Bảng 2: Thông số liên quan đến phương trình vi phân :

Hệ số trên lý thuyết Hệ số sau khi nhận dạng

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 17


CHƯƠNG 2

-1 -1

9.81 9.81

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 18


CHƯƠNG 3

CHƯƠNG 3: THIẾT KẾ BỘ ĐIỀU KHIỂN LQR CHO


HỆ XE CON LẮC NGƯỢC

3.1 Lý thuyết về bộ điều khiển LQR

Bộ điều khiển LQR liên tục

Hình 3.1: Bộ điều khiển LQR

Đối tượng tuyến tính mô tả bởi phương trình trạng thái: 2513Equation Chapter (Next)
Section 1

26326\* MERGEFORMAT
(.)

Trong đó:

: Vector trạng thái.

: Vector tín hiệu điều khiển.

Bài toán đặt ra là tìm tín hiệu điều khiển u(t) để điều chỉnh hệ thống từ trạng

thái bắt đầu bất kỳ về trạng thái cuối sao cho tối thiểu chỉ tiêu
chất lượng dạng toàn phương.

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 19


CHƯƠNG 3

27327\*
MERGEFORMAT (.)

Trong đó: Q và M là các ma trận trọng số bán xác định dương.

R là ma trận trọng số xác định dương.

Bài toán trên được gọi là bài toán điều chỉnh toàn phương tuyến tính.

Hàm Hamilton:

28328\*
MERGEFORMAT (.)

Điều kiện cần để có lời giải tối ưu:

+ Phương trình trạng thái:

+ Phương trình đồng trạng thái:

+ Điều kiện dừng:

Ta có:

Thế vào phương trình trạng thái ta rút được:

29329\*
MERGEFORMAT (.)

Kết hợp phương trình số (3.4) với phương trình đồng trạng thái ta có:

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 20


CHƯƠNG 3

30330\*
MERGEFORMAT (.)

Từ đó ta tính được tín hiệu điều khiển ngõ ra:

31331\* MERGEFORMAT (.)

Trong đó: và là nghiệm bán xác định dương của


phương trình vi phân Ricatti:

32332\*
MERGEFORMAT (.)

Một số hàm hỗ trợ trong Matlab:

+ Nghiệm phương trình đại số Riccati liên tục (Continuous Algebric Riccati
Equation- care): P = care(A, B, Q, R).

+ Lời giải bài toán LQR (Linear Quadratic Regulator – LQR) liên tục:

K = lqr(A, B, Q, R).

Note: Trong trường hợp này K và P là sẽ không còn phụ thuộc vào thời gian

3.2 Thiết kế mô phỏng bộ điều khiển LQR cho hệ xe con lắc ngược

Ta xây dựng được mô hình con lắc ngược:

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 21


CHƯƠNG 3

Hình 3.2: Mô hình mô phỏng hệ xe con lắc ngược

Chương trình Matlab phương trình vi phân hệ thống:

function [x_2d,theta_2d]= Inverted_Pendulum(u,theta,theta_d)


m = 0.2; % Trọng luong con lắc kg
M = 1.2; % Trọng lượng của xe kg
l = 0.35; % Chiều dài con lắc m
g = 9.81; % Gia tốc trọng trường m/s^2
%% Hàm tính toán
%% Con lắc ngược trên xe
x_2d = (u+m*l*sin(theta)*(theta_d)^2-m*g*cos(theta)*sin(theta))/...
(M+m-m*(cos(theta))^2);
theta_2d = (u*cos(theta)-(M+m)*g*sin(theta)+m*l*(cos(theta)*sin(theta))*...
(theta_d)^2)/(m*l*(cos(theta))^2-(M+m)*l);
Mô hình bộ điều khiển cho hệ xe con lắc ngược:

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 22


CHƯƠNG 3

Hình 3.3: Mô hình mô phỏng điều khiển LQR cho hệ xe con lắc ngược

Chương trình Matlab tìm thông số của bộ điều khiển LQR:

clc;
%% khai bao thong so mo hinh
M=1; m=0.1; l=1; g=9.8;
q11=1; q33=1; r1=1;
thetadot_init=0; %gia tri dat theta_dot
theta_init=0.1; %gia tri dat theta
xdot_init=0; %gia tri dat x_dot
x_init=0; %gia tri dat x
A=[0 1 0 0;
10.78 0 0 0;
0 0 0 1;
-0.98 0 0 0];
B=[0;-1;0;1];
C=[1 0 0 0;
0 0 1 0];
Q=[q11 0 0 0;
0 1 0 0;

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 23


CHƯƠNG 3

0 0 q33 0;
0 0 0 1];
R=r1;
P=care(A,B,Q,R);

K=lqr(A,B,Q,R);
Ta lần lượt khảo sát các giá trị khác nhau của ma trận Q và R:

Trường hợp 1: q11 =1; q33 =1; R=1

Ta được độ lợi hồi tiếp trạng thái:

Luật điều khiển tối ưu:

Đáp ứng quá độ và năng lượng tiêu tốn của hệ thống:

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 24


CHƯƠNG 3

Hình 3.4: Đáp ứng quá độ và năng lượng tiêu tốn của hệ thống trong trường hợp 1

Trường hợp 2: q11 =1; q33 =100; R=1

Ta được độ lợi hồi tiếp trạng thái:

Luật điều khiển tối ưu:

Đáp ứng quá độ và năng lượng tiêu tốn của hệ thống:

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 25


CHƯƠNG 3

Hình 3.5: Đáp ứng quá độ và năng lượng tiêu tốn của hệ thống trong trường hợp 2

Trường hợp 3: q11 =1; q33 =100; R=10

Ta được độ lợi hồi tiếp trạng thái:

Luật điều khiển tối ưu:

Đáp ứng quá độ và năng lượng tiêu tốn của hệ thống:

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 26


CHƯƠNG 3

Hình 3.6: Đáp ứng quá độ và năng lượng tiêu tốn của hệ thống trong trường hợp 3

Nhận xét:

- Tùy theo độ lớn tương đối giữa trọng số và R mà hệ thống có đáp ứng quá
độ và năng lượng tiêu tốn khác nhau. Muốn trạng thái đáp ứng nhanh, ta tăng 2
thành phần tương ứng (tăng q11 thì đáp ứng góc lệch giữ cân bằng tốt, tuy nhiên
vị trí xe dao động khá lớn; tăng q33 thì vị trí xe ít dao động hơn, tuy nhiên năng
lượng tiêu tốn tăng lên), khi ta tăng R, năng lượng tiêu tốn ít hơn tuy nhiên thời
gian đáp ứng quá độ của toàn hệ thống chậm hơn.

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 27


CHƯƠNG 3

- Do đó, với bài báo cáo này nhóm chúng em chọn hệ số q11 = 1; q33 = 100,
R=1. Bộ điều khiển LQR có đáp ứng hệ thống tốt chỉ khi trong trường hợp không
có nhiễu, nếu có nhiễu hệ thống hoặc nhiễu đo lường thì chất lượng điều khiển bị
ảnh hưởng đáng kể.

3.3. Mô hình bộ điều khiển LQR cho hệ xe con lắc ngược trong trường hợp
có nhiễu đo lường

Giả thiết:

Hệ thống hoạt động trong miền tuyến tính

Giả sử chỉ đo được góc lệch và vị trí xe

Có nhiễu tác động vào hệ thống. Nhiễu đo vị trí xe có phương sai là 0.001;
nhiễu đo góc lệch con lắc có phương sai 0.0001

Hình 3.7: Mô hình mô phỏng điều khiển LQR cho hệ xe con lắc ngược khi có nhiễu

Thiết lập nhiễu cho khối Random Number

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 28


CHƯƠNG 3

Hình 3.8: Nhiễu đo vị trí xe

Hình 3.9: Nhiễu đo góc lệch con lắc

Đáp ứng quá độ và năng lượng tiêu tốn của hệ thống khi có nhiễu đo lường:

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 29


CHƯƠNG 3

Hình 3.10: Đáp ứng quá độ và năng lượng tiêu tốn của hệ thống khi có nhiễu đo lường

Mặc dù tín hiệu ngõ ra có dao động nhưng vẫn nằm trong phạm vi cân bằng
khi tín hiệu góc theta hồi tiếp về có thêm nhiễu tác động.

Ngõ ra vị trí của hệ thống cũng chịu ảnh hưởng của nhiễu tác động nên ngõ
ra vị trí của xe có dao động nhưng vẫn mượt và dao động quanh điểm cân bằng
một khoảng sai số nhỏ.

Tín hiệu điều khiển khi có nhiễu tác động mà không sử dụng bộ lọc Kalman
thì tín hiệu điều khiển sẽ dao động liên tục sẽ ảnh hưởng đến hệ thống làm hệ
thống dao dộng với tần số cao quanh điểm cân bằng.

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 30


CHƯƠNG 4

CHƯƠNG 4: THIẾT KẾ KHẢO SÁT BỘ LỌC


KALMAN CHO HỆ XE CON LẮC NGƯỢC

4.1 Lý thuyết về bộ lọc Kalman

Bộ lọc Kalman liên tục3314Equation Chapter (Next) Section 1

Khi hệ thống có nhiễu hoặc có nhiễu từ đo lường sẽ làm bộ điều khiển LQR
không bám tốt theo tín hiệu của hệ thống từ đó để giải quyết vấn đề này người ta
thiết kế thêm bộ lọc Kalman để làm giảm nhiễu do hệ thống gây ra cũng như là
nhiễu trong quá trình đo lường.

Hình 4.1: Bộ lọc Kalman

Xét hệ tuyến tính liên tục:

34434\*
MERGEFORMAT (.)

Trong đó: là nhiễu hệ thống, là nhiễu đo lường.

Giả sử nhiễu hệ thống và nhiễu đo lường có phân bố Gauss, không tương


quan, có trung bình bằng 0 và phương sai là:

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 31


CHƯƠNG 4

Bộ lọc Kalman liên tục:

35435\*
MERGEFORMAT (.)

Trong đó: là độ lợi của bộ lọc Kalman.

Với là nghiệm của phương trình Ricatti:

4.2 Thiết kế khảo sát bộ lọc Kalman cho hệ xe con lắc ngược

Chương trình Matlab tìm thông số của bộ điều khiển LQR và bộ lọc Kalman

clc;
%% khai bao thong so mo hinh
M=1; m=0.1; l=1; g=9.8;
thetadot_init=0;
theta_init=0.1;
xdot_init=0;
x_init=0;
A = [0 1 0 0];
10.78 0 0 0;
0 0 0 1;
-0.98 0 0 0];
B = [0;-1;0;1];
C = [1 0 0 0;
0 0 1 0];
Q = [1 0 0 0;
0 1 0 0;
0 0 100 0;

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 32


CHƯƠNG 4

0 0 0 1];
Qn = [0.000001 0 0 0
0 0.000001 0 0
0 0 0.000001 0
0 0 0 0.000001];
G = [1 0 0 0;
0 1 0 0;
0 0 1 0;
0 0 0 1];
Rn= [0.001 0;0 0.001];
R=1;
P=care(A,B,Q,R);
K=lqr(A,B,Q,R);
L= lqe(A,G,C,Qn,Rn)
Bộ điều khiển LQR

Bộ lọc Kalman

Ta giả sử không có nhiễu hệ thống nên chọn Q N rất bé ( ). Hai

thành phần của chính là phương sai của nhiễu đo góc lệch con lắc (0.001) và
phương sai của nhiễu đo vị trí xe (0.01) :

Note: Với Phương sai của nhiễu được tính bằng cách xác định giá trị chênh
lệch giữa mỗi số trong tập dữ liệu với giá trị trung bình, sau đó bình phương các
chênh lệch nhằm cho chúng mang giá trị dương và không triệt tiêu lẫn nhau. Cuối
cùng chia tổng số lượng quan sát trong tập dữ liệu.

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 33


CHƯƠNG 4

Trong đó: là phương sai, là giá trị mẫu thứ i, là giá trị trung bình
của các mẫu và n là số lượng mẫu.

Mô hình Simulink khảo sát bộ lọc Kalman:

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 34


CHƯƠNG 4

Hình 4.2: Mô hình mô phỏng khảo sát bộ lọc Kalman

Hình 4.3: So sánh tín hiệu trước và sau khi qua bộ lọc Kalman cho góc lệch

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 35


CHƯƠNG 4

Hình 4.4: So sánh tín hiệu trước và sau khi qua bộ lọc Kalman cho vị trí xe

Nhận xét: tín hiệu sau khi qua bộ lọc Kalman ổn định và bớt nhiễu đi rất
nhiều.

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 36


CHƯƠNG 5

CHƯƠNG 5: THIẾT KẾ MÔ PHỎNG BỘ ĐIỀU KHIỂN


LQG CHO HỆ XE CON LẮC NGƯỢC

5.1 Lý thuyết về bộ điều khiển LQR

Bản chất của bộ điều khiển tối ưu LQG là sự kết hợp giữa 2 bộ điều khiển
LQR và bộ lọc Kalman đó là bài toán điều khiển tối ưu toàn phương tuyến tính
và bài toán ước lượng trạng thái tối ưu.3615Equation Chapter (Next) Section 1

5.2 Thiết kế mô phỏng bộ điều khiển LQG cho hệ xe con lắc ngược

Ta có mô hình Simulink điều khiển tối ưu cho hệ xe con lắc ngược sau khi
bộ lọc Kalman như sau:

Hình 5.1: Mô hình mô phỏng điều khiển LQG cho hệ xe con lắc ngược

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 37


CHƯƠNG 5

Kết quả mô phỏng điều khiển LQG cho hệ xe con lắc ngược

Hình 5.2: Đáp ứng quá độ và năng lượng tiêu tổn khi dùng bộ điều khiển LQG

Nhận xét: Bộ lọc Kalman ước lượng trạng thái và lọc nhiễu, nhờ vậy mà đáp
ứng của hệ thống điều khiển LQG tốt hơn LQR trong trường hợp hệ thống có
nhiễu.

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 38


CHƯƠNG 6

CHƯƠNG 6: THIẾT KẾ BỘ ĐIỀU KHIỂN SLIDING


MODE CONTROL CHO HỆ XE CON LẮC NGƯỢC

6.1 Lý thuyết về bộ điều khiển trượt


Điều khiển chế độ trượt (Sliding Mode Control) là một kỹ thuật điều khiển
phi tuyến có các đặc tính đáng chú ý về độ chính xác, mạnh mẽ và dễ dàng điều
chỉnh và thực hiện. Sliding Mode System được thiết kế để chuyển các trạng thái
của hệ thống lên một bề mặt cụ thể trong không gian trạng thái, được gọi là bề
mặt trượt. Khi đạt đến bề mặt trượt, điều khiển chế độ trượt sẽ giữ các trạng thái
trên vùng xung quanh bề mặt trượt. Điều khiển chế độ trượt gồm hai phần. Phần
đầu tiên liên quan đến việc thiết kế mặt trượt sao cho chuyển động trượt thỏa mãn
các thông số kỹ thuật của thiết kế. Thứ hai là liên quan đến việc lựa chọn luật
điều khiển phù hợp với trạng thái hệ thống.3716Equation Chapter (Next) Section 1

Bước 1: Biểu diễn mối quan hệ vào ra của hệ xe con lắc ngược:

Từ mô hình toán học của con lắc ngược về dạng chuẩn:

38638\*
MERGEFORMAT (.)

Từ phương trình (1.27) ta đặt các biến trạng thái lần lượt là:

; ; và

Ta có:

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 39


CHƯƠNG 6

Từ đó ta có thể viết lại phương trình trên về dạng như sau:

với 39639\
* MERGEFORMAT (.)

Trong đó ta có:

Bước 2: Chọn bề mặt trượt cho hệ SIMO:

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 40


CHƯƠNG 6

Với và 40640\*
MERGEFORMAT (.)

Bước 3: Biểu thức điều khiển của bộ điều khiển trượt :

Chọn hàm lyapunov:

41641\* MERGEFORMAT (.)

42642\* MERGEFORMAT (.)

Trong đó:

Vì vậy ta chọn u điều khiển sao cho hàm theo tiêu


chuẩn ổn định lyapunov:

43643\* MERGEFORMAT (.)

Bước 4: Chọn bộ lọc thông thấp cho tín hiệu đầu vào:

6.2 Xây dựng mô hình mô phỏng bộ điều khiển trượt


Xây dựng bộ điều khiển trượt trên Matlab Simulink:

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 41


CHƯƠNG 6

Hình 6.1: Mô hình mô phỏng bộ điều khiển trượt

Chương trình điều khiển của Sliding Mode Controll:

function [U,s1,s2] = Sliding_Mode_Control(the,the_d,x,x_d)


%declaration
m = 0.2; % Trọng luong con lac kg
M = 1.2; % Trọng luong cua xe kg
l = 0.35; % Chieu dài con lac m
g = 9.81; % Gia toc trong truong m/s^2

lamda1 = 1.6;
lamda2 = 0.3;
lamda3 = 1;
lamda4 = 1;

% xu ly tin hieu bien cho vi tri


mx1 = M+m-m*cos(the)^2;
fx1 = (m*l*sin(the)*the_d^2-m*g*cos(the)*sin(the))/mx1;
gx1 = 1/mx1;
% xu ly tin hieu bien cho goc
mx2 = m*l*cos(the)^2-(M+m)*l;
fx2 = (-(M+m)*g*sin(the)+m*l*cos(the)*sin(the)*the_d)/mx2;
gx2 = cos(the)/mx2;

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 42


CHƯƠNG 6

% ham cho mat truot s


s1 = x + lamda1*x_d;
s2 = the + lamda2*the_d;
% ham cho ax va bx
ax = lamda1*sign(s1)*fx1+lamda3*sign(s2)*fx2+x_d*sign(s1)+
lamda3*the_d*sign(s2);
bx = lamda1*sign(s1)*gx1+lamda3*sign(s2)*gx2;
% tin hieu dieu khien u
U = (-lamda4-ax)/bx;
Cài đặt tín hiệu đầu vào thay đổi vị trí của xe từ 0(m) sang vị trí 1(m):

Hình 6.2: Tín hiệu đầu vào thay đổi vị trí con xe

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 43


CHƯƠNG 6

Vị trí xe đặt
1

0.8

0.6

0.4

0.2

0 10 20 30 40 50 60 70 80 90 100

Hình 6.3: Tín hiệu đầu vào tác động đến vị trí xe

Sau khi nhờ bộ điều khiển Sliding Mode Control thì sẽ được chia làm 2 giai
đoạn bàn đầu sẽ Reaching Mode bắt đầu đưa biến từ vị trí khởi đầu đi về phía
mặt trượt giai đoạn tiếp theo là Sliding Mode để tiến hành trượt trên mặt trượt.

Hình 6.4: Tín hiệu quan sát ở ngõ ra của hệ thống

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 44


CHƯƠNG 6

Hình 6.5: Quan sát sai số ở ngõ ra của hệ thống

6.3 Kết luận bộ điều khiển trượt


Tín hiệu ngõ ra vị trí gần như bám sát so với vị trí cân bằng nhưng cũng có
giao động nhẹ do tín hiệu điều khiển có xảy ra hiện tượng Chattering.

Tín hiệu ngõ ra vị trí cũng bám theo vị trí đặt nhưng khoảng thời gian để hệ
thống xác lập sẽ hơi lâu.

Tín hiệu điều khiển có xảy ra hiện tượng Chattering có thể ảnh hưởng đến
hệ thống về lâu về dài trong quá trình hoạt động nên tả cần phải giẩm bớt hiện
tượng Chattering trong hệ thống.

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 45


TÀI LIỆU THAM KHẢO

TÀI LIỆU THAM KHẢO

[1]. Huỳnh Thái Hoàng, Hệ thống điều khiển thông minh, Nhà xuất bản đại học
quốc gia Tp. Hồ Chí Minh, Tp. Hồ Chí Minh (2006).
[2]. Trần Đức Thiện, Bài giảng Nhận dạng và điều khiển hệ thống(Chương 6),
Tp. Hồ Chí Minh (2022).
[3]. Huỳnh Thái Hoàng, Bài giảng Điều khiển tối ưu, Tp. Hồ Chí Minh, 2011.
[4]. Nguyen Van Dong Hai, Nguyen Minh Tam, Mircea Ivanescu. A method of
sliding mode control of cart and pole system. Tạp Chí Phát Triển KH&CN (tập
18, Số 06-2015).
[5]. Dianwei Qian, Jianqiang Yi, and Dongbin Zhao, Hierarchical Sliding mode
control for a class of SIMO under-actuated systems, Journal of Control and
Cybernetics, Vol. 37, No. 1, (2008).

BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 46

You might also like