Điều khiển động cơ DC bằng kỹ thuật PID

Một phần của tài liệu nghiên cứu thiết kế điều khiển động cơ điện một chiều bằng bộ điều khiển pid (Trang 60 - 86)

Đối tượng điều khiển là vận tốc động cơ một chiều. Ta biết vận tốc động cơ 1 chiều phụ thuộc dòng điện hay điện áp mà ta cấp cho nó (nằm trong khoảng cho phép của động cơ).

Ví dụ ta sử dụng động cơ 24VDC, thì điện áp cấp không được quá 24V. Và việc cấp áp cho động cơ trong một khoảng rộng từ 0 - 24V là khó khăn. Do đó khi điều khiển vận tốc động cơ ta thường điều khiển bằng tín hiệu xung có độ rộng thay đổi, hay còn gọi là phương pháp điều chế độ rộng xung PWM (Pulse Width Modulation). Khi độ rộng xung thay đổi, năng lượng cấp cho động cơ thay đổi, từ đó vận tốc động cơ thay đổi.

Vậy các ngõ vào và ra của bộ điều khiển PID như sau: - Ngõ vào: e = vận tốc hiện tại (v_cur) - vận tốc đặt (v_set) - Ngõ ra: u = độ rộng của xung điều khiển.

Phụ thuộc giữa độ rộng xung và vận tốc động cơ thường là tuyến tính, nên ta có thể giả thiết nó là tuyến tính. Vậy ta có thể điều khiển vận tốc động cơ thông qua độ rộng xung.Ngõ ra được điều khiển thông qua sai số được đưa về từ đầu ra và bộ điều khiển PID.

Sơ đồ của bộ điều khiển PID cho động cơ thường có dạng như sau:

Đo vận tốc

Hình 3.6. Sơ đồ khối bộ điều khiển PID điều khiển vận tốc motor

Bộ điều khiển motor

GVHD: Ths. Nhữ Khải Hoàn SVTH: Trần Thanh Toàn

- Bộ điều khiển motor gồm có bộ điều chế độ rộng xung để điều khiển vận tốc động cơ và mạch cầu H để điều khiển chiều quay động cơ.

- Khối đo vận tốc thường là các bộ cảm biến lập mã quang đo vận tốc động cơ để so sánh với vận tốc đặt của bộ điều khiển.

GVHD: Ths. Nhữ Khải Hoàn SVTH: Trần Thanh Toàn

Chương 4: THIẾT KẾ PHẦN CỨNG MẠCH ĐIỀU KHIỂN PID 4.1.Sơ đồ khối phần cứng:

Gồm 5 khối được thể hiện như hình dưới đây:

GVHD: Ths. Nhữ Khải Hoàn SVTH: Trần Thanh Toàn

4.2.Sơ đồ nguyên lý mạch điều khiển:

Hình 4.2.Sơ đồ nguyên lý phần cứng

4.3.Chức năng từng khối:

4.3.1.Khối điều khiển:

Ngày nay công nghệ số đã và đang được ứng dụng rộng rãi trong mọi ngành của khoa học kỹ thuật. Ở các nước công nghiệp, truyền động điện đã ứng dụng rất thành công công nghệ này với những ưu việt hơn so với phương pháp điều khiển tương tự truyền thống như:

GVHD: Ths. Nhữ Khải Hoàn SVTH: Trần Thanh Toàn

- Độ chính xác cao.

- Có khả năng chống nhiễu tốt. - Dễ dàng tự động hóa.

Việc ứng dụng công nghệ số, sử dụng vi điều khiển trong việc thiết kế và chế tạo bộ khởi động mềm là hoàn toàn phù hợp với điều kiện thực tế và xu thế chung. Sử dụng công nghệ số trong thiết kế, chế tạo bộ khởi động mềm có thể giúp ta dễ dàng tạo dáng đường đặc tính khởi động theo ý muốn mà bằng mạch điều khiển tương tự để làm được việc này thì sẽ gặp nhiều khó khăn.

Vi điều khiển ATmega16 là vi điều khiển thuộc họ AVR của hãng Atmel, là một dòng vi điều khiển tích hợp cao với những chức năng cơ bản nhưng rất cần thiết trong những ứng dụng cụ thể.

Vi điều khiển ATmega16 cung cấp những tính năng sau:

