Download as pdf or txt
Download as pdf or txt
You are on page 1of 40

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

BÁO CÁO MÔN: CÁC PHƯƠNG PHÁP ĐIỀU KHIỂN TIÊN TIẾN

MÔ HÌNH CÂN BẰNG CON LẮC NGƯỢC QUAY ( ROTARY PENDULUM )

Giảng viên : TS. BÙI THANH LÂM

Sinh viên thực hiện : Nguyễn Hoàng Hiệp - 20021123

Lê Minh Hiếu - 20021130

Trần Quốc Việt - 20021211

Nguyễn Quang Minh - 20021162

Lê Trọng Tấn - 20021181

Nhóm : 14

Lớp : EMA3021E_20

HÀ NỘI – 2024
MỤC LỤC
ĐẶT VẤN ĐỀ ........................................................................................................................................ 3

NỘI DUNG ............................................................................................................................................ 5

CHƯƠNG 1: TỔNG QUAN ............................................................................................................. 5

1.1. Hệ con lắc ngược và bài toán điều khiển .............................................................................. 5

1.2. Đối tượng thực tế .................................................................................................................... 5

1.3. Mục đích và phương án điều khiển ...................................................................................... 6

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT................................................................................................. 8

2.1 Lý thuyết điều khiển tự động ................................................................................................. 8

2.2 Cơ sở kiến thức chung điều khiển tối ưu............................................................................. 11

2.3 Kết luận .................................................................................................................................. 13

CHƯƠNG 3: MÔ HÌNH TOÁN HỌC HỆ CON LẮC NGƯỢC QUAY .................................... 14

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

CHƯƠNG 4: THIẾT KẾ BỘ ĐIỀU KHIỂN ................................................................................ 23

4.1. Thiết kế bộ điều khiển Swing-up ........................................................................................ 23

4.2 Thiết kế bộ điều khiển LQR ................................................................................................. 25

CHƯƠNG 5. THIẾT KẾ PHẦN CỨNG VÀ HOÀN THIỆN SẢN PHẨM ............................... 27

5.1 Thiết kế phần cứng cho hệ thống ......................................................................................... 27

5.2 Lập trình ................................................................................................................................ 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 .............................................................. 39

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

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.

1.2. Đối tượng thực tế

Đố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

1.3. Mục đích và phương án điều khiển

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.

2.1 Lý thuyết điều khiển tự động


2.1.1 Khái niệm

Đ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.

Hệ thống đ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.

hình 2.1. Mô tả hệ thống điều khiển

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

2.1.2 Các nguyên tắc điều khiển

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:

Điều khiển bù nhiễu:

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.

Hình 2.2 Sơ đồ điều khiển bù nhiễu

Điều khiển san bằng sai lệch:

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

Điều khiển phối hợp:

Hình 2.4 Sơ đồ điều khiển phối hợp

Nguyên tắc điều khiển theo chương trình:

Tín hiệu ra thay đổi theo một hàm thời gian định trước.

Nguyên tắc điều khiển thích nghi:

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 đó.

Hình 2.5 Sơ đồ điều khiển thích nghi

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.

𝑥̇ = 𝐴𝑥 + 𝐵𝑢, → 𝑥 (0) = 𝑥 0 (2.1)

𝑦 = 𝐶𝑥 (2.2)
1 ∞
MinJ = ∫0 𝑥 𝑇 (2.3)
2

Sơ đồ thiết kế cần thiết:

Hình 2.16 Sơ đồ điều khiển phương pháp LQR

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

R là ma trận đối xứng 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

Tính K dùng phương trình Lyapunov, chọn hàm Lyapunov là J :


1 ∞ 1
𝑉(𝑥(𝑡)) = ∫𝑡 𝑥 𝑇 (𝑄 + 𝐾 𝑇 𝑅𝐾)𝑥𝑑𝑡 = 𝑥 𝑇 𝑃𝑥 (2.5)
2 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

Ma trận P thỏa phương trình Lyapunov:

(𝐴 − 𝐵𝐾 𝑇 )𝑃 + 𝑃(𝐴 − 𝑃𝐾) = −(𝑄 + 𝐾 𝑇 𝑅𝐾) (2.10)

