1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Điều khiển tốc độ động cơ bằng PID có hồi tiếp

14 422 1

Đ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 14
Dung lượng 766,39 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Cầu H để điều chỉnh tốc độ cũng như đảo chiều quay cho động cơ.. - Hai chân ENA và ENB dung để điều khiển các mạch cầu H trong L298.. Nếu ở mức logic “1” nối với nguồn 5V thì cho phép mạ

Trang 1

Trường Đại Học Sư Phạm Kỹ Thuật TP.HCM

Khoa : Điện – Điện Tử

Giảng viên : TS Nguyễn Minh Tâm

BÁO CÁO

HỆ THỐNG ĐIỀU KHIỂN NÂNG CAO

ĐỀ TÀI: Điều khiển tốc độ động cơ bằng PID có hồi tiếp.

Trang 2

Tổng quan về hệ thống gồm có:

1 Động cơ DC có encoder hồi tiếp về

2 Pic 16f887 để điều khiển động cơ

3 Cầu H để điều chỉnh tốc độ cũng như đảo chiều quay cho động cơ

4 Keypad để set tốc độ mong muốn

5 LCD để hiện thị tốc độ

6 Một bộ nguồn để cấp cho hệ toàn hệ thống

Trang 3

1 Động cơ:

Động cơ DC có điện áp cấp định mức là 24V DC nhưng mạch thực tế nhóm làm cấp nguồn 12V

Tốc độ quay đình mức mà nhóm điều khiển là 1500 vòng/phút Thực tế tốc độ tối đa của động cơ khoảng trên 2500 vòng/phút

Encoder có 4 dây:

+ Vcc ( dây đỏ )

Trang 4

+ GND ( dây đen )

+ 2 dây tín hiệu AB ( dây xanh lá, vàng )

2 Pic 16F887:

Nguồn cấp định mức 5V

Chức năng làm bộ điều khiển trung tâm cho toàn bộ hệ thống

Điều khiển động cơ DC quay thuận nghịch

Băm xung PWM điều khiển tốc độ động cơ RC1

Nguyên lý hoạt động là vi xử lý đảm nhiệm chức năng tính toán cũn như điều khiển cấp xung khi nhận giá trị set từ keypad

3 Cầu H (IC L298).

IC L298 là một IC tích hợp nguyên khối gồm 2 mạch cầu H bên trong Với điện áp làm tăng công suất đầu ra từ 5V – 47V , dòng lên đến 4A, L298 rất thích hợp trong những ứng dụng công suất nhỏ như động cơ DC loại vừa …

Chức năng các chân của L298:

- 4 chân INPUT: IN1, IN2, IN3, IN4 được nối lần lượt với các chân 5, 7, 10, 12 của L298

Đây là các chân nhận tín hiệu điều khiển

- 4 chân OUTPUT: OUT1, OUT2, OUT3, OUT4 (tương ứng với các chân INPUT) được

nối với các chân 2, 3, 13, 14 của L298 Các chân này sẽ được nối với động cơ

- Hai chân ENA và ENB dung để điều khiển các mạch cầu H trong L298 Nếu ở mức logic

“1” (nối với nguồn 5V) thì cho phép mạch cầu H hoạt động, nếu ở mức logic “0” thì mạch cầu H không hoạt động

Với bài toán của mình ở trên, các bạn chỉ cần lưu ý đến cách điều khiển chiều quay với L298:

-Khi ENA = 0: Động cơ không quay với mọi đầu vào

-Khi ENA = 1:

- INT1 = 1; INT2 = 0: động cơ quay thuân.

- INT1 = 0; INT2 = 1: động cơ quay nghịch.

- INT1 = INT2: động cơ dừng ngay tức thì.

(tương tự với các chân ENB, INT3, INT4).

Trang 5

Nguyên lý hoạt động:

Đầu vào gồm 4 chân được kết nối với PIC được dùng để điều khiển động cơ Đầu ra gồm bốn chân kết nối tương ứng với module của L298 Chân Q1 và PWM1 dùng để điều khiển bánh trái của động cơ

Trang 6

PWM1 là chân dùng xung để băm xung PWM để điều khiển tốc độ của động cơ Khi chân Q1=1 thì động cơ quay thuận Q1=0 thì động cơ quay ngược lại Xung PWM1 được điều chế từ bo điều khiển chính của PIC 16F887

Tương tự đối với chân Q2 và PWM2 dùng để điều khiển bánh phải động cơ

Khi chân Q2=1 thì động cơ quay thuận Q2=0 thì động cơ quay ngược lại Xung PWM1 được điều chế từ bo điều khiển chính của PIC 16F887

Chú ý: với mạch này ta có thể điều khiển quay thuận quay ngược của cả hai động cơ DC dễ dàng mà 2 xung PWM luôn luôn hoạt động, chỉ cần đỏi tín hiệu ở 2 chân Q là động cơ DC

tự đảo chiều.

Thông số cơ bản:

Điện áp cấp là 5V

Ngõ ra là 5 V

Giản đồ xung:

Nguyên lý : Trong khoảng thời gian 0 - to ta cho van G mỏ toàn bộ điện áp nguồn Ud được đưa

ra tải Còn trong khoảng thời gian to - T cho van G khóa, cắt nguồn cung cấp cho tải Vì vậy với

to thay đổi từ 0 cho đến T ta sẽ cung cấp toàn bộ , một phần hay khóa hoàn toàn điện áp cung

Trang 7

cấp cho tải.

+ Công thức tính giá trị trung bình của điện áp ra tải :

Gọi t1 là thời gian xung ở sườn dương (khóa mở ) còn T là thời gian của cả sườn âm và dương, Umax là điện áp nguồn cung cấp cho tải

==> Ud = Umax.( t1/T) (V)

hay Ud = Umax.D

Ở đây nhóm tạo xung PWM bằng Pic 16F887 bằng cách dung chân RC1

Code ví dụ của microC:

void InitMain() {

ANSEL = 0; // Configure AN pins as digital

ANSELH = 0;

C1ON_bit = 0; // Disable comparators

C2ON_bit = 0;

PORTC = 0; // set PORTC to 0

TRISC = 0; // designate PORTC pins as output

PWM1_Init(5000); // Initialize PWM1 module at 5KHz

PWM2_Init(5000); // Initialize PWM2 module at 5KHz

}

void main() {

InitMain();

current_duty = 16; // initial value for current_duty

current_duty1 = 16; // initial value for current_duty1

PWM1_Start(); // start PWM1

PWM2_Start(); // start PWM2

PWM1_Set_Duty(current_duty); // Set current duty for PWM1

PWM2_Set_Duty(current_duty1); // Set current duty for PWM2

Trang 8

4 Keypad set tốc độ:

Bản chất thật sự của keypad là một ma trận bàn phím, dùng các nút nhấn để hiệu chỉnh tốc độ mong muốn từ người điều khiển

Một đoạn code mẫu trong microC:

unsigned short kp, cnt, oldstate = 0;

char txt[6];

// Keypad module connections

char keypadPort at PORTD;

// End Keypad module connections

// LCD module connections

sbit LCD_RS at RB4_bit;

sbit LCD_EN at RB5_bit;

sbit LCD_D4 at RB0_bit;

sbit LCD_D5 at RB1_bit;

sbit LCD_D6 at RB2_bit;

sbit LCD_D7 at RB3_bit;

sbit LCD_RS_Direction at TRISB4_bit;

sbit LCD_EN_Direction at TRISB5_bit;

sbit LCD_D4_Direction at TRISB0_bit;

sbit LCD_D5_Direction at TRISB1_bit;

sbit LCD_D6_Direction at TRISB2_bit;

sbit LCD_D7_Direction at TRISB3_bit;

// End LCD module connections

void main() {

cnt = 0; // Reset counter

Keypad_Init(); // Initialize Keypad ANSEL = 0; // Configure AN pins as digital I/O

ANSELH = 0;

Lcd_Init(); // Initialize LCD

Lcd_Cmd(_LCD_CLEAR); // Clear display

Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off

Lcd_Out(1, 1, "1");

Lcd_Out(1, 1, "Key :"); // Write message text on LCD

Lcd_Out(2, 1, "Times:");

do {

kp = 0; // Reset key code variable

// Wait for key to be pressed and released

do

// kp = Keypad _Key_Press(); // Store key code in kp variable

kp = Keypad_Key_Click(); // Store key code in kp variable

while (!kp);

// Prepare value for output, transform key to it's ASCII value

switch (kp) {

//case 10: kp = 42; break; // '*' // Uncomment this block for

keypad4x3

//case 11: kp = 48; break; // '0'

Trang 9

//case 12: kp = 35; break; // '#'

//default: kp += 48;

case 1: kp = 49; break; // 1 // Uncomment this block for

keypad4x4

case 2: kp = 50; break; // 2

case 3: kp = 51; break; // 3

case 4: kp = 65; break; // A

case 5: kp = 52; break; // 4

case 6: kp = 53; break; // 5

case 7: kp = 54; break; // 6

case 8: kp = 66; break; // B

case 9: kp = 55; break; // 7

case 10: kp = 56; break; // 8

case 11: kp = 57; break; // 9

case 12: kp = 67; break; // C

case 13: kp = 42; break; // *

case 14: kp = 48; break; // 0

case 15: kp = 35; break; // #

case 16: kp = 68; break; // D

}

if (kp != oldstate) { // Pressed key differs from

previous

cnt = 1;

oldstate = kp;

}

else { // Pressed key is same as previous

cnt++;

}

Lcd_Chr(1, 10, kp); // Print key ASCII value on LCD

if (cnt == 255) { // If counter varialble overflow

cnt = 0;

Lcd_Out(2, 10, " ");

}

WordToStr(cnt, txt); // Transform counter value to string

Lcd_Out(2, 10, txt); // Display counter value on LCD

} while (1);

}

Trang 10

5 LCD hiển thị:

Nhóm sử dụng LCD 16x2 (LCD HD44780 ).

1 Vss Chân nối đất cho LCD, khi thiết

kế mạch ta nối chân này với GND của mạch điều khiển

thiết kế mạch ta nối chân này với VCC=5V của mạch điều khiển

LCD.

select) Nối chân RS với logic

“0” (GND) hoặc logic “1” (VCC)

để chọn thanh ghi.

+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ “ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read) + Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên

Trang 11

trong LCD.

(Read/Write) Nối chân R/W với logic “0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic “1”

để LCD ở chế độ đọc.

các tín hiệu được đặt lên bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E.

+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận) thanh ghi bên trong nó khi phát hiện một xung (high-to-low transition) của tín hiệu chân E + Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân

E xuống mức thấp.

-DB7

Tám đường của bus dữ liệu dùng

để trao đổi thông tin với MPU

Có 2 chế độ sử dụng 8 đường bus này :

+ Chế độ 8 bit : Dữ liệu được truyền trên cả 8 đường, với bit MSB là bit DB7.

+ Chế độ 4 bit : Dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit MSB là DB7

Trang 13

6.Bộ nguồn:

Mạch nguồn được tận dụng từ mạch nguồn của máy tính để bàn củ mượn của xường 4A

Điều khiển động cơ bằng phương pháp PID

PWM1_Init(5000);

Kp1=1.2555;

Ki=0;

Kd=0;

Với các thông số PID như thế thì hệ thống ổn định ở 1500v/p

a=count*600/400; //la 1 vong 400 xung

count=0; // so xung trongm 0,1s

TMR1H=0b01011110;

TMR1L=0b01011000;

TMR1IF_bit=0;

Trang 14

E1=set_value-a; // sai s0 //kp la he khuyet dai

I1=I1+0.05*(E1+E2); //ki la he khau tich phan

D1= (E2-E1)/0.1; //kd la he so vi phan

u=Kp1*E1+Ki*I1+Kd*D1;

E2=E1;

Và đây là đoạn code để tính các hệ số và tính cờ ngắt cho pic

L4 L5 L0 L1 L2 L3

K3

K1

K4

K6

K0

K7

K1 K3 K5

IN1

ENA

L0

L5

L1 L3

IN1 ENA IN2

X1

8MHz

C1

30p

C2

30p

R1

10k

RESET

RE3/MCLR/VPP 1

RA1/AN1/C12IN1-3 RA2/AN2/VREF-/CVREF/C2IN+

4 RA4/T0CKI/C1OUT 6

RA5/AN4/SS/C2OUT 7

RB0/AN12/INT 33 RB1/AN10/C12IN3-34

RB2/AN8 35 RA7/OSC1/CLKIN

13 RA6/OSC2/CLKOUT 14

RD5/P1B 28 RD6/P1C 29 RD7/P1D 30

RC4/SDI/SDA 23 RC5/SDO 24 RC3/SCK/SCL 18 RC2/P1A/CCP1 17 RC1/T1OSI/CCP2 16 RC0/T1OSO/T1CKI 15

RB7/ICSPDAT

40 RB6/ICSPCLK

39 RB5/AN13/T1G

38 RB4/AN11 37

RD3 22 RD2 21 RD1 20 RD0 19 RC7/RX/DT 26 RC6/TX/CK 25

RE2/AN7 10 RE1/AN6 9 RE0/AN5 8

RA3/AN3/VREF+/C1IN+

5

RD4 27

RB3/AN9/PGM/C12IN2-36

RA0/AN0/ULPWU/C12IN0-2

U2

PIC16F887 PROGRAM=hoi tiep encoder.hex

LCD1

LM016L

3

RV2

10k

1 2

1

1 2

2

1 2

3

1 2

4

1 2

5

1 2

6

1 2

7

1 2

8

1 2

9

1 2

0

1 2

CLEAN

1 2

SET

1 2

RW

1 2

FW

1 2

STOP

1 2

MUTE

R2

10k R3

10k R4

10k R5

10k

IN1 5 IN2 7

ENA 6

OUT1 2 OUT2 3 ENB

11 OUT3 13

OUT4 14

IN3 10 IN4 12

SENSA 1 SENSB

15 GND 8

VS 4 VCC

9 U1

L298

+24V

M1 M2

D1

1N4007

D2

1N4007

D3

1N4007

D4

1N4007

+88.8

+24V

LS1

SOUNDER CLK

Hình ảnh trên mô phỏng của nhóm

Hình ảnh thức tế đã nộp cho thầy lúc báo cáo

Ngày đăng: 29/08/2017, 09:20

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w