Đồ án Mô phỏng hệ thống điều khiển được thiết kế dựa trên mạng nơron, ứng dụng điều khiển đối tượng thực

LỜI NÓI ĐẦU 3

CHƯƠNG 1: LÝ THUYẾT MẠNG NƠRON 5

1.1 Nơron tự nhiên 5

1.2 Nơron nhân tạo 7

1.3 Mạng truyền thẳng và huấn luyện mạng theo thuật toán Brandt-Lin 9

1.3.1 Mạng truyền thẳng 9

1.3.2 Thuật toán Brandt-Lin 11

CHƯƠNG 2: GIỚI THIỆU ATMEGA 128 15

2.1 Đặc điểm của Atmega 128 15

2.2 Mô tả các chân 17

2.3 Kiến trúc tổng quan của Atmega128 20

2.3.1 Bộ nhớ của Atmega128 20

2.3.2 Tệp thanh ghi : 22

2.3.3 Port (cổng) vào ra 23

2.3.4 Giao tiếp với SRAM ngoài 27

2.3.5 Cấu trúc ngắt của Atmega 128 28

2.3.6 Bộ biến đổi A/D bên trong 31

2.3.7 Bộ truyền/nhận UART 32

2. 3.8 Bộ định thời 34

CHƯƠNG 3: MÔ PHỎNG HỆ THỐNG ĐIỀU KHIỂN ĐƯỢC THIẾT KẾ DỰA TRÊN MẠNG NƠRON 37

3.1 Thiết kế bộ điều khiển PID-Neural có chỉnh định thích nghi trọng số của mạng 37

3.1.1 Thuật toán chỉnh định trọng số 37

3.1.2 Kết quả mô phỏng 39

3.2 Thiết kế bộ điều khiển sử dụng sai lệch làm đầu vào 54

3.2.1 Thuật toán chỉnh định trọng số 54

3.2.2 Kết quả mô phỏng 59

CHƯƠNG 4 : ỨNG DỤNG ĐIỀU KHIỂN ĐỐI TƯỢNG THỰC 66

4.1 Động cơ điện một chiều 66

4.1.1. Cấu tạo của động cơ một chiều 66

4.1.2. Encoder gắn trên động cơ một chiều 68

4.1.3. Động cơ sử dụng để thử nghiệm 69

4.2. Thiết kế bộ điều khiển trên nền vi điều khiển Atmega 128 70

4.2.1. Khối điều khiển trung tâm 71

4.2.2. Giao tiếp với LCD 72

4.2.3. Phương thức truyền nhận dữ liệu qua RS232 trên PC 73

4.2.3.1 Cấu trúc vật lý của cổng RS232 73

4.2.3.2 Quá trình truyền và nhận dữ liệu của cổng COM của PC 75

4.2.3.3 Các loại truyền thông nối tiếp 79

4.2.4. Khối driver điều khiển động cơ 80

4.2.4.1. Giới thiệu về IC cầu H MC33886 80

4.2.4.2. Sơ đồ nguyên lý của driver điều khiển động cơ 83

4.2.5. Giao tiếp với bàn phím 84

4.3 Thiết kế giao diện bảng điều khiển 85

4.3 Thiết kế hệ thống điều khiển trên nền bộ điều khiển PID-Neural 88

4.3.1 Mô hình điều khiển 88

4.3.2 Chỉnh định các trọng số và tính toán đầu ra 91

4.5 Đánh giá kết quả thực nghiệm 92

Chương 5: KẾT LUẬN 93

Tài liệu tham khảo 94

 

 

