bộ PID số thực hiện trên dòng vi điều khiển (VDK) 32bit ARM cortex m3 mới nhất của hãng NXP LPC 1754

21 667 8
bộ PID số thực hiện trên dòng vi điều khiển (VDK) 32bit ARM cortex m3 mới nhất của hãng NXP LPC 1754

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

bộ PID số thực hiện trên dòng vi điều khiển (VDK) 32bit ARM cortex m3 mới nhất của hãng NXP LPC 1754

ĐỒ ÁN MÔN HỌC GVHD: HUỲNH VĂN KIỂM Lời mở ñầu Điều khiển ñộng DC (ñiều khiển tốc ñộ ñiều khiển vị trí) kiến thức mà kỹ sư ngành ñiều khiển tự ñộng cần phải biết phải làm ñược Có nhiều phương pháp ñiều khiển từ kinh ñiển ñến ñại : ON-OFF, PID tương tự analog,ñiều khiển mờ,thích nghi,bền vững Ngày người ta ñã kết hợp nhiều ñiều khiển với ñể ñiều khiển ñối tượng ñể nâng cao chất lượng hệ thống theo thay ñổi môi trường quan trọng tăng tính “thông minh” cho thiết bị:PID thích nghi,PID mờ,các hệ lai… Việc lựa chọn phương pháp chất lượng ñiều khiển ñến ñâu phụ thuộc vào khả sinh viên khả hỗ trợ phần cứng Trong ñồ án môn học em lựa chọn phương pháp ñiều khiển nhất,kinh ñiển : PID số thực dòng vi ñiều khiển (VDK)32bit ARM cortex M3 hãng NXP :LPC 1754 Em xin chân thành cảm ơn thầy HUỲNH VĂN KIỂM,người ñã gợi ý ñề tài hướng dẫn giúp ñỡ em suốt trình làm ñồ án Vì ARM cortex M3 dòng vi ñiều khiển chưa ñược phát triển rộng rãi nên trình làm ñồ án có khó khăn nhất,ñặt biệt vấn ñề thời gian Dù ñã có gắng nhiều có kết chưa mong muốn có hạn chế.Em mong nhận ñược ý kiến ñóng góp ñể ñồ án luận văn làm tốt Tp.Hồ Chí Minh tháng 01/2011 Sinh viên thực Lê Văn Mùi PID ĐIỀU KHIỂN ĐỘNG CƠ DC SVTH: LÊ VĂN MÙI ĐỒ ÁN MÔN HỌC HUỲNH VĂN KIỂM GVHD: MỤC LỤC Lời mở ñầu Mục lục Phần 1: Phần 2: Phần 3: Phần 4: Phần 5: Phần 6: MỤC ĐÍCH VÀ CÁC PHẦN SỬ DỤNG TRONG ĐỒ ÁN GIỚI THIỆU VỀ ARM CORTEX M3 LPC 1754 CÁC MODULE PHẦN CỨNG PHẦN MỀM KẾT QUẢ THỰC HIỆN ,ĐÁNH GIÁ,HƯỚNG PHÁT TRIỂN TÀI LIỆU THAM KHẢO PID ĐIỀU KHIỂN ĐỘNG CƠ DC SVTH: LÊ VĂN MÙI ĐỒ ÁN MÔN HỌC GVHD: HUỲNH VĂN KIỂM Phần 1: MỤC ĐÍCH VÀ CÁC PHẦN SỬ DỤNG TRONG ĐỒ ÁN I Mục ñích Đồ án • Tìm hiểu dòng ARM lpc cortex M3 NXP • Dùng PID số ñiều khiển tốc ñộ ñộng II Các phần sử dụng ñồ án Phần cứng: • Vi ñiều khiển LPC 1754 (NXP) • Nguồn DC 24V/12V/5V -5A dùng BJT • Cầu H dùng FET • Giao tiếp USB2UART • Các khối hiển thị Phần mềm: • Trình biên dịch Keil C • Flash Magic • hyperterminal PID ĐIỀU KHIỂN ĐỘNG CƠ DC SVTH: LÊ VĂN MÙI ĐỒ ÁN MÔN HỌC GVHD: HUỲNH VĂN KIỂM Phần GIỚI THIỆU VỀ ARM CORTEX M3 LPC 1754 I Tổng quan ARM cortex M3: • • • • • Bộ vi xử lý Cortex-M3 vi xử lý 32-bit Có cấu hình chính: • cấu hình A(application) :các úng dụng chạy hệ ñiều hành • cấu hình R(real time) : ứng dụng thời gian thực • cấu hình M(microcontroller):các ứng dụng ñiều khiển Bộ vi xử lý Cortex-M3 dựa kiến trúc ARMv7-M,tích hợp lõi xử lý trung tâm CM3Core, với thiết bị ngoại vi hệ thống tiên tiến có khả kiểm soát ngắt, bảo vệ nhớ, gỡ lỗi theo vết hệ thống Lõi trung tâm Cortex-M3 dựa kiến trúc Harvard 13 ghi ña dụng, hai trỏ ngăn xếp, ghi liên kết, ñếm chương trình số ghi ñặc biệt ñó có ghi trạng thái chương trình PID ĐIỀU KHIỂN ĐỘNG CƠ DC SVTH: LÊ VĂN MÙI ĐỒ ÁN MÔN HỌC GVHD: HUỲNH VĂN KIỂM Bảng So sánh ARM7TDMI-S Cortex-M3 (100MHz - TSMC 0.18G) (*: Không bao gồm thiết bị ngoại vi (MPU & ETM) thành phần tích hợp khác) Hình So sánh hiệu suất ARM7TDMI-S (ARM) Cortex-M3 (Thumb-2) Hình So sánh kích thước mã lệnh ARM7TDMI-S (ARM) Cortex-M3 (Thumb-2) PID ĐIỀU KHIỂN ĐỘNG CƠ DC SVTH: LÊ VĂN MÙI ĐỒ ÁN MÔN HỌC II GVHD: HUỲNH VĂN KIỂM LPC 1754 • • • • • • • • • • • • • • • • • • • • • • • • • • • • Thuộc dòng ARM -32bit cortex M3 CPU clock up to 100MHz 128kB on-chip Flash ROM with enhanced Flash Memory Accelerator In-System Programming (ISP) and In-Application Programming (IAP), 32kB RAM, Nested Vectored Interrupt Controller channel General purpose DMA controller USB 2.0 full-speed Device controller and Host/OTG controller with DMA, CAN 2.0B with channel, UARTs, with full Modem interface I2C serial interfaces,3 SPI/SSP serial interfaces, 54 General purpose I/O pins, 12-bit ADC with channels, 10-bit DAC, Four 32-bit Timers with capture/compare, Standard PWM Timer block, Motor control PWM for three-phase Motor control, Quadrature Encoder, Watchdog Timer, Real Time Clock with optional Battery backup, System Tick Timer, Repetitive Interrupt Timer, Brown-out detect circuit, Power-On Reset, Power Management Unit, Wakeup Interrupt Controller, Crystal oscillator, 4MHz internal RC oscillator, PLL, JTAG and Serial Wire Debug/Trace Port with ETM Các ngoại vi sử dụng ñồ án: GPIO QEI PWM UART ADC NVIC PID ĐIỀU KHIỂN ĐỘNG CƠ DC : Các khối hiển thị :Đọc xung từ encoder : Điều rộng xung thay ñổi tốc ñộ ñộng : Nạp chương trình giao tiếp UART với PC : Đo dòng ñiện qua ñộng ñể xử lý tải :ngắt ,ngắt QEI SVTH: LÊ VĂN MÙI ĐỒ ÁN MÔN HỌC III GVHD: HUỲNH VĂN KIỂM Giới thiệu module sử dụng Đồ án Quadrature Encoder • Đây moldule hỗ trợ giao tiêp encoder mạnh mẽ dòng LPC17xx • Có khả xác ñịnh xác vị trí ñộng • Đếm lên ñếm xuống thuôc vào hướng • Thanh ghi ñếm xung 32 bit • Tích hợp timer ứng dụng thời gian lấy mẫu • Có nhân nhân ñể tang ñộ phân giải ñọc xung • Các ghi so sánh tốc ñọ vị trí có khả có ngắt cho so sánh • Giải thuật xác ñịnh vận tốc : Tốc ñộ ñược tính theo công thức sau Đọc velocity counter RPM= (PCLK*QEICAP*60) /(QEILOAD*PPR*EDGES) Với: RPM :tốc ñộ (rpm) PCLK : xung clock ngoại vi dùng cho QEI QEICAP:giá trị ghi velocity counter cuối trước xãy ngắt :ñược lưu vào velocity capture có ngắt QEILOAD :thời gian lấy mẫu PPR :số xung/vong encoder EDGES: chế ñộ nhân :mặc ñịnh nhân Tính tốc ñộ Xóa cờ ngắt PID ĐIỀU KHIỂN ĐỘNG CƠ DC SVTH: LÊ VĂN MÙI ĐỒ ÁN MÔN HỌC GVHD: HUỲNH VĂN KIỂM PWM • • • • Chế ñộ kênh kênh ghi match cho ngõ chế ñộ kênh ngõ chế ñộ kênh 32 bit timer ,counter ,capture 32bit prescaler Hoạt ñộng: MR0 : chứa giá trị tính chu kì PWM MRn :chứa giá trinh xác ñịnh duty circle cho kệnh n (chế ñộ kênh) MR(n-1) MRn : chứa giá trinh xác ñịnh duty circle cho kệnh n (chế ñộ kênh) PID ĐIỀU KHIỂN ĐỘNG CƠ DC SVTH: LÊ VĂN MÙI ĐỒ ÁN MÔN HỌC GVHD: HUỲNH VĂN KIỂM IVGiới thiệu phần mềm hỗ trợ 1.Keil C ARM thư viện chuẩn LPC17xx CMSIS: Keil C ARM uvision 4: • Keil C phần mêm mạnh hỗ trợ lập trinh cho nhiều dòng vi ñiều khiển nhiều hang khác môi trường ngôn ngữ lập trình C • keil hỗ trợ mạch dòng VDK NXP (8951,ARM) với khả debug dạng simulator gần giống với kit thực • Đặc biệt Keil C hỗ trợ debug qua JTAG (công cụ gỡ rối ,sữa lỗi onchip) Bộ thư viện chuẩn LPC17xx CMSIS • Được xem thư viện ñầy ñủ từ trước ñến NXP hổ trợ ARM M3, • Giúp người dùng tiếp cận nhanh với ARM M3 • Trong chương trinh người dùng cần gọi hàm có sẵn • Thư viện hỗ trợ hầu hết ngoại vi có chip Một project hoàn chỉnh gồm file startup_LPC17xx.s core_cm3.c system_LPC17xx.c Các hàm lái ngoại vi Một vài lưu ý sử dụng: Không thiết add toàn Drivers,chỉ cần load driver sử dụng ñến Tùy vào project mà chỉnh sử file lpc17xx_libcfg.h ñể khai báo ngoại vi ñược sử dụng project 2.Flash magic: phần mềm nạp qua cổng ISP sử dụng cổng RS232 PID ĐIỀU KHIỂN ĐỘNG CƠ DC SVTH: LÊ VĂN MÙI ĐỒ ÁN MÔN HỌC GVHD: HUỲNH VĂN KIỂM Phần 3: CÁC MODULE PHẦN CỨNG I.Khối nguồn: Mô tả: • • ngõ vào :24VAC/5A ngõ : 24VDC/12VDC/5VDC-5A Linh kiện: • • • ic ổn áp LM7824,LM7812,LM7805 transistor kéo dòng PNP B688 (chịu dòng tối da 7A-datasheet) Cầu chỉnh lưu 10A II.Khối vi ñiều khiển: Mô tả: Đế cắm hỗ trợ xuất port cho main LPC1754 PID ĐIỀU KHIỂN ĐỘNG CƠ DC SVTH: LÊ VĂN MÙI ĐỒ ÁN MÔN HỌC GVHD: HUỲNH VĂN KIỂM III.Khối công suất chấp hành: Cầu H dùng FET IRL540 Mô tả: • Ngõ vào : + nguồn 3.3V,24V,12V,5V + kênh ñiều rộng xung Ngõ ra: + 24 V thây ñổi theo PWM • Linh kiện: • IC 6N137 :cách ly phần ñiều khiển phần công suất • IC IR2184 :IC lái kích FET cho kênh ñảo không ñảo • FET IRL540 :khóa ñiện tử Ưu ñiểm: • Có thể ñổi chiều quay • Chịu dòng cao tùy thuộc vào FET • Số kênh PWM :2 Nguyên tắc hoạt ñộng: • kênh PWM hoạt ñộng ñối nghịch (không ñồng thời) • kênh nối vào PWM0,PWM1 mainboard • kênh mức :dừng ñộng • Một kênh mức , kênh lại mức 1:ñộng quay • Đổi chiều cách thay ñôi kênh PWM (bằng phần mềm) VI.Khối giao tiếp: Mô tả: • Ngõ vào: USB 2.0 • Ngõ ra: + RS232 với chân :DPTR,RTS,TXD,RXD,GND + Nguồn 5V DC,3.3V DC Linh kiện: • PL2302HX :IC USB sang UART • SM1117 :ổn áp 3.3V PID ĐIỀU KHIỂN ĐỘNG CƠ DC SVTH: LÊ VĂN MÙI ĐỒ ÁN MÔN HỌC GVHD: HUỲNH VĂN KIỂM V.khối hiển thị: Mô tả: • Ngõ vào: • Ngõ ra: • • IC 74LS47 : giải mã BCD BJT A1015 :nâng dòng +Nguồn 5V hoăc 3.3V +4pins VCC cho kích BJT ,4pins data led ñoạn Linh kiện: ñoạn Mô tả: PID ĐIỀU KHIỂN ĐỘNG CƠ DC SVTH: LÊ VĂN MÙI ĐỒ ÁN MÔN HỌC GVHD: HUỲNH VĂN KIỂM VII: Giới thiệu ñộng với bô encoder: Mục ñích sử dụng encoder: • Xác ñịnh chiều quay ñộng • Xác ñịnh tốc ñộ ñọng • Xác ñịnh vị trí ñộng cách xác ñịnh góc quay Nguyên tắc hoạt ñộng: Phân loại: Có loai chính: Incremental Type (encoder ngõ dạng xung) 2.Absolute Type (encoder tuyệt ñối-ngõ lài Binary, BCD or Gray Code) Sử dụng: • • Xác ñịnh tốc ñộ cách ñếm số xung phút Xác ñinh chiều quay : tốc ñộ (rpm) Hình 2: Dạng xung encoder chiều quay tương ứng PID ĐIỀU KHIỂN ĐỘNG CƠ DC SVTH: LÊ VĂN MÙI ĐỒ ÁN MÔN HỌC GVHD: HUỲNH VĂN KIỂM Phần 4: PHẦN MỀM I.Giới thiệu ñiều khiển PID số: -Bộ ñiều khiển PID so sánh giá trị trả giá trị ñặt ñầu vào tạo tính hiệu e(error,sai khác),tín hiệu e ñc ñưa qua ñiều khiển PID ,bộ ñiều khiễn tính toán ñể cho tín hiệu ñiều khiển u cho tín hiệu ñầu với tín hiệu ñặt.ñây trình lặp lại liên tục xác lập -Một cách ñơn giản,bộ ñiều khiển ñọc giá trị ñầu sensor,sau ñó lấy giá trị ñặt ñầu vào trừ ñi giá trị ñưa tạo giá trị e(error),giá trị ñc ñưa qua phận xử lý: -Khâu P(proportional),ñể tạo giá trị -Khâu D(the derivate term),khâu ñạo hàm -Khâu I(integral term),khâu tích phân a)Proportional term: -Khâu tỉ lệ nhằm mục ñích khuyêch ñại tín hiêu sai lệch -P lớn sai số xác lập nhỏ -Tuy nhiên P qua lớn hệ thống không ổn ñịnh khó có phần cứng ñáp ứng b)Integral term : -Khâu tích phân cung cấp thêm tổng e(lỗi )cho ñầu vào ñiều khiển ,tổng ñc tính giá trị hệ thống ñiều khiển với giá trị ñặt.kết việc Này sai số xác lập tín hiệu ñặt tín hiệu ñầu -Nhược ñiểm khâu I ñáp ứng chậm,người ta thường kết hợp khâu I với P.Cụ thể cho sơ ñồ bên c)Khâu D: -Khâu D cung cấp cho ñiều khiển giá trị sai lệch lỗi hiên thời lỗi khứ -Khâu D có tác dụng làm ñáp ứng hệ thống nhanh hơn,ngoài lọc thông cao ñối với tín hiệu ñầu vào(error) -Giá trị lớn khâu D thực thực tế(phần cứng không ñáp ứng nổi) -Thông thường khâu D thường kết hợp với P(PD),hoặc tạo thành PID Tổng hơp công thức toán học khâu PID: PID ĐIỀU KHIỂN ĐỘNG CƠ DC SVTH: LÊ VĂN MÙI ĐỒ ÁN MÔN HỌC GVHD: HUỲNH VĂN KIỂM II.Giải thuật PID ñiều khiển tốc ñộ ñộng Mô tả: • Ngõ vào: Tốc ñộ (V_curent) Tốc ñộ ñặt • Ngõ : xung PWM Chương trình: void PID(uint32_t vantoc_tb_hientai,uint32_t V_set) { uint32_t V_dat,V_current; V_dat=V_set; V_current=vantoc_tb_hientai; error_current= V_dat-V_current; diff=((error_current - error_pre)/0.01); ///differental error_sum+=error_current; inter=( error_sum*0.01/2); //intergral V_out=(int32_t) (kp*error_current+kd*diff+ki*inter); if (V_out>2000) PID ĐIỀU KHIỂN ĐỘNG CƠ DC SVTH: LÊ VĂN MÙI ĐỒ ÁN MÔN HỌC GVHD: HUỲNH VĂN KIỂM V_out=2000; if (V_out[...]... cách ñếm số xung trong 1 phút Xác ñinh chiều quay : tốc ñộ (rpm) Hình 2: Dạng xung ra của encoder và chiều quay tương ứng PID ĐIỀU KHIỂN ĐỘNG CƠ DC SVTH: LÊ VĂN MÙI ĐỒ ÁN MÔN HỌC 1 GVHD: HUỲNH VĂN KIỂM Phần 4: PHẦN MỀM I.Giới thiệu bộ ñiều khiển PID số: -Bộ ñiều khiển PID so sánh giá trị trả về và giá trị ñặt ở ñầu vào tạo ra tính hiệu e(error,sai khác),tín hiệu e ñc ñưa qua bộ ñiều khiển PID ,bộ ñiều... sai số xác lập càng nhỏ -Tuy nhiên nếu P qua lớn thì hệ thống không ổn ñịnh và khó có phần cứng nào ñáp ứng nổi b)Integral term : -Khâu tích phân cung cấp thêm một tổng của các e(lỗi )cho bộ ñầu vào của bộ ñiều khiển ,tổng này sẽ ñc tính cho tới khi giá trị của hệ thống ñiều khiển bằng với giá trị ñặt.kết quả của vi c Này là không có sai số xác lập của tín hiệu ñặt và tín hiệu ñầu ra -Nhược ñiểm của. .. tận tình của thầy hướng dẫn và sự cố gắng của bản thân ,em ñã dần dần biết cách sử dụng nó Qua ñó em rút ra ñược nhiêu kinh nghiệm về tìm hiểu 1 dòng VDK mới • Kỹ thuật làm mạch bằng linh kiện dán • Hiểu biết thêm về nhiễu và tránh nhiễu • Bộ ñiều khiển PID và khả năng ứng dụng của nó V.Hướng phát triển: • • • ARM cortex M3 là dòng VDK mạnh nên tương lai sẽ ñược ứng dụng rộng rãi trong ñiều khiển cũng... datasheet LPC1 7xx (NXP) 2 Mechatronic Servo System Control - M Nakamura S Goto and N Kyura 3 EMBEDDED ROBOTICS- Mobile Robot Design and Applications with Embedded Systems.2008.3rdEd 4 bô thư vi n lpc1 7xx.cmsis.driver.library (NXP) 5 tài liệu Thí nghiệm lý thuyết ñiều khiển tự ñộng 1 6 Một số tại liệu của NXP tại http://www .nxp. com/lpczone/ 7 Website http://www .arm. vn/ 8 .Đồ án môn học 1 của SV Phạm... SVTH: LÊ VĂN MÙI ĐỒ ÁN MÔN HỌC 1 GVHD: HUỲNH VĂN KIỂM Phần 5 KẾT QUẢ THỰC HIỆN ,ĐÁNH GIÁ,HƯỚNG PHÁT TRIỂN I.Kết quả thực hiện: Phần hiển thị tốc ñộ qua hyperterminal Chọn kp,kd,ki : • • Tốc ñộ ñặt 2000rpm Chiều quay 1 Thuận, 2.ngược PID ĐIỀU KHIỂN ĐỘNG CƠ DC SVTH: LÊ VĂN MÙI ĐỒ ÁN MÔN HỌC 1 GVHD: HUỲNH VĂN KIỂM Kết quả : Hình 1 PID ĐIỀU KHIỂN ĐỘNG CƠ DC SVTH: LÊ VĂN MÙI ĐỒ ÁN MÔN HỌC 1 GVHD: HUỲNH VĂN... bằng 0 (vì ở ñây chưa ñánh giá ñược thời gian quá ñộ Kết luận: Bộ PID có chất lượng ñiêu khiển tốt PID ĐIỀU KHIỂN ĐỘNG CƠ DC SVTH: LÊ VĂN MÙI ĐỒ ÁN MÔN HỌC 1 GVHD: HUỲNH VĂN KIỂM III.Hạn chế: • Chưa vẽ ñược ñáp ứng nên chưa thể nhận xét thời gian xác lập • Động cơ chưa gắn tải nên không xác ñịnh khả năng ảnh hưởng của tải ñối với bộ ñiều khiển PID • Đọc ADC gây nhiễu cho ñọc xung do chưa thết kế mạch ñệm... thể cho trên sơ ñồ bên c)Khâu D: -Khâu D cung cấp cho bộ ñiều khiển giá trị sai lệch giữa lỗi hiên thời và lỗi quá khứ -Khâu D có tác dụng làm ñáp ứng của hệ thống nhanh hơn,ngoài ra nó còn là một bộ lọc thông cao ñối với tín hiệu ñầu vào(error) -Giá trị quá lớn của khâu D không có thực trong thực tế(phần cứng không ñáp ứng nổi) -Thông thường khâu D thường kết hợp với P(PD),hoặc tạo thành PID Tổng... khâu D thường kết hợp với P(PD),hoặc tạo thành PID Tổng hơp các công thức toán học của các khâu PID: PID ĐIỀU KHIỂN ĐỘNG CƠ DC SVTH: LÊ VĂN MÙI ĐỒ ÁN MÔN HỌC 1 GVHD: HUỲNH VĂN KIỂM II.Giải thuật PID ñiều khiển tốc ñộ ñộng cơ Mô tả: • Ngõ vào: Tốc ñộ hiện tại (V_curent) Tốc ñộ ñặt • Ngõ ra : xung PWM Chương trình: void PID( uint32_t vantoc_tb_hientai,uint32_t V_set) { uint32_t V_dat,V_current; V_dat=V_set;... (V_out>2000) PID ĐIỀU KHIỂN ĐỘNG CƠ DC SVTH: LÊ VĂN MÙI ĐỒ ÁN MÔN HỌC 1 GVHD: HUỲNH VĂN KIỂM V_out=2000; if (V_out ... hyperterminal PID ĐIỀU KHIỂN ĐỘNG CƠ DC SVTH: LÊ VĂN MÙI ĐỒ ÁN MÔN HỌC GVHD: HUỲNH VĂN KIỂM Phần GIỚI THIỆU VỀ ARM CORTEX M3 LPC 1754 I Tổng quan ARM cortex M3: • • • • • Bộ vi xử lý Cortex- M3 vi xử... ĐỒ ÁN I Mục ñích Đồ án • Tìm hiểu dòng ARM lpc cortex M3 NXP • Dùng PID số ñiều khiển tốc ñộ ñộng II Các phần sử dụng ñồ án Phần cứng: • Vi ñiều khiển LPC 1754 (NXP) • Nguồn DC 24V/12V/5V -5A dùng... SỬ DỤNG TRONG ĐỒ ÁN GIỚI THIỆU VỀ ARM CORTEX M3 LPC 1754 CÁC MODULE PHẦN CỨNG PHẦN MỀM KẾT QUẢ THỰC HIỆN ,ĐÁNH GIÁ,HƯỚNG PHÁT TRIỂN TÀI LIỆU THAM KHẢO PID ĐIỀU KHIỂN ĐỘNG CƠ DC SVTH: LÊ VĂN MÙI

Ngày đăng: 21/03/2016, 14:11

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan