Xe Tu Can Bang.docx

  • Uploaded by: Huu-Khang Nguyen
  • 0
  • 0
  • October 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Xe Tu Can Bang.docx as PDF for free.

More details

  • Words: 7,259
  • Pages: 47
Đại học Bách Khoa Tp Hồ Chí Minh Khoa cơ Khí

Đồ án thiết kế hệ thống Cơ Điện Tử

Xe hai bánh tự cân bằng GVHD: Đoàn Thế Thảo

Sinh viên thực hiện: Nguyễn Bá An Cao Nhật Quang Lê Ngọc Thường

5/20/2013

20900014 20902087 20902718

Lời cám ơn.

Lời cám ơn. …Xin gửi lời cám ơn tới thầy Đoàn Thế Thảo đã tận tình hướng dẫn nhóm em trong quá trình thực hiện đồ án môn học.Sự hỗ trợ từ gia đình, bạn bè là động lực to lớn để nhóm em hoàn thành đồ án này. Chúng em đã làm việc nghiêm túc và đã cố gắng hoàn thành tốt đồ án, tuy nhiên không tránh khỏi những sai sót trong quá trình thực hiện. Kính mong thầy cô và các bạn góp ý để đồ án của chúng em được hoàn thiện tốt hơn. Chúng em xin chân thành cảm ơn. Nhóm sinh viên thực hiện đề tài

Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

2

Mục lục:

Mục lục: Lời cám ơn. ..................................................................................................................... 2 Mục lục: .......................................................................................................................... 3 I.

Giới thiệu ................................................................................................................. 4

II.

Thiết kế cơ khí: ..................................................................................................... 7

1. Ý tưởng thiết kế: ................................................................................................... 7 2. Cơ sở thiết kế mô hình: ........................................................................................ 9 3. Lựa chọn bộ truyền. ............................................................................................ 10 4. Giới thiệu mô hình.............................................................................................. 12 III.

Mạch điện. .......................................................................................................... 16

1. Khối cấp nguồn: ................................................................................................. 16 2. Nguồn VĐK : ..................................................................................................... 16 3. Mạch LCD: ......................................................................................................... 17 4. Mạch PIC: ........................................................................................................... 18 5. Mạch lọc: ............................................................................................................ 19 6. Mạch sử dụng biến trở chỉnh hệ số PID: ............................................................ 19 7. Mạch driver DC ( LMD18200) .......................................................................... 20 8. Một số kết nối: .................................................................................................... 20 IV.

Chương trình điều khiển ..................................................................................... 21

1. Giới thiệu bộ điều khiển PID: ............................................................................ 21 2. Lưu đồ giải thuật: ............................................................................................... 29 3. Code điều khiển: ................................................................................................. 32 V.

Mô phỏng bộ điều khiển PID ............................................................................. 42

1. Mô hình toán học của động cơ. .......................................................................... 42 2. Sơ đồ mô phỏng PID trên MATLAB ................................................................. 43 VI.

Tài liệu tham khảo .............................................................................................. 47

Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

3

Giới thiệu

I.

Giới thiệu Đề tài xe hai bánh tự cân bằng có thể xem là dựa trên kết quả của con lắc ngược .Nó được xem như là nền tảng cho việc nghiên cứu và chế tạo những loại robot hai chân, robot người trong tương lai. Mục tiêu của đề tài là thiết kế và chế tạo một xe hai bánh tự cân bằng, dựa trên lý thuyết cân bằng con lắc ngược. Điểm đặc biệt của đề tài là nghiên cứu và tạo ra mô hình xe có hai có hai bánh lắp song song với nhau, không giống như những chiếc scooter hay những chiếc xe hai bánh lắp theo kiểu bánh trước bánh sau. Đề tài xuất phát từ ý tưởng xe hai bánh segway đã được thương mại hóa trên thị trường. Kết hợp ý tưởng về cách giữ thăng bằng của con người trên đôi chân và độ cơ động trong di chuyển của các loại xe di chuyển bằng hai bánh. Thông qua bài nghiên cứu , có thể phần nào nắm bắt những ý tưởng thăng bằng cho các loại robot dạng người, cách phối hợp và xử lý tín hiệu tốt nhất từ cảm biến. Mô hình là một chiếc xe có hai bánh được đặt dọc trục với nhau khác với xe hai bánh thông thường có hai trục nằm song song.Để xe không bị ngã thì trọng tâm của mô hình luôn phải nằm trong vùng đỡ của bánh xe .Do vậy trên mô hình có sử dụng biến trở đóng vai trò là cảm biến để đo góc nghiêng của thân xe, ba biến trở làm nhiệm vụ điều chỉnh các hệ so Kp , KI, Kd với mục đích là lái trọng tâm vào phạm vi để xe có thế đứng và di chuyển. 1.1. Xe hai bánh tự cân bằng. Đối với xe ba và bốn bánh , việc thăng bằng và ổn định của chúng là nhờ vào trọng tâm của chúng nằm trong bề mặt chân đế do các bánh xe tạo ra. Đối với các loại xe hai bánh có cấu trúc như xe đạp,việc thăng bằng khi không di chuyển là hoàn toàn không thể, vì việc thăng bằng của xe dựa trên tính chất con quay hồi chuyển ở hai bánh xe khi đang quay. Còn đối với xe hai bánh tự cân bằng là loại xe mà hai bánh cùng lắp trên một trục, để cho xe cân bằng thì trọng tâm của xe phải được giữ ngay giữa hai bánh xe. Điều này giống như việc giữ một cây gậy dựng thẳng đứng cân bằng trên ngón tay.

H. Nguyên lý giữ thăng bằng

Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

4