- 16K bytes bộ nhớ chương trình dạng flash có thể Read-While-Write . - 512 bytes EEPROM.

- 1K byte RAM tĩnh (SRAM).

- 32 đường kết nối I/O mục đích chung.

- 32 thanh ghi làm việc mục đích chung được nối trực tiếp với đơn vị xử lý số học và logic (ALU).

- Một giao diện JATG cho quét ngoại vi. - Lập trình và hỗ trợ gỡ rối trên chip.

- 3 Timer/Counter linh hoạt với các chế độ so sánh. - Các ngắt ngoài và ngắt trong (21 nguyên nhân ngắt). - Chuẩn truyền dữ liệu nối tiếp USART có thể lập trình.

GVHD: Ths. Nhữ Khải Hoàn SVTH: Trần Thanh Toàn

- Một ADC 10 bit, 8 kênh với các kênh đầu vào ADC có thể lựa chọn bằng cách lập trình.

- Một Watchdog Timer có thể lập trình với bộ tạo dao động bên trong. - Một cổng nối tiếp SPI ( serial peripheral interface).

- 6 chế độ tiết kiệm năng lượng có thể lựa chọn bằng phần mềm. - Lựa chọn tần số hoạt động bằng phần mềm.

- Đóng gói 40 chân kiểu PDIP. - Tần số tối đa 16MHz.

- Điện thế 4,5 – 5,5V

Vi điều khiển ATmega16 được hỗ trợ lập trình với ngôn ngữ lập trình bậc cao như ngôn ngữ lập trình C. Điều này giúp cho người sử dụng rất tiện lợi trong việc lập trình cho vi điều khiển.

GVHD: Ths. Nhữ Khải Hoàn SVTH: Trần Thanh Toàn

VCC: chân cấp nguồn một chiều GND: chân nối đất

Port A (PA7..PA0): Cổng A được dùng làm lối vào analog của bộ chuyển đổi A/D. Cổng A cũng được dùng như một cổng I/O 8 bit hai chiều trực tiếp nếu bộ chuyển đổi A/D không được sử dụng. Các chân của port được cung cấp điện trở kéo lên bên trong (được chọn cho từng bit).

Port B(PB7..PB0): Cổng B là một cổng I/O 8 bit hai chiều trực tiếp có các điện trở kéo lên bên trong (được chọn cho từng bit). Ngoài ra Port B còn được sử dụng cho các chức năng đặc biệt khác:

Bảng 4.1.Chức năng các chân của port B

Port Pin Alternate Functions

PB7 SCK (SPI Bus serial Clock)

PB6 MISO (SPI Bus Master Input/Slave Output) PB5 MOSI (SPI Bus Master Output/Slave Input)

PB4 SS (SPI Slave Select Input) PB3

AIN1 (Analog Comparator Negative Input)

OC0 (Timer/Counter) Output Compare Match Output)

PB2

AIN0 (Analog Comparator Positive Input) INT2 (External Interrupt 2 Input)

PB1 T1 (Timer/Couter 1 External Counter Input)

PB0

T0 (Timer/Counter 0 External Counter Input) XCK (USART External Clock Input/Output)

GVHD: Ths. Nhữ Khải Hoàn SVTH: Trần Thanh Toàn

Port C(PC7..PC0): Port C cũng là một cổng I/O 8 bit hai chiều trực tiếp với các điện trở kéo lên bên trong (được chọn cho từng bit). Khi giao diện JTAG được phép hoạt động, các điện trở kéo lên của các chân PC5(TDI), PC3(TMS), và PC2(TCK) sẽ vẫn hoạt động cả khi xảy ra reset. Port C được sử dụng cho giao diện JTAG và các chức năng đặc biệt khác như trong bảng:

Bảng 4.2.Chức năng các chân của port C

Port Pin Alternate Function

PC7 TOSC2 ( Timer Oscillator Pin 2) PC6 TOSC1 ( Timer Oscillator Pin 1) PC5 TDI ( JTAG Test Data In)

PC4 TDO ( JTAG Test Data Out)

PC3 TDO ( JTAG Test Mode Select) PC2 TCK ( JTAG Test Clock )

PC1 SDA ( 2 wire Serial Bus Data Input/ Output Line )

PC0 SCL ( 2 wire Serial Bus Clock Line)

