Mục lục:

Robot tự cân bằng sử dụng thuật toán PID (STM MC): 9 bước
Robot tự cân bằng sử dụng thuật toán PID (STM MC): 9 bước

Video: Robot tự cân bằng sử dụng thuật toán PID (STM MC): 9 bước

Video: Robot tự cân bằng sử dụng thuật toán PID (STM MC): 9 bước
Video: No 5: tìm hiểu PID,kết nối I2C MPU6050,ROBOT tự cân bằng .Self balancing robot using stepper motor 2024, Tháng bảy
Anonim
Robot tự cân bằng sử dụng thuật toán PID (STM MC)
Robot tự cân bằng sử dụng thuật toán PID (STM MC)

Gần đây, rất nhiều công việc đã được thực hiện trong việc tự cân bằng của các vật thể. Khái niệm về sự tự cân bằng được bắt đầu với sự cân bằng của con lắc ngược. Khái niệm này cũng mở rộng sang thiết kế máy bay. Trong dự án này, chúng tôi đã thiết kế một mô hình nhỏ robot tự cân bằng sử dụng Thuật toán PID (Tỷ lệ, Tích phân, Đạo hàm). Kể từ đó, phương pháp này là bộ mặt mới của hệ thống điều khiển quá trình công nghiệp. Báo cáo này xem xét các phương pháp liên quan đến việc tự cân bằng của các đối tượng. Dự án này được thực hiện như một dự án học kỳ nhằm tìm hiểu mối tương quan của PID đối với hiệu suất của các quy trình công nghiệp khác nhau. Ở đây chúng tôi chỉ tập trung vào việc cung cấp một đánh giá ngắn gọn về tính năng và ứng dụng của điều khiển PID. Bài báo này đã được phát triển bằng cách cung cấp một giới thiệu ngắn gọn về hệ thống điều khiển và các thuật ngữ liên quan, cùng với các động cơ thúc đẩy dự án. Thử nghiệm và quan sát đã được thực hiện, thành tích và điểm tốt được mô tả khi kết thúc ở những cải tiến trong tương lai. Một mô hình rô bốt tự cân bằng đã được phát triển để hiểu được sức mạnh điện tử của PID trong thế giới của hệ thống điều khiển. Trải qua một số kiểm tra và thử nghiệm nghiêm ngặt, người ta đã phát hiện ra những điểm đáng giá và yếu kém của hệ thống điều khiển PID. Người ta thấy rằng mặc dù có nhiều ưu điểm của điều khiển PID so với các phương pháp trước đây, nhưng hệ thống này vẫn đòi hỏi nhiều cải tiến. Hy vọng rằng người đọc hiểu rõ về tầm quan trọng của việc tự cân bằng, tính năng và các yếu tố của kiểm soát PID

Bước 1: Giới thiệu

Với sự ra đời của máy tính và quá trình công nghiệp hóa các quy trình, trong suốt lịch sử của con người, luôn có những nghiên cứu để phát triển các cách tái tạo các quy trình và quan trọng hơn là kiểm soát chúng bằng cách sử dụng máy móc một cách tự chủ. Mục đích là để giảm sự tham gia của con người vào các quá trình này, do đó giảm lỗi trong các quá trình này. Do đó, lĩnh vực "Kỹ thuật hệ thống điều khiển" đã được phát triển. Kỹ thuật Hệ thống Điều khiển có thể được hiểu là sử dụng các phương pháp khác nhau để kiểm soát hoạt động của một quá trình hoặc duy trì một môi trường ổn định và ưa thích, có thể là thủ công hoặc tự động.

Một ví dụ đơn giản có thể là kiểm soát nhiệt độ trong phòng. Điều khiển bằng tay có nghĩa là sự hiện diện của một người tại địa điểm kiểm tra các điều kiện hiện tại (cảm biến), so sánh nó với giá trị mong muốn (xử lý) và thực hiện hành động thích hợp để đạt được giá trị mong muốn (thiết bị truyền động). Vấn đề của phương pháp này là nó không đáng tin cậy lắm vì một người dễ mắc lỗi hoặc cẩu thả trong công việc của mình. Ngoài ra, một vấn đề khác là tốc độ của quá trình do cơ cấu chấp hành khởi xướng không phải lúc nào cũng đồng đều, có nghĩa là đôi khi nó có thể xảy ra nhanh hơn yêu cầu hoặc đôi khi có thể chậm. Giải pháp của vấn đề này là sử dụng một bộ điều khiển vi mô để điều khiển hệ thống. Bộ điều khiển vi mô là