Giới thiệu Thực ra, trọng tâm của toàn bộ scooter không được biết nằm ở vị trí nào, cũng không có cách nào tìm ra nó và có thể không có khả năng di chuyển bánh xe đủ nhanh để giữ nó luôn ở dưới toàn bộ trọng tâm. Về góc độ kỹ thuật, góc giữa sàn scooter và chiều trọng lực có thể biết được. Do vậy, thay vì tìm việc xác định trọng tâm có thể tìm góc nghiêng của xe để lái xe về vị trí thẳng đứng khi xe bị nghiêng.Nếu xe được đẩy hơi nghiêng về phía trước , bộ điều khiển ra tín hiệu điều khiển xe về phía trước, khi nó bị ngã nghiêng ra sau thì bộ điều khiển ra tín hiệu điều khiển xe chạy lùi để giữ xe ở vị trí thăng bằng. Để dừng lại thì chỉ cần kéo trọng tâm xe nghiêng ngược hướng đang di chuyển thì tốc độ xe giảm xuống. Do tốc độ cảm nhận và phản ứng của mỗi người là khác nhau nên xe hai bánh tự cân bằng được thiết kế cho một người sử dụng.

1.2. Mục đích thiết kế xe hai bánh tự cân bằng. Những mobile robot hầu hết là những robot di chuyển bằng ba bánh xe, với hai bánh lái được lắp ghép đồng trục và một bánh đuôi nhỏ. Có nhiều kiểu khác nhau nhưng đây là kiểu thông dụng nhất. Còn đối với các xe bốn bánh, thường một đầu xe có hai bánh truyền động và đầu xe còn lại được gắn một hoặc hai bánh lái. Việc thiết kế xe ba hay bốn bánh làm cho xe , mobile robot được thăng bằng ổn định nhờ trọng lượng của nó được chia cho hai bánh lái chính và bánh đuôi hay cho bất kì cái gì khác để đỡ trọng lượng của xe. Nếu trọng lượng được đặt nhiều vào hai bánh lái thì xe hay robot sẽ không ổn định và dễ bị ngã còn nếu đặt trọng lượng xe nhiều vào bánh đuôi thì hai bánh chính mất khả năng bám . Nhiều thiết kế xe, robot có thể di chuyển tốt trên địa hình phẳng nhưng không thể di chuyển tốt trên địa hình lồi lõm. Khi di chuyển lên đồi, trọng lượng xe hay robot dồn vào đuôi xe làm bánh bánh lái mất khả năng bám và trượt ngã, đối với những bậc thang nó có thể dừng hoặt động. Khi di chuyển xuống đồi thì trọng tâm thay đổi về phía trước và làm cho xe hay robot bị lật úp trên cầu thang, bị lật úp khi độ dốc chỉ từ 150 đến 200. Việc bố trí bống bánh xe, giống như xe hơi đồ chơi hay các loại xe bốn bánh hiện đang sử dụng trong giao thông không gặp vấn đề nhưng điều này sẽ làm cho các mobile robot không gọn gàng và thiết kế bộ phận lái gặp chút phiền toái để có thể xác định chính xác quãng đường đã đi. Ngược lại, xe hai bánh dạng đồng trục lại thăng bằng rất linh động khi di chuyển trên địa hình phức tạp, mặc dù bản thân là một hệ thống không ổn định. Khi nó lên dốc, nó tự động nghiêng ra phía trước và giữ trọng lượng dồn về hai bánh lái chính. Tương tự như vậy, khi bước xuống dốc, nó nghiêng ra sau và giữ trọng tâm rơi vào các bánh lái. Chính vì vậy, không bao giờ có hiện tượng trọng tâm xe rơi Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

5

Giới thiệu ra ngoài vùng đỡ của các bánh xe, do đó xe có thể vượt qua địa hình an toàn mà các loại xe khác không vượt qua được.Do đó, đối với địa hình lồi lõm và những ứng dụng thực tế, sự thăng bằng xe hai bánh có thể sẽ mang lại nhiều ý nghĩa thực tiễn trong giới hạn ổn định hơn là đối với xe ba bánh truyền thống.

1.3. Khả năng ứng dụng Xây dựng được một phương tiện vận chuyển mới trong khu vực chật hẹp, có thể di chuyển ngay trong các chung cư tòa nhà cao tầng, dùng trợ giúp di chuyển cho người già và trẻ em. Làm phương tiện vận chuyển hàng hóa dến những nơi đã được lập trình sẵn ở trong các tòa nhà , phòng làm việc, không gian chật hẹp và khó xoay trở. Làm tiền đề nghiên cứu việc kết hợp với các robot dò đường, robot lái mặt đường, robot camera để gia tăng chức năng và hiệu quả làm việc của robot.

Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

6

Thiết kế cơ khí:

II.

Thiết kế cơ khí:

1. Ý tưởng thiết kế: 1.1. Đo góc giữa thân xe với hướng trọng lực

Trên xe sẽ gắn 1 con lắc thuận. Con lắc luôn có xu hướng xuôi theo hướng trọng lực, có thể sử dụng điều này để đo góc giữa thân xe và con lắc. Mô hình kiều này có ưu điểm là có thể đo góc nghiêng mà không phụ thuộc vào góc nghiêng của mặt đường, do đó bất địa hình bằng phẳng hay lên xuống cũng không ảnh hưởng đến hoạt động của xe (ở ý tưởng sau sẽ thấy ảnh hưởng của địa hình). Tuy nhiên có vấn đề: con lắc sẽ dao động, để giảm dao động thì cần tăng ma sát ở trục quay, điều này có thể ảnh hướng tới đáp ứng của xe. Theo quan điểm của nhóm em thì mô hình kiểu này sẽ không ổn định, khó cân bằng.

Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

7

Thiết kế cơ khí: 1.2. Đo góc giữa thân xe và mặt sàn.

Ở kiểu mô hình này, con lắc thuận sẽ được kéo dài, tiếp xúc với mặt sàn, góc đo được là góc giữa thân xe mà mặt sàn. Do con lắc tiếp xúc với mặt sàn nên sẽ k bị dao động, đáp ứng nhanh. Tuy nhiên do góc đo được là góc giữa con lắc với mặt sàn, nên xe chỉ hoạt động trên mặt phẳng có độ nghiêng không đổi.

Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

8

Thiết kế cơ khí:

2. Cơ sở thiết kế mô hình:

