Đề tài Ứng dụng Pid trong điều khiển con lắc ngược

Bộ điều khiển PID hiện nay có hai loại: analog và digital.

Các bộ điều khiển PID có trên thị trường của các hãng lớn thường được đóng gói

thành sản phẩm hoàn chỉnh, khi lắp đặt vào hệ thống không cần phải làm gì thêm ngoài

việc thiết lập các thông số hoạt động.

Công trình nghiên cứu về thiết kế bộ điều chỉnh PID số trong các tài liệu nghiên cứu ở

nước ngoài chủ yếu là thiết kế hoàn chỉnh một module điều khiển duy nhất từ thành phần

xử lý tín hiệu, xử lý và tính toán trung tâm, công suất v.v. Bên cạnh đó, phần mềm

(chương trình điều khiển) trên máy tính chủ yếu vẫn là giao diện kiểu Terminal.

Trong nước cũng có nhiều đề tài nghiên cứu và ứng dụng bộ điều khiển PID,

nhưng phổ biến vẫn là dạng PID analog, bộ điều khiển PID số vẫn còn ít và chưa thật

hoàn chỉnh.

 

 

 

doc53 trang | Chia sẻ: lethao | Lượt xem: 3782 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đề tài Ứng dụng Pid trong điều khiển con lắc ngược, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ảm thời gian quá độ Khâu PD giảm độ vọt lố, không ảnh hưởng sai số và Khâu PID với thông số thích hợp có thể hiệu chỉnh để hệ thống ổn định với sai số xác lập bằng 0, độ vọt lố và thời gian quá độ đạt yêu cầu mong muốn. 10  • • •  ¨ Ưu điểm của bộ PID: lớn. hiệu điều khiển. càng nhanh.  e(t) lớn : thông qua up(t), tín hiệu diều khiển u(t) càng e(t) chưa bằng 0: thông qua uI(t), PID vẫn còn tạo tín e(t) thay đổi lớn : thông qua uD(t), phản ứng của u(t) 2.3. Bộ điều chỉnh PID số (rời rạc). a.Sơ đồ khối. r(t)  e(t)  T  e(k)  PID số  u(k)  ZOH  G(s)  y(t) Hình 2.11: sơ đồ khối bộ PID rời rạc b.Phương trình vi phân PID liên tục. Rời rạc hóa phương trình vi phân bộ điều chỉnh PID liên tục, thu được bộ điều chỉnh PID số như sau: 11  U(t) thay bằng UK=U(k). P  I  D UK= UK+ UK+ UK Khâu tỉ lệ: Up(t) = Kp.e(t) thay bởi UKP = Kp.eK Khâu vi phân: = U (t) K  de(t)  D U = K  e K −eK 1 D D dt  thay bởi K D T Khâu tích phân: I U = K e (t)dt  I  I  + K T  e K I K U = U K 1+eK thay bởi ¨ Phương trình PID số : K K 1 I 2 I  +  e  − UK=K e (UP K KT K 1+eK) K e eKK 1 K 1 I 12 2 D T 3.1.Động cơ DC 3.1.1.Định nghĩa:  CHƯƠNG 3 CÁC THIẾT BỊ Động cơ điện một chiều (DC) đã được sử dụng trong công nghiệp trong nhiều năm qua. Cùng với các bộ điều khiển DC, động cơ điện một chiều cung cấp sự điều khiển rất chính xác. Động cơ điện một chiều được sử đụng ở những nơi yêu cầu moment mở máy lớn hoặc yêu cầu điều chỉnh tốc độ bằng phẳng và phạm vi rộng như băng tải, thang máy, máy ép, những ứng dụng trong ngành hàng hải, cán vật liệu, giấy, cao su… Động cơ sevor DC là động cơ DC thông thường có hồi tiếp encorder hoặc tachometer. Hình 3.1: động cơ DC servo 13  Cấu tạo chung của động cơ DC gồm: vỏ, trục, ổ bi, phần cảm (stato), phần ứng (roto), cổ góp và chổi điện Hình 3.2: cấu tạo động cơ điện 1 chiều kích từ độc lập Nguồn điện một chiều DC tác động lên cuộn ứng qua cổ góp. Cường độ từ trường không thay đồi. Tốc độ động cơ chỉ có thể điều khiển thông qua dòng roto. Có thể đảo chiều chuyển động bằng cách đảo chiều dòng điện qua roto Hình 3.3: Động cơ DC từ tường vĩnh cửu 14  + I +  1  MG2 Ckt  Uu 2 Ukt  Rf  - Rkt - Hình 3.4: Sơ đồ nối dây của động cơ KTĐL 3.1.2. Phương trình đặc tính cơ: o Uư = Eư + (Rư + Rf)*Iư Trong đó: Uư :đệin áp phần ứng (V) Eư : sức điện động phần ứng (V) Rư :điện trở mạch phần ứng (Ó) Rf : điện trở phụ trong mạch phần ứng (Ó) Iư : dòng điện trong mạch phần ứng (A) o  Rư = rư + rcf + ri + rct Trong đó: rư : điện trở cuộn dây phần ứng rcf : điện trở cuộn dây cực từ phụ ri : điện trở cuộn bù rct : điện trở tiếp xúc của chổi điện Sức điện động Eư của phần ứng động cơ được xác định theo biểu thức : 15  A - + =  pN  ù  ù o Eu 2ða Ö = KÖ Trong đó: P : số đôi cực từ chính N : số thanh dẫn tác dụng của cuộn dây phần ứng a : số đôi mạch nhánh song song của cuộn dây phần ứng Ф : từ thông kích từ dưới một cực (Wb) Ô : tốc độ góc rad/s pN K =2ða : hệ số cấu tạo của động cơ U + RuRf o u − ù =KÖ Ö K I u Đây là phương trình đặc tính cơ điện của động cơ. Mặt khác moment điện từ của động cơ được xác định bởi: o MĐT =KÖIu Nếu bỏ qua tổn thất cơ tổn thất thép thì moment cơ trên trục động cơ bằng moment điện từ ký hiệu là M U + RuR o u − ù =KÖ ( )Ö2fM Đây là phương trình đặc tính cơ của động cơ điện DC kích từ độc lập Giả thiết phản ứng phần ứng được bù đủ từ thông thông Ф = const, thì các phương trình đặc tính cơ điện và phương trình đặc tính cơ là tuyến tính. Đồ thị của chúng được biểu diễn trên hình 5, 6 16  ù ùo ùdm  IDM  INM  I Hình 3.5: Đặc tính cơ điện của động cơ DC kích từ độc lập Hình 3.6: Đặc tính cơ của động cơ DC kích từ độc lập ¨ Ứng dụng. -Robot. -Điều khiển X,Y. -Dùng trong cơ khí chính xác. 17  3.2.Encoder: Thông thường encoder có: + 1 chân VCC + 1 chân GND + có có 3 lối ra: A, B ( căn cứ vào đây để biết hướng, vận tốc) và Z ( điểm 0 hay dây trung tính) Hình 3.7: động cơ DC có gắng encoder 1. 2. 3.  Cung cấp nguồn hệ thống Bộ điều khiển số Module điều khiển 3.2.1 Các loại encoder: a. Encoder số: Mỗi một Encoder số bao gồm một đĩa tròn với các vạch kẻ mẫu ở trên. Các vạch mẫu này được đọc bơpỉ các đầu cảm biến. Đĩa này thường đi kèm với trục quay của nó, trục này làm quay những mẫu phát tín hiệu cho mỗi vị trí nhận được. Cách ghi các mã trên đĩa phụ thuộc vào các mẫu trên nó Phâni theo cấu tạo vật lý thì hiện nay Encoder thường có ba loại: Encoder tiếp xúc, Encoder từ trường và Encoder quang 18  b.Encoder tiếp xúc: Điểm tiếp xúc thực tế của loại Encoder này là giữa đĩa và đọc thông qua chổi than. Loại này có nhược điểm là tạo ma sát, hao mòn, bụi bẩn do mụi than, xuất hiện điện trợ tiếp xúc, gây ra rung động … làm giảm độ chính xác và tuổi thọ Độ phân giãi của Encoder phụ thuộc vào đường rãnh và độ chính xác nhỏ nhất của một rãnh có thể có được trên đĩa, độ phân giải có thể đạt 10 rãnh trên đĩa. Độ phân giãi có thể tăng lên bằng cách ghép nhiều tầng đĩa hoặc dùng bộ dếm 9lên xuống cho trạng thái cao nhất của bit c.Encoder từ trường: Đối với Encoder từ trường thì đĩa quay của nó được tráng một lớp vật liệu từ, trong đó những vạch mẫu không được phủ.Các vạch này được đọc bằng một đầu đọc nam châm.Rõ ràng với ưu điểm này thì Encoder từ trường có tuổi thọ cao hơn Encoder tiếp xúc d.Encoder quang: Encoder quang là loại thông dụng nhất nhờ có độ chính xác cao và dùng ánh sáng của bán dẫn. Encoder có ba bộ phận: đĩa segment có những phần trong suốt cho ánh sáng đi qua và những phần không cho ánh sáng đi qua, một nguồn sáng cùng với một hệ thống hỗ trợ chiếu sáng,bộ phận cảm biến ánh sáng Hầu hết Encoder được sản xuát với độ chính xác cao, một Segment có bề dáy xấp xỉ 12 micros. Độ phân giải của Encoder quang thông thường có thể đạt đến 14 bits. Hình 3.8:Một số Encoder quang 19  e.Bộ giải mã tuyệt đối: Là loại thiết bị mã hóa mà các tín hiệu mã đầu ra song song để chỉ thị góc quay tuyệt đối của trục. Loại này không cần bộ đếm để đếm xung mà vẫn có thể biết góc quay của trục thiết bị mã hóa Hình 3.9: Đĩa Encoder quang Cũng giống như nhiều loại Encoder khác, bộ giải mã tuyệt đối gồm một đĩa tròn, trên đó có những khoảng trong suất và đục. Ánh sáng có thể xuyên qua những phần trong suất đến bộ cảm biến quang, khi đĩa quay thì bộ cảm biến bật lên 1 và phần ánh sáng bị chặn bởi phần đục làm cảm biến quang xưống 0. Như vậy cảm biến quang sẽ tạo thành những xung tuần tự thiKhi ị mã hóa này được sử dụng với cùng một thiết bị khác, thì vị trí 0 của trục xam như góc tọc độ. Khi trục của thiết bị mã hóa quay về tọa độ góc này thì góc quay có thể được hiển thị trên bộ chỉ thị của máy. Tín hiệu đầu ra của thiết bị mã hóa không bị ảnh hưởng bởi nhiễu của thiết bị đóng, ngắt và không yêu cầu điều chỉnh góc quay chính xác. Hơn nữa, thậm chí nếu tín hiệu mã hóa đầu ra khộng thể đọc vì trục quay quá nhanh, thì góc quay chính xác được ghi khi tốc độ quay giảm xuống, hoặc ngay khi nguồn cho thiết bị mả hóa bị ngắt. Thêm nữa, mã hóa sẽ không hoạt động do sự rung động của các thiết bị sử dụng nó Loại thiết bị mã hóa tuyệt đối, có độ phân giải cao hơn và cho ra các giá trị thay đổi trong phạm vi rộng hơn so với thiết bị mã hóa tăng dần. 20  f. Thiết bị mã hóa tăng dần: Hình 3.10: Thiết bị mã hóa tăng dần trong Encoder Là loại thiết bị mã hóa có dãy xung ra phù hợp với góc của trục quay. Thiết bị mã hóa này không có xung ra khi trục không làm việc. Do đó cần có một bộ đếm để đếm xung ra Thiết bị mã hóa ch biết vị trí của trục quay bằng số xung được đếm. Dạng thiết bị mã hóa này chỉ có 1 hay 2 kênh nhõ ra: Loại 1 chiều (chỉ có đầu kênh A) là loại chỉ sinh ra xung khi trục quay Loại 2 chiều (có đầu ra kênh A và B) cũng có thể cho biết chiều của trục quay, nghĩa là thuận chiều kim đồng hồ. Ngoài ra còn có đầu dây trung tính (xung Z) cho mỗi vòng quay, có nghĩa là nếu quay được 1 vòng thì xung Z lên 1 đĩKhia quay theo chiều kim đồng hồ thì xung track 1 (B) trễ pha hơn xung track 2 (A) 21  g. Quay thuận chiều kim đồng hồ: Hình 3.11: Các kênh tín hiệu ra của Encoder Hình 3.12: Các kênh tín hiệu ra của Encoder khi động cơ quay thuận Đầu A vượt quá B (độ lệch pha) = 90O + 45O (T/4 + T/8) h.Quay ngược chiều kim đồng hồ: Hình 3.13: Các kênh tín hiệu ra của Encoder khi động cơ quay nghịch 22  3.3.Mạch kích Atmega8 +5V  MOSI  1  J2  MOSI 1 MISO 2  J1  MOSI  J3 1 2 3 4  +5V +5V MISO 2 SCK 3 +5V SCK 3 RESET 5 6 R2 100 R1 47K  RESET 1 J4 DIPSOC-14x2 PC6(RESET)  28  PC5 RESET 4 5 6 MODULE ISP LED SEGMEN PB2 4 5 6  ISP INTERFACE SCK MISO 7 8 9 10 ICISP SW1 PC5 (ADC5/SCL) 27 PC4 (ADC4/SDA) 26 PC3 (ADC3) 25 PC4 ADC3 ADC2 +5V RESET C1 104 +5V  7 PC2 (ADC2) PC1 (ADC1) PC0 (ADC0) PB5 (SCK) PB4 (MISO) PB3 (MOSI/OC2) 24 23 19 18 17 16 ADC1 ADC0 SCK MISO MOSI PB2 R3 R4 4.7K 4.7K PC5 4  J7  +5V PB2  4  J6  PC5 PC4  1 3 J5  2 4 2 L1 VCC PB2 (SS/OC1B PB1 OC1A PB0 (ICP1) 15 14 OC1A PB0 PC4 3 2 1 OC1A 3 2 1 PWM INTERFACE ADC3 5 ADC2 7 ADC1 9 ADC0 11 6 8 10 12 C2 47uH 104 1 13 PD7 (AIN1) 12 PD6 (AIN0) 11 PD7 PD6 T1 I2C INTERFACE J9 +5V INT1 4 +5V PB7 PB6 4 3 2 J8 ADC INPUT 20 AVCC PD5 (T1) PD4 (XCK/T0) 6 5 T0 INT1 INT0 3 2 1 1 +5V +5V C3 104 8 GND PD3 (INT1) 4 PD2 (INT0) INT0 INTERRUPTS INTERFACE I/O INTERFACE J11  3 22 GND PD1 (TXD) PD0 (RXD) 3 2 10 TXD RXD JP1 2 1 PB7 +5V T1 T0 4 3 J10 LED1 LED2 2 1 EXT VREF  U1 C4 104 21 +5V AREF PB7 (XTAL2/TOSC2) PB6 (XTAL1/TOSC1) 9  C5 18p X1 7.372M JP2 2 1 PB6 C6 18p  +5V PD7 PD6 2 1 COUNTER INTERFACE J12 4 3 2 1 COMPARE INTERFACE  +5V  R8 22K  R11  +5V  R7 22K  R10 PB2 INT1 R5 390 OC1A R6 390  JP3  +5V  R9 C7 1 C1+ VCC 16 1K INT0 SW2 C9 1K ADC02 1 AIN_E 10K 0.1uF C8 SW3 3 4 C1- C2+ C13 0.1uF 2 V+ 6 V- 0.1uF C12 0.1uF C11 0.1uF 5 9 4 RS232 PB0 JP4 BUT1 C10 0.1u BUT2 0.1u 5 RXD_232 12 C2- GND 15 14 8 3 7 2RF_EN TXD_232 11 R1OUTT1OUT 13 9 T1IN R1IN 7 2 6 +5V 10 R2OUTT2OUT T2IN R2IN MAX232 8 1 COM1  SW5 +5V R13 22K R15 1K  T0  SW4 R12 22K R14 1K C14  T1 J15 R16 0 +5V_USB J14 RS232_RXD SEL RXD_232 6 5 BUT3 C15 BUT4 0.1u 6 RF_EN 6 RXD_USB 4 3 5 4 3 TXD_USB 2 RXD_USB 1 MODULE USB-RS232 +5V TXD_RF RXD_RF 5 4 3 2 1  MODULE RF RXD_RF 2 1 J13 RS232_TXD SEL TXD_232 6 5 TXD_USB4 3 TXD_RF 2 1 J16 RXD TXD  +5V_USB JP5 +5V  +5V 0.1u J17 1 2 3 BD104(SMD) D1 - + 2 4 U2 L78M05/TO220 1VINVOUT3 +5V_REG 2 +5V_REG PWR LED1 R17 +C16 47uF/6V3 C17 104 PWR_JACK  PD6 1 2 JP7 C18 470uF/25V R19 47K R21 15K C19 104 +5V  R18 47K 1 2 PD7 JP6 R20 38K 390  Title  MODULE ATMEGA8 Size Document Number C Le Tan Cuong Hình 3.14: Mạch nguyên lý ATMEGA8 Date: Thursday , October 08, 2009 Sheet 1 of 1 23  1 3 1 3 1 3 ATI SP 2 GN D 3.4.Mạch cầu H U1A 1 3 2 4001  1 2  U2A 3 4001 U5A  R1 4.7k  12V 5 1 2  U3 VCC IN  D1 DIODE  VB HO  8 7 6  C1+ 4.7u  5 1  D2 DIODE U4 VCC IN  VB HO  8 7  + C2 4.7u PWM DIR R2 4.7k 1 2  5V 3 4001 R3 4.7k + C3 4.7u 3 SD VS COM LO IR 2184 4 2 3 SD VS COM LO IR2184 6 4  24V J2  2 1  R8 220R  1  1 2 U7 PV900V  U6A 3 4001 5V  0.1uF C5  R9 3K3  J3  2 1 R4 4.7R R6 4.7R 24V  IRF540 24V Q1 IRF540 Q3  + C4 470u  12V R5 4.7R R7 4.7R U8 78L05  5V Q2 IRF3205 J1 1 2 MOTOR Q4 IRF540 MOTOR J4 1 CON1  2 4 PWM POWER  C6 104 R10 680 D3 12V Q5 BD139  C7 1INOUT3  R11 560  C8 10uF 16V R14 330 5V R12 1k  D5 DIR LED U9 PC817  R13 3k3  DIR 10uF 16V Title POWER LED D4 Size Document Number B Rev Hình 3.15: Mạch nguyên lý mạch cầu H Date: Monday , May 17, 2010 Sheet 1 of 1 24  1 2 4 3 14 7 3 6 5 2 GN D 3.5.Kết cấu cơ khí Hình 3.16: Phần cứng của cơ khí của con lắc ngược 3.6. Mạch Điều Khiến Hình 3.17: Mạch điều khiển 25  CHƯƠNG 4 VÀI NÉT VỀ AVR VÀ PHẦN MỀM CODEVISIONAVR 4.1. Tổng Quan AVR Vi điều khiển AVR do hãng Atmel ( Hoa Kì ) sản xuất được gới thiệu lần đầu năm1996. AVR có rất nhiều dòng khác nhau bao gồm dòng Tiny AVR ( như AT tiny 13, ATtiny 22…) có kích thước bộ nhớ nhỏ, ít bộ phận ngoại vi, rồi đến dòng AVR ( chẳn hạn AT90S8535, AT90S8515,…) có kích thước bộ nhớ vào loại trung bình và mạnh hơn là dòng Mega ( như ATmega32, ATmega128,…) với bộ nhớ có kích thước vài Kbyte đến vài trăm Kb cùng với các bộ ngoại vi đa dạng được tích hợp trên chip, cũng có dòng tích hợp cả bộ LCD trên chip ( dòng LCD AVR ). Tốc độ của dòng Mega cũng cao hơn so với các dòng khác. Sự khác nhau cơ bản giữa các dòng chình là cấu trúc ngoại vi, còn nhân thì vẫn như nhau, Hình 4.1. Đặt biệt, năm 2008, Atmel lại tiếp tục cho ra đời dòng AVR mới là XmegaAVR, với những tính năng mạnh mẽ chưa từng có ở các dòng AVR trước đó. Có thể nói XmegaAVR là dòng MCU 8 bit mạnh mẽ nhất hiện nay. Hình4.1 Các dòng AVR khác nhau: Tiny, AVR và Mega Cấu trúc cơ bản của vi điều khiển AVR được thể hiện ở hình 4.2. 26  Hình 4.2. Cấu trúc của Vi điều khiển AVR 27  4.2. Cấu trúc AVR 4.2.1.Các tính năng chính: Microcontroller sử dụng chíp ATMega32 của Atmel, tần số thạch anh 16MHz RJ45 socket sử dụng lọai tích hợp biến áp. Giao tiếp Ethernet sử dụng chip ENC28J60 MAC/PHY của Microchip, provides 10Base- T Ethernet AVR và Chip Ethernet giao tiếp qua giao thức SPI. Giao diện ethernet có thể gửi và nhận bất kỳ gói thông tin nào TCP/UDP/IP, Appletalk, NetBIOS, v.v Các thông tin và cấu hình có thể được thiết lập qua cổng COM, 115200 baud 8n1 như IP ADDRESS, NETMASK, GATEWAY... Nguồn cung cấp sử dụng DC Adaptor 7 đến 12V DC Các OI không sử dụng của ATMega32 được đưa ra ngoài, sẵn sàng kết nối với thiết bị ngoại vi khác. ngoài ra còn cung cấp sẵn ngõ ISP để nạp chương trình chip MCU Đa số linh kiện SMD được sử dụng cho kích thước nhỏ gọn Led báo nguồn và Led chỉ báo Ethernet tích hợp sẵn rất tiện lợi theo dõi 4.2.2. Các thanh ghi chính của VDK : Thanh ghi trạng thái - SREG (STATUS REGISTRY). Nằm trong vùng nhớ I/O, thanh ghi SREG có địa chỉ I/O là 0x003F và địa chỉ bộ nhớ là 0x005F (thường đây là vị trí cuối cùng của vùng nhớ I/O) là một trong số các thanh ghi quan trọng nhất của AVR, vì thế mà tôi dành phần này để giới thiệu về thanh ghi này. Thanh ghi SREG chứa 8 bit cờ (flag) chỉ trạng thái của bộ xử lí, tất cả các bit này đều bị xóa sau khi reset, các bit này cũng có thể được đọc và ghi bởi chương trình. Chức năng của từng bit được mô tả như sau: 28  Thanh ghi MCUCR chứa các bits cho phép chúng ta chọn 1 trong 4 MODE trên cho các ngắt ngoài. Dưới đây là cấu trúc thanh ghi MCUCR được trích ra từ datasheet của chip atmega8. MCUCR là một thanh ghi 8 bit nhưng đối với hoạt động ngắt ngoài, chúng ta chỉ quan tâm đến 4 bit thấp của thanh ghi này (4 bit cao dùng cho Power manager và Sleep Mode), 4 bit thấp là các bit Interrupt Sense Control (ISC), 2 bit ISC11, ISC10 dùng cho INT1 và ISC01, ISC00 dùng cho INT0. Hãy nhìn vào bảng tóm tắt bên dưới để biết chức năng của các bit trên, đây là bảng “chân trị” của 2 bit ISC11, ISC10. Bảng chân trị cho các bit ISC01, ISC00 hoàn toàn tương tự. Thanh ghi điều khiển ngắt chung – GICR (General Interrupt Control Register) (trên các chip AVR cũ, như các chip AT90Sxxxx, thanh ghi này có tên là thanh ghi mặt nạ ngắt thông thường GIMSK, bạn tham khảo thêm datasheet của các chip này nếu cần sử dụng đến). GICR cũng là 1 thanh ghi 8 bit nhưng chỉ có 2 bit cao (bit 6 và bit 7) là được sử dụng cho điều khiển ngắt, cấu trúc thanh ghi như bên dưới (trích datasheet). 29  Bit 7 – INT1 gọi là bit cho phép ngắt 1(Interrupt Enable), set bit này bằng 1 nghĩa bạn cho phép ngắt INT1 hoạt động, tương tự, bit INT0 điều khiển ngắt INT0. Thanh ghi cờ ngắt chung – GIFR (General Interrupt Flag Register) có 2 bit INTF1 và INTF0 là các bit trạng thái (hay bit cờ - Flag) của 2 ngắt INT1 và INT0, nếu có 1 sự kiện ngắt phù hợp xảy ra trên chân INT1, bit INTF1 được tự động set bằng 1 (tương tự cho trường hợp của INTF0), chúng ta có thể sử dụng các bit này để nhận ra các ngắt, tuy nhiên điều này là không cần thiết nếu chúng ta cho phép ngắt tự động, vì vậy thanh ghi này thường không được quan tâm khi lập trình ngắt ngoài. Cấu trúc thanh ghi GIFR được trình bày trong hình ngay bên dưới. Các thanh ghi khai báo I/O 30  -  4.3. CODEVISIONAVR 4.3.1. Giới thiệu phần mềm CodeVisionAVR: Trình biên dịch CodeVisionAVR là một trong rất nhiều trình biên dịch C hỗ trợ cho vi điều khiển AVR của Atmel. Không như các trình biên dịch khác được điều chỉnh cho phù hợp với tập lệnh AVR, CodeVisionAVR được viết chỉ dành riêng cho AVR. Do đó, chương trình tạo ra bởi CodeVisionAVR luôn có sự chính xác cao và không bỏ phí bất kỳ chức năng nào của AVR. So với các trình biên dịch khác, CodeVisionAVR tạo ra đoạn mã có dung lượng nhỏ hơn nhưng hiệu quả hơn. Hơn nữa, CodeVisionAVR có thành phần CodeWizard – một công cụ hỗ trợ tạo code vô cùng hiệu quả đổi với người lập trình. CodeVisionAVR bao gồm gần như toàn bộ các thành phần của ngôn ngữ ANSI C có thể dùng trong cấu trúc AVR. Chương trình còn tích hợp thêm vài chức năng khác để hỗ trợ cho cấu trúc đặc biệt của AVR và những yêu cầu của hệ thống nhúng. 31 - - - - - - - - - - - - - -  CodeVision hỗ trợ chương trình nạp trực tiếp cho vi điều khiển AVR theo tiêu chuẩn SPI, qua cổng COM, I2C, cổng máy in và cổng USB. Chức năng Terminal cho phép người lập trình có thể thực hiện việc giao tiếp giữa máy tính với vi điều khiển qua cổng COM. Trong các thư viện sẵn có của CodeVision, ngoài các thư viện chuẩn của ngôn ngữ C, còn có các thư viện hỗ trợ đặc biệt như sau: Module LCD kiểu kí tự. Giao tiếp I2C của Phillips. Cảm biến nhiệt LM75 của National Semiconductor. Các IC Phillips PCF8563, PCF8583, Dallas DS1302 và đồng hồ thời gian thực DS1307. Giao tiếp 1 dây của Dallas. Cảm biến nhiệt DS1802 / DS18S02. Thermometer / Thermostat DS1621. EEPROM DS2430 và DS2433. SPI. Quản lý nguồn năng lượng. Delay. Chuyển đổi mã Grey. CodeVision còn có chức năng tự động tạo mã chương trình (Code Wizard), cho phép tạo ra các chương trình con với các chức năng đặc biệt, giúp người lập trình tiết kiệm thời gian và có được những đoạn chương trình con có độ chính xác và chuẩn mực cao. Các chức năng được hỗ trợ gồm có: Thiết lập giao tiếp bộ nhớ ngoài. Phân biệt nguồn reset. 32 - - - - - - - - - - - -  Khởi tạo ngõ vào/ra. Khởi tạo ngắt ngoài. Khởi tạo Timer/Counter. Khởi tạo Watchdog Timer. Thiết lập truyền dữ liệu USART. So sánh analog. ADC. Giao tiếp SPI. I2C, cảm biến LM75,… Giao tiếp 1 dây (1 wire). LCD. 4.3.1. Lập trình với CodeVisionAVR: CodeVision là phần mềm có giao diện thân thiện với người dùng. Các phần của CodeVision đều dễ dàng sử dụng và người dùng có thể quen với các thao tác sau 1 vài lần thực hiện. Phần lớn các chức năng như tạo File, mở/đóng File, lưu File,… đều không có sự khác biệt với các phần mềm chạy trên nền Windows. Do đó, người dùng dễ dàng làm quen và sử dụng CodeVision một cách thành thạo. Các thao tác quan trọng trong khi sử dụng CodeVision: Tạo File mới: Thực hiện thao tác File/New, màn hình xuất hiện hộp thoại: 33 -  Hình 4.3 – Hộp thoại New File Nhấn chọn Source và chọn OK, màn hình soạn thảo sẽ hiện ra với tên file là untiltled.c. Người lập trình có thể lưu file với tên khác tùy chọn. Tạo một Project mới: Nhấn File/New, xuất hiện hộp thoại: Hình 4.4 – Hộp thoại New File Chọn Project và OK, xuất hiện hộp thoại tiếp theo: Hình 4.5 – Hộp thoại Confirm Để tạo một project mới hoàn toàn, bạn chọn No. Sau đó đặt tên cho project mới và chọn add để lấy file nguồn vào project. 34 Việc tạo project bằng CodeWizard: Chọn File/New, sau đó chọn Project. Khi xuất hiện hộp thoại Confirm như trên thì chọn Yes để vào CodeWizard. Xuất hiện khung lựa chọn như sau: Hình 4.6 – Cửa sổ CodeWizard Các Tab xuất hiện để người lập trình chọn lựa, từ loại chip, tần số xung clock đến việc thiết lập các ứng dụng của AVR như: LCD, ngõ vào / ra, ngắt, timer, counter, giao tiếp I2C, SPI, 1 wire, 2 wire, analog comparator, USART… Sau khi thiết lập các thông số theo ý muốn, nhấn File 35  Hình 4.7 – Lưu Project Chọn Generate, Save and Exit. Sau đó sẽ xuất hiện cửa sổ yêu cầu bạn lưu tên file. Khi đã thực hiện xong các bước trên, chương trình sẽ hiện ra cửa sổ soạn thảo với các đoạn mã C có sẵn phù hợp với những lựa chọn bạn đã thiết lập trong CodeWizard. Cửa sổ soạn thảo CodeVision: 36  Hình 4.8 – Cửa sổ soạn thảo CodeVision Cách viết chương trình trong CodeVision hoàn toàn giống với chương trình C bình thường, từ khai báo thư viện, hàm, biến, con trỏ,… Vì thế, người viết chương trình chỉ cần biết sử dụng ngôn ngữ C là có thể dễ dàng lập trình với CodeVision. Khi đã viết xong chương trình, bạn thực hiện soát lỗi bằng cách chọn trên thanh toolbar nút Project/Check Syntax. Nếu có lỗi phát sinh thì chương trình sẽ hiển thị các thông báo ở cửa sổ Message phía dưới. Khi đã kiểm soát và thấy không có lỗi, bạn Compile chương trình bằng cách nhấn Project/Compile hoặc nhấn F9. Chương trình tự động tạo ra file nạp cho vi điều khiển. 37  4.3.2. Cấu trúc một chương trình viết bằng CodeVisionAVR: // Khai báo các thư viện #include #include …………………………… //Thực hiện các chương trình ngắt //Bao gồm ngắt ngoài, ngắt truyền nhận, ngắt tràn Timer/Counter,… interrupt [EXT_INT0] void ext_int0_isr(void) { //Đoạn code trong chương trình ngắt …………………………… } //Khai báo biến toàn cục …………………………… //Khai báo hoặc viết các hàm, chương trình con …………………………… //Chương trình chính void main(void) 38  { }  //Khai báo biến cục bộ ………………………… //Khởi tạo trạng thái ban đầu của vi điều khiển ....................................... //Cho phép ngắt toàn cục #asm(“sei”) //Vòng ận while (1) { //Viết code cho chương trình chính }; Đặc biệt, khi cần chèn một đoạn code Assembly vào chương trình thì ta thao tác như sau: #asm  //Đoạn code asm #end asm  39  4.3.3 Các kiểu dữ liệu của CodeVision:  40  CHƯƠNG 5 THIẾT KẾ BỘ PID CHO CON LẮC NGƯỢC 5.1.Thiết kế bộ PID số: Thông số KP, KI ,KD của phương trình PID số thường đươc chọn trên cơ sở đã xác định được mô hình toán học của đối tượng và yêu cầu của bài toán thiết kế. Trong trường hợp mô hình toán học của đối tượng không xác định được. Các thông số của bộ điều khiển xác định theo phương pháp thực nghiệm. Các phương pháp điều khiển PID số: 5.1.1Phương pháp Ziegler-Nichols: Zieger – Nichols đưa ra phương pháp xác định thông số tối ưu của bộ PID hoặc từ đáp ứng quá độ của đối tượng (phương pháp Zieger-Nichols thứ nhất) hoặc từ đáp ứng quá độ của hệ thống kín (phương pháp Zieger-Nichols thứ hai). ¨ Phương pháp Zeigler – Nichols thứ nhất: Ziegler – Nichols đã đưa ra phương pháp xác định thông số tối ưu của bộ PID là dựa trên đồ thị hàm quá độ của đối tượng hoặc dựa trên các giá trị tới hạn thu được qua thực nghiệm Sử dụng hàm quá độ của đối tượng : Phương pháp này còn có tên là phương pháp thứ nhất của Ziegler – Nichols. Nó có nhiệm vụ xác định các thông số Kp, TN, TV cho các bộ điều khiển P, PI và PID trên cơ sở dối tượng có thể mô tả xấp xỉ bởi hàm truyền đạt dạng : K e -T st G (s) = T s + 1 Sao cho hệ thống nhanh chóng về trạng thái xác lập và độ vọt lố ämaxkhông vượt quá một giới hạn cho phép, khoảng 40% so với 41 h (∞ = ) lim h(t) t→∞ ä  = Äh  max  ≤ 40% max h ∞ ( ) Ba tham số Tt ( thời gian trễ ), K ( hệ số khuếch đại ) và T (hằng số thời gian quán tính) của mô hình xấp xỉ có thể xác định được gần đúng từ đồ thị hàm quá độ h(t) của đối tượng. Nếu đối tượng có dạng như (hình 14) mô tả thì từ đồ thị hàm h(t) đó ta đọc ra được. - Tt là khoảng thời gian tín hiệu ra h(t) chưa có hản ứng ngay với tín hiệu kích thích 1(t) tại đầu vào - K là giá trị giới hạn  h  (∞ = ) lim h(t) t→∞ - Gọi A là điểm kết thúc khoảng thời gian trễ, tức là điểm trên trục hoành có hoành độ bằng Tt. Khi đó T là khoảng cần thiết sau Ttđể tiếp tuyến của h(t) tại A đạt được giá trị K. a  b Hình 5.1: Xác định tham số cho mô hình xấp xỉ bậc nhất có trễ Trường hợp hàm quá độ h(t) không có dạng lý tưởng như ở hình 14a, nhưng co dạng gần giốn như hình c

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

  • docUng dung Pid trong dieu khien con lac nguoc.doc
  • pdfUng dung Pid trong dieu khien con lac nguoc.pdf