1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

ĐIỀU KHIỂN ĐỘNG cơ DC DÙNG THUẬT TOÁN PID với sự điều KHIỂN và GIÁM sát từ máy TÍNH (có sơ đồ mạch và code)

38 497 6

Đ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 38
Dung lượng 1,35 MB

Nội dung

Lý thuyết về thuật toán PID: - PID là cách viết tắc của các từ Propotional tỉ lệ, Integral tích phân, Derivativeđạo hàm và là thuật toán điều khiển được dùng nhiều nhất trong các ứng dụn

Trang 1

ĐIỀU KHIỂN ĐỘNG CƠ DC DÙNG THUẬT TOÁN PID VỚI SỰ ĐIỀU KHIỂN

VÀ GIÁM SÁT TỪ MÁY TÍNH

Trang 2

DANH MỤC HÌNH ẢNH vi

DANH MỤC BẢNG BIỂU vii

DANH MỤC CÁC TỪ VIẾT TẮT viii

CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI 1

1.1 Giới thiệu: 1

1.2 Nguyên lý thiết kế: 1

CHƯƠNG 2: TỔNG QUAN VỀ THUẬT TOÁN PID 2

2.1 Lý thuyết về thuật toán PID: 2

2.2 Một số tiêu chí để kiểm tra một hệ thống sử dụng bộ điều khiển PID: 2

2.3 Cách thức xác định thông số PID: 4

2.4 Áp dụng thuật toán PID vào đề tài: 4

CHƯƠNG 3: LINH KIỆN CHÍNH SỬ DỤNG TRONG MẠCH 5

3.1 Vi điều khiển PIC 16F877: 5

3.1.1 Sơ lược về VĐK PIC16F877: 5

3.1.2 Sơ đồ khối PIC 16F877: 5

3.1.3 Sơ đồ chân PIC 16F877: 6

3.1.4 Tổ chức bộ nhớ: 8

3.2 IC L293: 10

3.3 LCD 16x2: 11

Trang 3

3.4.2 Thuật toán đo tốc độ động cơ: 12

3.5 Tổng quan về chuẩn RS232 giao tiếp với máy tính: 13

3.6 USB UART CP2102: 14

CHƯƠNG 4: SƠ ĐỒ NGUYÊN LÝ VÀ SƠ ĐỒ MÔ PHỎNG 16

4.1 Sơ đồ khối: 16

4.2 Sơ đồ nguyên lý: 16

4.3 Mạch thực tế: 17

CHƯƠNG 5: KẾT LUẬN 21

5.1 Ưu điểm và nhược điểm: 21

5.2 Hướng phát triển 21

TÀI LIỆU THAM KHẢO 22

PHỤ LỤC A 23

PHỤ LỤC B 30

Trang 4

Hình 2.1 Sơ đồ về bộ điều khiển PID 2

Hình 2.2 Các tiêu chí của bộ điều khiển PID 3

Hình 3.1 Sơ đồ khối PIC 16F877A 6

Hình 3.2 Sơ đồ chân PIC 16F877A 7

Hình 3.3 Bộ nhớ chương trình của PIC 16F877A 8

Hình 3.4 Sơ đồ bộ nhớ dữ liệu PIC 16F877A 9

Hình 3.5 Sơ đồ chân L293 10

Hình 3.6 Nguyên tắc hoạt động L293 11

Hình 3.7 Sơ đồ chân LCD 16x2 11

Hình 3.8 Sơ đồ chân động cơ DC Encoder 12

Hình 3.9 Sơ đồ chân USB UART CP2102 14

Hình 4.1 Sơ đồ khối 16

Hình 4.2 Sơ đồ nguyên lý 16

Hình 4.3 Mặt trước mô hình thực tế 17

Hình 4.4 Mặt sau mô hình thực tế 18

Hình 4.5 Mạch thực tế khi đang hoạt động 19

Hình 4.6 Điều khiển động cơ trên máy tính 20

Hình 4.7 Đồ thị tốc độ động cơ theo thời gian 20

Trang 5

Bảng 3.2 Chức năng các chân của L293 10 Bảng 3.3 Chức năng các chân của LCD 16x2 11

Trang 6

DC: Direct Curent

LCD: Liquid-Crystal Display

PIC Personal Intelligent Communicator

PID Propotional Integral Derivative

SISO Single Input Single Output

Trang 7

CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI

1.1. Giới thiệu:

Đề tài xuất phát từ các hệ thống thực tế sử dụng thuật toán PID Bảo đảm sự ổnđịnh và chất lượng cao trong từng hệ thống Ứng dụng toán học vào điều chỉnh sai số,tùy vào yêu cầu của từng hệ thống mà điều chỉnh những hệ số phù hợp

Nhằm ứng dụng những kiến thức đã học vào thực tế và hiểu rõ thêm về thuật toánPID cùng với sự điều khiển của vi điều khiển PIC 16F877 Em xin thực hiện một đề tài

“ĐIỀU KHIỂN ĐỘNG CƠ DC DÙNG THUẬT TOÁN PID VỚI SỰ ĐIỀU KHIỂN

+ Khối bàn phím nhập thông số và lệnh điều khiển

+ Khối xử lý nhận lệnh và thông số điều khiển từ bàn phím, tiến hành điềukhiển động cơ theo yêu cầu và hiển thị trạng thái và tốc độ động cơ lên LCD16x2

+ Khối giao tiếp máy tính thông qua USB UART CP2102

Trang 8

CHƯƠNG 2: TỔNG QUAN VỀ THUẬT TOÁN PID

2.1 Lý thuyết về thuật toán PID:

- PID là cách viết tắc của các từ Propotional (tỉ lệ), Integral (tích phân), Derivative(đạo hàm) và là thuật toán điều khiển được dùng nhiều nhất trong các ứng dụng điềukhiển tự động với yêu cầu chính xác, nhanh và ổn định

- PID chỉ áp dụng cho các hệ thống SISO

Hình 2.1 Sơ đồ về bộ điều khiển PID[1]

- Công thức đầy đủ của bộ điều khiển PID là:

F=Kp*e + Ki*(In-1+()*dt+Kd*

Trong đó:

+ F: là hàm ngõ ra

+ Kp,Ki,Kd: là các thông số của bộ điều khiển PID

+ e: là sai số giữa tín hiệu đặt và tín hiệu thực tế

2.2 Một số tiêu chí để kiểm tra một hệ thống sử dụng bộ điều khiển PID:

- Các tiêu chí để đánh giá hệ thống sư dụng bộ điều khiển PID là:

+ Độ vọt lố (POT)

Trang 9

+ Sai số xác lập (exl).

+ Thời gian xác lập (txl)

Hình 2.2 Các tiêu chí của bộ điều khiển PID[1]

- Hệ thống sẽ tối ưu nhất nếu:

+ Độ vọt lố POT(%) càng nhỏ càng tốt

+ Sai số xác lập exl càng nhỏ càng tốt

+ thời gian xác lập txl càng nhỏ càng tốt

- Ảnh hưởng của Kp,Ki,Kd đến hệ thống:

+ Khi Kp tăng dẫn đến exl giảm khiến cho txl sẽ tăng nếu chưa có vọt lố và giảmnếu có vọt lố Khi Kp quá lớn thì hệ sẽ mất ổn định

+ Khi Ki tăng sẽ triệt tiêu exl

+ Khi Kd tăng hệ thống sẽ đạt đến giá trị đặt chậm hơn nhưng sẽ ổn định hơn vàgiảm độ vọt lố

- Từ các thông tin trên, có thể xác định mục tiêu của bộ điều khiển là: Triệt tiêu sai

số xác lập, giảm thời gian xác lập và độ vọt lố, hạn chế dao động nếu có

2.3 Cách thức xác định thông số PID:

Trang 10

- Có 2 cách để xác định thông số PID: bằng phương pháp tính toán và phương phápthử sai (thủ công).

+ Phương pháp thử sai: Chọn trước các thông số Kp,Ki,Kd và thay đổi đến khithỏa mãn được chất lượng mà hệ thống yêu cầu Ưu điểm của phương pháp này làkhông cần công thức tính toán Nhược điểm: tốn thời gian và không tránh khỏi sai số

+ Phương pháp tính toán: dùng giải thuật Zeigler Nichols sẽ thu được thông sốKp,Ki,Kd tương đối chính xác nhưng không hoàn toàn tốt

2.4 Áp dụng thuật toán PID vào đề tài:

Gọi F là tốc độ mà ta thiết lập cho động cơ sẽ đạt được, với yêu cầu là chính xác và

ổn định Gọi e là sai số giữa tốc độ động cơ đang chạy thực tế với tốc độ mà ta thiếtlập, trên thực tế nếu sai số càng lớn thì chúng ta phải cần một mức điện áp để giảm giátrị của sai số e này càng nhỏ càng tốt Và ta có công thức:

F=Kp*e

Thực tế khi ta tăng Kp càng lớn thì động cơ đạt đến tốc độ đặt trước rất nhanh, tuynhiên sẽ xảy ra vọt lố, đồng nghĩa với việc sai số e lúc này có giá trị âm tạo ra xuhướng động cơ sẽ giảm tốc độ, quá trình này lập đi lập lại Nếu sử dụng đạo hàm làmthành phần thắng thì có thể giảm vọt lố của động cơ Vậy ta sẽ có bộ điều khiển nhưsau:

F=Kp*e + Kd*

Nếu thành phần D và P chênh lệch với nhau quá lớn thì động cơ chưa đạt đến tốc

độ mong muốn đã dừng lại Khi đó ta thêm thành phần cộng dồn sai số, đó là thànhphần I trong bộ điều khiển Lúc này công thức sẽ là:

F=Kp*e + Kd*+Ki*(In-1+()*dt

CHƯƠNG 3: LINH KIỆN CHÍNH SỬ DỤNG TRONG MẠCH

Trang 11

3.1 Vi điều khiển PIC 16F877:

3.1.1 Sơ lược về VĐK PIC16F877:

PIC là tên viết tắt của “ Programmable Intelligent Computer”, PIC16F877A làdòng PIC khá phổ biến, khá đầy đủ tính năng phục vụ cho hầu hết tất cả các ứngdụng thực tế

PIC 16F877 có tập lệnh gồm 35 lệnh và độ dài 14 bit Mỗi lệnh thực thi trong 1xung clock, hoạt động ở tần số 20Mhz và chu kì 200ns

Bảng 3.1 Bảng tổng quan về VĐK PIC 16F877

Bộ định thời 2 bộ định thời 8 bits và 1 bộ định thời 16

Ngoài ra PIC 16F877 còn có 5 port và 1 bộ chuyển đổi ADC (Analog to DigitalConverter

3.1.2 Sơ đồ khối PIC 16F877:

Trang 12

Hình 3.1 Sơ đồ khối PIC 16F877[3]

3.1.3 Sơ đồ chân PIC 16F877:

Trang 13

Hình 3.2 Sơ đồ chân PIC 16F877A[3]

Các chân được chia thành 5 Port: A, B, C, D, E

PortA (Các chân 2, 3, 4, 5, 6, 7): Bao gồm 6 chân I/O có thể xuất và nhập

được, chức năng này được điều khiển bởi thanh ghi TRISA

PortB (Các chân 33, 34, 35, 36, 37, 38, 39, 40): Bao gồm 8 chân I/O Thanh

ghi điều khiển xuất nhập tương ứng là TRISB Port B có thể sử dụng trong quátrình nạp chương trình cho VĐK

PortC (Các chân 15, 16, 17, 18, 23, 24, 25, 26): Bao gồm 8 chân I/O Thanh

ghi điều khiển xuất nhập tương ứng là TRISC PortC chứa các chân chức năng sosánh, bộ Timer, bộ PWM và các chuẩn giao tiếp

PortD (Các chân 19, 20, 21, 22, 27, 28, 29, 30): Bao gồm 8 chân I/O Thanh

ghi điều khiển xuất nhập tương ứng là TRISD, là cổng xuất dữ liệu của chuẩn giaotiếp PSP (Parallel Slave Port)

PortE (Các chân 8, 9, 10): Bao gồm 3 chân I/O Thanh ghi điều khiển xuất

nhập tương ứng là TRISE Các chân PortE có ngõ vào analog

Trang 15

tất cả các bank của bộ nhớ dữ liệu giúp thuật tiện trong quá trình truy xuất vàlàm giảm bớt lệnh của chương trình Sơ đồ cụ thể:

Hình 3.4 Sơ đồ bộ nhớ dữ liệu PIC 16F877A[3]

Trang 16

3.2 IC L293:

IC L293 là mạch cầu H, trong đề tài sử dụng L293 để đảo chiều động cơ

Sơ đồ chân của L293:

Trang 17

Hình 3.6 Nguyên tắc hoạt động L293 [1]

- Khi chân 1A tích cực mức thấp, chân 2A tích cực cao, chân EN tích cực mứccao, động cơ sẽ quay theo chiểu thuận và ngược lại Động cơ không quay khi 2chân 1A, 2A có mực điện áp bằng nhau

3.3 LCD 16x2:

Hình 3.7 Sơ đồ chân LCD 16x2[2]

- LCD 16x2 dùng để hiển thị trạng thái và tốc độ động cơ

- LCD 16x2 bao gồm 16 chân trong đó:

+ Chân 1(Vss): GND, chân 2(Vcc): nguồn 5V, chân 3: Chân dùng để chỉnh độtương phản

+ Chân 4: Nhập lệnh và dữ liệu Chân 5: Ghi và đọc dữ liệu

Trang 18

+ Chân 6: Ghi hoặc đọc tùy ngõ vào.

+ Chân 7 – 14: Bus dữ liệu

+ Chân 15,16: Đèn LCD

3.4 Động cơ DC Encoder:

3.4.1 Khái niệm về động cơ DC Encoder:

Động cơ DC Encoder là gì: Động cơ DC ENCODER V2 chạy được với điện áp

nguồn tối đa 24V, tích hợp đĩa encoder 100 xung, cho 2 kênh ra A và B cùng tần sốnhưng lệch pha 90 độ

Sơ đồ chân của động cơ:

Hình 3.8 Sơ đồ chân động cơ DC Encoder[5]

3.4.2 Thuật toán đo tốc độ động cơ:

- Gọi thời gian lấy mẫu là Ts

- Gọi số xung encoder phát ra trong thời gian lấy mẫu Ts là ns

Trang 19

- Vậy số xung encoder phát ra trong 1s là ns/Ts.

- Số xung của đĩa encoder là: Ne (khi động cơ quay được 1 vòng thì trên kênh Ahoặc B sẽ xuất ra Ne xung) Suy ra tốc độ động cơ là: (ns/TS)/Ne

Vậy để đo được tốc độ động cơ, chỉ cần đếm được số xung xuất ra từ 1 trong 2kênh A và B trong thời gian Ts hay nói cách khác đó chính là tần số của xungencoder

Thời gian Ts này quá lớn (1s) sẽ dẫn đến tốn thời gian thực thi của vi điều khiển

và làm cho quá trình hiệu chỉnh tốc độ (nếu có) không được liên tục vì vậy việcchọn thời gian lấy mẫu rất quan trọng, phải lựa chọn phù hợp Nếu thời gian Ts quá

bé sẽ dẫn đến sai số lớn

- INT0: khi có cạnh xuống của tín hiệu encoder thì biến lưu số xung tăng lên 1,đây là biến lưu số xung encoder trong thời gian Ts

- TIMER0: tạo định thời Ts=300ms, sau 300ms sẽ tính toán giá trị vận tốc v

3.5 Tổng quan về chuẩn RS232 giao tiếp với máy tính:

RS232 là một trong những chuẩn được sử dụng rộng rãi để kết nối với máy tính.Chuẩn này sử dụng kết nối định dạng không đồng bộ, nhiều nhất có thể kết nối 2 thiết

bị, chiều dài tối đa cho phép đảm bảo dữ liệu là 12.5 đến 25.4m, tốc độ 20kbit/s

Ưu điểm:

- Chống nhiễu cao

- Có thể tháo lắp bất cứ lúc nào

- Mạch đơn giản

Các thông số thông thường trong chuẩn RS232

- Điện áp mức cao từ -3V đến -12V, điện áp mức thấp từ 3V đến 12V

- Tốc độ tối đa truyền nhận dữ liệu lên đến 100kbps

- Điện dung ngõ vào phải nhỏ hơn 2500pF

- Trở kháng nằm trong khoảng 3000-7000Ω

Trang 20

- Tốc độ baud chuẩn để truyền dữ liệu: 50, 75, 110, 1200, 2300, 4800 … tùy theo mục đích sử dụng.

3.6 USB UART CP2102:

Sơ đồ và chức năng các chân của USB UART CP2102:

Hình 3.9 Sơ đồ chân USB UART CP2102[5]

Chức năng các chân:

- TXD: Chân truyền dữ liệu, kết nối với chân Rx của module khác

- RXD: Chân nhận dữ liệu, kết nối với chân Tx của module khác

Trang 21

CP2102 không sử dụng thạch anh ngoài Có sẵn ngõ ra điện áp 3.3V.

Quá trình truyền dữ liệu:

- Quá trình truyền dữ liệu qua chuẩn RS232 là quá trình mà tại một thời điểmchỉ truyền được 1 bit 1 bit bắt đầu luôn luôn là mức 0 sẽ được gửi để thông báo rằng

có 1 kí tự sẽ được gửi đến trong lần truyền tiếp theo Các bit tiếp theo được gửi dướidạng ASCII, sau đó là bit chẵn lẻ và cuối cùng là bit dừng

- Tốc độ baud: Tham số này đặc trưng cho quá trình truyền dữ liệu là tốc độtruyền dữ liệu hay tốc độ bit Tốc độ này được thiết lập sao cho bên phát và bên thubằng nhau

- Bit chẵn lẻ: Dùng để kiểm tra lỗi

Trang 22

CHƯƠNG 4: SƠ ĐỒ NGUYÊN LÝ VÀ SƠ ĐỒ MÔ PHỎNG

Khối nút nhấn

nhập thông số

Khối giao tiếp

với máy tính

Trang 23

4.3 Mạch thực tế:

Hình 4.3 Mặt trước mô hình thực tế

Trang 24

Hình 4.4 Mặt sau mô hình thực tế

Trang 25

Hình 4.5 Mạch thực tế khi đang hoạt động

Trang 26

Hình 4.6 Điều khiển động cơ trên máy tính

Hình 4.7 Đồ thị tốc độ động cơ theo thời gian

Trang 27

CHƯƠNG 5: KẾT LUẬN

5.1 Ưu điểm và nhược điểm:

- Ưu điểm: Mô hình nhỏ gọn, thực hiện được các lệnh và thông số điều khiển, kếtnối được với máy tính

- Nhược điểm: Mạch chạy chưa ổn định, chưa đưa ra sự khác biệt giữa các cáchđiều khiển khác nhau

- Kết quả đạt được: Thiết kế được mô hình hoạt động thực hiện gần đầy đủ các yêucầu ban đầu Điều khiển được động cơ quay thuận, nghịch, đạt tốc độ mong muốn

5.2 Hướng phát triển

- Động cơ đạt đến tốc độ đặt nhanh hơn và ổn định hơn

- Điều khiển động cơ vẫn giữ được tốc độ nếu thêm tải phụ vào

Trang 28

TÀI LIỆU THAM KHẢO

[1].https://vi.wikipedia.org/wiki/B%E1%BB%99_%C4%91i%E1%BB%81u_khi

%E1%BB%83n_PID

[2].https://voer.edu.vn/m/tim-hieu-ngon-ngu-lap-trinh-visual-basic/cae67df7 [3] http://ww1.microchip.com

[4] Nguyễn Đăng Quang (09-2009) Giáo trình Microsoft Visual Basic

[5] https://robotics.stackexchange.com/

[6] Lê Đức Hạnh (2017) “Lập trình vi điều khiển học PIC và ứng dụng”

Trang 29

PHỤ LỤC A (ĐOẠN MÃ CHO VĐK)

Trang 30

int16 speed=0,speed1=0,temp=0,temp1=0,PresetSpeed=0,duty=0;int8 count3=0,count30=0, i=0; int16 t;

int1 chieu=1; char c;

Trang 34

if(k1==0) { while(k1==0) {} PUTC(200); start(); }

if(k3==0) { while(k3==0) {} chieu=1; LCD_putcmd(0x8e); Printf(LCD_putchar,"R"); PUTC(202); }

if(k4==0) { while(k4==0) {} chieu=0; LCD_putcmd(0x8e); Printf(LCD_putchar,"L"); PUTC(203); }

if(k5==0) { while(k5==0) {} t=PresetSpeed/100; if(t<9) t++; else t=1; PresetSpeed

= (PresetSpeed%100)+t*100;

PUTC((PresetSpeed%1000)/100); delay_ms(100); PUTC((PresetSpeed

%100)+100);}

Trang 35

if(k6==0) { while(k6==0) {} t=(PresetSpeed%100)/10; if(t<9) t++; else t=0;PresetSpeed = (PresetSpeed/100)*100+t*10+PresetSpeed%10;

PUTC((PresetSpeed%1000)/100); delay_ms(100); PUTC((PresetSpeed

if(c==200) { PUTC(200); start(); }

//LCD_putcmd(0xC0); Printf(LCD_putchar,"TOC DO: 0 ");

}

}

PHỤ LỤC B ĐOẠN MÃ GIAO TIẾP MÁY TÍNH

Trang 36

Private Sub Command5_Click()

Ngày đăng: 08/03/2019, 22:25

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w