2.2.2 Các bước giải phương trình tối ưu

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 ∂𝐾𝑖𝑗

Suy ra ma trận K, luật điều khiển u=-Kx (2.12)

Xét ổn định của ma trận A - BK

Nếu muốn điều chỉnh ngõ ra y=Cx ta chọn


1 ∞
𝐽 = ∫0 𝑥 𝑇 (𝐶 𝑇 𝑄𝐶 + 𝐾 𝑇 𝑅𝐾)𝑥𝑑𝑡 (2.13)
2

Đặt ГTГ, Г là ma trận vuông không suy biến

Phương tringh lyapunov viết lại là

[𝐴𝑇 − 𝐾 𝑇 𝐵𝑇 (𝐴𝑇 − 𝐾 𝑇 𝐵𝑇 )]𝑃 + 𝑃(𝐴 − 𝐵𝐾) + 𝑄 + 𝐾 𝑇 Г𝑇 ГK = 0

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 (ГT )−1 𝐵𝑇 𝑃 = 𝑅 −1 𝐵𝑇 𝑃 (2.16)

Phương trình lyapunov trở thành phương tình đại số Riccati;

𝐴𝑇 𝑃 + 𝑃𝐴 − 𝑃𝐵𝑅−1 𝐵𝑇 𝑃 + 𝑄 = 0 (2.17)

Trong phương trình trên không chứa K

 Đâ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

Các bước để tìm hồi tiếp K của LQR như sau:

• Lựa chọn thông số ma trận Q và R


• Giải phương trình Riccati cho P
• Tìm hồi tiếp biến trạng thái SVFP sử dụng:

𝐾 = 𝑅−1 𝐵𝑇 𝑃

• Thực thi trong MATLAB bằng hàm lqr (A, B, Q, R)


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

𝑢 = −𝐾𝑥 = −𝑅−1 𝐵𝑇 𝑃

2.3 Kết luận

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.

Hình 3.1 Mô hình hệ thống con lắc ngược quay

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

Hình 3.2 Sơ đồ mạch điện tương đương của động cơ DC

Trong đó:

Vin : là điện áp cấp cho động cơ V

Im: là cường độ dòng điện qua động cơ A

Rm : là điện trở của động cơ

Lm : là điện cảm của cuộn dây trong động cơ H

𝜀 : là sức điện động tạo ra trong động cơ có độ lớn 𝜀 = Km𝜃̇ V

Áp dụng định luật Kirchhoff 2 cho sơ đồ trên ta được:

Vin=VR+VL+Vemf
𝑑𝐼𝑚
=ImRm+Lm + 𝐾𝑚 𝜃̇𝑚
𝑑𝑡

Trong đó:

VR :điện áp giữa hai đầu điện trở Rm V

VL :điện áp giữa 2 đầu cuộn dây Lm V

Vemf : điện áp tạo ra trong roto V

Km :hằng số của động cơ Vs

𝜃̇m :là góc của motor rad


𝑇𝑚
Ta có 𝑇𝑚 = 𝐾ɸ𝐼𝑚 là momen của động cơ; đặt 𝐾ɸ = Km => 𝐼𝑚 =
𝐾𝑚

Giả sử ảnh hưởng của cuộn cảm Lm là không đáng kể


15
Ta có thể viết lại phương trình (1) như sau:

Ta có phương trình cân bằng moment trên trục động cơ:

𝑇𝑚 = 𝑇1 + 𝐵𝜃̇𝑚 + 𝐾𝑚 𝜃̈𝑚

Trong đó:

T1 : là moment tải quy đổi về trục động cơ.

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ơ.

Quy đổi momen động cơ về trục làm việc

Trong đó:

Kg là tỉ số truyền

ƞg là hiệu suất của cơ cấu

𝜃 là vị trí của trục tải

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

Hình 3.3: Mô hình toán học con lắc ngược futura

𝜃 - góc quay của con lắc

𝜏 - moment tác động vào trục của cánh tay

𝑚1 = 0.024 (kg) – khối lượng con lắc

𝑙1 = 0.101 (m) – chiều dài con lắc

