Professional Documents
Culture Documents
BÁO CÁO NHÓM 14 - Cân Bằng Con Lắc Ngược Quay
BÁO CÁO NHÓM 14 - Cân Bằng Con Lắc Ngược Quay
BÁO CÁO MÔN: CÁC PHƯƠNG PHÁP ĐIỀU KHIỂN TIÊN TIẾN
Nhóm : 14
Lớp : EMA3021E_20
HÀ NỘI – 2024
MỤC LỤC
ĐẶT VẤN ĐỀ ........................................................................................................................................ 3
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT................................................................................................. 8
3.1 Giới thiệu sơ lược hệ thống con lắc ngược quay ................................................................. 14
3.2 Thiết lập mô hình toán học hệ thống con lắc ngược quay ................................................. 15
2
ĐẶT VẤN ĐỀ
Trong thời đại hiện đại, việc nghiên cứu và phát triển các hệ thống điều khiển đóng vai
trò quan trọng trong việc tối ưu hóa hiệu suất và đảm bảo tính ổn định của các thiết bị và công
nghệ. Trong lĩnh vực này, hệ con lắc ngược Furuta đóng vai trò một mô hình quan trọng để
khám phá và áp dụng các phương pháp điều khiển tiên tiến.
Mặc dù đã có nhiều nghiên cứu liên quan đến hệ con lắc ngược, nhưng vẫn còn nhiều
thách thức và tiềm năng để khám phá. Một số vấn đề cần được đặt ra và tìm hiểu bao gồm:
Tối ưu hóa hiệu suất điều khiển: Để đạt được hiệu suất tối ưu trong việc giữ thăng bằng
cho hệ con lắc ngược Furuta, cần tìm hiểu và áp dụng các phương pháp điều khiển tiên tiến
như điều khiển tối ưu, điều khiển dự báo, hoặc học sâu để cải thiện đáp ứng và độ chính xác
của hệ thống.
Ứng dụng trong robot và công nghệ tự động hóa: Hệ con lắc ngược Furuta có thể được
áp dụng trong các lĩnh vực như robot di chuyển bằng hai chân, robot công nghiệp và các hệ
thống tự động hóa khác. Nghiên cứu về cách tích hợp và tối ưu hóa hệ con lắc ngược trong
các ứng dụng này sẽ đóng góp quan trọng vào sự phát triển của công nghệ tự động hóa.
Ứng dụng trong y tế và phục hồi chức năng: Hệ con lắc ngược Furuta cũng có tiềm năng
trong lĩnh vực y tế và phục hồi chức năng. Việc nghiên cứu và phát triển các hệ thống điều
khiển dựa trên con lắc ngược có thể ứng dụng trong việc phục hồi chức năng cho các bệnh
nhân bị tàn tật hoặc mất một phần chức năng cơ thể.
Mở rộng khả năng đa nhiệm và đa nhiệm: Một hướng nghiên cứu thú vị là mở rộng khả
năng của hệ con lắc ngược Furuta để xử lý nhiều nhiệm vụ cùng một lúc hoặc đồng thời điều
khiển nhiều đối tượng. Việc phát triển các thuật toán và kiến trúc điều khiển cho phép hệ con
lắc ngược thực hiện nhiều tác vụ đa nhiệm có thể mang lại những ứng dụng tiềm năng trong
tự động hóa và công nghiệp.
Với những thách thức và tiềm năng nghiên cứu được đặt ra, việc tiếp tục khám phá và
áp dụng các phương pháp điều khiển tiên tiến cho hệ con lắc ngược Furuta sẽ đóng góp vào
sự phát triển của lĩnh vực điều khiển tự động và ứng dụng công nghệ trong cuộc sống hàng
ngày. Điều này cũng mở ra những cơ hội cho việc tìm hiểu và nghiên cứu các phương pháp
mới để giải quyết những thách thức hiện tại và khai thác tiềm năng của hệ con lắc ngược
Furuta.
3
Với mục tiêu thiết kế và điều khiển mô hình con lắc ngược Furuta, chúng ta có thể áp
dụng những kiến thức và kỹ năng đã học để tạo ra một hệ thống điều khiển hoàn chỉnh. Qua
quá trình này, chúng ta sẽ không chỉ nắm vững lý thuyết về điều khiển hệ thống mà còn có cơ
hội tìm hiểu và áp dụng những giải thuật điều khiển mới nhất.
Việc nghiên cứu và phát triển hệ con lắc ngược Furuta không chỉ mang tính chất lý
thuyết mà còn có ứng dụng thực tế rộng rãi. Các công nghệ điều khiển từ hệ con lắc ngược
có thể được áp dụng trong các lĩnh vực như robot, tự động hóa, y tế và nhiều lĩnh vực khác.
Điều này đảm bảo rằng công trình nghiên cứu của chúng ta sẽ có ý nghĩa và giá trị trong việc
đóng góp vào sự phát triển của xã hội và công nghệ.
Với việc tiếp cận đề tài này, chúng ta có cơ hội không chỉ làm quen với một hệ thống
điều khiển phức tạp mà còn thấy được ứng dụng của nó trong thực tế. Qua quá trình tìm hiểu,
thiết kế và kiểm nghiệm, chúng ta sẽ hiểu rõ hơn về tính phức tạp và thách thức của việc điều
khiển hệ thống, đồng thời nắm vững các phương pháp và công nghệ tiên tiến để áp dụng trong
các dự án và công việc tương lai.
4
NỘI DUNG
CHƯƠNG 1: TỔNG QUAN
1.1. Hệ con lắc ngược và bài toán điều khiển
Có hai hệ con lắc ngược thường được sử dụng để nghiên cứu là hệ xe con lắc ngược và
hệ con lắc ngược quay (con lắc ngược Furuta).
Hình 1.1: Mô hình hệ xe con lắc ngược và con lắc ngược quay
Hai hệ này cơ bản khác nhau ở cơ cấu chấp hành để tạo ra chuyển động cho con lắc: hệ
xe con lắc ngược thì là chuyển động chạy ngang của xe, còn ở hệ con lắc ngược quay thì là
chuyển động quay của động cơ đặt thẳng đứng. Phần chung của cả hai hệ là một thanh cứng
(con lắc) được gắn một đầu vào trục quay linh hoạt.
Bài toán đặt ra là điều khiển cơ cấu chấp hành để tạo chuyển động cho con lắc, sao cho
đưa được con lắc từ vị trí ban đầu thẳng đứng hướng xuống dưới đến được vị trí cân bằng trên
là vị trí thẳng đứng hướng lên, đồng thời phải giữ được nó ổn định tại đó dù có ngoại lực hay
nhiễu tác động.
Đối tượng được nghiên cứu trong đồ án này là hệ con lắc ngược quay (con lắc ngược
Furuta). Với cơ cấu cơ khí như hình 1.2, thiết bị chấp hành tạo chuyển động quay là một động
cơ DC, thiết bị đo bao gồm 2 encoder để xác định góc quay động cơ và góc quay con lắc.
5
Hình 1.2: Mô hình thực tế hệ con lắc ngược Furuta
Từ mô tả bài toán ở mục 1.1, mục đích của hệ thống điều khiển con lắc ngược là giải
quyết hai bài toán chính: điều khiển swing-up và điều khiển cân bằng.
Bài toán điều khiển swing-up: Bài toán này nhằm đưa con lắc từ vị trí ban đầu (thẳng
đứng hướng xuống) lên vùng lân cận vị trí cân bằng trên. Trong giai đoạn này, bộ điều khiển
swing-up sẽ hoạt động để tạo ra chuyển động dao động của con lắc. Bằng cách áp dụng các
phương pháp điều khiển phù hợp, bộ điều khiển swing-up sẽ truyền năng lượng vào con lắc
để nó tiến dần từ vị trí ban đầu và tăng tốc độ lên đến khi đạt được vùng lân cận vị trí cân
bằng trên.
Bài toán điều khiển cân bằng: Sau khi con lắc đã được đưa lên vùng lân cận vị trí cân
bằng trên, bài toán tiếp theo là duy trì hệ thống ổn định xung quanh vị trí cân bằng, bất chấp
tác động của các lực ngoại vi. Trong giai đoạn này, bộ điều khiển cân bằng sẽ hoạt động để
duy trì con lắc ở vị trí cân bằng và ổn định nó. Bằng cách đo lường góc nghiêng của con lắc
6
và áp dụng các phương pháp điều khiển phù hợp, bộ điều khiển cân bằng sẽ tạo ra các tín hiệu
điều khiển để điều chỉnh momen động cơ và duy trì sự ổn định của con lắc.
Với cấu trúc này, hệ thống điều khiển con lắc ngược sẽ hoạt động theo quy trình sau:
Ban đầu, con lắc ở vị trí thẳng đứng hướng xuống. Khi hệ thống được khởi động, bộ điều
khiển swing-up sẽ hoạt động để tạo ra chuyển động dao động và đưa con lắc lên gần vị trí cân
bằng trên. Khi con lắc đạt đến vùng lân cận vị trí cân bằng trên, bộ điều khiển swing-up ngừng
hoạt động và bộ điều khiển cân bằng bắt đầu hoạt động để duy trì con lắc ở vị trí cân bằng và
ổn định nó trong suốt quá trình hoạt động.
Do đó, cấu trúc hệ thống điều khiển con lắc ngược bao gồm hai bộ điều khiển riêng biệt:
bộ điều khiển swing-up và bộ điều khiển cân bằng. Hai bộ điều khiển này sẽ hoạt động theo
thứ tự khác nhau để đạt được mục tiêu điều khiển của hệ thống.
7
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
Trong những năm gần đây, lý thuyết điều khiển hiện đại được sử dụng rất phổ biến trong
công nghiệp. Giải thuật điều khiển LQR có những ưu điểm về tính phi tuyến, tính ổn định và
bền vững vốn có của nó đối với các tác động nhiễu từ bên ngoài cũng như biến đổi trong
thông số của hệ thống. Ngày nay, chuyển mạch tần số cao cùng với vi xử lý mạch, kỹ thuật
điều khiển LQR ngày càng được áp dụng rộng rãi hơn.
Điều khiển
Điều khiển là quá trình thu tập thông tin, xử lí thông tin và tác động lên hệ thống theo
một quy luật hoặc một quá trình cho trước để đáp ứng hệ thống thỏa yêu cầu đặt ra. Điều
khiển tự động là quá trình điều khiển không có sự tác động trực tiếp của con người.
Điều khiển học là một bộ môn khoa học nghiên cứu nguyên tắc xây dựng các hệ điều khiển.
Tập hợp tất cả các thiết bị, kỹ thuật mà nhờ đó quá trình điều khiển được thực hiện gọi
là hệ thống điều khiển
Hệ thống điều khiển gồm ba thành phần cơ bản: Bộ điều khiển, đối tượng điều khiển và
thiết bị đo hình 2.1.
Trong đó :
r (t) : tín hiệu vào.
e (t) : tín hiệu sai lệch.
8
u (t) : tín hiệu điều khiển.
z (t) : tín hiệu nhiễu.
y (t) : tín hiệu ra.
yht (t) : tín hiệu hồi tiếp
Bộ điều khiển
Dùng tín hiệu sai lệch e để tạo tín hiệu điều khiển u , thuật toán để xác định u(t) gọi là
thuật toán điều khiển.
Bộ điều khiển liên tục có thể thực hiện bằng cơ cấu cơ khí, thiết bị khí nén, mạch điện
LRC , mạch khuyếch đại thuật toán.
Bộ điều khiển số thực chất là các chương trình phần mềm chạy trên vi xử lí hay máy
tính
Nguyên tắc giữ ổn định là nguyên tắc giữ tín hiệu ra bằng tín hiệu vào. Có các nguyên
tắc điều khiển giữ ổn định như sau:
Hệ thống lường trước nhiễu để tính toán, bù trừ sai số trước khi nhiễu ảnh hưởng đến
đối tượng. Vì không thể lường hết các nhiễu nên điều khiển bù nhiễu chất lượng không cao.
Tín hiệu ra y t được đo và phản hồi về so sánh với tín hiệu vào r(t) . Bộ điều khiển sử
dụng độ sai lệch vào - ra để tính toán tín hiệu điều khiển u(t) . Nguyên tắc này có thể triệt tiêu
các nhiễu không biết trước và không đo được. Tuy nhiên, nó điều khiển sau khi nhiễu đã thực
sự ảnh hưởng đến đối tượng.
9
Hình 2.3 Sơ đồ điều khiển cân bằng sai lệch
Tín hiệu ra thay đổi theo một hàm thời gian định trước.
Khi cần điều khiển các đối tượng phức tạp, có thông số dễ bị thay đổi, hoặc nhiều đối
tượng đồng thời mà phải đảm bảo cho một tín hiệu có giá trị cực trị, hay một chỉ tiêu tối ưu
nào đó.
10
2.2 Cơ sở kiến thức chung điều khiển tối ưu
2.2.1 Điều khiển tối ưu
Một hệ điều khiển được thiết kế ở chế độ làm việc tốt nhất là hệ luôn ở trạng thái tối ưu
theo một tiêu chuẩn chất lượng nào đó (đạt được giá trị cực trị). Trạng thái tối ưu có đạt được
hay không tùy thuộc vào yêu cầu chất lượng đặt ra, vào sự hiểu biết về đối tượng và các tác
động lên đối tượng, vào điều kiện làm việc của hệ điều khiển.
Khảo sát vấn đề duy trì trạng thái của hệ thống ở giá trị là 0, chống tác động nhiễu, đồng
thời với cực tiểu tiêu hao năng lượng.
𝑦 = 𝐶𝑥 (2.2)
1 ∞
MinJ = ∫0 𝑥 𝑇 (2.3)
2
Trong đó:
Q là ma trận đối xứng xác định dương hay bán xác định dương, thường là ma trận chéo
Chọn luật điều khiển hồi tiếp trạng thái u Kx , K là hằng số, thay vào biểu thức của J :
1 ∞
𝐽 = ∫𝑡 𝑥 𝑇 (𝑄 + 𝐾 𝑇 𝑅𝐾)𝑥𝑑𝑡 (2.4)
2
𝑉(𝑥(0)) = 𝐽 = 𝑥 𝑇 (0)𝑃𝑥(0)
11
Đạo hàm theo thời gian:
1 ∞
𝑉̇(𝑥) = 𝑥 (𝑄 + 𝐾 𝑇 𝑅𝐾)𝑥 | (2.6)
2 𝑡
1 1
= 𝑥 𝑇 (∞)[𝑄 + 𝐾 𝑇 𝑅𝐾)𝑥 (∞) − 𝑥^𝑇(𝑡)](𝑄 + 𝐾 𝑇 𝑅𝐾)𝑥(𝑡)
2 2
Giả sử chọn K để hệ ổn định x(∞)→ 0
1
𝑉̇(𝑥) = − 𝑥 𝑇 (𝑡 )(𝑄 + 𝐾 𝑇 𝑅𝐾)𝑥(𝑡) (2.7)
2
Mặc khác:
1 1
𝑉̇(𝑥) = (𝑥̇ 𝑇 𝑃𝑥 + 𝑥 𝑇 𝑃𝑥̇ ) = 𝑥 𝑇 [(𝐴 − 𝐵𝐾 𝑇 )𝑝 + 𝑃(𝐴 − 𝑃𝐾)]𝑥 (2.8)
2 2
Suy ra:
1 1
𝑥 𝑇 [(𝐴 − 𝐵𝐾 𝑇 )𝑃 + 𝑃(𝐴 − 𝑃𝐾)𝑥 = − 𝑥 𝑇 (𝑡 )(𝑄 + 𝐾 𝑇 𝑅𝐾)𝑥(𝑡) (2.9)
2 2
Giải phương trình Lyapunov ta được các phần tử của ma trận P theo các phần tử của ma
trận K chưa biết.
1
Khi đó: 𝐽 = 𝑉𝑥 (0) = 𝑥 𝑇 (0)𝑃𝑥 (0) là hàm theo các phần tử của ma trận K
2
∂P ∂J ∂J
Để J cực tiểu ta giải phương trình: ℎ𝑎𝑦 =0 (2.11)
∂K ∂K ∂𝐾𝑖𝑗
12
𝐴𝑇 𝑃 + 𝑃𝐴 + [ГK − (ГT )−1 𝐵𝑇 𝑃]𝑇 [ГK − (ГT )−1 𝐵𝑇 𝑃] − 𝑃𝐵𝑅 −1 𝐵𝑇 𝑃 + 𝑄 = 0
(2.14)
∂J
Lấy đạo hàm phương tình theo kij và dùng tính chất =0
∂𝐾𝑖𝑗
Ta suy ra:
∂J
= [ГK − (ГT )−1 𝐵𝑇 𝑃]𝑇 [ГK − (ГT )−1 𝐵𝑇 𝑃] = 0 (2.15)
∂𝐾𝑖𝑗
−1
Cực tiểu xảy ra khi số hạng trong ngoặc = 0 hay: ГK = ГT 𝐵𝑇 𝑃
𝐴𝑇 𝑃 + 𝑃𝐴 − 𝑃𝐵𝑅−1 𝐵𝑇 𝑃 + 𝑄 = 0 (2.17)
Đây là kết quả rất quan trọng trong lý thuyết điều khiển hiện đại. Phương trình (2.17)
là phương trình đại số Riccati
𝐾 = 𝑅−1 𝐵𝑇 𝑃
𝑢 = −𝐾𝑥 = −𝑅−1 𝐵𝑇 𝑃
Chương 2 đã trình bày cơ sở lý thuyết để phục vụ cho việc thiết kế bộ điều khiển LQR
. Trong chương tiếp theo, trình bày mô hình toán học của hệ con lắc ngược quay.
13
CHƯƠNG 3: MÔ HÌNH TOÁN HỌC HỆ CON LẮC NGƯỢC QUAY
3.1 Giới thiệu sơ lược hệ thống con lắc ngược quay
Hệ thống con lắc ngược là một vấn đề điều khiển cổ điển nó được sử dụng trong các
trường đại học trên khắp thế giới, nó là mô hình phù hợp để kiểm tra các thuật toán điều khiển
phi tuyến cao.
Mô hình hệ thống con lắc ngược quay gồm hai phần: cánh tay, gắn vào động cơ DC
quay quanh trục thẳng đứng và con lắc (khớp quay tự do), gắn vào trục encoder ở cuối cánh
tay tự do, trong mặt phẳng vuông góc với cánh tay.
Con lắc ngược là hệ thống không ổn định nó luôn ở vị trí buông thõng ngã xuống, trừ
khi có lực tác động thích hợp vào cánh tay. Bài toán đặt ra là điều khiển cánh tay để swing-
up sao cho con lắc ổn định ở vị trí cân bằng thẳng đứng hướng lên trên.
Mô hình mô phỏng được dựa theo phương trình động lực học của hệ thống con lắc
ngược quay. Đồng thời bộ điều khiển cơ bản cũng được trình bày trong phần tiếp theo của
chương này.
Mục đích của việc trình bày con lắc ngược trong mô phỏng là để kiểm chứng lại lý
thuyết từ các mô hình toán. Từ đây có để đánh giá được sự ổn định của hệ thống con lắc
ngược quay trong lí thuyết.
14
3.2 Thiết lập mô hình toán học hệ thống con lắc ngược quay
3.2.1 Động cơ DC
Trong đó:
Vin=VR+VL+Vemf
𝑑𝐼𝑚
=ImRm+Lm + 𝐾𝑚 𝜃̇𝑚
𝑑𝑡
Trong đó:
𝑇𝑚 = 𝑇1 + 𝐵𝜃̇𝑚 + 𝐾𝑚 𝜃̈𝑚
Trong đó:
B : là hệ số ma sát.
J : là momen quán tính động cơ và của hệ thống quy đổi về trục động cơ.
Trong đó:
Kg là tỉ số truyền
Ta có momen tải quy đổi về trục làm việc, giả sử bỏ qua ma sát ta được:
𝑇1 = 𝑇𝑚 𝐾𝑔 ƞ𝑔 − 𝐽𝑚 𝐾𝑔2 ƞ𝑔 𝜃̈
16
3.2.2 Mô hình toán học con lắc ngược rotary
𝑙𝑜 = 0.153(m) – khoảng cách từ trục cánh tay đến trục quay con lắc
𝑚
𝐶1 = 0.000158 (kg- 2) – hệ số ma sát trục quay con lắc
𝑠
𝑚
g = 9.81 ( 2 ) – gia tốc trọng trường.
𝑠
Giả sử trọng lực của con lắc đặt tại điểm giữa B. Tọa độ khối tâm của con lắc:
𝑧𝑏 = 𝑙1 . cos(𝛼)
𝑧𝑏 = −𝑙1 . cos(𝛼)
(3.1)
Suy ra được vận tốc của khối tâm B của con lắc :
𝑣12 = (𝑥 ′ )2 + (𝑦 ′ )2 + (𝑧 ′ )2
= 𝑙𝑜2 . (𝜃 ′ )2 + 𝑙12 . (sin(𝛼))2 . (𝜃 ′ )2 + 𝑙12 . (𝛼 ′ )2 − 2𝑙𝑜 . 𝑙1 . cos(𝛼) . 𝛼 ′ . 𝜃 ′
(3.3)
1
𝑊đ = . (𝐽 . (𝜃 ′ )2 + 𝐽1 . (𝛼 ′ )2 + 𝑚. 𝑣12 )
2 𝑜
(3.4)
1
𝑊đ = . (𝐽 . (𝜃 ′ )2 + 𝐽1 . (𝛼 ′ )2 + 𝑚. (𝑙𝑜2 . (𝜃 ′ )2 + 𝑙12 . (sin(𝛼))2 . (𝜃 ′ )2 + 𝑙12 . (𝛼 ′ )2
2 𝑜
− 2𝑙𝑜 . 𝑙1 . cos(𝛼) . 𝛼 ′ . 𝜃 ′ )
(3.5)
Chọn mốc thế tại T = 0 tại vị trí cao nhất của con lắc ngược. Ta có thế năng của hệ được
tính như sau :
𝑇 = 𝑚. 𝑔. 𝑙1 . (cos(𝛼) − 1)
(3.6)
1
𝐿 = 𝑊đ − 𝑇 = . (𝐽 . (𝜃 ′ )2 + 𝐽1 . (𝛼 ′ )2 + 𝑚. (𝑙𝑜2 . (𝜃 ′ )2 + 𝑙12 . (sin(𝛼 ))2 . (𝜃 ′ )2 + 𝑙12 . (𝛼 ′ )2
2 𝑜
− 2𝑙𝑜 . 𝑙1 . cos(𝛼) . 𝛼 ′ . 𝜃 ′ ) − 𝑚. 𝑔. 𝑙1 . (cos(𝛼) − 1)
(3.7)
𝜕 𝜕𝐿 𝜕𝐿
𝜏 − 𝑏𝑜 . 𝜃 ′ = . ( ′) −
𝜕𝑡 𝜕𝜃 𝜕𝜃
𝜕 𝜕𝐿 𝜕𝐿
−𝑏1 . 𝛼 ′ = . ( ′) −
𝜕𝑡 𝜕𝛼 𝜕𝛼
𝛼 ′′ 𝛼′
𝑀 (1). ( ′′ ) + 𝑀 (2). ( ′ ) + 𝑀 (3) = 𝑇 (3.9)
𝜃 𝜃
Trong đó :
1 1
𝐶𝑜 + 𝑚1 𝑙12 𝜃 ′ . sin(2𝜃) 𝑚1 𝑙𝑜 𝑙1 𝜃 ′ sin(𝜃) + 𝑚1 𝑙12 𝛼 ′ sin(2𝜃)
𝑀 (2) = ( 2 2 )
1
− 𝑚1 𝑙12 𝛼 ′ sin(2𝜃) 𝐶1
2
0
𝑀 (3) = ( )
−𝑚1 𝑔𝑙1 sin (𝜃)
𝜏
𝑇=( )
0
Từ (2.9) ta có mô hình phi tuyến của hệ con lắc ngược Furuta như sau:
(3.10)
19
Trong đó :
Tại điểm cân bằng của con lắc sẽ có 𝑥 = 0 = [ 0 0 0 0]𝑇 . Mô hình tuyến tính của
hệ quanh vị trí cân bằng có dạng :
𝑥 ′ = 𝐴𝑥 + 𝐵𝜏
Hay:
𝛼′ 0 1 0 0 𝛼 0
′
𝛼 ′′ 𝑎 𝑎12 𝑎13 𝑎14 𝛼 𝑏
( ′ ) = ( 11 ) ( ) + ( 1 ) 𝜏 (3.11)
𝜃 0 0 0 1 𝜃 0
𝜃 ′′ 𝑎21 𝑎22 𝑎23 𝑎24 𝜃′ 𝑏2
20
Cụ thể:
Điều kiện chuyển hoạt động của bộ điều khiển từ swing-up sang điều khiển cân bằng
Mô hình đối tượng con lắc (trong khối Pendulum System) được thể hiện như sau:
21
Hình 3.5: Sơ đồ mô tả hệ con lắc ngược trên Simulink
22
CHƯƠNG 4: THIẾT KẾ BỘ ĐIỀU KHIỂN
Con lắc ngược quay là hệ thống có tính phi tuyến cao, tuy nhiên ở vị trí cân bằng, với
góc lệch nhỏ ta tuyến tính hóa mô hình phi tuyến để có được mô hình tuyến tính, từ đó áp
dụng phương pháp điều khiển LQR để khảo sát đáp ứng của hệ thống con lắc tuyến tính khi
có bộ điều khiển.
Quá trình cân bằng con lắc ngược Futura bao gồm hai giai đoạn quan trọng. Giai đoạn
đầu tiên là việc phá vỡ sự cân bằng bền của con lắc khi nó ở vị trí cân bằng dưới, được thực
hiện bằng bộ điều khiển swing-up. Sau đó, khi con lắc tiến gần đến vị trí cân bằng, chúng ta
chuyển sang giai đoạn thứ hai, sử dụng phương trình tuyến tính để cân bằng con lắc bằng bộ
điều khiển LQR. Vì vậy, trong chương này, chúng ta sẽ tiến hành thiết kế, lập trình và mô
phỏng hai bộ điều khiển này trên MATLAB Simulink.
Nhiệm vụ của bộ điều khiển swing-up là phá vỡ sự cân bằng bền của con lắc ở vị trí cân
bằng dưới và nhanh chóng đưa con lắc tới được vùng lân cận vị trí cân bằng phía trên
( ( - 20o,20o )). Ta có công thức tính năng lượng của con lắc khi lệch một góc và tốc độ
góc ̇ là:
1
𝐸 = 𝐽𝑎̇ 2 + 𝑚𝑔𝑙1 (cos(𝛼 ) − 1) (4.1)
2
Với J là momen quán tính của con lắc so với tâm quay(𝐽 = 𝐽1 + 𝑚𝑙12 )
Ở đây ta chọn mốc tính thế năng là vị trí cao nhất của con lắc (vị trí cân bằng phía trên).
Khi con lắc đứng yên tại vị trí cân bằng trên thì năng lượng khi đó sẽ là Eo = 0. Tại thời điểm
ban đầu, con lắc ở vị trí cân bằng dưới và chưa chuyển động, khi đó nó có năng lượng thấp
nhất là Emin = -2mgl1. Nguyên tắc hoạt động của bộ điều khiển swing-up là: dựa trên năng
lượng hiện tại của con lắc, tính toán đưa tín hiệu điều khiển ra động cơ một cách hợp lý, đúng
cả về độ lớn và hướng tác động, qua đó bổ sung năng lượng cho con lắc để nó từ Emin đạt
được mức năng lượng Eo. Ta sẽ xây dựng công thức tính bộ điều khiển như sau:
(4.2)
Kết hợp (4.2) với (3.8) ta được:
(4.3)
23
Thành phần ma sát nhỏ nên ta có thể bỏ qua trong công thức (4.3) để có:
(4.4)
Mặt khác ta có phương trình động học của momen đầu trục động cơ:
(4.5)
Trong đó JƩ là tổng momen quán tính của hệ so với trục quay động cơ (bao gồm cả
momen của hệ tay quay và con lắc): 𝐽Ʃ = 𝐽0 + 𝑚𝑙02 + 𝑚𝑙12 sin2 (𝛼)
(4.6)
1
Chọn hàm ứng viên Lyapunov: 𝑉 = 𝐸 2 . Ta chọn được tín hiệu điều khiển 𝜏 để 𝑉̇ bán
2
(4.7)
(4.8)
Chú ý hàm sign() ở đây ta quy ước khác một chút với định nghĩa: sign(0) = 1
Ta thấy hàm 𝑉̇ bán xác định âm và có thể bằng 0 tại vị trí 𝛼 = ±90𝑜 , tuy nhiên thực tế
con lắc không thể duy trì ổn định ở vị trí này, do đó tín hiệu điều khiển luôn có xu hướng đưa
hệ về vị trí cân bằng (E=0). Xét thấy khi chạy thực tế thành phần 𝜏2 trong (4.8) thường rất
nhỏ so với 𝜏1 , do đó ta có thể sử dụng công thức điều khiển đơn giản như sau:
Thay 𝜏 = kTiA ta được công thức tính iđk đưa về bộ điều khiển dòng như sau:
Nhận thấy khi con lắc dao động, năng lượng E của con lắc sẽ tỷ lệ với độ lớn của góc 𝛼,
tại mỗi chu kỳ, lúc đến được vị trí cao nhất là khi con lắc tích trữ được năng lượng lớn nhất.
24
Do đó ta có thể thay thế E ở công thức (4.10) bởi hàm |𝛼 𝑛 |mà không làm thay đổi nguyên tắc
hoạt động của bộ điều khiển, chỉ khác hệ số ksw sẽ được thay đổi cho phù hợp. Chi tiết hơn
về phương pháp này có thể xem tại tài liệu tham khảo [7]. Cụ thể tín hiệu điều khiển sẽ được
tính theo công thức mới như sau:
Sử dụng công thức (4.1) và (4.10) ta tính được tín hiệu điều khiển của bộ điều khiển
swing-up theo phương pháp năng lượng. Sơ đồ bộ điều khiển trong khối Swing-up Controller
sẽ có dạng như hình 4.1.
Từ phương trình (3.10) ta đạo hàm bằng matlab rồi thay số bằng các thông số đã cho
của hệ kết hợp với việc tuyến tính hóa tại điểm làm việc [𝑥] = [0 0 0 0]𝑇.Ta tính được ma trận
A và B có giá trị như sau:
0 1 0 0
0 −0,7607 1.1715 −0,0121
𝐴=( )
0 0 0 1
0 −0,2609 48,466 −0,5004
0
223,209
𝐵=( )
0
76,5521
Chọn Q và R:
25
100 0 0 0
𝑄=( 0 1 0 0 )
0 0 1 0
0 0 0 10
R=1
Giả sử ban đầu ta có các biến trạng thái: Ban đầu ta để góc lệch 𝛼 = 0.1 và góc quay của
của thanh con lắc 𝜃 = -0.02 thì ta có được kết quả mô phỏng con lắc ngược khi ở gần vị trí
cân bằng như sau :
Hình 4.2: Mô phỏng đáp ứng của các biến trạng thái
26
CHƯƠNG 5. THIẾT KẾ PHẦN CỨNG VÀ HOÀN THIỆN SẢN PHẨM
5.1 Thiết kế phần cứng cho hệ thống
5.1.1 Mô hình tổng quát
Hình 5.1: Sơ đồ khối cấu tạo thiết bị điều khiển cho hệ con lắc ngược
Chức năng từng phần:
- MCU: nhận tín hiệu đưa về từ các cảm biến, tính toán tín hiệu điều khiển theo bộ điều khiển
được cài đặt, đưa tín hiệu đó ra mạch công suất và truyền thông với máy tính.
- DC Motor: là thiết bị chấp hành, tạo chuyển động cho con lắc.
- Motor Driver: chuyển tín hiệu điều khiển thành mức điện áp tương ứng đưa vào động cơ.
- Motor Encoder: đo vị trí góc và tốc độ góc của trục động cơ.
- Pendulum Encoder: đo vị trí góc và tốc độ góc của con lắc.
- Protection Circuit: đảm bảo chức năng an toàn, tự động ngắt nguồn cấp 24V khi có sự cố
khiến dòng qua động cơ tăng quá ngưỡng cho phép.
- Power Supply: trên hình 5.1 tuy ta không thể hiện đường nối từ khối này đến các khối còn
lại nhưng có thể hiểu rằng nó tạo ra các điện áp hoạt động khác nhau cung cấp cho mỗi khối
trên, bao gồm 12V, 5V, 3.3V.
27
5.1.2. Lựa chọn các linh kiện chính
❖ MCU
Arduino Mega 2560 là một vi điều khiển bằng cách sử dụng Atmega 2560 gồm :
• 54 chân digital (15 có thể được sử dụng như các chân PWM)
• 16 đầu vào analog,
• 4 UARTs (cổng nối tiếp phần cứng),
• 1 thạch anh 16 MHz,
• 1 cổng kết nối USB,
• 1 jack cắm điện,
• 1 đầu ICSP,
• 1 nút reset.
Nó chứa tất cả mọi thứ cần thiết để hỗ trợ các vi điều khiển.
Arduino Mega 2560 khác với tất cả các vi xử lý trước giờ vì không sử dụng FTDI chip
điều khiển chuyển tín hiệu từ USB để xử lý. Thay vào đó, nó sử dụng ATmega16U2 lập
trình như là một công cụ chuyển đổi tín hiệu từ USB. Ngoài ra, Arduino Mega 2560 cơ bản
vẫn giống Arduino Uno R3, chỉ khác số lượng chân và nhiều tính năng mạnh mẽ hơn, nên
các bạn vẫn có thể lập trình cho con vi điều khiển này bằng chương trình lập trình cho
Arduino Uno R3.
28
Hình 5.3 : Sơ đồ chân board Arduino Mega 2560.
Trong board mạch arduino mega ta cần phải chú ý đến các chân ngắt (interrupt) vì đây
sẽ là những chân dùng để giao tiếp trực tiếp với các encoder.
Ngắt (interrupt) là những lời gọi hàm tự động khi hệ thống sinh ra một sự kiện. Những
sự kiện này được nhà sản xuất vi điều khiển thiết lập bằng phần cứng và được cấu hình trong
phần mềm bằng những tên gọi cố định.
• LOW: kích hoạt liên tục khi trạng thái chân digital có mức thấp
• HIGH: kích hoạt liên tục khi trạng thái chân digital có mức cao.
• RISING: kích hoạt khi trạng thái của chân digital chuyển từ mức điện áp thấp
sang mức điện áp cao.
• FALLING: kích hoạt khi trạng thái của chân digital chuyển từ mức điện áp cao
sang mức điện áp thấp.
29
❖ Mạch công suất
Ta sử dụng module điều khiển động cơ L289N để điều khiển động cơ DC.
Thông số kỹ thuật:
- IC chính: L298
Mạch công suất sử dụng L298N để điều khiển động cơ DC với mạch cầu H sử dụng 4
diode 1N5822.
Mạch cầu H có thể đảo chiều dòng điện qua tải nên thế nó hay được dùng trong các
mạch điều khiển động cơ DC và các mạch băm áp.
➢ Ưu và nhược điểm của cầu H :
Ưu điểm : Mạch cầu H làm cho mạch trở nên đơn giản và tiết kiệm chi phí.
Nhược điểm : Nếu như mạch điều khiển thì cùng bật 2 công tắc ở cùng 1 nữa cầu thì sẽ
mạch động lực bị ngắn mạch nguồn. Nếu hiện tượng xảy ra trong 1 thời gian ngắn (quá độ)
sẽ xuất hiện dòng trùng dẫn qua van công suất làm tăng công suất tiêu tán trên van. Nếu thời
gian trùng dẫn đủ dài, dòng trùng dẫn sẽ lớn làm cháy van công suất. Tức là mạch không có
bảo vệ dòng và áp.
Thông số IC L298N : IC L298N là mạch tích hợp đơn chip gồm 15 chân được tích hợp
2 mạch cầu H có khả năng hoạt động ở điện áp cao, dòng cao. Điện áp cấp lên đến 46V, dòng
chịu đựng lên đến 4A, chức năng bảo vệ quá nhiệt, điện áp logic từ 1.5V trở xuống
30
Hình 5.6: Sơ đồ nguyên lý của mạch cầu H8
Việc điều khiển điện áp cấp cho động cơ được thực hiện bằng cách phát xung PWM từ
L298N. Bằng việc thay đổi độ rộng xung PWM, giá trị điện áp trung bình đặt lên đối tượng
điều khiển sẽ thay đổi theo. Tín hiệu xung PWM thông qua mạch công suất L298N điều khiển
động cơ là mạch cầu H. Nguyên lý của mạch cầu H được mô tả bên dưới, giả sử, nếu Q3 và
Q2 đóng (Q1 và Q4 ngắt) thì động cơ quay theo chiều thuận và nếu Q1 và Q4 đóng (Q2 và
Q3 ngắt) thì động cơ sẽ quay theo chiều ngược lại.
Mạch cầu H chịu được dòng 10A và điều xung được 95%. Có ngõ vào điều xung PWM
và ngõ vào chọn chiều quay của động cơ.
❖ Power Supply
31
+) Thông số kỹ thuật
Ngoài ra nguồn điện cung cấp cho các thiết bị khác được lấy trực tiếp từ chân nguồn của
board mạch arduino mega 2560.
❖ Pendulum Encoder
Encoder hay còn gọi là Bộ mã hóa quay hoặc bộ mã hóa trục, là một thiết bị cơ điện
chuyển đổi vị trí góc hoặc chuyển động của trục hoặc trục thành tín hiệu đầu ra analog hoặc
kỹ thuật số.
+) Thông số kỹ thuật
• Kích thước: Encoder kích thước thân: φ38mm; trục φ6 × 13mm; trục nền:
Cao 5mm, φ20mm; cố định lỗ cho: vít M3
• Ba lỗ gắn trên vòng tròn 30, và ba lỗ gắn khác trên vòng tròn 28
Kết nối:
• Dây điện: Xanh lục = Pha A, trắng = pha B, màu đỏ = VCC, đen = GND.
• Chú ý: có thể phải gắn điện trở kéo lên 4k7-10k nếu như không nhận encoder
+) Cấu tạo
Khi đĩa bắt đầu quay quanh trục thì trên đĩa sẽ có các rãnh để tín hiệu quang chiếu qua.
Ánh sáng sẽ xuyên qua các rãnh, nếu không có rãnh thì ánh sáng sẽ bị cản trở không thể xuyên
qua. Các tín hiệu có/không người ta sẽ ghi nhận đèn LED có chiếu qua hay không.
Số lượng xung được đếm và tăng dần theo số lần tắt đèn. Cảm biến thu sáng bật tắt liên
tục sẽ tạo ra xung vuông. Sử dụng bộ mã hóa ghi lại số lượng xung và tần số xung. Tín hiệu
33
xung được gửi đến bộ xử lý trung tâm như bộ vi xử lý hoặc PLC,… Từ đó cho phép người
vận hành biết vị trí và tốc độ của động cơ.
34
tạo ra các xung vuông bật tắt theo trình tự. Sự chênh lệch tần số xung giữa A và B ta có thể
phân biệt được chiều quay của động cơ. Xem hình bên phải pha A có chu kỳ trước pha B. Ta
quy ước đó là chiều thuận và ngược lại.
❖ Motor Encoder
Động cơ DC giảm tốc JBG37 Encoder thường được sử dụng trong các ứng dụng cần
xác định tốc độ, vị trí, chiều quay của động cơ DC: Robot mê cung, robot xe hai bánh tự cân
bằng,… Động cơ DC giảm tốc JBG37 Encoder thực tế là động cơ DC JBG37 thường có gắn
thêm phần mạch Encoder SCX 555 để có thể trả xung về vi điều khiển giúp xác định vị trí,
vận tốc,… và thành Động cơ DC giảm tốc
Về cách điều khiển thì động cơ DC giảm tốc JBG37 Encoder sử dụng Driver như động
cơ DC thường để điều khiển công suất động cơ, tốc độ và đảo chiều: L298, L293,…, chỉ có
điểm khác biệt là có thêm phần encoder để có thể hồi tiếp (feedback) xung về Vi điều khiển,
từ đó vi điều khiển tác động lại động cơ qua mạch công suất sử dụng các thuật toán điều khiển
như PID,… để điều khiển tốc độ, vị trí,…
+) Thông số kỹ thuật:
• Điện áp sử dụng: 12VDC
• Đường kính: 37mm
• Tỷ số truyền 30:1 (động cơ quay 30 vòng, trục chính hộp số quay 1 vòng).
• Dòng không tải: 200mA
• Dòng điện tối đa khi tải: 5A
• Tốc độ không tải: 332RPM (332vòng/phút)
• Tốc độ tối đa khi có tải: 176RPM (176 vòng/phút)
35
• Thời điểm lực kéo định mức: 2,4kg.CM
• Lực mômen tối đa: 15kg.CM
• Chiều dài hộp số L: 22mm+
+) Sơ đồ chân nối của mạch encoder SCX 555:
36
5.1.3 Sơ đồ đấu nối mạch
• Encoder pendulum :
• Encoder DC Motor :
• Module L298N :
37
5.3 Sản phẩm hoàn thiện và chạy kiểm thử
38
CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Nhìn lại những kết quả đã đạt được trong quá trình làm bài tập lớn, chúng em nhận thấy
đã cơ bản đạt được những mục tiêu ban đầu đặt ra là thiết kế và xây dựng hoàn chỉnh một hệ
thống điều khiển cho mô hình con lắc ngược:
- Về mặt thiết bị: vận hành ổn định, tin cậy, thỏa mãn tốt các yêu cầu từ đo, truyền thông
đến điều khiển.
- Về mặt điều khiển: vận dụng thành công các kiến thức đã được học để thiết kế các bộ
điều khiển, tiến hành mô phỏng và chạy thực tế.
Từ những kết quả đã đạt được và qua quá trình nghiên cứu tài liệu khi thực hiện bài tập,
chúng em xin được đề xuất các hướng phát triển tiếp theo của sản phẩm này:
- Cải thiện tốt hơn nữa mạch đo dòng, có thể sử dụng phương án dùng điện trở shunt để
cho độ chính xác cao hơn.
- Đưa ra phương án lựa chọn các ma trận tối ưu cho bộ điều khiển LQR
- Phát triển bài toán không chỉ điều khiển ổn định góc còn lắc mà còn có thể đồng thời
điều khiển vị trí góc động cơ.
- Sử dụng thêm các giải thuật điều khiển khác như PID, điều khiển dự báo, điều khiển
trượt, điều khiển thích nghi… Thay vì xây dựng bộ điều khiển từ mô hình tuyến tính hóa thì
có thể xây dựng trực tiếp từ mô hình phi tuyến
Rất mong có thể nhận được nhiều lời đóng góp ý kiến của thầy cô và các bạn cho bài tập
của chúng em. Và mong rằng đề tài này của chúng em trong tương lai sẽ được phát triển tiếp
để hoàn thiện hơn nữa, với nhiều giải thuật điều khiển thú vị và tốt hơn nữa được đưa ra.
39
TÀI LIỆU THAM KHẢO
[1] Nguyễn Doãn Phước: Lý thuyết điều khiển tuyến tính. NXB Khoa học & Kỹ thuật, 2009.
[2] Nguyễn Doãn Phước: Tối ưu hóa trong điều khiển và điều khiển tối ưu. NXB Bách Khoa
Hà Nội, 2015.
[3] Nguyễn Doãn Phước: Điều khiển trượt cơ bản và trượt bậc cao. Seminar 21.2.2014
[4] Nguyễn Doãn Phước, Phan Xuân Minh, Hán Thành Trung: Lý thuyết điều khiển phi tuyến.
NXB Khoa học & Kỹ thuật, 2006.
[5] Nguyễn Phùng Quang: Matlab Simulink dành cho kỹ sư điều khiển tự động. NXB Khoa
học & Kỹ thuật, 2005.
[6] Andrew, C.H.; Robert, K.K.; Joao, L.A.: Furuta Pendulum. Department of Mechanical
Engineering, Massachusetts Institute of Technology, 2.151 Advanced System Dynamics &
Control .Fall 2013
[7] Pavol S., Boris R., Martin J., Michal S.: Swing up the Furuta pendulum and its stabilization
via model predictive control. Electrical Engineering, Vol. 64, No. 3, 152- 158, 2013.
[8] Navin, J.M.; K. Koteswara Rao; N. Sivakumaran: Swing up and Stabilization Control of
Rotary Inverted Pendulum. Preprints of the 10th IFAC International Symposium on
Dynamics and Control of Process Systems, December 18-20, 2013, Mumbai, India.
[9]. Astrom, K.J. and Furuta, K. (1996): Swinging up a pendulum by energy control. IFAC
13th World Congress, San Francisco
[10]. Hệ thống điều khiển thông minh Huỳnh Thái Hoàng
[11]. Yt: nguyen van dong hai
40