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

Điều khiển động cơ bằng mờ và PID

44 454 0

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

Nội dung

Điều khiển động cơ bằng mờ và PID

Trang 1

BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM

-TIỂU LUẬN ĐIỀU KHIỂN ĐỘNG CƠ BẰNG MỜ VÀ PID

MÔN: Đo Lường Và Điều Khiển Bằng Máy Tính

GVHD : HUỲNH MINH NGỌC

TP.HCM Ngày 23 tháng 6 năm 2013

TỔNG QUAN ĐỀ TÀI

Trang 2

1.1 Đặt vấn đề

Cùng với sự phát triển của khoa học công nghiệp hóa hiện đại hóa đất nước, làm xuất hiện các đối tượng điều khiển có độ phức tạp ngày càng tang Tất cả đều hướng tới mục tiêu là độ chính xác tốt cao cũng như khả năng đáp ứng tốt với các thiết bị điều khiển Các phương pháp điều khiển cổ điển và hiện đại chỉ đáp ứng tốt với các đối tượng tuyến tính có mô hình toán học, nhưng trong thực tế cần các hệ thống có điều khiển phi tuyến, có đọ phức tạp cao vì vậy các bộ điều khiển đã được ra đời Các bộ điều khiển thông minh dựa trên lý luận của con người hay dựa trên hoạt đọng bộ não con người, đó là các Phuong pháp điều khiển mờ và mạng Các bộ điều khiển mờ áp dụng điều khiển các đối tượng phi tuyến và được áp dụng thành công trong các thiết bị gia dụng như máy ghi hình, máy giặt, lò vi ba cũng như hệ thống công nghiệp

Động cơ là một đối tượng phi tuyến không thể áp dụng các điều khiển thong thường được Do đó, phương pháp điều khiển mờ được áp dụng điều khiển mờ dựa trên các thông tin không rõ ràng, và tùy thuộc vào kinh nghiệm của chuyên gia hay người điều khiển

1.2 YÊU CẦU CỦA ĐỀ TÀI.

Đề tài “ điều khiển động cơ bằng mờ và PID” mới và khó vì thế cần thực hiện các yêu cầu sau

Tìm hiểu lý thuyết mờ và ứng dụng của nó trong điều khiển

Tìm hiểu phần mền Keil C

Viết chuong trình điều khiển bằng ngôn ngữ C

Xây dựng mô hình thực tế, ứng dụng điều khiển mờ và PID điều khiển động cơ

2 THIẾT KẾ BỌ ĐIỀU KHIỂN

2.1 Sơ đồ khối

Trang 3

24VDC 12VDC

2.2 Khối điều khiển trung tâm

Sử dụng vi điều khiển P89v51RB2

Thanh ghi chế độ định thời TMOD: chứa các bit thiết lập chế độ hoạt động của bộ định

thời

Trang 4

Cấu trúc của thanh ghi TMOD

Thanh ghi điều khiển định thời TCON: chứa các bit dung để điều khiển và báo trạng

thái của bộ định thời

Cấu trúc của thanh ghi TCON

Trang 5

Thanh ghi SCON( Serial Control Register )

Đây là thanh ghi điều khiển Port nối tiếp Nó chứa các bit dung để điều khiển chế độ hoạt động và báo trạng thái của Port nối tiếp

Port nối tiếp có 4 chế độ hoạt động Các chế độ này được chọn bởi các bit SM0, SM1

SM0 SM Chế độ Mô tả Tốc độ Baud

0 0 0 Thanh ghi dịch Cố định (fosc/ 12)

0 1 1 UART 8 BIT Thay đổi (thiết lập bởi timer 1 hoặc Timer 2)

1 0 2 UART 9 BIT Cố định (fosc/ 32 hoặc fosc/64 )

1 1 3 UART 10 BIT Thay đổi (thiết lập bởi timer 1 hoặc Timer 2)

Trang 6

REN: Receive Enable -> Cho phép thu Bit này phải

được set để nhận các dữ liệu.

SM2: Serial Mode 2 -> Bit 2 chọn chế độ của port nối tiếp Bit này cho phép truyền thông đa xử lý ở chế độ 2 và 3; bit