𝑙𝑜 = 0.153(m) – khoảng cách từ trục cánh tay đến trục quay con lắc

𝐽𝑜 = 0.0044( 𝑘𝑔. 𝑚2 ) – moment quán tính của cánh tay

𝐽1 = 0.000217 ( 𝑘𝑔. 𝑚2 ) – moment quán tính của con lắc


𝑚
𝐶𝑜 = 0.003408 (kg- 2) - hệ số ma sát của trục quay cánh tay
𝑠

𝑚
𝐶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:

𝑥𝑏 = 𝑙𝑜 . cos(𝜃) + 𝑙1 sin(𝛼) . sin(𝜃)

𝑦𝑏 = 𝑙𝑜 . sin(𝜃) − 𝑙1 . sin(𝛼) . cos(𝜃) (1)

𝑧𝑏 = 𝑙1 . cos(𝛼)

Đạo hàm hai vế của (1) ta được


17
𝑥𝑏′ = −𝑙𝑜 sin(𝜃) . 𝜃 ′ + 𝑙1 . cos(𝛼 ) sin(𝜃) . 𝛼 ′ + 𝑙1 . sin(𝛼 ) . cos(𝜃) . 𝜃 ′

𝑦𝑏′ = 𝑙𝑜 . cos(𝜃) . 𝜃 ′ − 𝑙1 . cos(𝛼) . cos(𝜃) . 𝛼 ′ + 𝑙1 . sin(𝛼 ) . sin(𝜃) . 𝜃 ′

𝑧𝑏 = −𝑙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)

Động năng của hệ :

1
𝑊đ = . (𝐽 . (𝜃 ′ )2 + 𝐽1 . (𝛼 ′ )2 + 𝑚. 𝑣12 )
2 𝑜
(3.4)

Thay (3.3) vào (3.4) ta được :

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)

Từ (3.5) và (3.6) ta ó được công thức hàm Lagrange :

