Đề tài Điều khiển pid động cơ không đồng bộ 3 pha với pic 18F4520

CHƯƠNG 1: LÝ THUYẾT LIÊN QUAN 1

1.1 ĐỘNG CƠ KHÔNG ĐỒNG BỘ 3 PHA. 1

1.1.1 Cấu tạo. 1

1.1.2 Ứng dụng. 2

1.1.3 Các phương pháp điều khiển. 3

1.2 CHỈNH LƯU CẦU MỘT PHA. 3

1.3 BIẾN TẦN VÀ CÁC PHƯƠNG PHÁP ĐIỀU KHIỂN. 5

1.3.1. Ứng dụng của biến tần. 5

1.3.2 Biến tần trực tiếp. 6

1.3.3 Bộ biến tần có khâu trung gian một chiều (biến tần gián tiếp). 6

1.3.4 Bộ nghịch lưu áp 3 pha. 7

1.3.5 Các phương pháp điều khiển phổ biến. 10

1.3.5.1 Phương pháp điều chế sin PWM. 10

1.3.5.1.1 Giới thiệu. 10

1.3.5.1.2 Một số công thức tính toán. 11

1.3.5.2 Phương pháp điều khiển V/f. 12

1.3.5.3 Nghịch lưu 3 pha sixtep. 14

1.3.5.3.1 Nghịch lưu sixtep dẫn . 15

1.3.5.3.2 Nghịch lưu sixtep dẫn . 16

1.4 ENCODER. 18

1.4.1 Cấu tạo. 18

1.4.2 Nguyên lý hoạt động. 19

1.5 CẢM BIẾN NHIỆT LM335. 19

1.6 THUẬT TOÁN ĐIỀU KHIỂN PID . 20

1.6.1 Thuật toán PID số. 20

1.6.2 Thuật toán PID rời rạc hóa. 21

1.6.3 Hiệu chỉnh thông số của bộ điều khiển PID. 25

1.6.3.1 Phương pháp thứ nhất. 25

1.6.3.2 Phương pháp thứ hai. 26

1.7 NGÔN NGỮ LẬP TRÌNH Visual Basic. 26

1.7.1 Khái quát về Visual Basic. 26

1.7. 2 Giới thiệu về công cụ ActiveX Teechart. 28

1.8 VI ĐIỀU KHIỂN_PIC 18f4520. 29

1.8.1 Giới thiệu về PIC. 29

1.8.2 Đặc điểm nổi bật ngoại vi. 32

1.8.3 Chức năng từng chân. 33

CHƯƠNG 2: THỰC HIỆN ĐỀ TÀI 35

2.1 NỘI DUNG. 35

2.1.1 Yêu cầu đề ra. 35

2.1.2 Giải quyết yêu cầu. 35

2.2 THIẾT KẾ PHẦN CỨNG. 36

2.2.1 Khối điều khiển và hiện thị. 36

2.2.1.1 Khối nguồn . 37

2.2.1.2 Nút nhấn và biến trở. 38

2.2.1.3 Encoder. 38

2.2.1.4 Temp sensor. 38

2.2.1.5 LCD hiển thị. 38

2.2.1.6 Khối Max232. 38

2.2.1.7 Vi điều khiển. 39

2.2.2 Khối công suất. 40

2.2.2.1 Bộ chỉnh lưu. 41

2.2.2.2 Mạch cách li và mạch lái. 41

2.2.2.2.1 Mạch cách li. 41

2.2.2.2.2 Mạch lái. 43

2.2.2.3 Mạch nghịch lưu 3 pha . 44

2.3 SƠ ĐỒ NGUYÊN LÝ. 46

2.4 GIẢI THUẬT CHƯƠNG TRÌNH. 48

2.4.1 Chương trình trên PIC18F4520. 49

2.4.1.1 Lưu đồ giải thuật chương trình chính. 49

2.4.1.2 Giải thuật chương trình PID. 53

2.4.1.3 Lưu đồ giải thuật chương trình ngắt. 54

2.4.1.3.1 Ngắt port nối tiếp. 55

2.4.1.3.2 Ngắt Timer 2. 55

2.4.1.3.3 Ngắt Timer1 và Timer 3 . 56

2.4.2 Chương trình và giải thuật trên máy tính. 57

2.4.2.1 Sự kiện nút nhấn CONNECT. 58

2.4.2.2 Sự kiện Form_Load(). 59

2.4.2.3 Sự kiện nút nhấn START. 59

2.4.2.4 Sự kiện nút nhấn STOP. 60

2.4.2.5 Sự kiện nút nhấn ABOUT. 61

2.4.2.6 Sự kiện OnComn(). 61

2.4.2.7 Chương trình con tính thuật toán PID. 62

CHƯƠNG 3: KẾT LUẬN 63

3.1 KẾT QUẢ ĐẠT ĐƯỢC. 63

3.2 HẠN CHẾ. 63

3.3 HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI. 63

PHỤ LỤC 65

TÀI LIỆU THAM KHẢO 98

 

 

doc100 trang | Chia sẻ: lethao | Lượt xem: 6055 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Đề tài Điều khiển pid động cơ không đồng bộ 3 pha với pic 18F4520, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ổi ngắt. - Các module lấy mẫu / so sánh / PWM được tăng cường so với loại PIC 20 chân. [ hai ngõ ra PWM ; tự động ngưng và khởi động lại ; thời gian trễ ( dead time ) có thể lập trình lại ]. - Cổng serial đồng bộ với chế độ SPI(Master) và I2C (Master/Slave) thực hiện bằng phần cứng . - Tăng cường module USART có thể định địa chỉ: + Tự động dò tốc độ baud. + Hỗ trợ RS - 485, RS - 232 và LIN 1.2. + RS - 232 hoạt động qua việc sử dụng bộ tạo dao động bên trong ( không cần thạch anh bên ngoài ). + Chế độ chuyển nhận đồng bộ/bất đồng bộ với 9 bit địa chỉ kiểm tra. - 10 bít, 13 kênh của module chuyển đổi A/D với tốc độ 5 - 10us. + Có khả năng tự động thu nhận. + Sự chuyển đổi thực hiện trong suốt quá trình chờ. - 2 bộ so sánh tương tự với nhiều đầu vào. - Trang bị 4 bộ định thời: 1 bộ 8 bit, 3 bộ 16 bit. - 2 module Capture/Compare/PWM. - Cổng song song (PSP) 8bit . - Các chế độ định địa chỉ: trực tiếp, gián tiếp và tương đối. - Chế độ SLEEP (tạm nghỉ) để tiết kiệm điện năng . - 2 chân cho phép gỡ rối hoạt động của vi điều khiển. - Cấu trúc bộ dao động linh hoạt: - 4 chế độ dao động thạch anh, tần số bộ dao động cho phép tới 40 Mhz. - 4 vòng khóa pha ( dùng cho bộ dao động thạch anh bên ngoài và bộ dao động bên trong ). - Hai chế độ dao động RC bên ngoài. - 2 kiểu xung clock bên ngoài, lên đến 40 MHz. - Khối dao động bên trong: + 8 tần số sử dụng có thể chọn lựa từ 31 KHz đến 8 MHz. + Cung cấp một dải xung clock đầy đủ với tốc độ từ 31 KHz đến 32 MHz khi dùng với PLL. - Bộ dao động thứ hai sử dụng Timer 1 32 KHz. - Đặc tính đặc biệt của PIC: - 100, 000 quá trình xóa / ghi bộ nhớ Flash chương trình. - 1, 000, 000 quá trình xóa dữ liệu EEPROM. - 32k bộ nhớ FLASH lập trình. - 1536 byte bộ nhớ SRAM , trong đó bộ nhớ EEPROM lên đến 256 byte. - Cho phép đọc/ghi bộ nhớ chương trình . - Có chế độ bảo vệ mã lập trình . - Lập trình thông qua cổng serial với điện thế chỉ 5 V. - Sự tự lập trình bằng phần mềm điều khiển. - Các mức ưu tiên cho ngắt. - Bộ định thời Watchdog được nới rộng ( WDT ): +Chu kỳ có thể lập trình từ 4 ms đến 131 s. - Dải điện áp hoạt động rộng: 2 V đến 5.5 V. 1.8.3 Chức năng từng chân. - Port A: + Là port xuất nhập hai chiều: + Gồm 6 chân từ RA0 đến RA5. Chân RA2 là ngõ vào điện áp tham chiếu thấp ( ), RA3 là ngõ vào điện áp tham chiếu cao () và cả 2 chân này dùng cho việc đổi tương tự sang số ( A/D ). + Chân RA4 là ngõ vào xung clock cho Timer0. RA5 dùng phát hiện mức điện áp cao / thấp ở đầu vào. - Port B: + Là port xuất nhập hai chiều, port B có thể được lập trình bằng phần mềm để làm chức năng kéo lên cho tất cả đầu vào. + RB0, RB1, RB2 lần lượt có thể làm chân ngắt ngoài 0, 1, 2. + RB4, RB5, RB6 có thể tạo ngắt với sự thay đổi trên chân đó. - Port C: + Port xuất nhập hai chiều. + RC0 làm ngõ ra bộ dao động Timer1 hoặc ngõ vào xung clock cho Timer1 / Timer3. + RC1 làm ngõ vào bộ dao động cho Timer1, ngoài ra nó còn lấy mẫu 2 ngõ vào / so sánh 2 ngõ ra / PWM 2 ngõ ra. + RC2 lấy mẫu 1 ngõ vào / so sánh 1 ngõ ra / PWM 1 ngõ ra, nó còn được tăng cường thêm CCP1 ở đầu ra. - Port D: + Là port xuất nhập 2 chiều, có thể làm port slave song song ( PSP ) khi giao tiếp với 1 port vi xử lí. Những chân của port có đệm đầu vào TTL ( Transisitor – transistor logic ) khi module PSP được cho phép. - Port E: + Là port xuất nhập 2 chiều, có thể dùng để điều khiển chọn / đọc / ghi cho PSP. - Các chân khác: + VSS: Chân nối đất . + VDD: Chân cấp nguồn dương . + OSC1/CLKI/RA7: Ngõ vào bộ dao động thạch anh hay xung clock. + OSC2/CLKO/RA6: Ngõ ra bộ dao động thạch anh hay xung clock. CHƯƠNG 2: THỰC HIỆN ĐỀ TÀI 2.1 Nội dung. 2.1.1 Yêu cầu đề ra. Tạo ra được điện áp 3 pha ở ngõ ra cấp cho motor hoạt động, tần số điện áp 3 pha ngõ ra có thể thay đổi trong khoảng 10 -70 Hz. Điều khiển vòng kín động cơ không đồng bộ 3 pha bằng thuật toán PID. Theo dõi và giám sát nhiệt độ của các khóa công suất. Giao tiếp máy tính, viết giao diện điều khiển và giám sát trên máy tính. 2.1.2 Giải quyết yêu cầu. Từ yêu cầu đặt ra, sơ đồ khối của hệ thống được thiết kế như sau: Vac Cầu Chỉnh Lưu Nghịch Lưu 3 pha Động Cơ Không Đồng Bộ 3 Pha Mach lái Mạch cách li Hồi tiếp Encoder Nhiệt độ Bộ Điều Khiển PIC PC Rs232 Biến trở Nút nhấn Led LCD Tín hiệu xung kích Hình 2.1 - Sơ đồ thiết kế. Điện áp từ nguồn điện AC qua mạch chỉnh lưu toàn kỳ, tạo ra điện áp một chiều DC cung cấp cho bộ nghịch lưu và bộ điều khiển ( lưu ý rằng áp DC cung cấp cho bộ điều khiển là 5 V, còn cho bộ nghịch lưu cao hơn rất nhiều, gần 300 Vdc). Bộ điều khiển được lập trình để gởi tín hiệu điều khiển đến các van điện tử của bộ nghịch lưu 3 pha, sử dụng phương pháp kích dẫn các khóa theo kiểu six_step dẫn 180 độ. Với tín hiệu điều khiển nhận được các van của bộ nghịch lưu sẽ được kích dẫn theo ý muốn tạo ra điện áp lệch 3 pha từ nguồn DC ban đầu, cung cấp cho động cơ. Tốc độ quay của động cơ được đo thông qua số xung hồi tiếp về từ Encoder. Bộ điều khiển giao tiếp với máy tính qua cổng Com, chuẩn RS232, chương trình trên máy tính sẽ tính toán PID dựa vào tốc độ của động cơ đo được bằng Encoder và gửi tín hiệu điều khiển xuống vi xử lý. Vi xử lý sẽ tính toán và đưa ra giá trị xung kích phù hợp. 2.2 Thiết kế phần cứng. Từ sơ đồ khối của hệ thống như trên, hệ thống được thiết kế với hai khối chủ yếu: khối điều khiển và hiển thị cùng với khối công suất . 2.2.1 Khối điều khiển và hiển thị. Sơ đồ khối của khối điều khiển: Biến trở PC LCD DISPLAY LED PIC 18f4520 CONTROLLER Encoder Temp sensor Power Nút nhấn MAX 232 PWM signal Fan Hình 2.2 - Sơ đồ khối mạch điều khiển, hiển thị. 2.2.1.1 Khối nguồn . Điện áp ac 15V được chỉnh lưu theo phương pháp chỉnh lưu toàn kì không điều khiển dùng cầu diode, điện áp DC sau đó được lọc phẳng bằng tụ và đưa vào vi mạch ổn áp 7805 để tạo ra điện áp 5V ổn định cấp cho mạch điều khiển. Do yêu cầu về an toàn và chống nhiễu, điện áp DC cung cấp cho mạch điều khiển, mạch công suất, mạch lái đều được dùng các nguồn khác nhau. 2.2.1.2 Nút nhấn và biến trở. Mạch điều khiển được thiết kế với 4 nút nhấn và 4 biến trở. Nút nhấn dùng để chọn chế độ điều khiển, chọn chiều quay động cơ được dùng chủ yếu trong mode dùng PID trên PIC. Tất cả các nút nhấn đều được thiết kế tích cực mức thấp. Biến trở dùng để cài đặt tốc độ cũng như cài đặt các giá trị của các thông số PID. 2.2.1.3 Encoder. Sử dụng Encoder quang có độ phân giải 100 xung/vòng, dùng để đo và hồi tiếp tốc độ quay của động cơ. Các xung được vi xử lý đếm vào khi có tác động cạnh xuống trên chân vi điều khiển. 2.2.1.4 Temp sensor. Cảm biến dùng để đo nhiệt độ, giúp lấy mẫu nhiệt độ của các khóa công suất. Cảm biến nhiệt có rất nhiều loại, ở đây sử dụng IC cảm biến nhiệt LM335 với tầm đo trong khoảng . 2.2.1.5 LCD hiển thị. Sử dụng màn hình tinh thể lỏng LCD 20x4, gồm có 4 hàng và mỗi hàng đều hiển thị được 20 kí tự. LCD được giao tiếp với vi xử lý ở chế độ 4 bit giúp tiết kiệm chân port cho vi xử lý. Việc dùng LCD để hiển thị có nhiều ưu điểm là: Dễ lập trình . Giao diện bắt mắt, trực quan, thông tin hiển thị rõ ràng. LCD 20x4 có số lượng kí tự đủ lớn để hiển thị các thông tin cần thiết. 2.2.1.6 Khối Max232. Khi ghép nối cổng Com của máy tính với vi điều khiển hay mạch TTL cần phải có mạch chuyển mức và ngược lại.Quy định về mức tín hiệu của hai chuẩn này không giống nhau do đó cần có mạch chuyển đổi để hai thiết bị làm việc theo hai chuẩn trên có thể giao tiếp với nhau. Vi mạch chuyển đổi thường được sử dụng là MAX232(maxim) hoặc DS275(dallas). MAX232 thông dụng hơn cả vì chỉ cần nguồn 5V, mạch 10V do mạch dao động 16KHz bên trong cung cấp. 2.2.1.7 Vi điều khiển. Chúng ta đã quá quen thuộc với các vi điều khiển của hãng Atmel ( AT89C51, AT89C2051, AT89C1051, AT89C52 ) hay Philip( P89V51RB2, P89V51RD2). Đặc biệt với vi điều khiển của Atmel, đây là loại vi điều khiển được dùng khá phổ biến trong chương trình giảng dạy ở các trường đại học và cao đẳng hiện nay, loại vi điều khiển này chỉ là cơ sở, chưa tích hợp được nhiều tính năng chuyên dụng khác. Nhằm mục đích mở rộng kiến thức của mình, tôi đã tìm hiểu về vi điều khiển PIC và sử dụng nó ( PIC18F4520 ) làm IC điều khiển chính trong đề tài này. Họ vi điều khiển PIC và dsPIC do hãng Microchip chế tạo và sản xuất với công nghệ hiện đại, phù hợp với các ứng dụng từ đơn giản đến phức tạp. Ngoài việc tích hợp đến 13 ngõ vào chuyển đổi ADC độ phân giải lên đến 10 bit với tốc độ lấy mẫu nhanh, PIC18F4520 còn có đến 4 Timer dùng cho việc định thì hoặc dùng làm bộ đếm, thích hợp cho các ứng dụng cần nhiều ngắt timer. Đặc biệt ngoài ngôn ngữ lập trình Assembler như các vi điều khiển khác, người dùng có thể lập trình PIC bằng ngôn ngữ C thông qua các phần mềm hỗ trợ như: PIC18C, CCS C, MPLAP… 2.2.2 Khối công suất. Sơ đồ khối của khối công suất. Bộ nghịch lưu Bộ chỉnh lưu 3 Pha AC AC source Mạch lái Mạch cách li Tín hiệu xung kích Hình 2.3 - Sơ đồ khối của khối công suất. 2.2.2.1 Bộ chỉnh lưu. Điện áp AC 220V được đưa trực tiếp qua cầu chỉnh lưu không điều khiển dùng 4 Diode công suất. Điện áp DC sau khi chỉnh lưu được lọc phẳng bằng tụ có điện dung lớn, và được cấp cho bộ nghịch lưu hoạt động . Với điện áp cấp vào là AC220V, ta sẽ có điện áp DC ở ngõ ra sau khi qua tụ lọc là: . 2.2.2.2 Mạch cách li và mạch lái. 2.2.2.2.1 Mạch cách li. Vì có sự chênh lệch về áp nguồn cung cấp giữa khối điều khiển và khối công suất nên cần phải cách li 2 khối này với nhau để đảm bảo an toàn cho mạch và chống nhiễu. Có 2 phương pháp cách li: biến áp xung và opto. - Cách li bằng biến áp xung. Gồm một cuộn dây sơ cấp và có thể có nhiều cuộn thứ cấp. Với nhiều cuộn dây phía thứ cấp ta có thể đóng ngắt nhiều transistor nối tiếp hoặc song song. Biến áp xung có cảm kháng tản nhỏ và đáp ứng nhanh. Tuy nhiên trường hợp xung điều khiển có cạnh tác động kéo dài hoặc tần số thấp thì biến áp xung nhanh đạt đến trạng thái bão hòa và ngõ ra của nó không phù hợp với yêu cầu điều khiển. - Cách li bằng opto. Gồm nguồn phát tia hồng ngoại ( IR –led ) và nguồn thu là phototransistor. Để tạo cách li về điện giữa mạch điều khiển và mạch công suất, tôi dùng OPTO PC817, vì: - Đảm bảo cách li về điện. - Đáp ứng opto tốt hơn biến áp xung. - Dễ dàng mua được tại các cửa hàng linh kiện điện tử với giá tương đối rẻ. Hình 2.4 - Sơ đồ nguyên lí mạch cách li. Mạch cách li: Là 6 opto ( PC817 ) có tác dụng cách li vi điều khiển và mạch công suất để tránh nhiễu và bảo vệ mạch điều khiển. Đây là sự cách li bằng quang. Khi vi điều khiển phát xung qua điện trở 330 tác động vào opto ( anode của led ) tùy theo xung ở mức cao hay thấp mà transitor quang dẫn hay không dẫn. Khi transitor quang dẫn ( xung từ vi điều khiển mức cao ) thì đầu ra opto là mức cao và ngược lại. 2.2.2.2.2 Mạch lái. Cũng như thyristor và transistor, IGBT, MOSFET cần có mạch lái, là phần tử trung gian giữa mạch điều khiển và các khóa điện tử có nhiệm vụ: + Đảm bảo dạng và trị số dòng cực B cho BJT ( hay áp cổng đối với MOSFET hay IGBT ) để các linh kiện này dẫn bão hòa. + Cách li mạch điều khiển – công suất theo yêu cầu của sơ đồ động lực, tăng khả năng an toàn cho người vận hành và tránh nhiễu cho mạch điều khiển. Có 2 phương pháp chính để lái các khóa ( MOSFETs hay IGBTs ): - Biến áp xung . - IC điều khiển. Họ IC IR2136 ( IR21362 / IR21363 / IR21365 / IR21367 / IR21368) là những IC chuyên dụng để điều khiển MOSFETs và IGBTs có áp và công suất lớn dành cho các ứng dụng 3 pha với đầu ra 3 kênh độc lập mà được tham chiếu đến cạnh lên và xuống từ đầu vào. Nhưng ở đây lại phát sinh vấn đề đó là IR2136 rất khó mua được ngoài thị trường Việt Nam, vì đều là IC chuyên dụng cho các bộ biến tần. Ở đây tôi dùng biến áp xung, tạo ra các điện áp cách li dùng cho việc kích các khóa công suất. Biến áp xung được sử dụng gồm có 5 cuộn dây, một cuộn sơ cấp và 4 cuộn thứ cấp. Tỉ lệ số vòng dây thứ cấp so với số vòng dây của sơ cấp là 4/3. Dùng IC định thời LM555 tạo tín hiệu xung kích để cấp cho biến áp xung, tạo ra 4 điện áp độc lập và cách li, dùng tạo áp kích cực G của các MOSFET. Hình 2.5 - Sơ đồ nguyên lí mạch lái. Tần số xung của ngõ ra LM555 có thể điều chỉnh nhờ vào việc thay đổi giá trị của biến trở R35. Điện áp nhận được tại ngõ ra của biến áp xung là điện áp xoay chiều có giá trị khoảng 10V, sau đó được chuyển thành điện một chiều dùng phương pháp chỉnh lưu hình tia, rồi dùng tụ nguồn để lọc phẳng lại. Diode zenner được sử dụng để ổn định điện áp ra ở mức 12V, đủ áp để kích các khóa công suất. 2.2.2.3 Mạch nghịch lưu 3 pha . Phần chính của bộ nghịch lưu 3 pha là cầu 6 khóa . Khi cấp điện áp DC cho bộ nghịch lưu, bằng việc kích dẫn các khóa theo trình tự và chu kì nhất định, sẽ tạo ra được điện áp 3 pha ở ngõ ra cung cấp cho động cơ. Hình 2.6 - Cầu nghịch lưu 3 pha dùng 6 MOSFETs. Đối với yêu cầu công suất đầu ra, tôi xem xét 2 loại khóa điện tử: transistor lưỡng cực có cực cổng cách li (IGBTs) hoặc MOSFETs. Cả IGBTs và MOSFETs đều là linh kiện điều khiển bằng điện áp, nghĩa là việc dẫn hay ngưng dẫn của linh kiện được điều khiển bằng một nguồn điện áp nối với cực Gate của linh kiện này thay vì là dòng điện trong các trong các bộ nghịch lưu sử dụng transistor như trước đây. Vì vậy việc sử dụng linh kiện này làm cho việc điều khiển trở nên dễ dàng hơn. Hình 2.7 - Ký hiệu IGBT và MOSFET. - Các yêu cầu chính đặt ra cho linh kiện sử dụng làm bộ nghịch lưu: + Điện áp (MOSFET) hay (IGBT) >. + Chịu được tần số đóng ngắt cao. + Dòng điện qua linh kiện lớn hơn dòng định mức trên động cơ. + Công suất tiêu hao thấp. ….. Trong đề tài này tôi chọn MOSFET ( mà cụ thể là IRFP460P ) làm cầu 6 khóa cho nghịch lưu 3 pha với các lí do sau: + Điện áp ngược có khả năng chịu được lớn. + Đóng ngắt nhanh. + Yêu cầu điều khiển đơn giản. + Khả năng chịu dòng lớn ( dùng cho công suất trung bình và nhỏ). + Công suất tiêu hao thấp và nội trở lúc hoạt động bé. Hơn nữa công nghệ chế tạo ra MOSFET không cho phép tạo ra các linh kiện có định mức dòng lớn, IGBT có thể xem là sự kết hợp giữa MOSFET ở ngõ vào và BJT ở ngõ ra để có được linh kiện đóng ngắt dòng DC lên đến hàng nghìn Ampe điều khiển bằng áp cực G. Hình 2.8 - Ký hiệu, thông số và dạng đóng gói của IRFP460P. 2.3 Sơ đồ nguyên lý. 2.4 Giải thuật chương trình. Khái quát hoạt động của toàn bộ hệ thống: Điều khiển ổn định tốc độ động cơ không đồng bộ 3 pha với thuật toán PID. Hệ thống được thiết kế với hai chế độ hoạt động, PID_PC và PID_CHIP. Việc lựa chọn giữa hai chế độ được thực hiện bằng phím nhấn tích hợp sẵn trên board khi mới khởi động chương trình và động cơ đang ở trạng thái Stop. Ở chế độ hoạt động PID_PC, việc tính toán thuật toán PID được thực hiện bằng phần mềm chạy trên máy tính.Việc cài đặt tốc độ và chiều quay của động cơ cũng như việc cài đặt các thông số cho bộ hiệu chỉnh PID đều được thực hiện trên giao diện điều khiển. Trạng thái kết nối, trạng thái hoạt động của động cơ, tốc độ quay hiện tại của động cơ, tần số điện áp 3 pha ngõ ra đều được hiển thị trên giao diện này. Ngoài ra phần mềm điều khiển trên máy tính còn tiến hành vẽ đồ thị đáp ứng vận tốc của động cơ, giúp cho việc điều khiển và giám sát trở nên dễ dàng hơn. Khi hoạt động ở chế độ này phím nhấn và biến trở trên board đều bị khóa nếu động cơ đang chạy. Để hoạt động ở chế độ này, mạch điều khiển phải được kết nối với máy vi tính qua cổng giao tiếp nối tiếp RS232. Chế độ thứ 2, chế độ PID_CHIP mạch điều khiển không cần kết nối với máy vi tính nữa.Toàn bộ việc tính toán PID và đưa ra tín hiệu điều khiển đều được nhúng trên vi điều khiển trung tâm PIC18F4520. Các thông tin như vận tốc đặt, vận tốc đo, trạng thái hoạt động của động cơ, nhiệt độ khóa công suất, và các thông số cài đặt cho bộ hiệu chỉnh PID đều được đưa ra hiện thị trên LCD 20x4. Thông qua 4 biến trở được thiết kế sẵn, các thông số Kp, Ki, Kd và vận tốc mong muốn của động cơ được cài đặt nhanh chóng và dễ dàng. Nhiệt độ của các khóa công suất luôn được giám sát trong suốt quá trình hoạt động của hệ thống đưa tín hiệu thu được về vi xử lý để đưa ra các quyết định như tắt mở quạt giải nhiệt, tránh cho nhiệt độ khóa công suất lên quá cao. 2.4.1 Chương trình trên PIC18F4520. 2.4.1.1 Lưu đồ giải thuật chương trình chính. Thiết lập cấu hình Port, I/O. Đặt cấu hình truyền thông Khởi tạo timer,counter. Khởi động LCD,ADC. Xử lý phím nhấn:chọn chế độ hoạt động. Begin OPTION=0 PID_PC PID_CHIP S Đ Giải thích giải thuật: Khi mới khởi động, chương trình sẽ thiết lập các thông số như cấu hình Port, LCD, Timer, Counter, ADC, thiết lập cổng giao tiếp hoạt động ở tốc độ baud 9600b/s. Việc lựa chọn chế độ hoạt động được thực hiện thông qua nút nhấn UP và DOWN trên board để chọn qua lại giữa hai chế độ PID_PC và PID_CHIP. Chế độ đang chọn sẽ được chấp nhận khi phím START được nhấn và chương trình sẽ nhảy đến thực hiện chương trình con tương ứng. Giải thuật chương trình chế độ PID_CHIP: Đ S S Đ S Đ S Đ Đ Up =0 Down =0&on=0 Tần số <40Hz Mở Timer 3 Tắt Timer0,Timer1,Timer2,Timer3 Nhận các thôngsố:KP,KI,KD, vận tốc đặt ,thông tin nhiệt độ từ ADC . Đảo chiều động cơ Rev=1||on=1 Mở Timer0,Timer1,Timer2 Start =0 Từ tần số tính bởi hàm PID,tính toán giá tri nạp cho Timer1 tạo xung cơ bản. Hiện thị thông tin lên LCD Begin Tắt Timer 3 End S Chế độ PID_CHIP : Khi ở mode này chương trình sẽ đọc giá trị từ ADC0, ADC1, ADC2, ADC3 để xác định các thông số cài đặt Kp, Ki, Kd cho bộ hiệu chỉnh PID và tốc độ cần đặt của động cơ. Chiều quay của động cơ được chọn bằng phím nhấn REV trước khi động cơ hoạt động. Nhấn phím DOWN để dừng động cơ và phím UP để quay lại màn hình chọn chế độ. Các thông tin về thông số cài đặt, tốc độ động cơ, nhiệt độ khóa công suất, trạng thái hoạt động của động cơ đều được đưa ra LCD hiển thị. Khi phím START được nhấn, chương trình sẽ cho phép Timer1, Timer2 và Counter0 hoạt động, khi đó động cơ sẽ chạy và được điều khiển bởi chương trình PID trên PIC. Nhiệm vụ của Counter0 là liên tục đọc số xung phát ra từ Encoder. Timer2 dùng để tạo ngắt lấy mẫu vận tốc hiện tại của động cơ dùng cho việc tính toán PID với chu kì là 60ms. Timer1 dùng để tạo ngắt thay đổi chu kì đóng ngắt của các khóa công suất tạo ra điện áp 3 pha. Tần số của điện áp 3 pha ngõ ra được điều chỉnh phụ thuộc vào giá trị nạp cho Timer1. Timer3 dùng để tạo ra xung băm trên nền xung cơ bản khi tần số điện áp dưới 40Hz, nhằm tăng trở kháng cho động cơ để hạn dòng tránh làm hỏng động cơ. Đ Đ Đ Đ Đ Đ S S S S Cập nhật trạng thái kết nối ,tốc độ ,chiều quay của động cơ, tần số điện áp ,nhiệt độ khóa công suất lên LCD. BEGIN Tần số <40Hz Tắt Timer3 Mở Timer 3 Down =0&on=0 Nhận tín hiệu điều khiển từ thuật toán PID trên máy tính. Tính giá trị nạp cho Timer1 tạo tần số 3 pha cơ bản. On=1 Mở Timer0,Timer1,Timer2. command = 0XFF way=1 – chiều quay phải On=0 ,Reset counter Tắt: Timer0,Timer1, Timer2,Timet3. command = 0XFF. way=0 – chiều quay trái Gửi mã kiểm tra kết nối qua Port nối tiếp command = 0XFF. command = 0XFD command = 0XFC command = 0XFB command = 0XFA command = 0XFE END Đ S Giải thuật chương trình chế độ PID_PC: Chế độ PID_PC: Khi ở mode này chương trình sẽ cho phép Port nối tiếp hoạt động, các phím nhấn trên board đều bị cấm trừ phím DOWN dùng để trở về màn hình lựa chọn lại chế độ. Phím nhấn này chỉ có tác động khi động cơ đang ở trạng thái ngừng. Chương trình sẽ đáp ứng với các mã lệnh được phần mềm trên máy tính gửi xuống. Lúc này INVERTER sẽ hoạt động dưới sự điều khiển và giám sát của giao diện người dùng trên máy vi tính. Trạng thái kết nối, tốc độ động cơ, tần số hiện tại của điện áp, nhiệt độ khóa công suất đều được hiển thị trên cả LDC và giao diện điều khiển trên máy vi tính. Thuật toán PID được tính toán trên máy tính sẽ đưa tín hiệu điều khiển xuống vi điều khiển, từ đó đưa ra giá trị xung kích phù hợp. Ngoài ra ở mỗi chế độ, nhiệt độ khóa công suất luôn được giám sát, chương trình sẽ đưa ra các quyết định tắt mở quạt giải nhiệt . 2.4.1.2 Giải thuật chương trình PID. Ngõ vào của bộ điều khiển là sai số giữa vận tốc đặt và vận tốc đo được hiện tại của động cơ. Sau khi qua tính toán PID, tín hiệu ngõ ra của bộ điều khiển là tần số, dùng để Update tần số của điện áp 3 pha ngõ ra. Tần số ngõ ra được giới hạn trong khoảng 9 -70 Hz, tránh việc tần số quá thấp sẽ làm giảm trở kháng động cơ, dòng tăng cao và làm hỏng động cơ hay tần số lên quá cao sẽ làm suy giảm từ thông và làm giảm moment động cơ. Đ S PID RET e0=vtdat-vtecd; tanso = tanso + kp *( e0 –e1) + ki * (e0 + e1 ) / 2 + kd * (e0 - (2 * e1) + e2); Tần số>70 Tần số =70 Tần số =0 Tần số<0 0<Tần số<9 Tần số =9 Đ Đ S S 2.4.1.3 Lưu đồ giải thuật chương trình ngắt. Khi có sự kiện ngắt xảy ra, chương trình chính sẽ bị tạm ngưng và chương trình ngắt được thực thi tùy theo loại ngắt nào được phát hiện. Chương trình sử dụng 3 ngắt Timer dùng cho việc lấy mẫu tốc độ động cơ, tạo tần số cơ bản và xung băm cho điện áp 3 pha ngõ ra, một ngắt do port nối tiếp phục vụ cho việc truyền thông giữa hệ thống và máy vi tính. 2.4.1.3.1 Ngắt port nối tiếp. Thực hiện việc nhận các mã lệnh cũng như các tín hiệu điều khiển từ máy vi tính gửi xuống. Đọc bộ đệm thu. command=RCREG RETI Ngắt nối tiếp Cờ thu RCIF=1 Đ S 2.4.1.3.2 Ngắt Timer 2. Lấy mẫu Counter 0 với chu kì 60 ms, và tùy thuộc vào chế độ hoạt động mà gọi Ngắt Timer2 RETI -Xóa cờ ngắt ,tắt Timer 2 -Tắt counter0,đọc kết quả counter 0 OPTION=1 -Gửi kết quả đọc từ counter0 lên máy tính -Tính vận tốc hiện tại của động cơ. -Gọi chương trình PID Reset bộ đếm Cho bộ đếm và Timer2 chạy lại. Đ S chương trình PID trên PIC hay không. 2.4.1.3.3 Ngắt Timer1 và Timer 3 . Dùng để định thời xuất tín hiệu ngõ ra điều khiển phần công suất. - Ngắt Timer1: Chương trình sẽ cài đặt giá trị thích hợp cho Timer1 khi nhận được tần số, để định thời cho từng chu kì thay đổi trạng thái theo sơ đồ kích của các khóa công suất. Ngắt Timer1 RETI -Xóa cờ ngắt ,tắt Timer 1 -Nạp lại Timer1 Thay đổi ngõ ra theo chu kì đóng ngắt,tạo tần số 3 pha cơ bản. Cho Timer1 chạy lại Ngắt Timer3 RETI -Xóa cờ ngắt ,tắt Timer 3 -Nạp lại Timer3 Đảo trạng thái ngõ ra tạo xung băm. Cho Timer3 chạy lại - Ngắt Timer3: Khi tần số nhận được nhỏ hơn 40Hz, Timer3 được phép hoạt động và được cài giá trị cố định để băm điện áp ngõ ra. 2.4.2 Chương trình và giải thuật trên máy tính. Giao diện điều khiển trên máy tính. Nhập các thông số PID Lựa chọn thông số cổng Com Chọn chiều quay động cơ Trạng thái kết nối Đồ thị đáp ứng vận tốc động cơ. Tốc độ đặt,tần số và tốc độ hiện tại Các Button điều khiển Hình 2.9 - Giao diện điều khiển trên máy tính. Form hiển thị thông tin: 2.4.2.1 Sự kiện nút nhấn CONNECT. END CONNECT -Kết nối thành công Cổng chưa mở Mở cổng com. Gửi mã kiểm tra kết nối (0xFA) Thông báo lỗi Kết nối =0 Đ Đ S S Khi nút CONNECT được nhấn, chương trình kiểm tra nếu cổng Com chưa được mở thì sẽ mở cổng Com.Trường hợp cổng đã mở hoặc đang được sử dụng bởi một chương trình ứng dụng khác, chương trình sẽ ra thông báo lỗi. Khi cổng đã được mở, chương trình sẽ gửi mã FAH xuống vi xử lý để kiểm tra tình trạng kết nối. Nếu lúc này chương trình cũng nhận lại được mã FA từ vi xử lý gửi lên thì kết nối coi như thành công. 2.4.2.2 Sự kiện Form_Load(). Là sự kiện xảy ra đầu tiên khi giao diện điều khiển được mở lên. Khi đó chương trình sẽ tiến hành đặt cấu hình cổng, tốc độ baub, khung truyền, kiểm tra chẵn, lẽ … Form_Load RETI -Đặt cấu hình cổng com -Đặt số byte nhận tối thiểu để báo sự kiện là 1 -ketnoi=0 2.4.2.3 Sự kiện nút nhấn START. END START -Xóa bộ đệm truyền -Gửi mã Start(0xFE) -Timer=0,dùng cho vẽ đồ thị Gửi mã quay phải (0xFC) Option1.value=1 Gửi mã quay trái (0xFB) Cho phép Timer1 chạy Tích cực nút nhấn STOP S Đ Khi nút START được nhấn, chương trình sẽ gửi mã Start FEH qua cổng Com, và tùy thuộc vào chiều quay động cơ được chọn mà tương ứng sẽ gửi mã quay trái hay quay phải xuống cho vi xử lý. Lúc này Timer1 được cho phép hoạt động để tính thời gian vẽ đồ thị đáp ứng vận tốc động cơ. 2.4.2.4 Sự kiện nút nhấn STOP. END STOP -Xóa bộ đệm truyền -Gửi mã Stop(0xFD) -Xóa đồ thị -Xóa danh sách list -Reset các biến về giá tri ban đầu. -Tắt Timer1 Khi nhấn STOP mã Stop FDH sẽ được gửi xuống vi xử lý để dừng động cơ. Các biến và đồ thị đều được xóa về giá trị ban đầu và tắt Timer1. 2.4.2.4 Sự kiện nút nhấn EXIT. Kiểm tra nếu cổng đang mở thì đóng cổng và kết thúc chương trình ứng dụng. END EXIT - Đóng cổng com Cổng đang mở Tắt giao diện điều khiển S Đ 2.4.2.5 Sự kiện nút nhấn ABOUT. Hiện thị Form2, là form hiển thị thông tin về chương trình. END ABOUT Cho hiện thị Form Cấm tác động lên form1 2.4.2.6 Sự kiện OnComn(). Đây là sự kiện ngắt cổng Com. Ta chỉ sử dụng điều kiện ngắt cổng Com khi trong bộ đệm nhận được 1 byte. Mỗi khi bộ đệm nhận được một byte thì chương trình OnComn () sẽ được thực hiện. S Đ END OnComn Command=bộ đệm thu Command=FAH Ketnoi=1 Hiện thông báo kết nối thành công -Tính vận tốc động cơ -Gọi chươ

Các file đính kèm theo tài liệu này:

  • docNOIDUNG.doc
  • docBIA.doc
  • rarCHUONG TRINH VB.rar
  • rarCODE.rar
  • rarFILE ORCAD.rar
Tài liệu liên quan