được lập trình để điều khiển quá trình, theo các thông số cụ thể, được kết nối trong một mạch (sẽ được thảo luận ở phần sau), được cung cấp giá trị hoặc điều kiện mong muốn và do đó điều khiển quá trình để duy trì giá trị mong muốn. Ưu điểm của quá trình này là không cần sự can thiệp của con người trong quá trình này. Ngoài ra, tốc độ của quá trình là đồng nhất

Hệ thống điều khiển cơ bản

Sơ đồ trước cho thấy một phiên bản rất đơn giản của Hệ thống điều khiển. Bộ vi điều khiển là trung tâm của bất kỳ Hệ thống điều khiển nào. Nó là một thành phần rất quan trọng do đó, việc lựa chọn nó phải được thực hiện cẩn thận dựa trên các yêu cầu của Hệ thống. Bộ điều khiển vi mô nhận đầu vào từ người dùng. Đầu vào này xác định điều kiện mong muốn của Hệ thống. Bộ điều khiển vi mô cũng nhận đầu vào phản hồi từ cảm biến. Cảm biến này được kết nối với đầu ra của Hệ thống, thông tin được đưa trở lại đầu vào. Bộ vi xử lý, dựa trên lập trình của nó, thực hiện các phép tính khác nhau và đưa ra kết quả đầu ra cho bộ truyền động. Cơ cấu chấp hành, dựa trên đầu ra, điều khiển nhà máy để cố gắng duy trì các điều kiện đó. Một ví dụ có thể là một người điều khiển động cơ điều khiển một động cơ trong đó người điều khiển động cơ là thiết bị truyền động và động cơ là nhà máy. Do đó, động cơ quay với một tốc độ nhất định. Cảm biến được kết nối đọc tình trạng của nhà máy tại thời điểm hiện tại và đưa nó trở lại bộ điều khiển vi mô. Bộ điều khiển vi mô lại so sánh, tính toán và do đó, chu trình tự lặp lại. Quá trình này lặp đi lặp lại và vô tận, nhờ đó bộ điều khiển vi mô duy trì các điều kiện mong muốn

Bước 2: Hệ thống điều khiển dựa trên PID

Hệ thống điều khiển dựa trên PID
Hệ thống điều khiển dựa trên PID
Hệ thống điều khiển dựa trên PID
Hệ thống điều khiển dựa trên PID

Thuật toán PID là một phương pháp hiệu quả để thiết kế Hệ thống điều khiển.

De fi nition

PID là viết tắt của Tỷ lệ, Tích phân và Đạo hàm. Trong thuật toán này, tín hiệu lỗi nhận được là đầu vào. Và phương trình sau được áp dụng cho tín hiệu lỗi

U (t) = Kp ∗ e (t) + Kd ∗ d / dt (e (t)) + Ki ∗ tích phân (e (t)) (1.1)

Giải thích ngắn gọn

Như có thể thấy trong phương trình trên, tích phân và đạo hàm của các tín hiệu lỗi được tính, nhân với các hằng số tương ứng của chúng và cộng với hằng số Kp nhân với e (t). Đầu ra sau đó được đưa đến thiết bị truyền động làm cho hệ thống hoạt động. Bây giờ chúng ta hãy xem xét lần lượt từng phần của hàm. Chức năng này trực tiếp tạo ra thời gian tăng, thời gian rơi, đỉnh quá độ, thời gian ổn định và lỗi trạng thái ổn định.

• Phần tỷ lệ: Phần tỷ lệ làm giảm thời gian tăng và giảm sai số trạng thái ổn định. Điều này có nghĩa là hệ thống sẽ mất ít thời gian hơn để đạt được giá trị đỉnh của nó và khi nó đạt đến trạng thái ổn định, sai số trạng thái ổn định sẽ thấp. Tuy nhiên, nó làm tăng độ vượt đỉnh.

• Phần đạo hàm: Phần đạo hàm làm giảm độ vọt lố và thời gian lắng. Điều này có nghĩa là trạng thái nhất thời của hệ thống sẽ bị giảm xóc hơn. Ngoài ra, hệ thống sẽ đạt trạng thái ổn định trong thời gian ngắn hơn. Tuy nhiên, nó không có bất kỳ lỗi nào về thời gian tăng hoặc lỗi trạng thái ổn định.