ϴ” = (g / R)ϴ (công thức lấy từ tài liệu 00964A – Microchip, về con lắc ngược) Gia tốc góc của con lắc ngược sẽ tỉ lệ nghịch với R là khoảng cách từ tâm xoay tới trọng tâm của con lắc. Như vậy khi mô hình có trọng tâm càng cao thì càng dễ cân bằng, ổn định, do phần thân sẽ đổ chậm, đây là điểm quan trọng, giúp cho các công việc sau này dễ dàng hơn.

Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

9

Thiết kế cơ khí:

3. Lựa chọn bộ truyền. Nhóm em đưa ra hai phương án là: sử dụng bộ truyền bánh răng hoặc đai răng. 3.1. Bộ truyền bánh răng Bộ truyền bánh răng làm việc theo nguyên lý ăn khớp, thực hiện truyền chuyển động và công suất dựa vào sự ăn khớp giữa các răng trên bánh răng. Ưu điểm: Kích thước nhỏ, khả năng tải lớn. Tỷ số truyền không thay đổi. Hiệu suất cao, có thể đạt từ 0.97 – 0.99. Làm việc với vận tốc cao. Tuổi thọ, độ tin cậy cao. Nhược điểm: Chế tạo phức tạp. Đòi hỏi độ chính xác cao. Có nhiều tiếng ồn khi vận tốc lớn. 3.2. Bộ truyền đai Bộ truyền đai làm việc theo nguyên lý ma sát, tải trọng được truyền đi nhờ lực ma sát sinh ra giữa dây đai và các bánh đai. Ưu điểm: Truyền động giữa các trục xa nhau Làm việc êm và không ồn. Nhờ tính chất đàn hồi của đai nên có khả năng tránh đc những dao động lớn sinh ra do tải trọng thay đổi. Đề phòng sự quá tải nhờ khả năng trượt của đai. Kết cấu, vận hành đơn giản. Nhược điểm: Kích thước bộ truyền lớn. Tỉ số truyền thay đổi do sự trượt. Tuổi thọ thấp. 3.3. Kết luận Bộ truyền đai nhờ khả năng làm việc êm và không cần sự chính xác cao về khoảng các trục như bộ truyền bánh răng nên là một giải pháp tốt cho phần truyền động của mô hình. Tuy nhiên bộ chuyền bánh răng (nhựa), thực tế dễ dàng mua và giá Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

10

Thiết kế cơ khí: thành rẻ hơn nhiều so với bộ truyền đai nên nhóm em lựa chọn bộ truyền bánh răng.

Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

11

Thiết kế cơ khí:

4. Giới thiệu mô hình.

H. Mô hình 4.1. Một số chi tiết:

H. Một số chi tiêt trên xe. Đế gắn mạch điện: được gắn vào than xe bằng cách bắt vít vào rãnh trượt hai bên, có khả năng dịch chuyển lên xuống nhờ rãnh trượt. Lỗ gắn biết trở: gồm 1 lỗ gắn trục biến trở và 1 lỗ nhỏ cố định biến trở. Rãnh trượt: dùng để cố định đế gắn mạch và chân đỡ xe. Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

12

Thiết kế cơ khí: Lỗ đặt ổ lăn. Chân đỡ: giúp bảo vệ xe, phần mạch điện khi xe bị đổ. 4.2. Cụm truyền động

H. Cụm truyền động. Motor

H. Động cơ 12VDC Motor có gắn sẵn bánh răng nhỏ, đường kính ngoài 9mm.

Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

13

Thiết kế cơ khí: Bánh xe – Trục – Bánh răng bị động.

H. Cụm bánh xe. Bao gồm 2 bánh xe, 2 ổ lăn, trục (5mm) và 1 bánh răng. Lắp motor:

H. lắp ráp motor trong mô hình. Phần định vị giúp motor có thể dịch chuyển theo chiều dọc để điều chỉnh ăn khớp

H. Motor có thể dịch theo chiều dọc trục, điều chỉnh ăn khớp.

Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

14

Thiết kế cơ khí: Ăn khớp giữa hai bánh răng

H. hai bánh răng ăn khớp 4.3. Cây đo góc.

H. Cây đo góc Cây đo góc được gắn vào một biến trở gắn trên thân xe, có nhiệm vụ đo góc lệch giữa thân xe và sàn.

Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

15

Mạch điện.

III.

Mạch điện.

1. Khối cấp nguồn:

Đầu ra: 24VDC 5VDC - 3.3VDC - tùy chỉnh, ổn định Mạch sừ dụng IC ổn áp LM2576, cho phép dòng tối đa tới 3A. Mạch được sử dụng để cấp nguồn cho các mạch điện sử dụng trên xe và động cơ. 2. Nguồn VĐK :

Nguồn VĐK sử dụng nguồn xung nên giảm tối đa mất năng lượng do nhiệt, hoạt động ổn định. IC MC34063 nguồn cấp từ 3V đến 40V, xung lên đến 100Hz, dòng tối đa 1.5 A, sai số 2% Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

16

Mạch điện. 3. Mạch LCD:

Mạch LCD sử dụng 4 bus để truyền nhận dữ liệu với PIC, cách thức kết nối này giúp tiết kiệm dây kết nối với PIC.

Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

17

Mạch điện.

4. Mạch PIC:

Mạch sử dụng PIC 16f887 sử dụng thạch anh ngoài 20Hz là đã đủ để lập trình cho xe 2 bánh tự cân bằng. Chân được kết nối như hình giúp ta lập trình một cách dễ dàng

Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

18

Mạch điện. 5. Mạch lọc:

Mạch lọc tham khảo từ tài liệu AN964 của Microchip giúp tín hiệu nhân về VĐK được ổn định ít nhiễu. 6. Mạch sử dụng biến trở chỉnh hệ số PID:

Để dễ dàng khảo sát, thay đổi hệ số Kp, Ki, Kd tôi đã sử dụng 3 biến trở kết nối như hình.

Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

19

Mạch điện. 7. Mạch driver DC ( LMD18200)

