1. Trang chủ
  2. » Luận Văn - Báo Cáo

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 669 8

Đ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

Thông tin cơ bản

Định dạng
Số trang 21
Dung lượng 6,34 MB

Nội dung

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

Trang 1

Lời mở ñầu

Điều khiển ñộng cơ DC (ñiều khiển tốc ñộ hoặc ñiều khiển vị trí) là kiến thức cơ

bản nhất mà bất kì kỹ sư nào ngành ñiều khiển tự ñộng cũng cần phải biết và phải làm

ñược

Có nhiều phương pháp ñiều khiển từ kinh ñiển ñến hiện ñại : ON-OFF, PID

tương tự hoặc analog,ñiều khiển mờ,thích nghi,bền vững

Ngày này người ta ñã kết hợp nhiều bộ ñiều khiển với nhau ñể ñiều khiển một ñối tượng ñể nâng cao chất lượng hệ thống theo sự thay ñổi của môi trường và quan trọng hơn là 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 nào và chất lượng ñiều khiển ñến ñâu phụ thuộc vào khả năng của từng sinh viên cũng như khả năng hỗ trợ của phần cứng

Trong ñồ án môn học 1 em lựa chọn phương pháp ñiều khiển cơ bản nhất,kinh

ñiển nhất : bộ PID số thực hiện trên dòng vi ñiều khiển (VDK)32bit ARM cortex M3

Sinh viên thực hiện

Lê Văn Mùi

Trang 2

Phần 5: KẾT QUẢ THỰC HIỆN ,ĐÁNH GIÁ,HƯỚNG PHÁT TRIỂN

Phần 6: TÀI LIỆU THAM KHẢO

Trang 3

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 của NXP

• Dùng bộ PID số ñiều khiển tốc ñộ ñộng cơ

• Trình biên dịch Keil C

• Flash Magic

• hyperterminal

Trang 4

ĐỒ ÁN MÔN HỌC 1 GVHD: HU Ỳ NH V Ă N KI Ể M

Phần 2

GIỚI THIỆU VỀ ARM CORTEX M3 LPC 1754

I Tổng quan về ARM cortex M3:

Bộ vi xử lý Cortex-M3 là một bộ vi xử lý 32-bit

Có 3 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) : các ứ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 trên kiến trúc ARMv7-M,tích hợp lõi xử lý trung tâm là CM3Core, với các thiết bị ngoại vi hệ thống tiên tiến có khả năng kiểm soát ngắt, bảo

vệ bộ nhớ, gỡ lỗi và theo vết hệ thống

• Lõi trung tâm Cortex-M3 dựa trên kiến trúc Harvard

• 13 thanh ghi ña dụng, hai con trỏ ngăn xếp, một thanh ghi liên kết, một bộ ñếm chương trình và một số thanh ghi ñặc biệt trong ñó có một thanh ghi trạng thái chương trình

Trang 5

Bảng 1 So sánh ARM7TDMI-S và Cortex-M3 (100MHz - TSMC 0.18G) (*: Không bao gồm các thiết bị ngoại vi (MPU & ETM) hoặc các thành phần tích hợp khác)

Hình 1 So sánh hiệu suất giữa ARM7TDMI-S (ARM) và Cortex-M3 (Thumb-2)

Hình 2 So sánh kích thước mã lệnh giữa ARM7TDMI-S (ARM) và Cortex-M3 (Thumb-2)

Trang 6

ĐỒ ÁN MÔN HỌC 1 GVHD: HU Ỳ NH V Ă N KI Ể M

• 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

• 8 channel General purpose DMA controller

• USB 2.0 full-speed Device controller and Host/OTG controller with DMA,

• CAN 2.0B with 1 channel,

• 4 UARTs, 1 with full Modem interface

• 2 I2C serial interfaces,3 SPI/SSP serial interfaces,

• 54 General purpose I/O pins,

• 12-bit ADC with 6 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ẽ sử dụng trong ñồ án:

2 QEI :Đọc xung từ encoder

3 PWM : Điều rộng xung thay ñổi tốc ñộ ñộng cơ

4 UART : Nạp chương trình và giao tiếp UART với PC

5 ADC : Đo dòng ñiện qua ñộng cơ ñể xử lý quá tải

Trang 7

III Giới thiệu 2 module chính sử dụng trong Đồ án