• Phần tích phân: Phần tích phân làm giảm thời gian tăng và loại bỏ hoàn toàn sai số trạng thái ổn định. Tuy nhiên, nó làm tăng độ vượt đỉnh và thời gian lắng.

• Điều chỉnh: Một Hệ thống Điều khiển tốt sẽ có thời gian tăng thấp, thời gian ổn định, vượt quá đỉnh và lỗi trạng thái ổn định. Do đó, Kp, Kd, Ki cần được điều chỉnh cẩn thận để điều chỉnh sự đóng góp của các yếu tố trên nhằm có được một Hệ thống điều khiển tốt.

Hình đã được đính kèm cho thấy ảnh hưởng của việc thay đổi các tham số khác nhau trong thuật toán PID.

Bước 3: Robot tự cân bằng

Robot tự cân bằng
Robot tự cân bằng

Robot tự cân bằng là một robot nhiều lớp, hai bánh.

Robot sẽ cố gắng tự cân bằng khi tác dụng bất kỳ lực không cân bằng nào. Nó sẽ tự cân bằng bằng cách tác dụng lực chống lại kết quả của các lực tác động lên robot.

Phương pháp tự cân bằng

Có bốn phương pháp tự cân bằng của robot. Những điều này như sau:

Tự cân bằng bằng cách sử dụng hai cảm biến nghiêng IR

Đây là một cách thô thiển nhất để giữ thăng bằng cho robot vì nó đòi hỏi rất ít phần cứng và một thuật toán tương đối dễ dàng. Trong cách tiếp cận này, hai cảm biến IR nghiêng được sử dụng để đo khoảng cách giữa mặt đất và robot. Dựa trên khoảng cách được tính toán, PID có thể được sử dụng để dẫn động các động cơ nhằm cân bằng robot cho phù hợp. Một nhược điểm của phương pháp này là cảm biến IR có thể bỏ sót một số kết quả đọc. Một vấn đề khác là cần có một ngắt và các vòng lặp để tính toán khoảng cách, điều này làm tăng độ phức tạp về thời gian của thuật toán. Do đó, phương pháp cân bằng robot này không hiệu quả.

Tự cân bằng bằng Gia tốc kế

Gia tốc kế cho chúng ta gia tốc của cơ thể theo 3 trục. Gia tốc được định hướng theo trục y (hướng lên) và trục x (về phía trước) cho chúng ta số đo để tính hướng của trọng lực và do đó tính được góc nghiêng. Góc được tính như sau:

θ = arctan (Ay / Ax) (1.2)

Nhược điểm của việc sử dụng phương pháp này là trong quá trình chuyển động của rô bốt, gia tốc ngang cũng sẽ được thêm vào các số đọc là tiếng ồn tần số cao. Do đó, góc nghiêng sẽ không chính xác.

Tự cân bằng bằng con quay hồi chuyển

Một con quay hồi chuyển được sử dụng để tính toán vận tốc góc dọc theo ba trục. Góc nghiêng thu được theo công thức sau.

θp (i) = θp (i − 1) + 1/6 (vali − 3 + 2vali − 2 + 2vali − 1 + vali) (1.3)

Một nhược điểm lớn của việc sử dụng con quay hồi chuyển là nó có Bias DC nhỏ là nhiễu tần số thấp và trong một vài thời điểm các giá trị trả về hoàn toàn sai. Điều này, sau khi tích hợp, sẽ làm cho điểm 0 trôi đi. Do đó, robot sẽ giữ nguyên vị trí thẳng đứng của nó trong một thời gian và sẽ ngã xuống khi sự trôi dạt đến.

Tự cân bằng sử dụng cả Gia tốc kế và Con quay hồi chuyển

Như đã thảo luận ở trên, chỉ sử dụng gia tốc kế hoặc con quay hồi chuyển sẽ không cho chúng ta góc nghiêng chính xác. Để giải thích điều đó, cả gia tốc kế và con quay hồi chuyển đều được sử dụng. Cả hai đều được nhúng trong MPU6050. Trong đó, chúng tôi lấy dữ liệu từ cả hai và sau đó kết hợp chúng bằng cách sử dụng Bộ lọc Kalman hoặc Bộ lọc bổ sung.