LMD18200 là IC chuyên dùng cho điều khiển động cơ DC với dòng lên đến 3A. Với chân PWM và thay đổi độ rộng xung hoặc tần số xung ta có thể điều khiển được tốc độ động cơ. Chân DIR dùng để đảo chiều động cơ, chân BRAKE dùng để dừng động cơ.Mạch thiết kế như trên có thể cấp xung PWM lên đến 20kHz. 8. Một số kết nối:

Mạch dùng để kết nối các linh kiện và mạch với nhau.

Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

20

Chương trình điều khiển

IV.

Chương trình điều khiển

1. Giới thiệu bộ điều khiển PID: Một bộ điều khiển vi tích phân tỉ lệ (bộ điều khiển PID- Proportional Integral Derivative) là một cơ chế phản hồi vòng điều khiển (bộ điều khiển) tổng quát được sử dụng rộng rãi trong các hệ thống điều khiển công nghiệp – bộ điều khiển PID được sử dụng phổ biến nhất trong số các bộ điều khiển phản hồi. Một bộ điều khiển PID tính toán một giá trị "sai số" là hiệu số giữa giá trị đo thông số biến đổi và giá trị đặt mong muốn. Bộ điều khiển sẽ thực hiện giảm tối đa sai số bằng cách điều chỉnh giá trị điều khiển đầu vào.

Hình 1: Sơ đồ khối của bộ điều khiển PID Giải thuật tính toán bộ điều khiển PID bao gồm 3 thông số riêng biệt, do đó đôi khi nó còn được gọi là điều khiển ba khâu: các giá trị tỉ lệ, tích phân và đạo hàm, viết tắt là P, I, và D. Giá trị tỉ lệ xác định tác động của sai số hiện tại, giá trị tích phân xác định tác động của tổng các sai số quá khứ, và giá trị vi phân xác định tác động của tốc độ biến đổi sai số. Tổng chập của ba tác động này dùng để điều chỉnh quá trình thông qua một phần tử điều khiển như vị trí của van điều khiển hay bộ nguồn của phần tử gia nhiệt. Nhờ vậy, những giá trị này có thể làm sáng tỏ về quan hệ thời gian: P phụ thuộc vào sai số hiện tại, I phụ thuộc vào tích lũy các sai số quá khứ, và D dự đoán các sai số tương lai, dựa vào tốc độ thay đổi hiện tại. Bằng cách điều chỉnh 3 hằng số trong giải thuật của bộ điều khiển PID, bộ điều khiển có thể dùng trong những thiết kế có yêu cầu đặc biệt. Đáp ứng của bộ điều khiển có thể được mô tả dưới dạng độ nhạy sai số của bộ điều khiển, giá trị mà bộ điều khiển vọt lố điểm đặt và giá trị dao động của hệ thống. Lưu ý là công dụng của giải thuật PID trong điều khiển không đảm bảo tính tối ưu hoặc ổn định cho hệ thống. Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

21

Chương trình điều khiển Vài ứng dụng có thể yêu cầu chỉ sử dụng một hoặc hai khâu tùy theo hệ thống. Điều này đạt được bằng cách thiết đặt đội lợi của các đầu ra không mong muốn về 0. Một bộ điều khiển PID sẽ được gọi là bộ điều khiển PI, PD, P hoặc I nếu vắng mặt các tác động bị khuyết . Bộ điều khiển PI khá phổ biến, do đáp ứng vi phân khá nhạy đối với các nhiễu đo lường, trái lại nếu thiếu giá trị tích phân có thể khiến hệ thống không đạt được giá trị mong muốn. Sơ đồ điều khiển PID được đặt tên theo ba khâu hiệu chỉnh của nó, tổng của ba khâu này tạo thành bởi các biến điều khiển (MV). Ta có: MV(t) = Pout + Iout + Dout Trong đó: 1.1. Khâu tỉ lệ: Khâu tỉ lệ (đôi khi còn được gọi là độ lợi) làm thay đổi giá trị đầu ra, tỉ lệ với giá trị sai số hiện tại. Đáp ứng tỉ lệ có thể được điều chỉnh bằng cách nhân sai số đó với một hằng số Kp, được gọi là độ lợi tỉ lệ. Khâu tỉ lệ được cho bởi: Pout = Kpe(t) Trong đó: Pout: thừa số tỉ lệ của đầu ra Kp: Độ lợi tỉ lệ, thông số điều chỉnh e: sai số t: thời gian hay thời gian tức thời (hiện tại) Độ lợi của khâu tỉ lệ lớn là do thay đổi lớn ở đầu ra mà sai số thay đổi nhỏ. Nếu độ lợi của khâu tỉ lệ quá cao, hệ thống sẽ không ổn định (xem phần điều chỉnh vòng). Ngược lại, độ lợi nhỏ là do đáp ứng đầu ra nhỏ trong khi sai số đầu vào lớn, và làm cho bộ điều khiển kém nhạy, hoặc đáp ứng chậm. Nếu độ lợi của khâu tỉ lệ quá thấp, tác động điều khiển có thể sẽ quá bé khi đáp ứng với các nhiễu của hệ thống.

Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

22

Chương trình điều khiển

Hình 2: Sự thay đổi khi điều chỉnh Kp 1.2. Khâu tích phân: Phân phối của khâu tích phân (đôi khi còn gọi là reset) tỉ lệ thuận với cả biên độ sai số lẫn quảng thời gian xảy ra sai số. Tổng sai số tức thời theo thời gian (tích phân sai số) cho ta tích lũy bù đã được hiệu chỉnh trước đó. Tích lũy sai số sau đó được nhân với độ lợi tích phân và cộng với tín hiệu đầu ra của bộ điều khiển. Biên độ phân phối của khâu tích phân trên tất cả tác động điều chỉnh được xác định bởi độ lợi tích phân, Ki. Thừa số tích phân được cho bởi: 𝑡

𝐼𝑜𝑢𝑡 = 𝐾𝑖 ∫ 𝑒(𝑇)𝑑𝑇 0