1. Quadrature Encoder

• Đây là moldule hỗ trợ giao tiêp encoder khá mạnh mẽ của dòng LPC17xx

• Có khả năng xác ñịnh chính xác vị trí ñộng cơ

• Đếm lên hoặc ñếm xuống tuy 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ó bộ nhân 2 hoặc nhân 4 ñể tang ñộ phân giải khi ñọc xung

• Các thanh ghi so sánh tốc ñọ và vị trí và có khả có ngắt cho từng bộ so sánh

RPM :tốc ñộ (rpm) PCLK : xung clock ngoại vi dùng cho QEI QEICAP:giá trị thanh ghi velocity counter cuối cùng trước khi xãy ra ngắt :ñược lưu vào velocity capture khi có ngắt QEILOAD :thời gian lấy mẫu

PPR :số xung/vong của encoder EDGES: chế ñộ nhân 2 hoặc 4 :mặc ñịnh nhân 2

Trang 8

ĐỒ ÁN MÔN HỌC 1 GVHD: HU Ỳ NH V Ă N KI Ể M

Chế ñộ 2 kênh và 1 kênh

7 thanh ghi match cho ra 3 ngõ ra chế ñộ 2 kênh và 6 ngõ ra chế ñộ 1 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 các giá trinh xác ñịnh duty circle cho kệnh n (chế ñộ 1 kênh)

MR(n-1) và MRn : chứa các giá trinh xác ñịnh duty circle cho kệnh n (chế ñộ 2 kênh)

Trang 9

IVGiới thiệu phần mềm hỗ trợ

1.Keil C ARM và bộ thư viện chuẩn LPC17xx CMSIS:

Keil C ARM uvision 4:

• Keil C là một phần mêm rất mạnh hỗ trợ lập trinh cho rất nhiều dòng vi ñiều khiển của nhiều hang khác nhau trên môi trường ngôn ngữ lập trình C

• keil hỗ trợ rất mạch các dòng VDK của NXP (8951,ARM) với khả năng 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 là bộ thư viện ñầy ñủ nhất từ trước ñến nay của NXP hổ trợ ARM M3,

• Giúp người dùng tiếp cận nhanh nhất với ARM M3

• Trong chương trinh chính người dùng chỉ cần gọi những hàm có sẵn

• Thư viện hỗ trợ hầu hết các ngoại vi có trên chip

Một vài lưu ý khi sử dụng:

1 Không nhất thiết add toàn bộ Drivers,chỉ cần load driver sử dụng ñến

2 Tùy vào project mà chỉnh sử file lpc17xx_libcfg.h ñể khai báo các ngoại vi ñược sử dụng trong project

Trang 10

• 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

Trang 11

Cầu H dùng FET IRL540

Mô tả:

• Ngõ vào : + nguồn 3.3V,24V,12V,5V

+ 2 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 và phần công suất

• IC IR2184 :IC lái kích FET cho 2 kênh ra ñảo và không ñảo

• FET IRL540 :khóa ñiện tử

Ưu ñiểm:

• Có thể ñổi chiều quay

• Chịu dòng cao tuy tùy thuộc vào FET

• Số kênh PWM :2

Nguyên tắc hoạt ñộng:

• 2 kênh PWM hoạt ñộng ñối nghịch (không ñồng thời)

• 2 kênh nối vào PWM0,PWM1 của mainboard

• 2 kênh mức 0 :dừng ñộng cơ

• Một kênh mức 0 , kênh còn lại mức 1:ñộng cơ quay

• Đổi chiều bằng cách thay ñôi kênh PWM (bằng phần mềm)

VI.Khối giao tiếp:

Trang 12

ĐỒ ÁN MÔN HỌC 1 GVHD: HU Ỳ NH V Ă N KI Ể M

V.khối hiển thị:

Mô tả:

• Ngõ vào: +Nguồn 5V hoăc 3.3V

+4pins VCC cho kích BJT ,4pins data

• Ngõ ra: 4 led 7 ñoạn Linh kiện:

• IC 74LS47 : giải mã BCD  7 ñoạn

• 4 BJT A1015 :nâng dòng

Mô tả:

Trang 13

Có 2 loai chính: 1 Incremental Type (encoder ngõ ra dạng xung)