• Bộ lọc Kalman: Bộ lọc Kalman tính toán ước lượng tốt nhất về trạng thái của một hệ thống động từ các phép đo nhiễu, giảm thiểu sai số bình phương trung bình của ước lượng. Nó hoạt động theo hai giai đoạn, dự đoán và hiệu chỉnh, dựa trên các phương trình ngẫu nhiên rời rạc mô tả động lực học của hệ thống. Tuy nhiên, nó là một thuật toán rất phức tạp để thực hiện, đặc biệt là trên một phần cứng hạn chế của vi điều khiển.

• Bộ lọc bổ sung: Thuật toán này chủ yếu sử dụng dữ liệu thu được từ con quay hồi chuyển và tích hợp nó theo thời gian để có được góc nghiêng. Nó cũng sử dụng một tỷ lệ nhỏ các số đọc gia tốc kế. Trên thực tế, fi lter bổ sung giảm thiểu tiếng ồn tần số cao của gia tốc kế và tiếng ồn tần số thấp của con quay hồi chuyển, sau đó kết hợp chúng để tạo ra góc nghiêng chính xác nhất.

Bước 4: Thiết kế Robot

Thiết kế của Robot
Thiết kế của Robot

Chúng tôi đã thiết kế rô bốt tự cân bằng sử dụng bộ điều khiển Đạo hàm theo tỷ lệ được thực hiện bởi Bộ lọc bổ sung cho MPU6050. Mô hình nhỏ về Robot tự cân bằng này sẽ cho chúng ta thấy sự hữu ích của Hệ thống điều khiển trong việc tự cân bằng của robot.

Hoàn thiện hệ thống:

Hệ thống này là một robot tự cân bằng. Nó được thực hiện bằng Bộ điều khiển PID là Bộ điều khiển Đạo hàm Tích phân Tỷ lệ. Chúng tôi giữ thăng bằng cho robot bằng cách lái các bánh xe của nó theo hướng rơi của nó. Để làm điều đó, chúng tôi đang cố gắng giữ cho trọng tâm của robot ở trên điểm trục. Để điều khiển các bánh xe theo hướng rơi của nó, chúng ta nên biết vị trí mà robot đang rơi và tốc độ nó đang rơi. Dữ liệu này thu được bằng cách sử dụng MPU6050 có gia tốc kế và con quay hồi chuyển. MPU6050 đo góc nghiêng và cung cấp đầu ra cho Bộ điều khiển vi mô. MPU6050 được giao tiếp với Bảng STM thông qua I2C. Trong I2C, một dây dành cho đồng hồ được đặt tên là SCL. Cái còn lại dành cho việc truyền dữ liệu là SDA. Trong đó, giao tiếp chủ tớ được sử dụng. Địa chỉ bắt đầu và địa chỉ kết thúc được chỉ định để biết dữ liệu bắt đầu từ đâu và kết thúc ở đâu. Chúng tôi đã triển khai Bộ lọc bổ sung ở đây cho MPU6050, một bộ lọc toán học để kết hợp các đầu ra của gia tốc kế và con quay hồi chuyển. Sau khi lấy được dữ liệu từ MPU6050, vi điều khiển sẽ thực hiện các phép tính để biết nó đang rơi xuống vị trí nào. Dựa trên các tính toán, bộ điều khiển vi mô STM sẽ đưa ra lệnh cho người điều khiển động cơ điều khiển các phương tiện theo hướng rơi để robot cân bằng.

Bước 5: Các thành phần dự án

Các thành phần dự án
Các thành phần dự án
Các thành phần dự án
Các thành phần dự án
Các thành phần dự án
Các thành phần dự án

Các thành phần sau được sử dụng trong dự án robot tự cân bằng:

STM32F407

Một bộ điều khiển vi mô được thiết kế bởi ST Microelectronics. Nó hoạt động trên Kiến trúc ARM Cortex-M.

Trình điều khiển động cơ L298N

IC này được sử dụng để chạy động cơ. Nó nhận được hai đầu vào bên ngoài. Một từ bộ vi điều khiển cung cấp cho nó tín hiệu PWM. Bằng cách điều chỉnh độ rộng của xung, tốc độ động cơ có thể được điều chỉnh. Đầu vào thứ hai của nó là nguồn điện áp cần thiết để điều khiển động cơ là pin 12V trong trường hợp của chúng tôi.