Trong đó: Iout: thừa số tích phân của đầu ra Ki: độ lợi tích phân, 1 thông số điều chỉnh e: sai số t: thời gian hoặc thời gian tức thời (hiện tại) T: một biến tích phân trung gian Khâu tích phân (khi cộng thêm khâu tỉ lệ) sẽ tăng tốc chuyển động của quá trình tới điểm đặt và khử số dư sai số ổn định với một tỉ lệ chỉ phụ thuộc vào bộ điều khiển. Tuy nhiên, vì khâu tích phân là đáp ứng của sai số tích lũy trong quá khứ, nó có thể khiến giá trị hiện tại vọt lố qua giá trị đặt (ngang qua điểm đặt và tạo ra một độ lệch với các hướng khác). Để tìm hiểu thêm các đặc điểm của việc điều chỉnh độ lợi tích phân và độ ổn của bộ điều khiển, xin xem phần điều chỉnh vòng lặp.

Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

23

Chương trình điều khiển

Hình 3: Sự thay đổi khi điều chỉnh Ki 1.3. Khâu vi phân : Tốc độ thay đổi của sai số qua trình được tính toán bằng cách xác định độ dốc của sai số theo thời gian (tức là đạo hàm bậc một theo thời gian) và nhân tốc độ này với độ lợi tỉ lệ Kd. Biên độ của phân phối khâu vi phân (đôi khi được gọi là tốc độ) trên tất cả các hành vi điều khiển được giới hạn bởi độ lợi vi phân, Kd. Thừa số vi phân được cho bởi:

𝐷𝑜𝑢𝑡 = 𝐾𝑑

𝑑 𝑒(𝑡) 𝑑𝑡

Trong đó: Dout: thừa số vi phân của đầu ra Kd: Độ lợi vi phân, một thông số điều chỉnh e: Sai số t: thời gian hoặc thời gian tức thời (hiện tại) Khâu vi phân làm chậm tốc độ thay đổi của đầu ra bộ điều khiển và đặc tính này là đang chú ý nhất để đạt tới điểm đặt của bộ điều khiển. Từ đó, điều khiển vi phân được sử dụng để làm giảm biên độ vọt lố được tạo ra bởi thành phần tích phân và tăng cường độ ổn định của bộ điều khiển hỗn hợp. Tuy nhiên, phép vi phân của một tín hiệu sẽ khuếch đại nhiễu và do đó khâu này sẽ nhạy hơn đối với nhiễu trong sai số, và có thể khiến quá trình trở nên không ổn định nếu nhiễu và độ lợi vi phân đủ lớn. Do đó một xấp xỉ của bộ vi sai với băng thông giới hạn thường được sử dụng hơn. Chẳng hạn như mạch bù sớm pha.

Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

24

Chương trình điều khiển

Hình 4: Sự thay đổi khi điều chỉnh Kd 1.4. Tóm tắt : Khâu tỉ lệ, tích phân, vi phân được cộng lại với nhau để tính toán đầu ra của bộ điều khiển PID. Định nghĩa rằng u(t) là đầu ra của bộ điều khiển, biểu thức cuối cùng của giải thuật PID là: 𝑡

𝑢(𝑡) = 𝑀𝑉 (𝑡) = 𝐾𝑝 𝑒(𝑡) + 𝐾𝑖 ∫ 𝑒(𝑇)𝑑𝑇 + 𝐾𝑑 0

𝑑 𝑒(𝑡) 𝑑𝑡

trong đó các thông số điều chỉnh là: Độ lợi tỉ lệ, Kp giá trị càng lớn thì đáp ứng càng nhanh do đó sai số càng lớn, bù khâu tỉ lệ càng lớn. Một giá gị độ lợi tỉ lệ quá lớn sẽ dấn đến quá trình mất ổn định và dao động. Độ lợi tích phân, Ki giá trị càng lớn kéo theo sai số ổn định bị khử càng nhanh. Đổi lại là độ vọt lố càng lớn: bất kỳ sai số âm nào được tích phân trong suốt đáp ứng quá độ phải được triệt tiêu tích phân bằng sai số dương trước khi tiến tới trạng thái ổn định. Độ lợi vi phân, Kd giá trị càng lớn càng giảm độ vọt lố, nhưng lại làm chậm đáp ứng quá độ và có thể dẫn đến mất ổn định do khuếch đại nhiễu tín hiệu trong phép vi phân sai số.

Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

25

Chương trình điều khiển 1.5. PID số: Công thức của bộ điều khiển PID trình bày trong (2) là dạng hàm liên tục của biến e, trong đó có cả thành phần tuyến tính, đạo hàm và tích phân. Tuy nhiên, hệ thống máy tính và vi điều khiển lại là hệ thống số. Muốn xây dựng bộ điều khiển PID trên máy tính hay trên vi điều khiển chúng ta phải biết cách xấp xỉ phương trình liên tục thành dạng rời rạc. Vì bộ điều khiển PID xây dựng trong PIC sẽ là bộ điều khiển số, chúng ta cần xấp xỉ công thức của bộ điều khiển này theo các khoảng thời gian rời rạc. Trước hết, thành phần P tương đối đơn giản vì đó là quan hệ tuyến tính Kp*e, chúng ta chỉ cần áp dụng trực tiếp công thức này mà không cần bất kỳ xấp xỉ nào. Tiếp đến là xấp xỉ cho đạo hàm của biến e. Vì thời gian lấy mẫu cho các bộ điều khiển thường rất bé nên có thể xấp xỉ đạo hàm bằng sự thay đổi của e trong 2 lần lấy mẫu liên tiếp: de/dt =(e(k) – e(k-1))/h. Trong đó e(k) là giá trị hiện tại của e, e(k-1) là giá trị của e trong lần lấy mẫu trước đó và h là khoảng thời gian lấy mẫu (h là hằng số).

Hình 5: Xấp xỉ đạo hàm của biến sai số e Thành phần tích phân được xấp xỉ bằng diện tích vùng giới hạn bởi hàm đường biểu diễn của e và trục thời gian. Do việc tính toán tích phân không cần quá chính xác, chúng ta có thể dùng phương pháp xấp xỉ đơn giản nhất là xấp xỉ hình chữ nhật (sai số của phương pháp này cũng lớn nhất). Ý tưởng được trình bày trong hình 6. Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

26

Chương trình điều khiển

Hình 6: Xấp xỉ tích phân của biến sai số e Tích phân của biến e được tính bằng tổng diện tích các hình chữ nhật tại mỗi thời điểm đang xét. Mỗi hình chữ nhật có chiều rộng bằng thời gian lấy mẫu h và chiều cao là giá trị sai số e tại thời điểm đang xét. Tổng quát: 𝑡

𝑘

∫ 𝑒𝑑𝑡 = ∑ 𝑒(𝑘) ∗ ℎ 0

0

Tổng hợp các xấp xỉ, công thức của bộ điều khiển PID số được trình bày như trên 𝑘

𝑒(𝑘) − 𝑒(𝑘 − 1) 𝑢 = 𝐾𝑝 ∗ 𝑒 + + ∑ 𝑒(𝑘) ∗ ℎ ℎ 0

Trong đó u là đại lượng output từ bộ điều khiển. Để đơn giản hóa việc tính thành phần tích phân, chúng ta nên dùng phương pháp “cộng dồn” (hay đệ quy):

𝐼(𝑘) = 𝐼(𝑘 − 1) + 𝑒(𝑘) ∗ ℎ Với I(k) là thành phần tích phân hiện tại và I(k-1) là thành phần tích phân trướcđó. 1.6. Tổng quan các phương pháp điều chỉnh hệ số PID : Có nhiều phương pháp khác nhau để điều chỉnh vòng lặp PID. Những phương pháp hữu hiệu nhất thường bao gồm những triển khai của vài dạng mô hình xử lý, sau đó chọn P, I, và D dựa trên các thông số của mô hình động học. Các phương pháp điều chỉnh thủ công tương đối không hiệu quả lắm, đặc biệt nếu vòng lặp có thời gian đáp ứng được tính bằng phút hoặc lâu hơn. Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

27

Chương trình điều khiển Lựa chọn phương pháp thích hợp sẽ phụ thuộc phần lớn vào việc có hay không vòng lặp có thể điều chỉnh "offline", và đáp ứng thời gian của hệ thống. Nếu hệ thống có thể thực hiện offline, phương pháp điều chỉnh tốt nhất thường bao gồm bắt hệ thống thay đổi đầu vào từng bước, tín hiệu đo lường đầu ra là một hàm thời gian, sử dụng đáp ứng này để xác định các thông số điều khiển. Lựa chọn phương pháp điều chỉnh Ưu điểm Điều chỉnh thủ công Ziegler– Nichols

Khuyết điểm

Không cần hiểu biết về toán. Phương pháp online. Phương pháp chứng minh. Phương pháp online.

Yêu cầu nhân viên có kinh nghiệm. Làm rối loạn quá trình, một số thử nghiệm và lỗi, phải điều chỉnh nhiều lần Các công cụ Điều chỉnh chắc chắn. Phương Giá cả cao, và phải huấn phần mềm pháp online hoặc offline. Có thể luyện. bao gồm phân tích các van và cảm biến. Cho phép mô phỏng trước khi tải xuống để thực thi. Cohen-Coon Xử lý các mô hình tốt. Yêu cầu kiến thức toán học. Phương pháp offline. Chỉ tốt đối với các quá trình bậc một. Phương pháp nhóm chọn điều chỉnh thủ công : Nếu hệ thống phải duy trì trạng thái online, một phương pháp điều chỉnh là thiết đặt giá trị đầu tiên của Ki và Kd bằng không. Tăng dần Kp cho đến khi đầu ra của vòng điều khiển dao động, sau đó Kp có thể được đặt tới xấp xỉ một nửa giá trị đó để đạt được đáp ứng "1/4 giá trị suy giảm biên độ". Sau đó tăng Ki đến giá trị phù hợp sao cho đủ thời gian xử lý. Tuy nhiên, Ki quá lớn sẽ gây mất ổn định. Cuối cùng, tăng Kd, nếu cần thiết, cho đến khi vòng điều khiển nhanh có thể chấp nhận được nhanh chóng lấy lại được giá trị đặt sau khi bị nhiễu. Tuy nhiên, Kd quá lớn sẽ gây đáp ứng dư và vọt lố.Một điều chỉnh cấp tốc của vòng điều khiển PID thường hơi quá lố một ít khi tiến tới điểm đặt nhanh chóng; tuy nhiên, vài hệ thống không chấp nhận xảy ra vọt lố, trong trường hợp đó, ta cần một hệ thống vòng kín giảm lố, thiết đặt một giá trị Kp nhỏ hơn một nữa giá trị Kp gây ra dao động.

Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

28

Chương trình điều khiển

2. Lưu đồ giải thuật: Ngắt đọc ADC

Chương trình con sử dụng giải thuật PID

Chương trình chính

Chương trình chính

Bắt đầu

Khởi tạo các biến Chọn kênh đọc ADC ban đầu Khởi tạo phần cứng Vi điều khiển Cài đặt cờ ngắt timer0 sau 10ms ngắt 1 lần Cho phép mạch điều khiển động cơ DC hoạt động

Cờ ngắt T0 T0IF = 1

N

Y T0IF = 0

Chương trình con sử dụng giải thuật PID

Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

29

Chương trình điều khiển

Chương trình con xử dụng giải thuật PID

Err1<3

N

Err1 >= 3

Y

Y

N Động cơ quay nghịch

Động cơ quay thuận

Ppart = KP * Err ; Dpart = KD * ( Err - Err_truoc )*rev_time; Ipart += KI * time * Err / 1000 ; Output += Ppart + Dpart + Ipart ; CCPR1L = Output ; (cấp xung PWM cho động cơ ) Err_truoc = Err;

Chương trình chính

Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

30

Chương trình điều khiển

Ngắt đọc ADC

i=0 Tăng i++

i=1

N

i=2

Y

Y