RI sẽ không được tích cực nếu bit thứ 9 nhận được là 0 SM1: Serial Mode 1 -> Bit 1 chọn chế độ của port nối tiếp SM0: serial mode 0 -> Bit 0 chọn chế độ của port nối tiếp

1 sẽ lập trình cho nó không hoạt động trong trạng thái rỗi

6 WDTE Cho phép Watchdog Timer trên modules 4 ( 1 : cho phép hoạt

động)

2

-1

CPS1

-CPS0 Lựa chọn nguồn xung đếm cho PCA

0 ECF Cho phép ngắt khi tràn Counter PCA

Nguồn xung nhịp cho PCA được chọn từ 2 bit CPS1 và CPS2 trên thanh ghi CMOD

Trang 7

CPS1 CPS2 Chọn xung nhịp cho PCA

0 0 1/6 fosc

0 1 1/2 fosc

1 0 Tràn từ timer 0

1 1 Xung nhịp ngoài tại chân ECI ( P1.2) Tốc độ lớn nhất 1/4 fosc

Thanh ghi CCON( PCA Counter Control ) bao gồm bit điều khiển chạy PCA , các cờ

cho PCA và mỗi Modules

CCON – PCA counter control register ( address 0 D8H) bit allocation

Bit addressable , Reset value : 00H

7 CF Cờ đếm tràn PCA Được thiết lập bằng phần cứng khi đếm tràn CF là

cờ ngắt khi ECF = 1 CF được thiết lập bằng phần cứng hoặc phần mềm nhưng chỉ xóa được bằng phần mềm

6 CR Bit điều khiển chạy counter PCA Được thiết lập bằng phần mềm 1 :

chạy 0: dừng

5 CCF4 Cờ ngắt modul PCA 4 Được thiết lập bằng phần cứng khi xuất hiện

match hoặc capture Được xóa bằng phần mềm

4 CCF3 Cờ ngắt modul PCA 3

3 CCF2 Cờ ngắt modul PCA 2

2 CCF1 Cờ ngắt modul PCA 1

1 CCF0 Cờ ngắt modul PCA 0

Trang 8

Thanh ghi CMOD (CPA counter mode)

Điều khiển trạng thái rỗi của counter PCA CIDL = 0 sẽ cho Counter PCA tiếp tục hoạt động bất chấp đang trong trạng thái rỗi CIDL = 1 sẽ lập trình cho nó không hoạt động trong trạng thái rỗi

6 WDTE Cho phép Watchdog Timer trên modunles 4 ( 1: cho phép hoạt

dộng )

2 -1 CPS1- CPS0 Lựa chọn nguồn xung đếm cho PCA

0 ECP Cho phép ngắt khi tràn Counter PCA

Trang 9

Nguồn xung nhịp cho PCA được chọn từ 2 bit CPS1 và CPS2 trên thanh ghi CMOD

1 0 Tràn từ timer 0

1 1 Xung nhịp ngoài tại chân ECI ( P1.2) Tốc độ lớn nhất ¼ fosc

Chế độ điều đọ rộng xung (Pulse width modulator mode )

Tất cả các Modul đề có thể sử dụng như là ngõ ra PWM Tần số ngõ ra được lấy từ PCA timer Tất cả các modul sẽ có tần số ngõ ra giống nhau vì sử dụng chung PCA timer Độ rộng xung của mỗi modul phụ thuộc vào giá trị thanh ghi CCAPNL Khi giá trị thanh ghi

CL của thanh ghi PCA nhỏ hơn giá trị thanh ghi CCAPNL của modul thì ngõ ra sẽ ở mức thấp Khi nó bằng hoặc lớn hơn thì ngõ ra ở mức cao Khi CL tràn từ FFH về 00H , CCAPNL được nạp lại từ thanh ghi CCAPNH Bit PWM và ECOM trong thanh ghi CCAPMN của modul phải ở mức 1

Trang 10

Các thanh ghi và hoạt động ngắt :

Ngắt là việc xảy ra một điều kiện làm cho chương trình thực thi bị tạm dừng để quay sang thực hiện một chương trình khác rồi sau đó quay lại để thực thi tiếp chương trình đang bị tạm ngưng Các ngắt đóng vai trò trong việc thiết kế và thực hiện các ứng dụng của vi điều khiển

Địa chỉ bit (HEX)

Trang 11