1
𝐿 = 𝑊đ − 𝑇 = . (𝐽 . (𝜃 ′ )2 + 𝐽1 . (𝛼 ′ )2 + 𝑚. (𝑙𝑜2 . (𝜃 ′ )2 + 𝑙12 . (sin(𝛼 ))2 . (𝜃 ′ )2 + 𝑙12 . (𝛼 ′ )2
2 𝑜
− 2𝑙𝑜 . 𝑙1 . cos(𝛼) . 𝛼 ′ . 𝜃 ′ ) − 𝑚. 𝑔. 𝑙1 . (cos(𝛼) − 1)

(3.7)

Gọi 𝜏 là moment tác dụng của động cơ.


18
∂ 𝜕𝐿 𝜕𝐿
Áp dụng công thức : 𝐹𝑖 = .( )− ta có hệ phương trình động lực học sau :
𝜕𝑡 𝜕𝜃′ 𝜕𝜃

𝜕 𝜕𝐿 𝜕𝐿
𝜏 − 𝑏𝑜 . 𝜃 ′ = . ( ′) −
𝜕𝑡 𝜕𝜃 𝜕𝜃
𝜕 𝜕𝐿 𝜕𝐿
−𝑏1 . 𝛼 ′ = . ( ′) −
𝜕𝑡 𝜕𝛼 𝜕𝛼

 𝜏 − 𝑏𝑜 . 𝜃 ′ = (𝐽𝑜 + 𝑚. 𝑙𝑜2 + 𝑚. 𝑙12 (sin2 (𝛼 )). (𝜃 ′ )2 − 𝑚. 𝑙𝑜 . 𝑙1 . cos(𝛼) . 𝛼 ′′ +


𝑚. 𝑙12 . sin(2. 𝛼) . 𝛼 ′ . 𝜃 ′ + 𝑚. 𝑙𝑜 . 𝑙1 . sin(𝛼 ) . (𝛼 ′ )2
1
−𝑏1 . 𝛼 ′ = −𝑚. 𝑙𝑜 . 𝑙1 . cos(𝛼) . 𝜃 ′′ + (𝐽1 + 𝑚. 𝑙12 ). 𝛼 ′′ − . 𝑚. 𝑙12 . sin(2. 𝛼) . (𝜃 ′ )2
2
− 𝑚. 𝑔. 𝑙1 . sin(𝛼)
(3.8)

Hệ phương trình (3.8) được viết dưới dạng:

𝛼 ′′ 𝛼′
𝑀 (1). ( ′′ ) + 𝑀 (2). ( ′ ) + 𝑀 (3) = 𝑇 (3.9)
𝜃 𝜃

Trong đó :

𝐽𝑜 + 𝑚1 𝑙𝑜2 + 𝑚1 𝑙12 sin2 (𝜃) −𝑚1 𝑙𝑜 𝑙1 cos(𝜃)


𝑀 (1) = ( )
−𝑚1 𝑙𝑜 𝑙1 cos(𝜃) 𝐽1 + 𝑚1 𝑙12

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 đó :

Tuyến tính hóa tại điểm làm việc :

Ta đặt biến trạng thái 𝑥 = [ 𝛼 𝛼 ′ 𝜃 𝜃 ′ ]𝑇

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

𝜕𝑓1 (𝛼,𝛼 ′ ,𝜃,𝜃′ ,𝜏) 𝜕𝑓2 (𝛼,𝛼′ ,𝜃,𝜃′ ,𝜏)


Trong đó: 𝑎1𝑖 = 𝑎2𝑖 =
𝜕𝑥𝑖 𝑥=0 𝜕𝑥𝑖 𝑥=0

𝜕𝑓1 (𝛼, 𝛼 ′ , 𝜃, 𝜃 ′ , 𝜏) 𝜕𝑓2 (𝛼, 𝛼 ′ , 𝜃, 𝜃 ′ , 𝜏)


𝑏1 = 𝑏1 =
𝜕𝜏 𝜏=0 𝜕𝜏 𝜏=0

20
Cụ thể:

3.2.3. Kết luận mô hình và mô phỏng trên Matlab-Simulink


Thay các tham số vào (3.10) và (3.11), ta được mô hình xấp xỉ tuyến tính của hệ tại lân
cận điểm cân bằng. Do bộ điều khiển cân bằng của ta chỉ hoạt động trong phạm vi lân cận
điểm cân bằng do đó ta có thể sử dụng mô hình tuyến tính để thiết kế bộ điều khiển thay vì
phải sử dụng mô hình phi tuyến. Trong nội dung bài tập này sẽ lựa chọn phương pháp điều
khiển LQR để thiết kế bộ điều khiển cân bằng.
Bộ điều khiển swing-up ta sẽ xây dựng trực tiếp từ công thức năng lượng của con lắc,
cũng không cần sử dụng tới mô hình phi tuyến của hệ. Phần tiếp theo sẽ đề cập đến nội dung
này.

Đ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

trong khối Switch là |𝛼 | ≤ 20o .

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

Các hàm f1(x) và f2(x) được lấy từ hệ phương trình (3.10).

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.

4.1. Thiết kế bộ điều khiển Swing-up


4.1.1. Cơ sơ lý thuyết

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:

Đạo hàm phương trình (4.1) ta được:

(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 (𝛼)

Thay (4.5) vào (4.4) ta được:

(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

xác định âm như sau:

(4.7)

Thật vậy, với 𝜏 như trên ta có:

(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:

𝜏 = −𝑘𝐸𝑠𝑖𝑔𝑛(𝛼̇ cos(𝛼)) (4.9)

Thay 𝜏 = kTiA ta được công thức tính iđk đưa về bộ điều khiển dòng như sau:

𝑖𝑑𝑘 = −𝑘𝑠𝑤 𝐸𝑠𝑖𝑔𝑛(𝛼̇ cos(𝛼)) (𝑘𝑠𝑤 > 0) (4.10)

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:

𝑖𝑑𝑘 = 𝑘𝑠𝑤 |𝛼 𝑛 |𝑠𝑖𝑔𝑛(cos(𝛼) 𝛼̇ ) (𝑘𝑠𝑤 > 0) (4.11)

4.1.2. Thiết kế và mô phỏng trên Matlab-Simulink

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.

Hình 4.1: Sơ đồ bộ điều khiển swing-up năng lượng trên Simulink

4.2 Thiết kế bộ điều khiển LQR

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.

Hình 5.2 : Sơ đồ các linh kiện của Arduino Mega 2560

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.

Hình 5.4 :Các chân interrupt trên arduino mega 2560

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.

MODE kiểu kích hoạt ngắt, bao gồm:

• 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

Hình 5.5: Modul điều khiển động cơ L289N

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

- Điện áp hoạt động: 5~30VDC

- Công suất tối đa: 25W 1 cầu

- Dòng tối đa cho mỗi cầu H là: 2A

- Mức điện áp logic: Low: 0.3V~1.5V, High: 2.3V~Vss

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

Hình 5.7: Nguồn

31
+) Thông số kỹ thuật

- Điện áp đầu vào: 220VAC

- Điện áp đầu ra: 12VDC

- Dòng tối đa: 1A

- Sử dụng để cấp nguồn trực tiếp cho mạch công suấ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

Ta sử dụng Bộ Mã Hóa Quay ( Encoder ) 400 Ppr LPD3806-400BM-G5

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ố.

Hình 5.8: Encoder 400 Ppr LPD3806-400BM-G5

+) Thông số kỹ thuật

• Loại encoder tương đối

• Tiêu chuẩn với cáp 2 m

• Hiệu suất: 600 xung / vòng

• Điện áp hoạt động: DC 5-24V

• Tốc độ cơ khí tối đa 5000 vòng / phút

• Tần số đáp ứng điện 20K / giây


32
• Tích hợp tốc độ 2000 vòng / phú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

Hình 5.9: cấu tạo của encoder


Cụ thể thì chúng bao gồm:

• 1 đĩa quay có khoét lỗ gắn vào trục động cơ.


• 1 đèn Led dùng làm nguồn phát sáng.
• 1 mắt thu quang điện được sắp xếp thẳng hàng.
• Bảng mạch điện giúp khuếch đại tín hiệu.

+) Nguyên lý hoạt động

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ơ.

Hình 5.10: Nguyên lý hoạt động của encoder tương đối

+) Xác định chiều quay

Hình 5.11: xác định chiều quay của encoder


Thông thường Encoder có 2 tín hiệu xung A và B giúp chúng ta xác định chiều quay
của động cơ. Tín hiệu khe Z là tín hiệu chỉ xuất ra khi động cơ quay được một vòng. Để xác
định chiều quay của động cơ. Các bạn xem hình 3 phía trên bên trái (hình hơi bé các bạn
thông cảm). Khi đèn LED phát tín hiệu. Hai pha A và B có nhiệm vụ thu tín hiệu. A và B sẽ

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

Ta lựa chọn sử dụng động cơ DC giảm tốc JBG37 Encoder 332RPM

Hình 5.12: động cơ DC JBG37 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:

Hình 5.13: Sơ đồ chân nối của mạch encoder SCX 555

1. Chân M1: Cấp điện áp 3-12VDC cho động cơ

2. Chân GND: Cấp nguồn 0VDC của encoder

3. Chân C1: Kênh trả xung A

4. Chân C2: Kênh trả xung B

5. Chân VCC: Cấp nguồn 3.3VDC của encoder

6. Chân M2: Cấp nguồn 0VDC cho động cơ

36
5.1.3 Sơ đồ đấu nối mạch

Hình 5.14: Sơ đồ mạch

• Encoder pendulum :

Pha A → pin 20 Arduino Mega 2560

Pha A → pin 21 Arduino Mega 2560

• Encoder DC Motor :

Pha A → pin 2 Arduino Mega 2560

Pha A → pin 3 Arduino Mega 2560

• Module L298N :

EN → pin 8 Arduino Mega 2560

IN1 → pin 9 Arduino Mega 2560

IN2 → pin 10 Arduino Mega 2560


5.2 Lập trình
Chương trình được viết trên phần mềm lập trình Arduino IDE

37
5.3 Sản phẩm hoàn thiện và chạy kiểm thử

Hình 5.15: Sản phẩm hoàn thiện

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

You might also like