Chọn kênh AN0 Đọc giá trị ADC rồi gán cho biến KP Hiển thị LCD giá trị KP

Chọn kênh AN1 Đọc giá trị ADC rồi gán cho biến KI Hiển thị LCD giá trị KI

N

i=4

N

N

i=3

Y

Y

Chọn kênh AN3 Đọc giá trị ADC rồi gán cho biến KS Hiển thị LCD giá trị KS i=0

Chọn kênh AN2 Đọc giá trị ADC rồi gán cho biến KD Hiển thị LCD giá trị KD

Chương trình chính

Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

31

Chương trình điều khiển

3. Code điều khiển: //Sử dụng ngôn ngữ Hi-tech C lập trình trên nên Mplab cho pic16f887. #include #include __CONFIG(MCLRE_ON & WDTE_OFF & FOSC_HS & CP_OFF & LVP_OFF & FCMEN_ON & BOR4V_BOR21V); #define _XTAL_FREQ 20000000 #define LCD_RS RD5 // khai báo chân RS là RE0 #define LCD_RW RD6 #define LCD_EN RD7 #define LCD_STROBE() ((LCD_EN = 1),(LCD_EN=0))// macro cho chân E cua LCD len muc 1 roi xuong muc 0 #define time 10

//ms

#define rev_time 100

//nghich dao

//--------------------------------------------------------------------------------------------------------#define LCD_DATA PORTD // dung data là PORTD //--------------------------------------------------------------------------------------------------------int KP,KI,KD,KS,i,Err,goc_need,Err_truoc; signed char Err1,Ppart, Dpart, Ipart, Output; void init_port() { TRISA =0xff; //input adc tu (A0,1,2---KP,KI,KD) ANSEL =0xff; //analog input TRISB =0xff; //input nut nhan TRISC = 0; Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

32

Chương trình điều khiển TRISD = 0; ANSELH = 0; // khai chon ngo vao so } //--------------------------------------------------------------------------------------------------------void write_LCD(unsigned char a, unsigned char t) { // VÐK RD0..RD3 tuong duong LCD: BD4..BD7 unsigned char x; LCD_RW=0; LCD_RS=a; x=t; x=x>>4; // dich phai 4 bit de lay 4bit cao PORTD=((PORTD & 0xF0)|(x & 0x0F)); LCD_STROBE(); __delay_us(30); PORTD=((PORTD & 0xF0)|(t & 0x0F)); LCD_STROBE(); __delay_us(30); } //--------------------------------------------------------------------------------------------------------void init_LCD(void) // hàm khoi tao LCD theo các buoc muc 6.2.3 { LCD_RS =0; write_LCD(0,0x33); __delay_ms(65); Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

33

Chương trình điều khiển write_LCD(0,0x32); __delay_ms(65); write_LCD(0,0x28); __delay_ms(65); write_LCD(0,0x01); // xoa man hinh - clear display __delay_ms(10); write_LCD(0,0x03); __delay_ms(10); write_LCD(0,0x0e); __delay_ms(10); } //--------------------------------------------------------------------------------------------------------void init_ADC(void) { VCFG1=0; VCFG0=0;

//chon nguon noi

ADCS1=0; ADCS0=1;

//TAD=Fosc/8

ADFM=1;

//chon cach doc gia tri 2 bit cao 8 bit thap

ADON=1;

//cho phep ADC hoat dong

__delay_ms(1); } //--------------------------------------------------------------------------------------------------------void init_interrupts(void) Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

34

Chương trình điều khiển { GIE=1;

//cho phep ngat toan cuc

PEIE=1;

//cho phep ngat xem so do khoi chuong 14

ADIE=1;

//cho phep ADC ngat

ADIF=0;

//xoa co ngat

} //--------------------------------------------------------------------------------------------------------void interrupt adc(void) { int tram,chuc,donvi,nghin,giatri_ADC; if(PEIE&&ADIE&&ADIF) { ADIF=0; giatri_ADC = (ADRESH<<8) | ADRESL; i++; if (i==1) { CHS3=0; CHS2=0; CHS1=1; CHS0=0;

//chon kenh

KP = giatri_ADC/5 ; tram = (KP%1000)/100; chuc = (KP%100)/10; donvi = KP%10; Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

35

Chương trình điều khiển write_LCD(0,0x82); write_LCD(1,tram+48); write_LCD(1,chuc+48); write_LCD(1,donvi+48); } if (i==2) { CHS3=0; CHS2=0; CHS1=1; CHS0=1;

//chon kenh

KI = giatri_ADC/5 ; tram =(KI%1000)/100; chuc =(KI%100)/10; donvi =KI%10; write_LCD(0,0x87); write_LCD(1,tram+48); write_LCD(1,chuc+48); write_LCD(1,donvi+48); } if (i==3) { CHS3=0; CHS2=0; CHS1=0; CHS0=0;

//chon kenh Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

36

Chương trình điều khiển KD = giatri_ADC/5 ; tram =(KD%1000)/100; chuc =(KD%100)/10; donvi =KD%10; write_LCD(0,0x8C); write_LCD(1,tram+48); write_LCD(1,chuc+48); write_LCD(1,donvi+48); } if (i==4) { CHS3=0; CHS2=0; CHS1=0; CHS0=1;

//chon kenh

KS = giatri_ADC; nghin = KS/1000; tram =(KS%1000)/100; chuc =(KS%100)/10; donvi =KS%10; write_LCD(0,0xC2); write_LCD(1,nghin+48); write_LCD(1,tram+48); write_LCD(1,chuc+48); write_LCD(1,donvi+48); i=0; Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

37

Chương trình điều khiển } } } //--------------------------------------------------------------------------------------------------------void init_T0 () { OPTION_REG = 0x0000111; T0IF = 0; TMR0 = 60; T0IE = 0;

} //--------------------------------------------------------------------------------------------------------void init_PWM() { T2CKPS1=1; T2CKPS0=0;

//Prescaler is 16 timer2

PR2 = 0xff; TMR2ON = 1; DC1B1=0; DC1B0=0; //

//Tinh Dutycycle

