ĐỒ ÁN TỐT NGHIỆP PID ĐỘNG CƠ DC SỬ DỤNG VI ĐIỀU KHIỂN
Lời mở đầu:
Động cơ DC là loại thiết bị khá quen thuộc và phổ biến trong cuộc sống của chúng ta. Có thể nói DC là một loại hình thiết bị không thể thiếu trong công nghiệp nhờ những ưu điểm đặc trưng trong kết cấu cơ học. Nhưng vấn quan trọng đưa ra ở đây là làm sao con người ta có thể điều khiển được chúng để đáp phục vụ cho mục đích sử dụng. Chính vì điều này mà trong đợt tốt nghiệp lần này chúng em xin được phép tìm hiểu và nghiên cứu về việc đo lường và điều khiển tốc độ của động cơ DC.
Tuy điều khiển động cơ DC cũng không phải là một đề tài mới mẻ trong những đồ án tốt nghiệp suốt những năm qua. Nhưng đây cũng là một đề tài luôn có được những sự tò mò từ các sinh viên không phải bởi vì cái tên mà là vì thứ nhất nó là một đề tài khá thực tế, vì trong cuộc sống công nghiệp hiện tại tầm phổ biến của nó là khá lớn, thứ hai việc điều khiển ở đây có rất nhiều phương pháp nên nó luôn tạo ra một sự mới mẻ trong một đề tài cũ. Dựa vào kiến thức mà chúng em đã tiếp thu được trong những năm học tại trường thông qua những bài giảng của các thầy cô trong khoa điện – điện lạnh, nên trong lần thực hiện đồ án lần này chúng em sử dụng vi xử lí để điều khiển tốc độ động cơ DC.
Mục đích của bài báo cáo này của chúng em là để giới thiệu về những thiết bị và kinh kiện chính dùng trong bộ thực tập của chúng em.
Chương I: Giới thiệu chung về AVR :
1.Cấu trúc AVR Atmega32:
1.1 Đặc điểm tổng quan:
- Hiệu suất cao, nguồn vi điều khiển AVR Atmega32 thấp.
- Kiến trúc RISC tiên tiến:
- 131 kiến trúc mạnh, chu trình thực hiện xung clock đơn tốt nhất.
- 32 x 8 thanh ghi làm việc.
- Thao tác hoàn toàn tĩnh học.
- Lên tới 16 MIPS tại 16 MHz.
- Trong chíp có 2 bộ nhân chu trình.
- Bộ nhớ và chương trình không bị mất khi mất điện:
- 32Kb là chương trình Flash của hệ thồng
- Sự Chịu đựng: 10,000 Viết/ Xóa trong suốt chu trình
- Mã Boot độc lập với Lock Bit
- Chương trình hệ thống trên chương trình Boot trên chip, Đọc đúng trong khi viết thao tác.
- 1024 Bytes EEPROM
- 2Kb bên trong SRAM
- Có chương trình khóa (Lock) an toàn cho phần mềm.
- JTAG (IEEE std. 1149.1 Tương hợp) Giao diện
- Giới hạn tùy vào khả năng đến tiêu chuẩn JTAG
- Hỗ trợ gỡ lỗi trên chip
- Việc lập trình Flash, EEPROM, Fuse, và Lock Bit thông qua Giao diện JTAG
- Những đặc tính ngoại vi:
- 8bit Timer/Counter với bộ đếm và so sánh riêng biệt.
- 16bitTimer/Counter với bộ đếm riêng biệt, chế độ so sánh và chế độ giữ.
- Timer/counter với bộ giao động riêng biệt
- 4 kênh PWM
- 8 kênh, 10 bit ADC
- 8 kênh đơn kết thúc
- 7 kênh vi phân trong gói TQFP
- 2 kênh vi phân với lợi ích lập trình được tại 1 X, 10 X, hay 200 X
- Byte định hướng bộ giao điện nối tiếp
- USART tuần tự lập trình được
- Bộ giao điện nối tiếp SPI chủ/ phụ
- Bộ Timer Watchdog lập trình được với bộ dao động trong chíp riêng biệt.
- Thước so sánh tương tự trong chíp.
- Những đặc tính vi xử lý đặc biệt:
- Nguồn reset và có thể lập trình sụt áp.
- Bộ giao động RC lấy được chuẩn bên trong
- Những nguồn ngắt bên trong và ngoài
Sáu chế độ ngủ: Không tải, giảm nhiễu ADC, giữ nguồn, nguồn xuống, dự phòng
và mở rộng dự phòng
- I/O và dữ liệu gói:
- 32 chương trình ngõ I/O
- 40 chân PDIP, 44 sự hướng dẫn TQFP
- Những điện áp vận hành:
- 4.5- 5.5 V cho ATmega32
- Những thứ bậc Tốc độ:
- 0 -16 MHz cho ATmega32
- Tiêu thụ điện tại 1 MHz, 3 V, 25° C (cho) ATmega32
- Hoạt động: 1.1 mA
- Chế độ ngừng: 0.35mA
- Chế độ ngắt điện: <1µA
- Sơ đồ chân ATmega32-16PU:
Hình 1.1 Sơ đồ chân AVR Atmega32
Những giá trị tiêu biểu chứa đựng trong sơ đồ chân này được dựa vào những sự mô phỏng và tính đặc trưng của AVR. Những giá trị Min và Max sẵn có sau khi thiết bị được mô tả đặc điểm.
- Tổng quan:
ATmega32 là một nguồn thấp CMOS-8 bit được dựa vào sự tăng cường AVR trên kiến trúc RISC. Nhờ việc thực hiện những chỉ dẫn nguồn trong một chu kỳ đồng hồ đơn ATmega32 cho phép hệ thống người dùng có thể tối ưu hóa nguồn chống lại hạn chế trong tốc độ xử lý.
Lõi AVR kết hợp một tập lệnh giàu với 32 mục đích tổng thể đang làm việc là những sổ đăng ký. Tất cả những 32 sổ đăng ký đang trực tiếp được nối tới bộ số học logic (ALU), cho phép hai sổ đăng ký độc lập sẽ được truy nhập vào một chỉ dẫn đơn thực hiện trong một đồng hồ chu trình. Kiến trúc kết quả là nhiều mã hơn hiệu quả trong khi việc đạt được những lưu lượng lên trên tới mười lần nhanh chóng hơn hơn vi điều khiển CISC truyền thống.
ATmega32 cung cấp những đặc tính sau đây: ATmega32 cung cấp những đặc tính sau đây: 32 Kb hệ thống lập trình được. Bộ nhớ chương trình Flash với những khả năng Read trong khi Write,với 1024 byte EEPROM, 2 Kb SRAM, 32 hàng vào/ra mục đích chung, 32 sổ đăng ký chế độ làm việc mục đích chung một giao diện JTAG quét và lập trình ranh giới sự hỗ trợ chỉnh lý trong chíp những thiết bị Timer/Counters linh hoạt với những kiểu so sánh, những kiểu ngắt ngoài và trong. một số chương trình lập trình được USART, Một bộ giao điện nối tiếp hai dây hướng, 8- kênh, 10 bit .Timer Watchdog lập trình được với bộ dao động bên trong, một hệ thống chân SPI và sáu phần mềm chọn chế độ nguồn giữ. Ở chế độ nguồn xuống giữ cho các thanh ghi tiếp tục ghi nhưng đóng băng bộ giao động, vô hiệu hóa tất cả các chức năng ngoài của chip trước khi ngắt ngoài kế tiếp hay khởi động lại phần cứng .Trong chế độ giữ nguồn, timer không đồng bộ tiếp tục để chạy, cho phép người sử dụng bảo trì một cơ sở timer trong lúc mọi cái khác của thiết bị đang tạm nghỉ. Chế độ giảm nhiễu ADC dừng CPU và tất cả các mô đun I/O loại trừ timer và ADC, tối giản nhiễu trong thời gian chuyển đổi ADC. Trong chế độ dự phòng, Bộ dao động thạch anh cộng hưởng chạy trong khi phần còn lại của thiết bị đang nghỉ. Trong suốt chế độ dự phòng, cả hai bộ giao động chính và timer không đồng bộ tiếp tục chạy.
Thiết bị được sản xuất sử dụng công nghệ bộ nhớ cao không phai mờ của Atmel. ISP Flash trong chíp cho phép bộ nhớ chương trình lấy lại chương trình trong hệ thống giao điện nối tiếp một SPI, bởi chương trình nhớ truyền thống không bị mất, hay bởi một chương trình boot trong chíp đang chạy trong lõi AVR. Chương trình boot có thể sử dụng bất kỳ giao diện nào để tải xuống chương trình ứng dụng trong ứng dụng bộ nhớ Flash. Phần mềm vật lí chế tạo trong boot flash sẽ tiếp tục chạy trong khi ứng dụng flash cập nhật, cung cấp sự Đọc đúng- Trong khi- Viết thao tác. Bởi việc kết hợp 8bit –RISC- CPU trong bản thân hệ thống, sự lập trình Flash được dựa trên một chip đơn thể ATmega32 Atmel, một vi điều khiển mạnh điều đó cung cấp sự linh hoạt, giải pháp có hiệu quả tới nhiều ứng dụng điều khiển nhúng.
AVR ATmega32 được hỗ trợ với một bộ đầy đủ chương trình và sự phát triển hệ thống những công cụ bao gồm: những chương trình C, những chương trình hợp ngữ assemblers, những trình gỡ rối, mô phỏng, trên mạch những đối thủ kit thực tập và những kit đánh giá.
- Sơ đồ khối:
Hình 1.2 Sơ đồ khối Atmega32
- Bảng mô tả chân IC:
- VCC: chân cấp nguồn điện áp.
- GND: chân nối đất.
- Port A (PA7...PA0): Port A phục vụ đầu vào analog đến bộ chuyển A/D.
Port A có 8bit cho hướng port I/O. Nếu bộ chuyển đổi A/D không sử dụng, các cổng chân này có thể dùng cấp kéo lên điện trở ( lựa chọn từng bit). Cảng có một đầu ra những bộ đệm có những đặc trưng biến điệu đối xứng với cả sink cao và source. Khi những chân PA0 tới PA7 được sử dụng như những đầu vào được mức thấp, Họ sẽ source ngược dòng nếu bên trong những điện trở được kích hoạt. Chân port A tri-stated khi khởi động lại trạng thái trở lại hoạt động, dù xung không có xung clock.
- Port B (PB7...PB0): Port B phục vụ những chức năng đặc biệt của ATmega32.
Port B có 8bit I/O có hướng hai mẩu port với bên trong kéo trên những điện trở ( chọn từng chân). port B những bộ đệm ra có những đặc trưng biến điệu đối xứng với cả hai sink cao và source nguồn. Ở ngõ vào, chân port B nếu kéo xuống sẽ là dòng source, nếu kéo lên điện trở thì sẽ hoạt động. chân port B tri-stated khi khởi động lại trạng thái trở lại hoạt động, dù xung clock không có.
- Port C (PC7…PC0: Nếu Giao diện JTAG được cho phép, nối lên những điện trở trên những chân PC5(TDI), PC3(TMS) và PC2(TCK) sẽ được kích hoạt một sự khởi động lại xuất hiện.
Port C có 8bit I/O có hướng hai mẩu port với bên trong kéo trên những điện trở ( chọn từng chân). port C những bộ đệm ra có những đặc trưng biến điệu đối xứng với cả hai sink cao và source nguồn. Ở ngõ vào, chân port C nếu kéo xuống sẽ là dòng source, nếu kéo lên điện trở thì sẽ hoạt động. chân port C tri-stated khi khởi động lại trạng thái trở lại hoạt động, dù xung clock không có.
Chân TD0 thì ở trạng thái tri-state trừ phi trạng thái TAP thay đổi dữ liệu ngoài được chấp nhận.
Port C cũng phục vụ những chức năng của giao diện JTAG và những tính năng đặc biệt khác của ATmega32.
- Port D (PD7..PD0): Port D có 8bit I/O có hướng hai mẩu port với bên trong kéo trên những điện trở ( chọn từng chân). port D những bộ đệm ra có những đặc trưng biến điệu đối xứng với cả hai sink cao và source nguồn. Ở ngõ vào, chân port D nếu kéo xuống sẽ là dòng source, nếu kéo lên điện trở thì sẽ hoạt động. chân port D tri-stated khi khởi động lại trạng thái trở lại hoạt động, dù xung clock không có.
Port D cũng phục vụ những chức năng đặc biệt khác của ATmega32.
- RESET: Khởi động lại ngõ vào. Một mức thấp trên chân này dài hơn so độ dài xung nhỏ nhất thì một sự khởi dộng lại mới sinh ra, dù không có xung clock. san bằng phải chăng đồng hồ không đang chạy. độ dài xung nhỏ nhất được cho trong bảng. Những xung ngắn hơn không được bảo đảm phát sinh một sự khởi động lại.
- XTAL1: Ngõ vào tới bộ khuếch đại dao động (thạch anh) và ngõ vào phạm vi hoạt động bên trong của xung clock.
- XTAL2: Ngõ ra từ bộ khuếch đại dao động (thạch anh).
- AVCC: AVCC là chân điện áp nguồn cho Port A và bộ chuyển đổi A/D. Nó nên nối với VCC bên ngoài , nếu cho ADC không sử dụng. Nếu ADC được sử dụng, nó nên nối với VCC thông qua một bộ lọc thông cấp.
- AREF: AREF là chân tham khảo tương tự bộ chuyển đổi A/D.
1.2Cấu trúc bộ nhớ:
Cũng như mọi vi điều khiển khác AVR Atmega32 có cấu trúc Harvard tức là có bộ nhớ và đường bus riêng cho bộ nhớ chương trình và bộ nhớ dữ liệu.
Bộ nhớ chương trình gồm 4Kx8 và có địa chỉ từ 0000H tới FFFH.
Bộ nhớ dữ liệu gồm hai phần: bộ nhớ RAM và bộ nhớ EEPROM trong nó không gian bộ nhớ RAM được chia làm 3 phần: Các thanh ghi chức năng chung, các thanh ghi vào ra và cuối cùng là 512 byte bộ nhớ SRAM. EEPROM mặc dù cùng là một phần của bộ nhớ dữ liệu nhưng lại hoàn toàn đứng độc lập như một bộ nhớ độc lập và cũng như được đánh địa chỉ riêng.
1.2.1Bộ nhớ dữ liệu:
AVR có 32 thanh ghi chức năng chung và chúng được liên kết trực tiếp với ALU đây là điểm khác biệt của AVR và tạo cho nó một tốc độ xử lý cực cao. Các thanh ghi được đặt tên từ R0 tới R31. Và đặc biệt cặp 6 thanh ghi cuối (từ R6 tới R31) từng đôi một tạo thành các thanh ghi 16 bit sử dụng làm con trỏ trỏ tới bộ nhớ chương trình và dữ liệu. Chúng lần lượt có tên là X, Y, Z.
1.2.2Bộ nhớ chương trình:
Bộ nhớ chương trình từ 0000H tới 0010H dành cho vectơ ngắt.
2.AVR – Timer -Counter
2.1Đặc tính:
- Bao gồm các bộ timer 8bit 16 bit, thường có từ 3 – 4 bộ Timer
- Có các kênh PWM (từ 4 đến 8 kênh tuỳ loại )
- Bao gồm nhiều chế độ ngắt và PWM …
- Có thể là một kênh đếm riêng biệt
- Tự động xoá Timer trong chế độ so sánh(tự động nạp lại)
- Có chế độ PWM
- Tạo ra tần số
- Đếm các dự kiện ngắt ngoài
- Tạo ra các ngắt tràn và ngắt so sánh
-....
2.2Các chế độ hoạt động của timer:
2.2.1Chế Độ Thông Thường:
Đây là chế độ hoạt động đơn giản nhất của Timer .Bộ đếm sẽ liên tục đếm tăng lên cho đến khi vượt quá giá trị lớn nhất TOP và sau đó sẽ được khởi động lại tại giá trị Bottom.Trong các hoạt động thông thường thì cờ tràn sẽ được thiết lập khi giá trị trong Timer đạt giá trị không và không bị xoá đi.Tuy nhiên nếu mà ngắt tràn được chấp nhận thì cờ ngắt sẽ tự động bị xoá khi ngắt được thực hiện.Giá trị trong Timer có thể được viết vào bất cứ lúc nào
2.2.2Chế Độ So Sánh (CTC):
Đấy là chế độ mà giá trị trong Timer luôn được so sánh với giá trị trong thanh ghi ORC .Khi giá trị trong Timer bằng giá trị trong thanh ghi ORC thì giá trị trong Timer sẽ bị xoá đi.Giá trị trong ORC đóng vai trò là giá trị TOP cho bộ đếm.Chế độ này cũng cho phép tạo ra tần số so sánh ở đầu ra.Tuy nhiên trong chế độ này nếu giá trị mới ghi vào thanh ghi ORC mà nhỏ hơn giá trị tức thời của bộ đếm thì thì 1 so sánh sẽ bị lỡ, khi đó bộ đếm sẽ đếm đến giá trị lớn nhất sau đó rơi xuống giá trị 0 trước khi so sánh tiếp theo xuất hiện.
Hình 2.1 Sơ đồ thời gian của chế độ CTC
2.2.3Chế Độ Fast PWM:
Cho phép tạo ra sóng với tần số cao.Sự khác biệt cơ bản giữa Fast PWM với các loại PWM khác là nó chỉ sử dụng 1 sườn dốc.Bộ đếm sẽ đếm từ Bottom đến Max sau đó khởi động lại từ bottom. Trong chế độ không đảo đầu ra của chân so sánh OCx sẽ bi xoá khi có phép toán so sánh giữa TCNTx và thanh ghi ORC là bằng nhau. Và sẽ được sét lên 1 khi giá trị đạt Bottom. Trong chế độ đảo ,đầu ra đảo sẽ được set lên 1 khi sự so sánh giữa thanh ghi ORC và giá trị trong Timer bằng nhau và sẽ bị xoá khi giá trị đạt Bottom.Trong cả hai trường hơp này tần số của chế đô Fast PWM đều gấp đôi so với chế độ phase correct PWM sử dụng hai sườn dốc Với tần số cao này chế độ độ Fast PWM rất tốt cho các ứng dụng như ADC hay chỉnh lưu.Ngoài ra với tần số cao giúp làm giảm kích thước của thiết bị ngoài như cuộn dây tụ từ đó giúp làm giảm toàn bộ chi phí cho hệ thống.
Sơ đồ dưới đây mô tả chu kỳ thời gian của chế độ:
Hình 2.2 Sơ đồ thời gian của chế độ PWM
Từ biểu đồ thời gian ta nhận thấy việc thay đổi tần số trong hoạt động của phase correct PWM có thể thay thế bằng hai giá trị là MAX và BOTTOM. Nó linh hoạt hơn so với chế độ Fast PWM.
2.3 Các thanh ghi trong bộ Timer/ Counter:
Thanh ghi điều khiển - TCCRx:
Bít 3,6 –WG00-WG01: Đây là các bít chọn chế độ trong Timer
Bảng chọn chế độ Timer:
Bít 5-4 : COM00-COM01: Quy định giá trị đầu ra trong các phép so sánh
Bít 2: 0 – CS2:0 :Đây là các bít quy định xung cấp cho hoạt động của Timer.Bảng dưới đây mô tả toàn bộ các giá trị.
Chọn chế độ cho xung Clock:
Thanh ghi cờ ngắt-TIFR:
Bít 1-OCFx : Khi hai giá trị bằng nhau bít này được set lên bằng 1
Bít 1-TVOx : Khi bộ đếm vượt quá giá trị Top thì bít này được set bằng 1
Thanh ghi mặt nạ ngắt-TIMSK:
Bít 1 – OCIEx: khi bít này được set lên bằng 1 thì cho phép ngắt so sánh
Bít 0 –TOIEX : Khi bít này được set lên bằng 1 thì cho phép ngắt tràn.
3.Quản lí ngắt trong Atmega32:
Ngắt là một cơ chế cho phép thiết bị ngoại vi báo cho CPU biết về tình trạng sẵn sàng cho đổi dữ liệu của mình.Ví dụ:Khi bộ truyền nhận UART nhận được một byte nó sẽ báo cho CPU biết thông qua cờ RXC, hoặc khi nó truyền được một byte thì cờ TX được thiết lập…
Khi có tín hiệu báo ngắt CPU sẽ tạm dừng công việc đạng thực hiện lại và lưu vị trí đang thực hiên chương trình (con trỏ PC) vào ngăn xếp sau đó trỏ tới vector phuc vụ ngắt và thức hiện chương trình phục vụ ngắt đó chơ tới khi gặp lệnh RETI (return from interrup) thì CPU lại lấy PC từ ngăn xếp ra và tiếp tục thực hiện chương trình mà trước khi có ngăt nó đang thực hiện. Trong trường hợp mà có nhiều ngắt yêu cầu cùng một lúc thì CPU sẽ lưu các cờ báo ngắt đó lại và thực hiện lần lượt các ngắt theo mức ưu tiên .Trong khi đang thực hiện ngắt mà xuất hiện ngắt mới thì sẽ xảy ra hai trường hợp. Trường hớp ngắt này có mức ưu tiên cao hơn thì nó sẽ được phục vụ. Còn nó mà có mức ưu tiên thấp hơn thì nó sẽ bị bỏ qua.
Bộ nhớ ngăn xếp là vùng bất kì trong SRAM từ địa chỉ 0x60 trở lên. Để truy nhập vào SRAM thông thường thì ta dùng con trỏ X,Y,Z và để truy nhập vào SRAM theo kiểu ngăn xếp thì. ta dùng con trỏ SP. Con trỏ này là một thanh ghi 16 bit và được truy nhập như hai thanh ghi 8 bit chung có địa chỉ :SPL :0x3D/0x5D(IO/SRAM) và SPH:0x3E/0x5E.
Khi chương trình phục vu ngắt hoặc chương tr.nh con thì con trỏ PC được lưu vào ngăn xếp trong khi con trỏ ngăn xếp giảm hai vị trí.Và con trỏ ngăn xếp sẽ giảm 1 khi thực hiện lệnh push. Ngược lại khi thực hiện lệnh POP thì con trỏ ngăn xếp sẽ tăng 1 và khi thực hiện lệnh RET hoặc RETI th. con trỏ ngăn xếp sẽ tăng 2. Như vậy con trỏ ngăn xếp cần được chương trình đặt trước giá trị khởi tạo ngăn xếp trước khi một chương trình con được gọi hoặc các ngắt được cho phép phục vụ. Và giá trị ngăn xếp ít nhất cũng phải lớn hơn 60H (0x60) vì 5FH trỏ lại là vùng các thanh ghi.
Chương II: Bộ điều chỉnh PID:
1.Điều khiển PID và ảnh hưởng của các thông số:
1.1Bộ điều khiển 3 thành phần:
Hàm truyền của bộ điều khiển PID có dạng:
- Kp = hệ số tỉ lệ
- Ki = hệ số tích phân
- Kd = hệ số vi phân
Trước hết ta khảo sát bộ PID làm việc thế nào trong hệ kín có sơ đồ khối như trên. Biến e là thành phần sai lệch, là hiệu giữa giá trị tín hiệu vào mong muốn và tín hiệu ra thực tế. Tín hiệu sai lệch (e) sẽ đưa tới bộ PID, và bộ điều khiển tính toán cả thành phần tích phân lẫn vi phân của (e). Tín hiệu ra (u) của bộ điều khiển bằng:
Lúc này đối tượng điều khiển có tín hiệu vào là (u), và tín hiệu ra là (Y). (Y) được hồi tiếp về bằng các cảm biến để tiếp tục tính sai lệch (e). Và bộ điều khiển lại tiếp tục như trên.
1.2Đặc tính bộ điều khiển P,I,D:
- Thành phần tỉ lệ (Kp) có tác dụng làm tăng tốc độ đáp ứng của hệ và làm giảm, chứ không triệt tiêu sai số xác lập của hệ (steady-state error).
- Thành phần tích phân (Ki) có tác dụng triệt tiêu sai số xác lập nhưng có thể làm giảm tốc độ đáp ứng của hệ.
- Thành phần vi phân (Kd) làm tăng độ ổn định hệ thống, giảm độ vọt lố và cải thiện tốc độ đáp ứng của hệ.
Ảnh hưởng của các thành phần Kp, Ki, Kd đối với hệ kín được tóm tắt trong bảng sau:
Lưu ý rằng quan hệ này không phải chính xác tuyệt đối vì Kp, Ki và Kd còn phụ thuộc vào nhau. Trên thực tế, thay đổi một thành phần có thể ảnh hưởng đến hai thành phần còn lại. Vì vậy bảng trên chỉ có tác dụng tham khảo khi chọn Kp, Ki, Kd
-
Cách chỉnh thông số PID trong các thiết bị tự động:
-
Định nghĩa đơn giản về PID:
- Điều chỉnh tỷ lệ (P) là gì:
-
Định nghĩa đơn giản về PID:
Điều chỉnh tỷ lệ là phương pháp điều chỉnh tạo ra tín hiệu điều chỉnh tỷ lệ với sai lệch đầu vào.
- Điều chỉnh tích phân (I) là gì:
Phương pháp điều chỉnh tỷ lệ để lại một độ lệch (offset)sau điều chỉnh rất lớn. Để khắc phục ta sử dụng kết hợp điều chỉnh tỷ lệ với điều chỉnh tích phân. Điều chỉnh tích phân là phương pháp điều chỉnh tạo ra tín hiệu điều chỉnh sao cho độ lệch giảm tới O.
- Điều chỉnh vi phân( D):
Khi hằng số thời gian hoặc thời gian chết của hệ thống rất lớn điều chỉnh theo P hoặc PI có đáp ứng quá chậm thì ta sử dụng kết hợp với điều chỉnh vi phân. Điều chỉnh vi phân tạo ra tín hiệu điều chỉnh sao cho tỷ lệ với tốc độ thay đổi sai lệch đầu vào.
2.2 Thực tế về các bộ điều chỉnh PID:
Hiện nay hầu hết các bộ điều chỉnh mới sản xuất có chức năng tự động xác định tham số PID. Chức năng tự động này làm việc rất tốt với các hệ thống điều chỉnh nhiệt độ và tốc độ động cơ. Các hệ thống lớn không có chức năng tự đông xác định thông số nhưng được trang bị hệ thống vẽ đồ thị tín hiệu đo được của biến quá trình (proces value- PV) và biến đầu ra của bộ điều khiển (manipulated value-MV). Ta có thể dễ dàng nhìn được dạng PV và đo được chu kỳ dao động cũng như độ lệch. Mỗi mạch vòng thường có thể đặt thông số trực tiếp trên giao diện người và máy hoặc dùng máy tính lập trình can thiệp. Tuỳ theo nhà sản xuất mà số lượng, tên gọi các thông số có thể khác nhau. Có ba thông số cơ bản mà hầu hết các bộ điều chỉnh đều giống nhau là ba thông số PID.
2.3Hiệu chỉnh theo pp thử sai của Thomas Chen công ty FOXBORO:
Ba thông số quan trọng nhất là PID được thể hiện như sau:
- P: trong lý thuyết thường thể hiện bằng hệ số tỷ lệ nhưng ngày nay trong hầu hết các hệ thống người ta không sử dụng hệ số tỷ lệ K mà dùng một thông số khác gọi là dải tỷ lệ (proportional band – P band). ý nghĩa của dải tỷ lệ như sau: P band ="20%" thì với sự thay đổi 20 % giá trị đầu vào bộ điều khiển sẽ gây ra sự thay đổi 100% tin hiệu đầu ra, với P band ="500%" thì với sự thay đổi tín hiệu đo 100 % thì tín hiệu đầu ra chỉ thay đổi có 20%. Quan hệ giữa hệ số tỷ lệ và dải tỷ lệ:
K= 100/ % P band
- I: Được thể hiện theo đơn vị đo thời gian là giây. Thời gian càng nhỏ thể hiện tác động điều chỉnh tích phân càng mạnh, ứng với độ lệch càng bé.
- D: Cũng được thể hiện theo đơn vị đo thời gian là giây. Thời gian càng lớn thì điều chỉnh vi phân càng mạnh, ứng với bộ điều chỉnh đáp ứng với thay đổi đầu vào càng nhanh.
Rất ít các mạch điều chỉnh yêu cầu sử dụng điều chỉnh D. Hầu hết mạch điều chỉnh PI đủ đáp ứng yêu cầu điều chỉnh. Sau đây là phương pháp xác định thông số PI.
Bước 1:
......................................................
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
TCNT0=0xb2;
PID_control();
OCR1B=udk;
truyen();
}
/**************************** NGAT TIMER1**********************************************/
interrupt [TIM1_COMPB] void timer1_compb_isr(void)
{
}
//**************************HAM MAIN***************
void main(void)
{
PORTA=0xFF;
DDRA=0xFF;
PORTB=0xFF;
DDRB=0xFF;
PORTB=0x00;
PORTC=0x00;
DDRC=0x00;
PORTD=0xff;
DDRD=0xf3;
TCCR0=0x05;
TCNT0=0xb2; //************ TCNTC0=78 thoi gian cap nhat la 5ms*************
OCR0=0x00;
TCCR1A=0x22;
TCCR1B=0x19;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x03;
ICR1L=0x20;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
GICR|=0xC0;
MCUCR=0x0A;
MCUCSR=0x00;
GIFR=0xC0;
// USART Baud rate: 19200
UCSRA=0x00;
UCSRB=0xD8;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x33;
ACSR=0x80;
SFIOR=0x00;
#asm("sei")
//************************** NHAN DU LIEU TU MAY TINH ************************
temp_set=getchar();
temp_kp=getchar();
temp_ki=getchar();
temp_kd=getchar();
x=getchar();
if(x==0)
{ speed_set=(int)(-temp_set);}
if(x==1)
{ speed_set=(int )(temp_set); }
dir=x;
kp=temp_kp/10.0000;
ki=temp_kp/10.0000;
kd=temp_kd/30000.0000;
//******************* thong so co ban **************************************
err1=err2=0; uk0=0;Ts=0.005;
Init_PID();
thang=0;
//***************************************************************************
while (1){;}}
1.Kết quả thực hiện:
Hình 5.4 Chế độ chạy thuận
Hình 5.5 Chế độ chạy nghịch
KẾT LUẬN VÀ PHÁT TRIỂN:
Có thể nói điều khiển động cơ là một ngành kỹ thuật căn bản và đang rất phổ biến trong ngành công nghiệp ở nước ta. Thông qua đồ án lần này chúng em cũng đã học hỏi được nhiều hơn trong ngành kỹ thuật điều khiển tự động , đây cũng là cơ hội để chúng em có thể vững vàng hơn trước khi bước vào đời làm việc.
Do thời gian nghiên cứu và thực hiện đề tài chỉ giới hạn trong hơn một tháng nên chúng em vẫn chưa hoàn thành tốt 100% nhiệm vụ ban đầu mà đề tài đưa ra. Tuy nhiên chúng em đã cố gắng hết sức để có thể đo đạt và điều khiển động cơ mặc dù chưa thật sự chính xác.
Đây là một đề tài khá thực tế , tuy vậy vẫn chư được chú trọng lắm, hướng phát của chúng em là xây dựng những mô hình thực tập điều khiển động cơ bằng vi điều khiển AVR để sinh viên có thể dễ dàng tiếp cận và đi sâu hơn trong lĩnh vực này.
TÀI LIỆU THAM KHẢO:
- Kĩ thuật vi điều khiển với AVR – T/g: Ngô Diên Tập (Nhà xuất bản khoa học và kỹ thuật Hà Nội).
- Lí thuyết điều khiển tự động – T/g: Nguyễn Thị Phương Hà, Huỳnh Thái Hoàng (Nhà xuất bản đại học quốc gia TP.HCM).
MỤC LỤC
Trang
Chương I: Giới thiệu chung về AVR : 1
1. Cấu trúc AVR Atmega32: 1
1.1 Đặc điểm tổng quan: 1
1.2 Cấu trúc bộ nhớ: 11
1.2.1 Bộ nhớ dữ liệu: 11
1.2.2 Bộ nhớ chương trình: 11
2. AVR – Timer -Counter. 11
2.1 Đặc tính: 11
2.2 Các chế độ hoạt động của timer: 12
2.2.1 Chế Độ Thông Thường: 12
2.2.2 Chế Độ So Sánh (CTC): 12
2.2.3 Chế Độ Fast PWM: 12
2.3 Các thanh ghi trong bộ Timer/ Counter: 13
3. Quản lí ngắt trong Atmega32: 15
Chương II: Bộ điều chỉnh PID: 15
1. Điều khiển PID và ảnh hưởng của các thông số: 15
1.1 Bộ điều khiển 3 thành phần: 15
1.2 Đặc tính bộ điều khiển P,I,D: 16
2. Cách chỉnh thông số PID trong các thiết bị tự động: 17
2.1 Định nghĩa đơn giản về PID: 17
2.1.1 Điều chỉnh tỷ lệ (P) là gì: 17
2.1.2 Điều chỉnh tích phân (I) là gì: 17
2.1.3 Điều chỉnh vi phân( D): 17
2.2 Thực tế về các bộ điều chỉnh PID: 17
2.3 Hiệu chỉnh theo pp thử sai của Thomas Chen công ty FOXBORO: 17
Chương III: Giao tiếp máy tính: 19
1. Giao tiếp sử dụng max 232 và cổng Com: 19
1.1 Cấu trúc cổng giao tiếp: 19
1.2 Truyền thông giữa hai nút: 22
1.3 Truy xuất trực tiếp thông qua cổng: 24
2. Truyền thông nối tiếp dùng ActiveX: 28
2.1 Mô tả: 28
2.2 Các thuộc tính: 30
2.3 Sự kiện OnComm: 35
Chương IV: Cầu H “LMD18200T”: 35
1. Mô tả chung: 35
2. Cấu tạo và phương pháp sử dụng: 35
2.1 Tính năng: 35
2.2 Ứng dụng: 36
2.3 Sơ đồ chức năng: 36
2.4 Sơ đồ kết nối và thông tin điều chỉnh: 37
2.5 Đặc trưng sử dụng tiêu biểu: 39
Chương V: Quá trình thực hiện và kết quả: 47
1. Thiết kế mạch: 47
2. Sơ đồ giải thuật: 50
3. Chương trình: 51
4. Kết quả thực hiện: 61
KẾT LUẬN VÀ PHÁT TRIỂN: 63
TÀI LIỆU THAM KHẢO: 64