Port D(PD7..PD0): là một cổng I/O 8 bit hai chiều trực tiếp có các điện trở kéo lên bên trong (được chọn cho từng bit). Port D cũng được dùng cho các chức năng đặc biệt khác của ATmega16 như trong bảng:

GVHD: Ths. Nhữ Khải Hoàn SVTH: Trần Thanh Toàn Bảng 4.3.Chức năng các chân của port D

Port Pin Alternate Function

PD7 OC2 ( Timer/Couter2 Output Compare Match Output) PD6 ICP ( Timer/Couter1 Input Capture Pin)

PD5 OC1A ( Timer/Couter1 Output CompareA Match Output)

PD4 OC1B ( Timer/Couter1 Output CompareB Match Output) PD3 INT1 ( External Interrupt 1 Input)

PD2 INT2 ( External Interrupt 2 Input)

PD1 TXD ( USART Output Pin)

PD0 RXD ( USART Input Pin)

RESET : Là đầu vào reset. Một tín hiệu mực thấp đặt vào chân này trong khoảng thời gian dài hơn độ dài xung nhỏ nhất sẽ phát ra một reset, ngay cả khi xung nhịp không hoạt động. Xung ngắn hơn thì không đảm bảo để phát ra một reset.

XTAL1: đầu vào cho bộ khuếch đại đảo dao động và đầu vào đến mạch hoạt động đồng hồ xung nhịp bên trong.

XTAL2: đầu ra cho bộ khuếch đại đảo dao động

AVCC: là chân cấp nguồn áp cho Port A và bộ chuyển đổi A/D. Chân này nên được nối với VCC cả khi ADC không được sử dụng. nếu ADC được sử dụng, chân AVCC nên được nối với VCC qua bộ lọc thông thấp.

GVHD: Ths. Nhữ Khải Hoàn SVTH: Trần Thanh Toàn Hình 4.4.Sơ đồ cấu trúc vi điều khiển Atmega16

GVHD: Ths. Nhữ Khải Hoàn SVTH: Trần Thanh Toàn

Cấu trúc bộ nhớ: Để tăng tối đa hiệu suất và tính tương thích, vi điều khiển AVR sử dụng kiến trúc Havard tức là bộ nhớ dữ liệu và bộ nhớ chương trình tách biệt nhau cả về vùng nhớ và đường bus.

Bộ nhớ chương trình của AVR là bộ nhớ Flash có dung lượng 128 Kb. Bộ nhớ chương trình có độ rộng bus là 16 bit. Những địa chỉ đầu tiên của bộ nhớ chương trình được dùng cho bảng vecto ngắt. Bộ nhớ chương trình Flash được chia thành 2 phần, phần chương trình khởi động và phần chương trình ứng dụng. Cả hai phần đều dành những bit khóa cho việc bảo vệ ghi và đọc/ghi. Lệnh SPM dùng ghi vào phần bộ nhớ chương trình Flash ứng dụng phải ở một nơi nhất định trong phần bộ nhớ chương trình khởi động.

Bộ nhớ dữ liệu của AVR chia làm 2 phần chính là bộ nhớ SRAM và bộ nhớ EEPROM. Tuy cùng là bộ nhớ dữ liệu nhưng hai bộ nhớ này lại nằm tách biệt nhau và được đánh địa chỉ riêng.

Các câu lệnh trong bộ nhớ chương trình được thực hiện với một cấp ống dẫn riêng. Khi một lệnh được thực hiện thì lệnh tiếp theo được mang về sẵn từ bộ nhớ chương trình. Ý tưởng này cho phép mỗi lệnh được thực hiện trong chỉ một chu kỳ xung nhịp. Bộ nhớ chương trình trong hệ thống là bộ nhớ Flash có thể lập trình lại.

Truy cập nhanh tệp thanh ghi chứa 32 thanh ghi 8 bit làm việc mục đích chung với thời gian truy cập trong một chu kỳ xung nhịp. Điều này cho phép đơn vị xử lý số học và logic (ALU) hoạt động trong một chu kỳ đơn. Một hoạt động điển hình của ALU là hai toán hạng được lấy ra từ tệp thanh ghi, hoạt động thực hiện tính toán giữa các toán hạng, sau đó kết quả lại được lưu vào tệp thanh ghi, tất cả các công việc đó được thực hiện trong một chu kỳ xung nhịp.