CCPR1L =0xF7; CCP1M3 = 1; CCP1M2 = 1; Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

38

Chương trình điều khiển CCP1M1 = 0; CCP1M0 = 0; } //--------------------------------------------------------------------------------------------------------void goc_PID ( unsigned int goc_need ) { Err1 = goc_need - KS ; if (Err1 > 0) { Err = Err1; } else { Err = -Err1; } if ( Err1 > 3 ) { RC3 = 1 ; RC4 = 1;}

//dao chieu

if ( Err1 < -2 ) { RC3 = 0 ; RC4 = 1;}

//dao chieu

if ( -2 <= Err1 && Err1 <=3 ){ RC4 = 0;}//dung dong co Ppart = KP * Err ; Dpart = KD * ( Err - Err_truoc )*rev_time ; Ipart += KI * time * Err / 1000 ; Output += Ppart + Dpart + Ipart ; if ( Output >=1000) {Output = 1000;} if ( Output <=0) {Output = 1;} CCPR1L = Output ; Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

39

Chương trình điều khiển Err_truoc = Err; } //--------------------------------------------------------------------------------------------------------void main() { i=0; Err_truoc = 0; init_port(); init_PWM(); init_ADC(); init_T0(); init_interrupts(); __delay_ms(500); init_LCD(); __delay_us(50); write_LCD(0,0x80);// du lieu ký tu se dua ve dòng 1 cot 1 write_LCD(1,'K'); write_LCD(1,'P'); write_LCD(0,0x85);// du lieu ký tu se dua ve dòng 1 cot 6 write_LCD(1,'K'); write_LCD(1,'I'); write_LCD(0,0x8A);// du lieu ký tu se dua ve dòng 1 cot 11 write_LCD(1,'K'); write_LCD(1,'D'); write_LCD(0,0xC0);// du lieu ký tu se dua ve dòng 2 cot 1 Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

40

Chương trình điều khiển write_LCD(1,'S'); write_LCD(1,'E'); write_LCD(0,0xC9); write_LCD(1,'1'); write_LCD(1,'.'); write_LCD(1,'2'); write_LCD(1,'2'); write_LCD(1,'k'); write_LCD(1,'H'); write_LCD(1,'z'); while (1) { GO=1; __delay_us(50); if ( T0IF == 1) { T0IF = 0; goc_PID (330); } } }

Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

41

Mô phỏng bộ điều khiển PID

V.

Mô phỏng bộ điều khiển PID

1. Mô hình toán học của động cơ.

Để tìm hàm truyền cho hệ thống hồi tiếp động cơ DC ta dùng định luật điện áp Kirchhoff’s . dia ra ka 1 = ia − ωr − u (1) dt La La La a Sử dụng định luật II Newton. ̅ = Ja̅ = J ∑T

dω ̅ dt

Momen xoắn được sinh ra bởi động cơ nam châm vĩnh cửu Te. Te = k a ∗ ia Momen xoắn ma sát nhớt TV. TV = Bm ωr Momen xoắn TL là momen xoắn do tải gây,dùng định luật II Newton, tìm được: dωr 1 1 = (Te − TV − TL ) = (k a ∗ ia − Bm ωr − TL ) (2) dt J J Phương trình biểu diễn sự thay đổi góc quay. dθr = ωr (3) dt Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

42

Mô phỏng bộ điều khiển PID Dựa vào ba phương trình (1) ,(2),(3) ta tìm được hàm tuyền. Biến đổi laplace, đặt s = d/dt và thay vào ba phương trình (1) ,(2),(3) ta được: (s −

ra ka 1 ) ia (s) = − ωa (s) − u (s) La La La a

(s +

(1′ )

Bm 1 1 ) ωr (s) = k a ia (s) − TL (s) J J J

(2′ ) (3′ )

sθr (s) = ωr (s) Sử dụng bộ điều khiển PID : ua (t) = k p e(t) + k i

e(t) s

+ k d s e(t)

2. Sơ đồ mô phỏng PID trên MATLAB Kết quả các thông số của động cơ sau khi đo là: Điện trở nội của động cơ ra = 2.7(Ω). Độ từ cảm của động cơ La = 0.004(H). Hằng số momen xoắn của động cơ ka = 0.150(Nm/A). Các giá trị J = 0.0001(kg.m2),Bm = 0.0000096(Nms/rad). Giả sử cho momen xoắn do tải gây là TL = 10(Nmm). Các giá trị kp,ki,kd được tích hợp trong khối PID của MATLAB. Thay các hệ số trên vào mô hình mô phỏng PID ta được sơ đồ như sau.

Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

43

Mô phỏng bộ điều khiển PID

Sau khi đã thiết lập xong mô hình mô phỏng , ta có thể xác định các hệ số kp, ki, kd để có đáp ứng mong muốn.

Hình1

Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

44

Mô phỏng bộ điều khiển PID

Để có dạng đáp ứng như H.1 thì phải truyền các hệ số kP = 1.127, kI = 3.713 và kD = -0.017.

Hình2

Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

45

Mô phỏng bộ điều khiển PID

Để có dạng đáp ứng như H.1 thì phải truyền các hệ số kP = 21.368, kI = 6.114 và kD = 0.000.

Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

46

Tài liệu tham khảo

VI.

Tài liệu tham khảo

[1] Microchip, AN964-Software PID Control of an Inverted Pendulum Using the PIC16F684 [2] Nguyễn Hữu lộc, Cơ sở thiết kế máy- NXB ĐH quốc gia T.P HCM 2000

Đồ án TKHTCĐT: Xe hai bánh tự cân bằng.

47

Related Documents

Xe Tu Can Bang.docx
October 2019 9
Tu Dien O To Xe May
June 2020 4
Gia Xe
June 2020 10
Xe Dap
November 2019 21
Hd Xe
June 2020 6
Nhan Xe
May 2020 12

More Documents from ""

Thesis_universe.pdf
April 2020 17
Thu Thuat Google
November 2019 19
L.docx
December 2019 33
December 2019 42
Ranie
May 2020 19