IT0 = 2 Ngắt ngoài 1 được kích khởi bởi việc phát hiện mức thấp tại chân INT0\ IT0 = 3 Ngắt ngoài 1 được kích khởi bởi việc phát hiện cạnh âm tại chân INT0\.

Trang 12

2 VDD Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này với

VCC=5V của mạch điều khiển

3 VEE Điều chỉnh độ tương phản của LCD

4 RS Chân chọn thanh ghi (Register 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 trong LCD

5 R/W Chân chọn chế độ đọc/ghi (Read/Write) Nối chân R/W với logic “0” để

Trang 13

LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độ đọc.

6 E Chân cho phép (Enable) Sau khi 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

Trang 14

Kết nối LCD với Vi Sử Lý:

 Chân 1 nối GND

 Chân 2 nối +5V

 Chân Vef nối 1 biến trở 10k để chỉnh độ tương phản

 Chân RS, RW, EN nối với 3 chân của IC 8951

 8 chân dữ liệu nối với post 1 của IC 8951

 2 chân của đèn Backlight kết nối như hình vẽ

2.4 Encoder.

2.4.1 Cấu tạo chính của Encoder

Gồm 1 bộ phát ánh sang (LED phát), một bộ thu ánh sang từ bộ phát (bộ thu thường là photodiode hoặc phototransistor), 1 đĩa quang có khoét lỗ gắn trên trục quay đặt giữa bộ phát và thu , thông thường trục quay này sẽ được gắn với trục quay của dối tượng cần đo tốc độ

Trang 15

Cấu trúc đĩa và mắt đọcMột encoder thường có cá dây sau:

- Dây cấp nguồn (+5V) cho encoder

Dạng song ngõ ra của LED thu

2.4.2 Nguyên lý cơ bản

Encoder thực chất là một đĩa tròn xoay, quay quanh trục.Trên đĩa có các lỗ (rãnh) Người

ta dung 1 đèn LED để chiếu lên mặt đĩa Khi đĩa quay, chỗ không có lỗ (rãnh), đèn led không chiếu xuyên qua được, chỗ có lỗ (rãnh) , đèn led sẽ chiếu xuyên qua Khi đó, phía mặt bên kia của đĩa , người ta đặt 1 con mắt thu với các tín hiệu có, hoặc không có ánh sang chiếu qua, người ta ghi nhận được đèn led có chiếu qua lỗ hay không Cứ mỗi lần đi qua một lỗ , chúng ta phải lập trình để thiết bị đo đếm lên 1 Số lỗ trên đĩa sẽ quyết định độchính xác của thiết bị đo Ví dụ đĩa của bạn có 1 lỗ tức là khi bạn quay được 1 vòng thì bộ thu được 1 xung, nếu đĩa của bạn khoét N lỗ có nghĩa 1 vòng bạn thu được N xung Như vậy khi đo tốc đọ bạn đếm số xung trong 1 đơn vị thời gian, từ đó bạn tính được số vòng trên 1 đơn vị thời gian (hoặc bạn có thể đo chu kỳ xung) Nếu đo tốc đọ cao thì số lỗ khoét càng nhiều càng chính xác

Trang 16

2.5 Khối công suất.

Đây là IC driver MOSFET, dung để lái cực G của MOSFET, bởi vì để kích dẫn IRF540 tacần cấp điện áp 9-12V vào cực G của MOSFET, mà tín hiệu mức 1 từ 89v51 xuất ra chỉ là 5vdc thôi Do đó, ta phải sử dụng 1R2110 để chuyển mức tín hiệu 5vdc thành 12vdc kích dẫn MOSFET

Động cơ DC là thiết bị truyền động công suất mà phân phối năng lượng ra tải

Động cơ 1 chiều được mô tả ở hình sau:

Trong đó : Load : tải ; Armature: phần ứng, Field: trường ; Inertia: momen quán tính; Friction: ma sát

Từ thông xủa động cơ tỉ lệ với dòng điện từ, giả sử từ trường không bão hòa :

f f

K i

(1)Momen của động cơ được giả sử là tuyến tính với  và dòng điện phần ứng tia ( armature current )

1 ( ) 1 ( ) ( )

TK i t   K K i t i t

(2)Hay T t m( )K i t m a ( )

Trong đó K1 là hằng số tỉ lệ

Trang 17

Tm (s) = TL (s) + Td (s) 3

Momen động cơ bằng momen phân phối cho tải.Quan hệ này được minh học (3) Trong

đó, TL(s) là momen của nhiễu (thể hiện momen ma sát tải như là ma sát Coulomb)

Trong đó Km là hàm của từ tính của vật liệu từ

Dòng điện phần ứng có quan hệ với điện áp vào đặt vào phần ứng (armature) Va(s) (gọi là U):

Va là điện áp vào đặt vào phần ứng

Vb(s) (gọi là E) là điện áp điện động ngược ( sức phẩn diện động phần ứng ) và tỉ lệ với tốcđộc động cơ

Trang 18

Quan hện cho động cơ DC được điều khiển bằng phần ứng được minh họa ở hình sau:

Sử dụng phương trình (4), (7) và (8) hay sơ đồ khối và cho Td(s) =0 , ta giải và đạt được hàm truyền sau :

Trong đó Td(t) được xem là ngõ vào thứ hai trong phuong trình trạng thái

Khi không có nhiễu Td(t), phuong trình trạng thái:

Trang 19

minh họa bằng cách xem xét hoạt động động cơ ở trạng thái xác lập và cân bằng công suất khi điện trở rotor bị bỏ qua Td(s)

- TL(s)

+

Hình 5.10 : Sơ đồ khối động cơ một chiều được điều khiển bằng phần ứng

Khi xét hàm truyền của tốc độ ta có :

L R

Đây là khâu quán tính bậc nhất

Khi bỏ qua phản ứng phần ứng, bỏ qua ma sát (b=0) và giả sử các phần tử trong hệ thống

là tuyến tính , có các phuong trình sau :

U: điện áp hai đầu phần ứng

I : dòng điện qua động cơ

Trang 20

R,L : điện trở, tự cảm mạch điện phần ứng.

E, Mdc : sức điện động , moment quay của động cơ

J: moment quán tính của các phần quay và Mc là moment cản

Xem lý thuyết ở chương 8A

4 Bộ điều khiển PID số.

Bộ điều khiển PID số có hàm truyền dạng liên tục như sau :

1 1 0

Trang 21

Rời rạc hóa PID ta có biến đổi z như sau:

( )

D p

2

D P

22

D p

Trang 22

5.THIẾT KẾ PID MỜ

Có thể nói trong lĩnh vực điều khiển, bộ PID được xem là một giải pháp đa năng cho các ứng dụng điểu khiển Analog cũng như Digital Việc thiết kế bộ PID thường dựa trên phương pháp Zeigler-Nochols, Reinish Ngày nay người ta thường sử dụng PID mềm, đây là cơ sở cho thiết kế PID hay PID thích nghi

5.1 Sơ đồ điều khiển PID mờ

Mô hình toán của bộ PID :

u(t) = Kpe(t) + Ki

các tham số Ki Kd Ki được điều chỉnh theo từng bộ điều khiển mờ riêng biệt dựa trên sai lệch e(t) và đạo hàm de(t) Có nhiều phương pháp khác nhau để chỉnh bộ PID như chỉnh định trực tiếp, chỉnh định Zhao, Tomizuka va Isaka Nguyên tắc chung là bắt đầu các trị

số Ki Kd Ki theo Zeigler-Nochol, sau đó dựa vào đáp ứng và thay đổi dần để tìm ra hướng điều chỉnh thích hợp

5.2 Luật chỉnh định PID

Trang 23

+lân cận a1 ta cần luật điều khiển mạnh để rút ngắn thời gian lên, do vậy ta chọn : Kp lớn, Kd và Ki nhỏ

+ tốc độ tăng DET = ET (i+1)−e (i)

T , với T là chu kỳ lấy mẫu

- đầu ra : 3 biến

+ Kp là hệ số tỉ lệ

+ Kd là hệ số vi phân

+ Ki là hệ số tích phân

-Số lượng biến ngôn ngữ

ET = {âm nhiều, âm vừa, âm ít, Zero, dương ít, dương vừa, dương nhiều}

ET = {N3, N2, N1, NE, P1, P2, P3}

Trang 24

DET = {âm nhiều, âm vừa, âm ít, Zero, dương ít, dương vừa, dương nhiều }DET = {N31, N21, N11, NE1, P11, P21, P31}

Kp/Kd = {zero, nhỏ, trung bình, lớn, rất lớn} = {Z,S,M,L,U}

Ki = {mức 1, mức 2, mức 3, mức 4, mức 5} = {N1, N2, N3, N4, N5}

Trang 27

6 CHƯƠNG TRÌNH CHÍNH6.1 Lưu đồ

Cấu hình Timer, Interrup, cho MCU

Cài đặt tốc độ cho Motor

Trang 29

{Fuzy_M,Fuzy_M,Fuzy_M,Fuzy_M,Fuzy_M,Fuzy_M,Fuzy_M},{Fuzy_L,Fuzy_L,Fuzy_L,Fuzy_L,Fuzy_L,Fuzy_L,Fuzy_L},

{Fuzy_M,Fuzy_M,Fuzy_M,Fuzy_M,Fuzy_M,Fuzy_M,Fuzy_M},{Fuzy_I,Fuzy_L,Fuzy_M,Fuzy_M,Fuzy_M,Fuzy_L,Fuzy_L},

{Fuzy_U,Fuzy_U,Fuzy_U,Fuzy_U,Fuzy_UFuzy_U,Fuzy_U},

};