Có 6 trong 32 thanh ghi có thể được sử dụng như 3 con trỏ thanh ghi địa chỉ gián tiếp 16 bit cho việc ghi địa chỉ vùng nhớ dữ liệu, cho phép có thể tính toán địa chỉ. Một trong số những con trỏ địa chỉ này có thể dược dùng như một con trỏ địa chỉ để tra bảng trong bộ nhớ chương trình Flash. Các thanh ghi này là các thanh ghi 16 bit X, Y và Z.

GVHD: Ths. Nhữ Khải Hoàn SVTH: Trần Thanh Toàn

ALU hỗ trợ các phép tính số học và logic giữa các thanh ghi hoặc giữa hằng số với một thanh ghi. Các phép tính với 1 thanh ghi riêng lẻ có thể cũng được thực hiện trong ALU. Sau mỗi phép tính số học thanh ghi trạng thái được cập nhật để phản ánh thông tin về kết quả của phép tính.

Dòng chương trình được qui định bởi các lênh nhảy có điều kiện và không điều kiện và các lệnh gọi, có thể trực tiếp địa chỉ trong toàn bộ không gian địa chỉ. Hầu hết các lệnh của AVR có dạng 1 từ 16 bit. Mỗi địa chỉ của bộ nhớ chương trình chứa một lệnh 16 hoặc 32 bit.

Trong suốt thời gian phục vụ ngắt hoặc gọi chương trình con, địa chỉ của bộ đếm chương trình được cất vào ngăn xếp (stack). Ngăn xếp thực tế được đặt trong vùng dữ liệu chung SRAM, do đó kích thước của ngăn xếp chỉ bị giới hạn bởi tất cả kích thước SRAM và cách sử dụng SRAM. Tất cả người sử dụng chương trình phải khai báo vị trí ban đầu của SP (stack pointer: con trỏ ngăn xếp) trong chương trình reset (trước khi thực hiện các chương trình con hay thực hiện ngắt). Con trỏ ngăn xếp SP được đọc/ghi có thể truy nhập vào vùng nhớ I/O. Bộ nhớ dữ liệu SRAM có thể truy nhập dễ dàng thông qua 5 chế độ địa chỉ khác nhau được hỗ trợ trong kiến trúc của AVR.

Đơn vị ngắt linh hoạt có các thanh ghi điều khiển riêng của nó trong vùng nhớ I/O với một bit cho phép ngắt toàn cục trong thanh ghi trạng thái. Tất cả các ngắt đều có các vector ngắt riêng biệt trong bảng vector ngắt. Các ngắt có quyền ưu tiên ngắt khác nhau tùy thuộc vào vị trí của vector ngắt. Vector ngắt có địa chỉ càng thấp có mức ưu tiên càng cao.

Vùng nhớ I/O chứa 64 địa chỉ cho các chức năng ngoại vi như các thanh ghi điều khiển, SPI, và các chức năng I/O khác. Vùng nhớ I/O có thể truy cập trực tiếp hoặc như các vị trí trong vùng nhớ dữ liệu theo địa chỉ trong tệp thanh ghi từ $20 đến $5F.

GVHD: Ths. Nhữ Khải Hoàn SVTH: Trần Thanh Toàn

4.3.2.Khối công suất:

4.3.2.1 Sơ đồ nguyên lý:

Hình 4.5.Sơ đồ nguyên lý khối công suất 4.3.2.2.Nguyên lý hoạt động:

Mạch gồm 3 chân vào có chức năng như sau:

+ Chân 1: nối với mass của mạch điều khiển để lấy tín hiệu điều khiển.

+ Chân 2: chân xung PWM. Chân này dùng để kích PET, đồng thời băm xung, mức 1 thì ngắt FET, mức 0 thì đóng FET. Dựa vào phần trăm xung, ta điều khiển được tốc độ của động cơ.

+ Chân vào 3: chân chọn chiều của động cơ, thực chất là để kích role. Mức 1 ngắt role, mức 0 đóng role. Role ở đây đóng vai trò đảo chiều động cơ. Khi role mở, động cơ quay thuận, ngược lại khi role đóng, động cơ quay nghịch.

GVHD: Ths. Nhữ Khải Hoàn SVTH: Trần Thanh Toàn 4.3.2.3.Một số linh kiện được sử dụng trong mạch trên:

- Opto quang PC817:

Chức năng: cách ly quang giữa mạch công suẩt với mạch điều khiển. Trong trường hợp motor chạy quá dòng thì dòng trả về lớn, dễ làm chết IC và trans ở mạch công suất, nếu ko có cách li thì dòng lớn sẽ theo đường mạch đến tiêu diệt vi điều khiển và toàn bộ những linh kiện khác.

- Rơ le:

Gồm 1 cuộn dây và một bộ tiếp điểm. Khi có điện vào cuộn dây thì tiếp điểm chuyển trạng thái ( từ on sang off và ngược lại), khi ngắt điện vào cuộn dây thì trở về trạng thái ban đầu.

GVHD: Ths. Nhữ Khải Hoàn SVTH: Trần Thanh Toàn

4.3.3.Khi truyn thông:

4.3.3.1 Vi mạch Max 232

a. Giới thiệu

Hoạt động ở nguồn dự trữ 5V với các tụ nạp 1mF Hỗ trợ tốc độ truyền lên đến 120kbit/s

Dòng chuẩn thấp 8mA

Chế độ điều khiển truyền nhận kép

Ứng dụng trong TIA/EIA-232-F, các hệ thống cấp nguồn, các thiết bị đầu cuối, các modem, và máy tính.

Vi mạch Max232 là một bộ điều khiển truyền nhận kép. Chức năng của Max232 là chuyển đổi tín hiệu từ chuẩn TTL sang chuẩn CMOS và ngược lại để phù hợp với giao tiếp cổng COM máy tính. Các thông số kỹ thuật của Max232 tra theo bảng DatasheetMax232 ở phần phụ lục tham khảo.

b. Sơ đồ mắc nối

GVHD: Ths. Nhữ Khải Hoàn SVTH: Trần Thanh Toàn

C1, C2, C3, C4, C5: Các tụ hoá cỡ 0.1mF dùng để tạo xung âm. COM: Cổng truyền nối tiếp trong máy tính (DB25 hoặc DB9).

4.3.3.2 Bộ giao tiếp máy tính theo chuẩn RS–232

Tín hiệu trong cổng nối tiếp được truyền theo chuẩn RS-232 của EIA (Electronics Industry Associations). Chuẩn RS-232 quy định mức logic 1 ứng với điện áp từ -3V đến - 25V (mark), mức logic 0 ứng với điện áp từ 3V đến 25V (space) và có khả năng cung cấp dòng từ 10mA đến 20mA. Ngoài ra, tất cả các ngõ ra đều có đặc tính chống chập mạch.

Chuẩn RS-232 cho phép truyền tín hiệu với tốc độ đến 20.000Baud nhưng nếu cáp truyền đủ ngắn có thể lên đến 115.200Baud.

Các phương thức nối giữa DTE và DCE:

Đơn công (simplex connection): dữ liệu chỉ được truyền theo một hướng.

Bán song công ( half-duplex): dữ liệu truyền theo hai hướng, nhưng mỗi thời điểm chỉ được truyền theo một hướng.

Song công (full-duplex): số liệu được truyền đồng thời theo hai hướng. Định dạng của khung truyền dữ liệu theo chuẩn RS-232 như sau:

Nối với các chân Rx, Tx của vi điều khiển +5VCC +5VCC 1 2 1 2 1 2 1 2 M A X 2 3 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 C O M 12 3 1 2 C1 C2 C3 C4 C5

GVHD: Ths. Nhữ Khải Hoàn SVTH: Trần Thanh Toàn

Khi không truyền dữ liệu, đường truyền sẽ ở trạng thái mark (điện áp -10V). Khi bắt đầu truyền, DTE sẽ đưa ra xung Start (space: 10V) và sau đó lần lượt truyền từ D0 đến D7 và Parity, cuối cùng là xung Stop (mark: -10V) để khôi phục trạng thái đường truyền. Dạng tín hiệu truyền mô tả như hình 3.10 sau (truyền ký tự A):

Các đặc tính kỹ thuật của chuẩn RS-232 như bảng 3.1 sau:

Một phần của tài liệu nghiên cứu thiết kế điều khiển động cơ điện một chiều bằng bộ điều khiển pid (Trang 60 - 86)