2.Absolute Type (encoder tuyệt ñối-ngõ ra có thể lài Binary, BCD or Gray Code)

Sử dụng:

• Xác ñịnh tốc ñộ bằng cách ñếm số xung trong 1 phút tốc ñộ (rpm)

• Xác ñinh chiều quay :

Hình 2: Dạng xung ra của encoder và chiều quay tương ứng

Trang 14

ĐỒ Á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 khiễn sẽ tính toán ñể cho ra tín hiệu ñiều khiển u sao cho tín hiệu ñầu ra bằng với tín hiệu ñặt.ñây là một quá trình lặp lại liên tục cho tới khi xác lập

-Một cách ñơn giản,bộ ñiều khiển ñọc giá trị ñầu ra bằng một sensor,sau ñó lấy giá trị ñặt ở ñầu vào trừ ñi giá trị ñưa về tạo ra một giá trị e(error),giá trị này ñc ñưa qua 3 bộ phận xử lý:

-Khâu P(proportional),ñể tạo ra giá trị hiện tại

-Khâu D(the derivate term),khâu ñạo hàm

-Khâu I(integral term),khâu tích phân

-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 khâu I là ñáp ứng rất chậm,người ta thường kết hợp khâu I với P.Cụ 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 hơp các công thức toán học của các khâu PID:

Trang 15

II.Giải thuật PID ñiều khiển tốc ñộ ñộng cơ

Trang 16

}

//********************END OF PID***************************************

Trang 17

KẾT QUẢ THỰC HIỆN ,ĐÁNH GIÁ,HƯỚNG PHÁT TRIỂN

I.Kết quả thực hiện:

Trang 18

ĐỒ ÁN MÔN HỌC 1 GVHD: HU Ỳ NH V Ă N KI Ể M

Kết quả :

Hình 1

Trang 19

3 Nếu tăng Kp quá lớn thì tốc ñộ ñộng cơ không ổn ñịnh (ñộng cơ bị rung)

4 Thử hãm trục ñộng cơ ñang quay ta thấy ñộng cơ tạo moment rất lớn so với khi cho chạy vòng hở

5 Sau khi thả trục ñộng cơ ñộng cơ sẽ có 1 khoảng thời gian ñể về lại giá trị xác lập 2000rmp

Quá trình này sẽ có vọt lố ñáng kể

6 Giảm giá trị của Ki thì sai số xác lập lớn (không ñạt ñến 2000rpm)

7 Giá trị kd ít ảnh hưởng ñến tôc ñộ ñộng cơ ,có thể cho 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

Trang 20

ĐỒ Á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

Ban ñầu do chưa tính hết nhiễu từ mạch công suất lên mach ñiều khiển nên em ñã nối GND chung cho toan hệ thống ñể ñọc ADC Nhưng việc này làm cho hệ thống không ổn ñịnh do encoder lúc này ñọc về không còn chính xác nữa-không thể kiểm soát dòng ñược

Hướng giải quyết :

Sẽ sử dụng chân GND của module ADC trên VDK ñưa vào GND mạch công suất ñể ñọc ADC

Điều này sẽ không ảnh hưởng ñến GND của VDK

IV.Những kinh nghệm cho bản thân:

• Lần ñầu tiên làm quen với 1 dòng VDK 32 bit mạnh nên không tránh khỏi những khó

khăn,nhưng với sự giúp ñỡ 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 như các hệ thống có hệ ñiều hành.Những khả năng giao tiếp mạnh như USB,CAN… cũng là những hướng mà em ñang quan tâm nghiên cứu

Em hi vọng mình có thể làm chủ ñược dòng VDK này trong thời gian tới

• Giao tiếp máy tính cũng như dùng VB,MALAB ,C# ,,ñể gửi dữ liệu từ VDK lên PC và vẽ ñáp ứng ,kiểm tra kết quả là vấn ñề mà em chưa hoàn thành trong ñồ án này

• PID và chất lượng ñiều khiển tốt có thể áp dụng trong ñiều khiển tay máyñó cũng là ñịnh hướng

của thầy cho Đồ án môn học 2 và luận văn sắp tới

Trang 21

Phần 6:

TÀI LIỆU THAM KHẢO

1 datasheet LPC17xx (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 lpc17xx.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 Ngọc Anh Tùng

9 IR2184 datasheet

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

w