doc93 trang | Chia sẻ: lethao | Lượt xem: 1811 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đồ án Mô phỏng hệ thống điều khiển được thiết kế dựa trên mạng nơron, ứng dụng điều khiển đối tượng thực, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ết kế trên hầu hết các bộ điều khiển. Trong quá trình giao tiếp của hệ thống bộ xử lý với thế giới bên ngoài, nhiều sự việc xảy ra theo cách không đồng bộ, chẳng hạn người dùng có thể đã nhấn một công tắc để thực hiện một công việc nào đó, trong khi một byte dữ liệu có thể đã đến cổng nối tiếp. Điều này gây khó khăn cho hoạt động của bộ xử lý khi mà nó phải kiểm tra tất cả các thiết bị để giám sát sự di chuyển của dữ liệu. Ngược lại mọi việc sẽ trở nên tốt hơn nếu các thiết bị này có thể loan báo sự đến nơi của dữ liệu. Đây là tất cả những gì mà cơ chế ngắt phải thực hiện. Thiết bị ngoại vi sẽ ngắt việc thực thi của chương trình chính, và bộ xử lý tạm ngừng việc thực thi chương trình chính, và bộ xử lý tạm ngừng việc thực thi chương trình bình thường để thẩm tra nguồn ngắt và để thực hiện các thao tác đáp ứng cần thiết, việc thực thi chương trình đã bị ngắt lại tiếp tục. Chương trình ngắt chỉ đơ giản giống hệt như một chương trình con (subrountine), ngoại trừ một đặc điểm là việc thực thi của đoạn chương trình ngắt này không bị bộ xử lý đoán trước là sẽ xuất hiện ở một thời điểm cụ thể nào. Bộ vi điều khiển AVR có rất nhiều cấu trúc ngắt sau đây em chỉ trình bày về các loại ngắt mà mình sẽ dùng. a )Ngắt (USART) Đối với một loại vi điều khiển sẽ có nhiều vectơ ngắt để phục vụ cho chương trình như vectơ ngắt ngoài, ngắt nối tiếp, ngắt định thời. Sau đây là các nguyên nhân gây ngắt của AVR Reset : Chân ngoài, Preset, Brown-out reset và Watchdog reset INT0 : Ngắt ngoài yêu cầu 0 INT1 : Ngắt ngoài yêu cầu 1 Timer1 CAPT : Ngắt do sự kiện Đếm/Định thời 1 Timer1 COMPA : Ngắt do đạt giá trị so sánh A Đếm/Định thời 1 Timer1 COMPB : Ngắt do đạt giá trị so sánh B Đếm/Định thời 1 Timer1 OVF: Ngắt do tràn bộĐếm/Định thời 1 Timer0 OVF: Ngắt do tràn bộĐếm/Định thời 0 SPI,STC : Giao tiếp nối tiếp xong USART, RXC : Nhận nối tiếp xong USART, UDRE : Thanh ghi dữ liệu nối tiếp rỗng USART, TXC : Truyền nối tiếp xong ANA_COMP : So sánh tương tự INT2 : Yêu cầu ngắt ngoài 2 TIMER0 COMP : Đạt giá trị đếm bộ Đếm/Định thời 0 EE_RDY : EEPROM sẵn sàng SPM_RDY : Bộ nhớ chương trình sẵn sàng Trong chương trình dành cho mạch giao tiếp có sử dụng đến hai loại vectơ ngắt là ngắt do định thời và ngắt do nối tiếp. Vì vậy, trong phần này chỉ giới thiệu hai loại vectơ ngắt này. b )Giao tiếp nối tiếp Bộ truyền nhận đồng bộ và không đồng bộ nối tiếp (USART) là một thiết bị giao tiếp nối tiếp có tính tương thích cao có các tính chất chính: Chức năng kép (Bộ truyền và nhận độc lập) Chức năng truyền đồng bộ hoặc không đồng bộ Chức năng xung đồng bộ chính và phụ Cung cấp định dạng nối tiếp với 4,5,6 hoặc 7 bits dữ liệu và 1 hoặc 2 bits stop Tạo ra và kiểm tra cờ chẵn lẽ bởi phần cứng Phát hiện lỗi tràn Phát hiện lỗi dạng dữ liệu Chống nhiễu bằng bit start và bộ lọc thông thấp 3 vectơ ngắt do truyền TX xong, thanh ghi truyền TX rỗng, nhận RX xong Chế độ truyền thông đa xử lý Chế độ xung đồng bộ gấp đôi Bộ tạo tốc độ Baud nhiều giải pháp Chế độ tăng gấp đôi tốc độ dao tiếp c )Bộ đếm/định thời TIMER/COUNTER0 là một module đếm/định thời 8-bits, đơn kênh, đa mục đích với các tính chất sau Bộ đếm đơn kênh Xoá timer khi đạt được giá trị so sánh (Tự động nạp lại) Xung tự do được tự động chữa bởi bộ điều chế độ rộng chuỗi xung (PWM) Tạo tần số Đếm sự kiện bên ngoài Bước đếm 10 bits Cung cấp ngắt khi đạt được giá trị so sánh (T0V0 và 0CF0) Cho phép tạo xung mở rộng từ bộ dao động thạch anh ngoài 32 kHz d ) Bộ đếm/định thời TIMER/COUNTER1 là bộ Đếm/định thời 16-bit thiết kế để cho phép chương trình định thời một cách chính xác (quản lý sự kiện), tạo sóng và đếm tín hiệu thời gian với các tính chất chính như sau: Thiết kế 16-bit thực ( ví dụ cho phép 16-bit PWM) Ba đơn vị so sánh ra độc lập Gấp đôi bộ đệm so sánh ra Xoá bỏ nhiễu đầu vào được phát hiện Xoá bộ đếm khi đạt giá trị so sánh (Tự động nạp lại) Xung tự do được tự động chữa bởi bộ điều chế độ rộng chuỗi xung (PWM) Khoảng PWM thay đổi Tạo tần số Đếm sự kiện bên ngoài nguồn ngắt độc lập (TOV1, OCF1A, OCF1B, v à ICF1) 2.3.6 Bộ biến đổi A/D bên trong Atmega 128 cung cấp bộ biến đổi tương tự số với độ phân giải 10 bit. Ngoài ra, bên cạnh bên cạnh bộ biến đổi ADC còn có một bộ dồn kênh 8 nối vào, mỗi lối có thể được dẫn riêng lẻ tới bộ hiển thị ADC. Bộ biến đổi ADC được sử dụng ở PORTF. Nó có khả năng kết hợp 16 đầu vào điện áp khác nhau. Hai đầu vào khác là ( ADC0 với ADC1 và ADC2 với ADC3) là có thể lập trình được hệ số khuếch đại, nó cung cấp các bước hệ số khuếch đại 0 dB(1x), 20 dB(10x) hoặc 46 dB(200x) điện áp đầu vào khác nhau trước khi biến đổi A/D. Nếu 1x hoặc 10x được chọn thì nên chọn độ phân giải là 8 bit còn nếu 200x được chọn thi độ phân giải nên là 7 bit. Hình 2.9 biểu diễn sơ đồ khối của bộ biến đổi A/D. Hình 2.9 : Sơ đồ khối của bộ biến đổi A/D 2.3.7 Bộ truyền/nhận UART Hình 2.10 minh họa sơ đồ khối của bộ truyền/nhận UART. Việc truyền dữ liệu được khởi tạo bằng cách ghi dữ liệu vào thanh ghi dữ liệu I/O USART, ký hiệu là UDR. Dữ liệu được truyền từ UDR đến thanh ghi dịch truyền khi : Hình 2.10 : Sơ đồ khối của bộ truyền/nhận UART Một ký tự mới đã được ghi vào UDR sau khi bit stop từ ký tự trước đó đã dịch chuyển ra. Thanh ghi dich chuyển ra được nạp ngay lập tức. Ở thời điểm này bit UDRE trong thanh ghi trạng thái USART, USR, được đặt khi bit này đặt thành “1”, bộ USART đã sẵn sàng nhận ký tự tiếp theo. Vào cùng thời điểm khi dữ liệu được truyền từ UDR đến thanh ghi dịch bộ truyền 10 (11) bit, bit 0 của thanh ghi dịch bị xóa (start bit) và bit 9 (10) được đặt (stop bit). Nếu như một dữ liệu 9 bit được lựa chọn (bit CHR9 trong thanh ghi điều khiển USART, UCR được đặt), bit TXB8 trong thanh ghi UCR được truyền vào bit 9 trong thanh ghi dịch bộ truyền. Theo nhịp của đồng hồ tốc độ baud sẽ diễn ra cuộc truyền đến thanh ghi dịch, bit start bị dịch chuyển ra chân TXD. Sau đó kế tiếp là dữ liệu, LSB trước tiên. Khi bit stop đã được dịch chuyển ra, thanh ghi dich được nạp nếu bất kỳ dữ liệu nào đã được ghi vào thanh ghi UDR trong khoảng thời gian truyền. Trong thời gian nạp, bit UDRE được đặt thanh “1”. Nếu như không có dữ liệu mới trong thanh ghi UDR để truyền di khi bit stop được dịch chuyển ra, cờ UDRE sẽ giữ nguyên trạng thái được đặt cho đến khi thanh ghi UDR được ghi một lần nữa. Khi không có dữ liệu mới cần được ghi, và bit stop đã có mặt trên TxD đối với một chiều dài bit, cờ TX complete, TXC, trong thanh ghi USR được đặt thành “1”. Khi bit này được xóa thành “0”, thì chân PDI có thể được sử dụng cho thao tác I/O chung. Khi đặt thành “1”, bộ truyền trong USART sẽ được nối với PDI, chân này bị bắt buộc trở thành một chân nối ra không đếm xỉa gì đến việc đặt của bit 1 trong DDRD. Một ký tự mới đã được ghi vào UDR trước khi bit stop từ ký tự trước đã được dịch đi. Thanh ghi dịch được nạp khi bit stop của ký tự đang được truyền đã được dich chuyển ra. Nếu bộ truyền 10 (11) bit đang trống thì thì dữ liệu được truyền UDR đến thanh ghi dịch. 2. 3.8 Bộ định thời Bộ định thời trong Atmega128 có chức năng giống như một bộ định thời hoặc một bộ đếm. Giống như một bộ định thời, tín hiệu giữ nhịp bên trong hoặc dẫn xuất của tín hiệu giữ nhịp đó được sử dụng để giữ nhịp bộ định thời, trong khi giống như một bộ đếm, một tín hiệu từ bên ngoài ở chân của một cổng được sử dụng để giữ nhịp bộ định thời/bộ đếm. hình 3.14 minh họa bộ dồn kênh (multiplexer), đóng vai trò lựa chọn một trong nhiều nguồn tín hiệu đồng hồ dùng cho bộ timer/counter. Bộ chia tần số dùng cho cả bộ timer/counter 0, timer/counter 1, và timer/counter 2 được minh họa trên hình 2.11. Hình 2.11 : Bộ dồn kênh Sơ đồ của bộ timer/counter 0 8 bit được minh họa trên hình 2.12 Hình 2.12 : Sơ đồ của bộ timer/counter0 8 bit Sơ đồ của bộ timer/counter 1 16 bit được biểu diễn trên hình 2.13 Hình 2.13 : Sơ đồ của bộ timer/counter1 16 bit Sơ đồ của bộ timer/counter 2 8 bit được biểu diễn trên hình 2.14 Hình 2.14 : Sơ đồ của bộ timer/counter2 8bit CHƯƠNG 3: MÔ PHỎNG HỆ THỐNG ĐIỀU KHIỂN ĐƯỢC THIẾT KẾ DỰA TRÊN MẠNG NƠRON 3.1 Thiết kế bộ điều khiển PID-Neural có chỉnh định thích nghi trọng số của mạng 3.1.1 Thuật toán chỉnh định trọng số Trong phần này sẽ trình bày việc vận dụng thuật toán tương tác thích nghi vào việc chỉnh định các trọng số của bộ điều khiển PID-Neural. Hình 2.1 là sơ đồ khối của hệ thống điều khiển với bộ điều khiển PID-Neural có chỉnh định thích nghi trọng số của mạng.. Hình 2.2 là sơ đồ bộ điều khiển PID-Neural có chỉnh định thích nghi trọng số của mạng. Hình 3.1: Hệ thống điều khiển PID-Neural Mạng nơron được dùng để thiết kế bộ điều khiển là mạng 1 lớp có 3 đầu vào. Mạng chỉ có 1 nơron và hàm truyền của nơron là hàm purelin. Hình 3.2: Neural network controller Theo thuật toán Brandt-Lin, hệ thống trên được chia thành 3 lớp, 5 nút. Nút 11 là khâu P có hệ số khuếch đại bằng 1, nút 12 là khâu I, nút 13 là khâu D, nút 21 gồm phần mạng nơron không chứa các trọng số đối tượng, nút 31 là đối tượng. Các trọng số là . Hình 2.3 mô tả sự phân tích hệ thống theo thuật toán Brandt-Lin. Trọng số liên kết giữa nút 21 và nút 31 là bằng hằng số nên . Do vậy công thức tính các trọng số sẽ còn là: Hình 3.3: Phân tích hệ thống theo thuật toán Brandt-Lin chính là đạo hàm đầu ra của đối tượng theo đầu vào. Chuyển sang miền Laplace: = hàm truyền đối tượng. Do vậy với một hệ động học ổn định, có thể xấp xỉ về 1 hằng số. Các kết quả mô phỏng bằng Matlab/Simulink và kết quả điều khiển thực tế cho thấy sự xấp xỉ này không ảnh hưởng xấu đến việc điều khiển. Hằng số này được đưa vào trong hệ số bước học nên sai lệch trọng số sẽ là: Tính toán tương tự thu được: 3.1.2 Kết quả mô phỏng Sau đây là các kết quả mô phỏng bộ điều khiển PID-Neural có chỉnh định thích nghi trọng số của mạng với các loại đối tượng và điều kiện mô phỏng khác nhau. Các kết quả này được so sánh với các kết quả điều khiển từ bộ PID truyền thống. Tín hiệu mẫu là tín hiệu mức 1.Các mô phỏng được thực hiện bằng Matlab/Simulink. a) Đối tượng ổn định Đối tượng điều khiển là đối tượng tuyến tính ổn định bậc 2 có hàm truyền G(s) là Bộ điều khiển PID-Neural: Bộ điều khiển có hệ số thích nghi và các trọng số có giá trị ban đầu là . Mô hình điều khiển: Hình 3.4: Mô hình điều khiển với đối tượng ổn định Bộ điều khiển PID truyền thống với các hệ số được tính theo phương pháp hằng số thời gian tổng của Kuhn: Hàm truyền của đối tượng được viết lại như sau: ;; Kết quả mô phỏng: Hình 3.5: (a) Tín hiệu đặt và các tín hiệu đầu ra; (b)Trọng số ; (c)Trọng số ; (d) Trọng số Nhận xét: So với bộ PID truyền thống, bộ điều khiển PID-Neural cho tín hiệu đầu ra tốt hơn nhiều, không có độ quá điều chỉnh, tốc độ xác lập nhanh. b) Đối tượng có nhiễu Nghiên cứu trường hợp có nhiễu, đưa vào hệ thống nhiễu ồn trắng có cường độ noise power =0.01 và nhiễu được cộng thêm vào đầu vào của đối tượng. Đối tượng nghiên cứu không đổi. Bộ điều khiển PID-Neural: Bộ điều khiển có hệ số thích nghi và các trọng số có giá trị ban đầu là . Mô hình điều khiển: Hình 3.6: Khi có nhiễu Bộ điều khiển PID truyền thống với các hệ số được tính theo phương pháp hằng số thời gian tổng của Kuhn: Hàm truyền của đối tượng được viết lại như sau: ;; Kết quả mô phỏng: Hình 3.7: (a) Tín hiệu đặt và các tín hiệu đầu ra; (b)Trọng số; (c)Trọng số ; (d) Trọng số Nhận xét: Khi có nhiễu bộ điều khiển PID-Neural cho tín hiệu đầu ra bám theo tín hiệu đặt, không có độ quá điều chỉnh trong khi ở bộ PID truyền thống có xảy ra hiện tượng quá điều chỉnh. c) Đối tượng có trễ Để tạo ra đối tượng có trễ, ta thêm vào 1 khâu trễ trước đối tượng điều khiển. Thời gian trễ là 0.2 giây. Đối tượng điều khiển có hàm truyền là: Bộ điều khiển PID-Neural: Bộ điều khiển có hệ số thích nghi và các trọng số có giá trị ban đầu là . Mô hình điều khiển: Hình 3.8: Đối tượng có trễ Bộ điều khiển PID truyền thống với các hệ số được tính theo phương pháp hằng số thời gian tổng của Kuhn: Hàm truyền của đối tượng được viết lại như sau: ; ;; Kết quả mô phỏng: Hình 3.9: (a) Tín hiệu đặt và các tín hiệu đầu ra; (b)Trọng số ; (c)Trọng số ; (d) Trọng số Nhận xét: Với đối tượng có trễ, tín hiệu ra của hệ thống ở bộ điều khiển PID-Neural tốt hơn so với bộ điều khiển PID truyền thống, có xảy ra độ quá điều chỉnh nhưng rất nhỏ. d) Đối tượng có thành phần tích phân Đối tượng có thành phần tích phân được sử dụng là đối tượng có hàm truyền sau: Hệ số thích nghi không đổi vẫn bằng 0.003. Các trọng số có giá trị ban đầu là: Mô hình điều khiển: Hình 3.10: Đối tượng có thành phần tích phân Kết quả mô phỏng: Hình 3.11: (a) Tín hiệu đặt và tín hiệu đầu ra; (b)Trọng số ; (c)Trọng số ; (d) Trọng số Nhận xét: Với đối tượng có thành phần tích phân, chất lượng tín hiệu đầu ra của hệ thống không được tốt, độ quá điều chỉnh lớn, thời gian xác lập dài. Nguyên nhân là do với đối tượng có thành phần tích phân, đạo hàm của đối tượng không thể xấp xỉ về hằng số vì đối tượng không ổn định. e) Đối tượng phi tuyến Đối tượng phi tuyến được sử dụng có hàm truyền như sau: Hệ số thích nghi bằng 0.5. Các trọng số có giá trị ban đầu là: Việc mô phỏng được thực hiện bằng M-file. Kết quả mô phỏng: Hình 3.12: (a) Tín hiệu đặt và tín hiệu đầu ra; (b)Trọng số ; (c)Trọng số ; (d) Trọng số Nhận xét: Với đối tượng phi tuyến, để sử dụng bộ điều khiển PID truyền thống thì cần phải tuyến tính hóa đối tượng. Công việc này tạo ra chất lượng điều khiển không cao do sự sai lệch giữa đối tượng thực và đối tượng sau khi tuyến tính hóa. Nhưng với bộ điều khiển PID-Neural, chất lượng tín hiệu đầu ra của hệ thống rất tốt, thời gian xác lập ngắn, không xảy ra hiện tượng quá điều chỉnh. 3.2 Thiết kế bộ điều khiển sử dụng sai lệch làm đầu vào 3.2.1 Thuật toán chỉnh định trọng số Mạng nơron được coi là một bộ nhớ nhưng là bộ nhớ ngắn hạn nên cần đưa các dữ liệu trong quá khứ làm đầu vào của mạng nơron để tăng độ chính xác của đầu ra. Số lượng các tín hiệu trong quá khứ là tùy ý. Ở đây ta chọn 1 sai lệch ở hiện tại và 2 sai lệch ở trong quá khứ. Đối tượng điều khiển xét ở đây là đối tượng tuyến tính và ổn định. Hình 3.13 là sơ đồ khối mô hình điều khiển với 3 đầu vào đã chọn. Hình 3.13: Sơ đồ khối hệ thống điều khiển Hình 3.14 mô tả cấu tạo bộ điều khiển dựa trên mạng nơron. Mạng nơron được chọn là mạng 2 lớp có 3 đầu vào và 1 đầu ra. Lớp đầu vào có 3 nơron, lớp đầu ra có 1 nơron. Hàm truyền của 3 nơron lớp đầu vào là hàm logsig , hàm truyền của nơron lớp đầu ra là hàm tuyến tính (purelin) . Hình 3.14: Mạng nơron 2 lớp Hệ thống điều khiển trên được chia thành 4 lớp và 8 nút. Nút 11 là khâu có hệ số khuếch đại bằng 1, nút 12 là khâu trễ thứ nhất, nút 13 là khâu trễ thứ 2, nút 21, 22, 23, 31 lần lượt là phần nơron 1,2,3,4 không chứa các trọng số. Nút 41 là đối tượng. Các trọng số liên kết là . Hình 3.15 mô tả sự phân tích hệ thống điều khiển. Hình 3.15: Phân tích hệ thống điều khiển Tính toán mạng nơron: và và và và Huấn luyện mạng: mà: (do theo biện luận ở trên với đối tượng tuyến tính ổn định thì đạo hàm của đối tượng có thể xấp xỉ về 1 hằng số) Hằng số được đưa vào trong hằng số thích nghi . Tương tự như trên: Do nên: Mô hình mạng nơron của bộ điều khiển cùng với các thuật toán học được diễn giải ở trên được trình bày bằng Matlab/Simulink ở hình 3.16. Hình 3.16: Cấu trúc bộ điều khiển ANN và thuật toán học. 3.2.2 Kết quả mô phỏng Sau đây là các kết quả mô phỏng bộ điều khiển dựa trên mạng nơron được trình bày ở trên với các loại đối tượng và điều kiện mô phỏng khác nhau. Tín hiệu mẫu là tín hiệu mức 1. Các mô phỏng được thực hiện bằng Matlab/ Simulink. a) Đối tượng ổn định Đối tượng điều khiển là đối tượng tuyến tính ổn định bậc 2 có hàm truyền G(s) là Hệ số thích nghi là . Các trọng số ban đầu là: Mô hình điều khiển: Hình 3.17: Đối tượng bậc 2 ổn định Tín hiệu đầu ra: Hình 3.18: Tín hiệu đầu ra và tín hiệu đặt với đối tượng ổn định Nhận xét: Tín hiệu đầu ra rất tốt. Dù là đối tượng bậc 2 nhưng không xảy ra hiện tượng quá điều chỉnh hay dao động. b) Đối tượng có nhiễu Nhiễu được sử dụng là nhiễu ồn trắng có cường độ noise power = 0.01. Đối tượng nghiên cứu và hệ số thích nghi không đổi. Các trọng số ban đầu là: Mô hình điều khiển: Hình 3.19: Đối tượng có nhiễu Tín hiệu đầu ra: Hình 3.20: Tín hiệu đầu ra và tín hiệu đặt trong trường hợp có nhiễu Nhận xét: Ảnh hưởng của nhiễu chỉ có tác động nhỏ đến chất lượng hệ thống d) Đối tượng có trễ Thời gian trễ là 0.4 giây. Đối tượng điều khiển không đổi. Hệ số thích nghi là 2. Các trọng số ban đầu là: Mô hình điều khiển: Hình 3.21: Đối tượng có trễ Tín hiệu đầu ra: Hình 3.22: Tín hiệu đầu ra và tín hiệu đặt trong trường hợp có nhiễu Nhận xét: Sai lệch giảm dần theo quá trình học của mạng nơron. c) Đối tượng có thành phần tích phân Đối tượng có thành phần tích phân được sử dụng là đối tượng có hàm truyền sau: Hệ số thích nghi bằng 0.1. Các trọng số có giá trị ban đầu là: Mô hình điều khiển: Hình 2.22: Đối tượng có thành phần tích phân Tín hiệu đầu ra: Hình 2.23: Tín hiệu đầu ra và tín hiệu đặt với đối tượng có thành phần tích phân Nhận xét: Với đối tượng có thành phần tích phân, việc lựa chọn bộ điều khiển theo mô hình này sẽ cho tín hiệu đầu ra tốt hơn nhiều so với bộ điều khiển PID-Neural, độ quá điều chỉnh nhỏ, thời gian xác lập nhanh, sai lệch tĩnh bé. e) Đối tượng phi tuyến Đối tượng phi tuyến được sử dụng có hàm truyền như sau: Hệ số thích nghi bằng 0.1. Các trọng số có giá trị ban đầu là: Việc mô phỏng được thực hiện bằng M-file. Tín hiệu đầu ra: Hình 2.24: Tín hiệu đầu ra và tín hiệu đặt với đối tượng phi tuyến Nhận xét: Với đối tượng phi tuyến, việc lựa chọn bộ điều khiển theo mô hình này sẽ cho tín hiệu đầu ra tốt hơn bộ điều khiển PID-Neural,thời gian xác lập nhanh hơn. CHƯƠNG 4 : ỨNG DỤNG ĐIỀU KHIỂN ĐỐI TƯỢNG THỰC 4.1 Động cơ điện một chiều 4.1.1. Cấu tạo của động cơ một chiều Động cơ điện một chiều gồm có 3 thành phần cơ bản : Stato của động cơ là một nam châm vĩnh cửu, cuộn dây phần ứng lắp trên Roto và cặp chổi than. Nguyên lý hoạt động của động cơ một chiều có thể trình bày tóm tắt như sau: từ trường cố định sinh ra bởi nam châm vĩnh cửu gắn trên stato gây ra lực tác dụng lên cuộn dây trên rô to khi cuộn dây có dòng điện chạy qua (định luật Ampe). Lực từ sinh ra mô men tác dụng lên rô to . Mô men này biểu diễn theo phương trình : Tm = Ke . Φ . Ie . sinθ Trong đó : Te = mô men động cơ Ke = hệ số động cơ Φ = mật độ dòng từ Ie = dòng điện phần ứng θ = góc giữa vectơ từ trường cố định Hình 4.1: Một động cơ một chiều thông thường Từ công thức trên có thể thấy momen trên trục động cơ tăng dần từ θ = 0o và đạt lớn nhất khi θ = 90o. Tức là khi θ = 90o, vectơ từ trường cố định vuông góc với vectơ dòng phần ứng thì momen trên trục động cơ là lớn nhất và khi θ = 0o, vectơ dòng phần ứng song song với vectơ từ trường cố định, momen trên trục là bé nhất. Để đảm bảo momen trên trục động cơ luôn đạt được giá trị lớn nhất cần thiết người ta bố trí không phải một vòng dây mà rất nhiều vòng dây đặt kế tiếp nhau trên đường tròn. Như vậy tại mỗi thời điểm bất kỳ luôn tồn tại một vòng dây có lực từ tác dụng lên nó là cực đại. Do Roto của động cơ quay nên dòng điện một chiều được đưa vào các cuộn dây thông qua chổi than cố định quét trên các cuộn dây. Cũng vì lý do này mà loại động cơ này được gọi là động cơ có chổi than . Hình 4.2: Nguyên lý hoạt động động cơ một chiều Trong động cơ một chiều cần chú ý nhất 2 thông số: momen và tốc độ của động cơ. Momen và tốc độ của động cơ DC có thể mô tả bằng hai phương trình sau: Tdc = Km . Iu Eb = Kb . w Trong đó: Tdc = momen từ đơn vị Nm Iu = dòng điện trong cuộn dây phần ứng đơn vị A Eb = điện áp phản điện V Km = hệ số momen đơn vị kgm/A Kb = hệ số điện đơn vị V/vòng.phút w = vận tốc quay của động cơ vòng/phút Từ 2 phương trình trên có thể thấy: Momen của động cơ tỉ lệ với dòng điện, tuy nhiên do sức phản điện tỉ lệ với vận tốc mà sức phản điện làm giảm dòng điện nên không thể duy trì động cơ với tốc độ cao và momen lớn được . 4.1.2. Encoder gắn trên động cơ một chiều Encoder gồm một mắt phát và một mắt thu. Giữa mắt phát và mắt thu là một đĩa tròn có khắc vạch. Đĩa tròn được gắn lên trục động cơ. Khi đĩa chắn mất tín hiệu giữa mắt phát và mắt thu thì tín hiệu ra có mức logic 1. Khi đĩa không chắn tin hiệu giữa mắt phát và mắt thu thì tín hiệu ra có mức logic 0. Động cơ quay cũng sẽ làm đĩa quay theo với cùng tốc độ. Vì trên đĩa có khắc 200 vạch, cho nên khi động cơ quay được 1 vòng sẽ tạo ra 200 xung. Vi điều khiển đếm số xung này sẽ biết được tốc độ động cơ. Hình 4.3: Cấu tạo của encoder Giả thiết: Số xung đếm được trong 1s là: n Số vạch khắc trên đĩa là: no Tốc độ động cơ là: v (vòng/phút) Ta sẽ có 4.1.3. Động cơ sử dụng để thử nghiệm Loại động cơ sử dụng là Encoder gắn luôn trên đuôi của động cơ. Encoder có 5 đầu ra, hai dây đất, một dây nguồn, hai dây phase A và B. độ phân giải của Encoder là 200 xung. Để tăng độ chính xác trong việc đo tốc độ về ta sử dụng cả hai pha của encoder đếm sườn lên và xuống của hai phase A và phase B ta có độ chính xác tăng gấp 8 lần. Đây là loại động cơ một chiều 24V có tốc độ tối đa là 2000v/p. Hình 4.4: Động cơ điện một chiều 4.2. Thiết kế bộ điều khiển trên nền vi điều khiển Atmega 128 Atmega 128 Máy Tính LCD Bàn Phím Driver điều khiển động cơ Động cơ Encoder Hình 4.5: Sơ đồ khối của bộ điều khiển. 4.2.1. Khối điều khiển trung tâm Khối điều khiển trung tâm sử dụng vi điều khiển Atmega 128 được mở rộng bộ nhớ sram ngoài, 64K bytes. Cổng com giao tiếp với máy tính theo chuẩn RS232, giao tiếp với LCD. Cổng nạp ngay trên khối điều khiển trung tâm theo chuẩn Jtag. Các cổng vào ra dùng để điều khiển động cơ và nhận tín hiệu của encoder. Hình 4.6: Sơ đồ nguyên lý mạch điều khiển trung tâm 4.2.2. Giao tiếp với LCD Hình 4.7: Sơ đồ mạch LCD Để điều khiển LCD ta dùng Port E của Atmega128. Kiểu truyền dữ liệu ở đây ta chuyền 4 bit một, ta sử dụng các bit dữ liệu D4, D5, D6, D7 của LCD. Biến trở dùng để điều chỉnh độ tương phản cho LCD. Do Atmega 128 có các hàm có sẵn dùng cho LCD nên rất tiện cho người dùng trong việc lập trình. Một số hàm viết cho LCD có sẵn trong Atmega 128 void _lcd_ready(void); // hàm sẵn sàng cho LCD void _lcd_write_data(unsigned char data); // ghi một byte dữ liệu lên LCD // ghi một byte ký tự đến LCD hoặc vào RAM void lcd_write_byte(unsigned char addr, unsigned char data); // đọc một byte ký tự từ LCD hoặc từ RAM unsigned char lcd_read_byte(unsigned char addr); // dịch chuyển con trỏ đến hàng x cột y void lcd_gotoxy(unsigned char x, unsigned char y); // xóa LCD void lcd_clear(void); void lcd_putchar(char c); // ghi một chuỗi kí tự từ trong RAM tới LCD void lcd_puts(char *str); // ghi một chuỗi kí tự từ bộ nhớ FLASH tới LCD void lcd_putsf(char flash *str); // khởi tạo cho LCD unsigned char lcd_init(unsigned char lcd_columns); 4.2.3. Phương thức truyền nhận dữ liệu qua RS232 trên PC  4.2.3.1 Cấu trúc vật lý của cổng RS232 Hình 4.8: Cổng đực Hình 4.9: Cổng cái Hình 4.10 : Kích thước của cổng COM Trong máy tính cổng COM của máy là cổng nối tiếp theo chuẩn RS232 Chân Tên gọi Mục đích 3 TD (Transmit data) Truyền dữ liệu Truyền dữ liệu đến một thiết bị khác 2 RD (Receive data) Nhận dữ liệu Nhận dữ liệu từ một thiết bị khác 7 RTS (Request to send) Yêu cầu truyền dữ liệu Cho biết là thiết bị đã sẵn sàng để truyền dữ liệu ra 8 CTS (Clear to send ) Cho biết thiết bị đã sẵn sàng để nhận dữ liệu. 6 DSR (Data set ready) Cho biết thiết bị nhận dữ liệu đã được kết nối và sẵn sàng để nhận dữ liệu 5 GND (Signal ground) Xác định cả hai thiết bị đều sử dụng cùng một hiệu điện thế cho truyền dữ liệu. 4 DTR (Data terminal ready) Cho biết là thiết bị đầu cuối ( DTE ) đã sắn sàng cho việc sử dụng 1 DCD (Data Carrier Detect) Tách tín hiệu mang dữ liệu 9 RI (Ring Indicator ) Báo chuông Bảng 4.1: Chức năng của các chân cổng RS232 4.2.3.2 Quá trình truyền và nhận dữ liệu của cổng COM của PC Truyền dữ liệu là quá trình đưa dữ liệu ra cổng nối tiếp từ máy tính. Khi máy tính muốn truyền một byte dữ liệu ra cổng để truyền ra cáp bên ngoài, máy tính sẽ gửi byte này trên bus dữ liệu bên trong máy tính. ra tới địa chỉ vào ra của cổng COM. Cổng COM sẽ giữ byte này, và gửi nó ra ngoài từng bit một (dòng truyền bit dữ liệu) qua chân truyển của cổng. Byte này được đưa vào một thanh ghi dịch bên trong cổng. Các bit trên thanh ghi cổng này được lấy từng byte một và được truyền từng bit một trên đường truyền nối tiếp. Khi bit cuối cùng được truyền đi thì thanh ghi dịch cần byte khác để truyền thì nó có thể yêu cầu CPU gửi cho nó một byte khác. Công việc có vể như đơn giản, song nó yêu cầu phải có thời gian trễ bởi vì CPU không thể đưa ra byte ngay lập tức do nó còn phải làm mốt số công việc khác không thể chỉ có việc quản lý cổng COM. Có một cách để giải quyết việc trễ thời gian này đó là sắp xếp lại mọi thứ để cho CPU gửi byte vào bộ đệm của cổng COM(trong phần cứng) trước khi thanh ghi dịch cần nó. Nhờ vậy khi thanh ghi dịch truyền byte của nó ra ngoài và đang cần một byte mới thì phần cứng của cổng COM chuyển

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

  • docBao cao tot nghiep.doc