Động cơ DC

Động cơ DC chạy trên nguồn DC. Trong thử nghiệm này, Động cơ DC đang chạy bằng cách sử dụng bộ ghép quang được kết nối với trình điều khiển động cơ. Để điều khiển động cơ, chúng tôi đã sử dụng Bộ truyền động động cơ L298N.

MPU6050

MPU6050 được sử dụng để lấy thông tin về nơi rô bốt rơi xuống. Nó đo góc nghiêng so với điểm nghiêng 0 là vị trí của MPU6050 khi chương trình bắt đầu chạy.

MPU6050 có gia tốc kế 3 trục và con quay hồi chuyển 3 trục. Gia tốc kế đo gia tốc dọc theo ba trục và con quay hồi chuyển đo tốc độ góc về ba trục. Để kết hợp đầu ra, chúng ta phải loại bỏ tiếng ồn của cả hai. Để tránh ồn ào, chúng tôi có Kalman và ống lọc bổ sung. Chúng tôi đã triển khai bổ sung fi lter trong dự án của mình.

Cặp đôi Opto 4N35

Optocoupler là một thiết bị dùng để cách ly phần điện áp thấp và phần điện áp cao của mạch điện. Như tên cho thấy, nó hoạt động trên cơ sở ánh sáng. Khi phần điện áp thấp nhận được tín hiệu, dòng điện có trong phần điện áp cao

Bước 6: Cấu trúc của Robot

Cấu trúc của robot được giải thích như sau:

Cấu trúc vật lý

Robot tự cân bằng bao gồm hai lớp được tạo thành từ thủy tinh nhựa trong suốt. Chi tiết của hai lớp được đưa ra dưới đây:

Lớp đầu tiên

Ở phần dưới cùng của lớp đầu tiên, chúng tôi đã đặt một ô để cấp nguồn cho bảng STM. Ngoài ra, hai động cơ 4 vôn, mỗi động cơ đã được đặt ở mỗi bên với lốp xe được kết nối để robot di chuyển. Ở phần trên của lớp thứ nhất, hai pin 4 volt mỗi pin (tổng 8 volt) và IC điều khiển động cơ (L298N) đã được đặt để phục vụ hoạt động của động cơ.

Lớp thứ hai

Ở lớp trên của robot, chúng tôi đã đặt STM Board trên Perf Board. Một bo mạch hoàn hảo khác gồm 4 bộ ghép opto được đặt trên lớp trên cùng. Con quay hồi chuyển cũng được đặt trên lớp trên cùng của robot từ phía dưới. Cả hai thành phần được đặt ở phần giữa để trọng tâm được giữ ở mức thấp nhất có thể.

Trọng tâm của Robot

Trọng tâm được duy trì ở mức thấp nhất có thể. Vì mục đích này, chúng tôi đã đặt pin nặng ở lớp dưới cùng và các thành phần nhẹ như bo mạch STM và bộ ghép quang ở lớp trên.

Bước 7: Mã

Mã được biên dịch trên Atollic TrueStudio. Phòng thu STM đã được sử dụng cho mục đích gỡ lỗi.

Bước 8: Kết luận

Sau rất nhiều thử nghiệm và quan sát, chúng tôi cuối cùng đã đi đến điểm mà chúng tôi tóm tắt kết quả của mình và thảo luận xem chúng tôi đã thành công đến đâu trong việc triển khai và tìm ra tính năng động của hệ thống.

Đánh giá chung

Trong quá trình thử nghiệm, tốc độ của động cơ đã được điều khiển thành công bằng Thuật toán PID. Tuy nhiên, đường cong không phải là một đường thẳng mượt mà. Có nhiều nguyên nhân xảy ra việc đó:

• Cảm biến mặc dù được kết nối với bộ lọc thông thấp vẫn cung cấp một số khả năng gỡ lỗi nhất định; đó là do các điện trở phi tuyến tính và một số lý do không thể tránh khỏi của thiết bị điện tử tương tự.

• Động cơ không quay trơn tru dưới điện áp nhỏ hoặc PWM. Nó cung cấp giật có thể gây ra một số giá trị sai được cung cấp cho hệ thống.