Float code FKi[7][7] = }

{Fuzy_L1,Fuzy_L1,Fuzy_L1,Fuzy_L1,Fuzy_L1,Fuzy_L1,Fuzy_L1},{Fuzy_L3,Fuzy_L2,Fuzy_L2,Fuzy_L1,Fuzy_L2,Fuzy_L2,Fuzy_L3},{Fuzy_L4,Fuzy_L3,Fuzy_L2,Fuzy_L1,Fuzy_L2,Fuzy_L3,Fuzy_L4},{Fuzy_L5,Fuzy_L4,Fuzy_L3,Fuzy_L2,Fuzy_L3,Fuzy_L4,Fuzy_L5},{Fuzy_L1,Fuzy_L1,Fuzy_L1,Fuzy_L1,Fuzy_L1,Fuzy_L1,Fuzy_L1},{Fuzy_L3,Fuzy_L2,Fuzy_L2,Fuzy_L1,Fuzy_L2,Fuzy_L2,Fuzy_L3},{Fuzy_L4,Fuzy_L3,Fuzy_L2,Fuzy_L1,Fuzy_L2,Fuzy_L3,Fuzy_L4},//**/*/*/*/*/*/*/*/

Void lcd_Ready (void);

Void send_cmd(unsigned char cmd);

Void send_text(unsigned char tex);

Trang 30

Void int_lcd(void);

Void Clr_lcd(void);

Void Sprint_lcd(unsigned char cmd, unsigned char chuoi[]);Void Dprint_lcd(unsigned char cmd, unsigned int d);

Void delay_ms(unsigned int ms);

Unsigned char GetSW (void);

Void SetPWM(unsigned char PWM);

Void SetVpoint (void);

Unsigned char GiaiMo_DET(signed int x);

Unsigned char GiaiMo_ET(singed int x);

//**/*/*/*/*/*/*/*/

Unsigned char BitUpdateVreal = 0, flagPID=0;

Unsigned char prePWM = 0;

Unsigned int Timeout = 0, TongXung = 0, Vreal = 0, Vset = 100;Float PID_el=0,PID_e2=0,Fuzy_e1=0;

Void main (void)

Trang 31

Sprint_lcd(0x0C1,”Vreal : “)flagPID=1;

CountDisp >=50;

Trang 32

******************************************Void int_lcd(void) Khởi tạo LCD

{

Delay_ms(500);

rs=0;

rw=0;

Trang 39

If (!swSet)

{

Masw =1 ;Timeout=40;

Trang 40

Unsigned char Masw=0, V_set[4]= {0,0,0,0}, i=0;Clr_lcd();

Trang 42

Unsigned char i,j,T=10;

Signed int e,PWM;

Trang 43

Else if( x< -200) temp =1;

Else if( x< -100) temp =2;

Else if( x>100 && x <100) temp =3;

Else if(x >300) temp =6;

Else if(x >200) temp =5;

Else if(x >100) temp =4;

Trang 44

}

Ngày đăng: 05/07/2016, 17:27

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w