• Do lắc lư, cảm biến có thể bỏ sót một số khe hở cung cấp giá trị cao hơn. • Một lý do chính khác gây ra lỗi có thể là tần số xung nhịp lõi của bộ vi điều khiển STM. Mô hình vi điều khiển STM này cung cấp xung nhịp lõi là 168MHz. Mặc dù đã xử lý vấn đề này trong dự án này, nhưng có một khái niệm tổng thể về mô hình này rằng nó không chính xác cung cấp tần số cao như vậy.

Tốc độ vòng lặp mở cung cấp một đường rất trơn tru với chỉ một vài giá trị không mong muốn. Thuật toán PID cũng đang hoạt động để cung cấp thời gian ổn định của động cơ rất thấp. Thuật toán PID của động cơ đã được thử nghiệm dưới nhiều điện áp khác nhau, giữ cho tốc độ tham chiếu không đổi. Sự thay đổi điện áp không làm thay đổi tốc độ của động cơ cho thấy rằng Thuật toán PID đang hoạt động.

E ff ectiveness

Ở đây chúng tôi thảo luận về tính năng của bộ điều khiển PID mà chúng tôi đã quan sát được trong quá trình thử nghiệm.

Thực hiện đơn giản

Chúng tôi đã thấy trong phần thử nghiệm và quan sát rằng bộ điều khiển PID rất dễ thực hiện. Nó chỉ yêu cầu ba tham số hoặc hằng số phải được thiết lập để có một hệ thống điều khiển tốc độ

Hiệu quả E chưa từng có cho Hệ thống Tuyến tính

Bộ điều khiển PID tuyến tính là bộ điều khiển phù hợp nhất trong họ bộ điều khiển vì logic rất đơn giản và ứng dụng rộng rãi trong trường hợp các ứng dụng tuyến tính hoặc khá tuyến tính.

Hạn chế

Chúng tôi đã giải thích trong phần tóm tắt về Hạn chế của hệ thống này. Ở đây chúng tôi thảo luận về một vài trong số chúng mà chúng tôi đã quan sát được.

Lựa chọn hằng số

Chúng ta đã thấy rằng, mặc dù bộ điều khiển PID rất dễ thực hiện, vẫn có một nhược điểm lớn của hệ thống là bước chọn giá trị của các hằng số là một công đoạn tốn nhiều công sức; vì người ta phải thực hiện các phép tính khác nhau. Cách khác là phương pháp thử và đánh nhưng cách đó cũng không hiệu quả.

Hằng số không phải lúc nào cũng không đổi

Các kết quả thử nghiệm cho thấy rằng đối với các giá trị khác nhau của tốc độ tham chiếu cho động cơ, bộ điều khiển PID bị trục trặc đối với các giá trị tương tự của các hằng số PID. Đối với tốc độ khác nhau, các hằng số phải được chọn khác nhau và điều này làm tăng chi phí tính toán theo cấp số nhân.

Không tuyến tính

Bộ điều khiển PID được sử dụng trong trường hợp của chúng tôi là tuyến tính, do đó, nó chỉ có thể được áp dụng cho các hệ thống tuyến tính. Đối với các hệ thống phi tuyến tính, bộ điều khiển phải được thực hiện khác nhau. Mặc dù có sẵn các phương pháp PID phi tuyến tính khác nhau, nhưng chúng yêu cầu nhiều tham số hơn để được chọn. Điều này một lần nữa làm cho hệ thống không mong muốn do chi phí tính toán cao.

Yêu cầu Đẩy ban đầu

Chúng tôi đã chỉ ra trong phần thử nghiệm rằng đối với tốc độ tham chiếu khá nhỏ, trong đó lỗi khá nhỏ khi khởi động, PWM do PID cung cấp quá nhỏ nên nó không tạo ra mô-men xoắn khởi động cần thiết cho động cơ. Vì vậy, động cơ trong một số thử nghiệm không chạy hoặc trong các thử nghiệm khác cung cấp độ vọt lố lớn và thời gian ổn định lâu hơn.

Bước 9: Cảm ơn đặc biệt

Đặc biệt Cảm ơn các thành viên trong nhóm đã giúp tôi thực hiện dự án này.

Tôi sẽ đăng tải liên kết đến video sớm.

Tôi hy vọng bạn thấy hướng dẫn này thú vị.

Đây là Tahir Ul Haq từ khi ký kết UET. Chúc mừng !!!

Đề xuất: