Phương pháp Ziegler-Nichols là phương pháp thực nghiệm đểxác định tham số bộ điều khiển P, PI hoặc PID bằng cách đưa vào đáp ứng quá độ của đối tượng điều khiển. Tùy theo đặc điểm của từng đối tượng, Ziegler và Nichols đưa ra hai phương pháp lựa chọn tham số của bộđiều khiển:
• Phương pháp Ziegler-Nichols thứ nhất: Phương pháp này áp dụng cho các đối tượng có đáp ứng đối với tín hiệu vào là hàm nấc có dạng chữ S (hình 3.6) như nhiệt độ lò nhiệt, tốc độđộng cơ…
Hình 3.6 Đáp ứng nấc của hệ hở có dạng S
Bảng 3.1 Thông số của các bộđiều khiển được chọn theo Ziegler-Nichols 1 Thông số
BĐK
kp Ti TD
P T2/(k.T1) - -
PI 0,9.T2/(k.T1) Ti/0,3 -
PID 1,2.T2/(k.T1) 2Ti 0,5Ti
• Phương pháp Ziegler-Nichols thứ hai: Phương pháp này áp dụng cho đối
tượng có khâu tích phân lý tưởng như mực chất lỏng trong bồn chứa, vị trí hệ truyền động dùng động cơ… Đáp ứng quá độ của hệ hở của đối tượng tăng đến vô cùng. Phương pháp này được thực hiện như sau:
Hình 3.7 Xác định hằng số khuếch đại tới hạn
- Thay bộđiều khiển PID trong hệ kín bằng bộ khuếch đại (hình 3.7). - Tăng hệ số khuếch đại tới giá trị tới hạn kth để hệ kín ở chế độ biên
giới ổn định, tức là h(t) có dạng dao động điều hòa. - Xác định chu kỳ Tth của dao động.
Hình 3.8 Đáp ứng nấc của hệ kín khi k=kth
Bảng 3.2 Thông số của các bộđiều khiển được chọn theo Ziegler-Nichols 2 Thông số BĐK kp Ti TD P 0,5kth - - PI 0,45kth 0,85Tth - PID 0,6kth 0,5Tth 0,125Tth 3.2.1.2 Phương pháp Chien-Hrones-Reswick:
Phương pháp này cũng áp dụng cho các đối tượng có đáp ứng đối với tín hiệu vào là hàm nấc có dạng chữS (hình 3.9) nhưng có thêm điều kiện >3 .
Phương pháp Chien-Hrones-Reswick đưa ra bốn cách xác định tham số bộ điều khiển cho bốn yêu cầu chất lượng khác nhau:
• Yêu cầu tối ưu theo nhiễu và hệkín không có độquá điều chỉnh
Bảng 3.3 Các tham sốPID theo phương pháp Chien-Hrones-Reswick 1 Thông số
BĐK
kp Ti TD
P 3b/10ak - -
PI 6b/10ak 4a -
PID 19b/20ak 12a/5 21a/50
• Yêu cầu tối ưu nhiễu và hệ kín có độquá điều chỉnh Δh không vượt quá 20% so với h∞=lim h(t) khi t→∞.
Bảng 3.4 Các tham sốPID theo phương pháp Chien-Hrones-Reswick 2 Thông số
BĐK
kp Ti TD
P 7b/10ak - -
PI 7b/10ak 23a/10 -
PID 6b/5ak 2a 21a/50
• Yêu cầu tối ưu theo tín hiệu đặt trước và hệkín không có độquá điều chỉnh: Bảng 3.5 Các tham sốPID theo phương pháp Chien-Hrones-Reswick 3 Thông số
BĐK
kp Ti TD
P 3b/10ak - -
PI 7b/20ak 6b/5 -
• Yêu cầu tối ưu theo tín hiệu đặt trước và hệkín có độquá điều chỉnh Δh không vượt quá 20% so với h∞=lim h(t) khi t→∞.
Bảng 3.6 Các tham sốPID theo phương pháp Chien-Hrones-Reswick 4 Thông số
BĐK
kp Ti TD
P 7b/10ak - -
PI 6b/5ak b -
PID 19b/20ak 27b/20 47a/100
3.2.2 Chọn tham số cho bộđiều khiển PID điều khiển tốc độ DC Motor
Trong phần này, tác giảkhông đi sâu vào phương pháp tính toán, tìm các tham số P,I,D tối ưu cho hệ thống, mà chỉ chỉnh định các tham số sao cho hệ thống hoạt động tốt một cách tương đối , đủ kể kiểm nghiệm tính thực nghiệm của hệ thống . Sau khi việc kết nối các modul tạo thành hệ thống điều khiển, tác giả tiến hành chỉnh định bằng thực nghiệm chọn bộ tham sốP,I,D theo phương pháp Ziegler-Nichols :
kp=0.11 ,Ti = 0.00001 và TD =0.0001
Tốc độ của động cơ được đặt bằng giao diện trên máy tính qua truyền thông RS232. Tốc độ thực đo được được hiện thị bằng biểu đồ mức bên cạnh giúp quan sát rất dễdàng để đánh giá chất lượng điều khiển. Ngoài ra ,khi ngắt truyền thông thì tốc độ của động cơ cũng có thể được đặt bằng phím bấm tăng, giảm tốc độ (hình 3.1a). Tốc độ thực của động cơ đo được hiển thị trên màn hình LCD của hệ thống Kit.
3.3 Kết luận
Hệ thống điều khiển PID số xây dựng từ các modul của hệ thống Kit thí nghiệm đã hoạt động tốt với các chức năng sau :
- Màn hình LCD hiển thị tốc độ đặt và tốc độ thực đo được, báo kết nối UART.
- Giao diện Labview thể hiển một cách trực quan chất lượng điều khiển của hệ thống. Việc đặt tốc độ cho động cơ thông qua giao diện được thực hiện một cách dễ dàng.
- Khối công suất PWM và cảm biến quang đo tốc độ hoạt động ổn định , hiệu quả.
Khối phím bấm đã thực hiện tốt một số chức năng như : - Tăng /giảm tốc độđộng cơ
- Điều khiển đảo chiều cho động cơ
- Điều khiển ngắt hoặc kết nối truyền thông UART của hệ thống với máy tính.
Như vậy hệ thống Kit đã đáp ứng được yêu cầu thực nghiệm cho những bài thực hành, thí nghiệm của sinh viên ngành tự động hóa trong quá trình học tập nghiên cứu. Qua khảo sát chất lượng điều khiển của hệ thống , sinh viên sẽ nắm vững hơn những kiến thức lý thuyết đã được học về sựảnh hưởng của các tham số bộđiều khiển PID, từđó nghiên cứu, xây dựng những thuật toán điều khiển, tìm ra những bộ tham số tối ưu nhất đưa vào thử nghiệm cho hệ thống.
CHƯƠNG 4
NÂNG CAO CHẤT LƯỢNG HỆ THỐNG ĐIỀU KHIỂN VỚI RTOS 4.1 Tại sao cần có RTOS ?
4.1.1 Thời gian thực (Real - Time) là gì?
Ý tưởng cơ bản của thời gian thực thể hiện ở chỗ: một hệ thống phải có những phản ứng thích hợp, đúng thời điểm với môi trường của nó. Việc hiểu thời gian thực có nghĩa là thực sự nhanh, càng nhanh càng tốt, điều này là sai lầm. Thời gian thực có nghĩa “đủ nhanh” (fast enough) trong một ngữ cảnh, một môi trường mà hệ thống đang hoạt động. Khi chúng ta đề cập đến máy tính điều khiển động cơ ô tô, chúng ta cần nó chạy càng nhanh càng tốt.
Một ví dụ khác, khi chúng ta đề cập đến một nhà máy lọc dầu hoá học chẳng hạn, nhà máy được điều khiển bởi một hoặc một hệ thống máy tính. Các máy tính này có trách nhiệm điều khiển quá trình hoá học đồng thời phải phát hiện ra được các sự cố có thể xảy ra. Tuy nhiên, các phản ứng hay các quá trình hoá học thường có hằng số thời gian khá lớn từ hàng giây cho tới hàng phút. Chính vì thế mày chúng ta có thể giả thiết rằng máy tính hoàn toàn có khả năng phản ứng lại các sự cố nghiêm trọng. Tuy nhiên, đặt vấn đề là nếu hệ thống máy tính đó đang trong quá trình in một bản báo cáo dài về các thông số sản lượng của tuần trước thì đột nhiên trục trặc xảy ra. Vậy thì nó mất bao nhiêu thời gian để có thể phản ứng lại các sự cốnhư thế?
Thực chất của việc tính toán thời gian thực không chỉ ở việc phản ứng đủ nhanh mà còn phải đáng tin cậy và chính xác. Máy tính điều khiển động cơ trong ô tô phải có thểđiều chỉnh luồng nhiên liệu và thời gian đánh lửa một cách hợp lý trong mỗi vòng quay. Nếu không, động cơ sẽ không làm việc theo mong muốn. Máy tính trong nhà máy lọc dầu phải có thể phát hiện và phản ứng lại các
Như vậy, mục tiêu của lập trình thời gian thực chính là việc thiết kế hệ thống sao cho nó có thể tiếp nhận một cách chính xác các ràng buộc về mặt thời gian trong suốt quá trình các sự kiện ngẫu nhiên và không đồng bộ xảy ra.
4.1.2. Các dạng thời gian thực
Về cơ bản, chương trình có tính thời gian thực phải có khả năng phản ứng lại các sự kiện trong môi trường mà hệ thống làm việc trong khoảng thời gian nhất định cho trước. Những hệ thống như vậy được gọi là hệ thống “điều khiển sự kiện” (hay hệ thống lái sự kiện – event-driven) và có thể được mô tả bằng thời gian trễ từ khi mà sự kiện xảy ra cho tới khi hệ thống có hoạt động phản ứng lại với sự kiện đó.
Thời gian thực, mặt khác, đòi hỏi một giới hạn cao hơn về thời gian trễ, được gọi là “thời hạn lập danh mục” (scheduling deadline). Một hệ thống thời gian thực có thể được chia làm 2 loại: “thời gian thực cứng” (hard real-time) và “thờigian thực mềm” (soft real-time). Trong hệ thống hard real-time, hệ thống phải tiếp nhận và nắm bắt được scheduling deadline của nó tại mỗi và mọi thời điểm. Sự sai sót trong việc tiếp nhận deadline có thể dẫn đến hậu quả nghiêm trọng thậm chí chết người. Lấy ví dụ: máy hỗ trợ nhịp tim cho bệnh nhân khi phẫu thuật. Thuật toán điều khiển phụ thuộc vào thời gian nhịp tim của người bệnh, nếu thời gian này bị trễ, tính mạng của người bệnh sẽ bịảnh hưởng.
Chúng ta mong muốn hệ thống phản ứng lại các sự kiện trong thời gian cho phép nhưng không có gì thực sự nghiêm trọng xảy ra nếu hệ thống thỉnh thoảng bị trễ. Lỗi về mặt thời gian có thể chỉ đơn giản là dẫn đến hậu quả giảm độ tin cậy của đối tượng đối với hệ thống mà không có hậu quả thê thảm nào khác xảy ra. Mạng lưới thu ngân tự động của ngân hàng là ví dụ rõ nhất cho soft
real-time. Mạng rút tiền tự động ATM là hệ thống thời gian thực? Khi ta đưa thẻ ATM vào máy, máy sẽ phản ứng lại trong vòng 1 hay 2 giây, nhưng nếu nó lâu hơn thế một chút thì cũng không gây ra hậu quả gì nghiêm trọng.
4.1.3. Sự cần thiết RTOS trong các hệ thống nhúng
Hệ điều hành thời gian thực – RealTime Operating Systems(RTOS), là phần mềm điều khiển chuyên dụng thường được dùng trong những ứng dụng điện toán nhúng có tài nguyên bộ nhớ hạn chế và yêu cầu ngặt nghèo về thời gian đáp ứng tức thời, tính sẵn sàng cao và khả năng tự kiểm soát một cách chính xác.
Một thuộc tính quan trọng của RTOS là khả năng tách biệt với ứng dụng, vì vậy nếu có một chương trình bị "chết" hay hoạt động không hợp lệ, RTOS có thể nhanh chóng cô lập chương trình này, kích hoạt cơ chế phục hồi và bảo vệ các chương trình khác hay chính bản thân hệđiều hành khỏi các hậu quả của các lệnh sai. Cơ chế bảo vệ tương tự cũng được áp dụng để tránh tình trạng tràn bộ nhớ do bất kỳ chương trình nào gây ra. RTOS xuất hiện ở hai dạng: cứng và mềm. Nếu tính năng xử lý ứng với một sự kiện nào đó không xảy ra hay xảy ra không đủ nhanh, RTOS cứng sẽ chấm dứt hoạt động này và giữ không gây ảnh hưởng đến độ tin cậy và tính sẵn sàng của phần còn lại của hệ thống.
Vì RTOS và máy tính nhúng trở nên phổ biến trong các ứng dụng quan trọng, các nhà phát triển thương mại đang tạo nên những RTOS mới với tính sẵn sàng cao. Những sản phẩm này có một thành phần phần mềm chuyên dụng làm chức năng cảnh báo, chạy các chương trình chẩn đoán hệ thống đểgiúp xác định chính xác vấn đề trục trặc hay tựđộng chuyển đổi sang hệ thống dự phòng. Hiện thời RTOS sẵn sàng cao hỗ trợ bus Compact PCI của tổ chức PCI Industrial Computer Manufacturers Group, bus này dùng cho phần cứng có thể trao đổi nóng. Trong nhiều năm, ứng dụng dựa trên RTOS chủ yếu là trong các hệ thống nhúng và mới gần đây thì chúng đã có mặt khắp nơi, từ thiết bị y tế được điều khiển bằng máy ảnh cho đến máy pha cà phê, những ứng dụng tính toán phân tán đang thúc đẩy các nhà phát triển hệ điều hành thực hiện nghiên cứu và phát
4.2. Các phần tửcơ bản RTOS
Một RTOS được cài đặt cho một nền vi xử lí thường phải bao gồm 3 phần sau:
•Kernel RTOS: nhân của hệ điều hành, còn gọi là nhân, trong đó thực thi các nhiệm vụcơ bản của RTOS. Nhân dùng chung cho tất cả các platform.
•Port: là các định nghĩa phần cứng của vi xử lí, bào gồm các thanh ghi, timer…Port có thể hiều là phần cài đặt sao cho FreeRtos có thể chạy được trên một nền vi điều khiển thông qua tập lệnh, thanh ghi của vi điều khiển đó.
•BSP (Board Support Package): chứa các hàm chức năng truy xuất đến các ngoại vi, thực chất đây chính là Driver cho các ngoại vi của MCU.
4.3. Giới thiệu hệđiều hành thời gian thực FreeRTOS
4.3.1 Tổng quan về FreeRTOS
4.3.1.1 Khái niệm FreeRTOS
FreeRTOS là lõi của hệ điều hành thời gian thực miễn phí. Hệ điều hành này được Richard Barry công bố rộng rãi từ năm 2003, phát triển mạnh đến nay và được cộng đồng mạng mã nguồn mở ủng hộ. FreeRTOS có tính khả chuyển, mã nguồn mở, lõi có thể down miễn phí và nó có thể dùng cho các ứng dụng thương mại. Nó phù hợp với những hệ nhúng thời gian thực nhỏ. Hầu hết các code được viết bằng ngôn ngữ C nên nó có tính phù hợp cao với nhiều nền khác nhau.
Ưu điểm của nó là dung lượng nhỏ và có thể chạy trên những nền mà nhiều hệ không chạy được. Có thể port cho nhiều kiến trúc vi điều khiển và những công cụ phát triển khác nhau. Mỗi port chính thức bao gồm những ứng dụng ví dụ tiền cấu hình biểu hiện sự riêng biệt của lõi, kiến thức mới và hướng phát triển. Những hỗ trợ miễn phí được cung cấp bởi cộng đồng mạng. Hỗ trợ thương mại với những dịch vụ phát triển đầy đủ cũng được cung cấp.
4.3.1.2 Các chức năng được cung cấp trong FreeRTOS
FreeRTOS.org là lõi của hệ điều hành thời gian thực được thiết kế cho các hệ thống nhúng nhỏ, với các chức năng chính sau:
•Lõi FreeRTOS hỗ trợ cả preemptive, cooperative và các lựa chọn cấu hình lai giữa hai phần.
• SafeRTOS là sản phẩm dẫn xuất, cung cấp mã nguồn riêng ở mức độ cao. •Được thiết kế nhỏ, đơn giản và dễ sử dụng.
•Cấu trúc mã nguồn rất linh động được viết bằng ngôn ngữ C. •Hỗ trợ cả task và co-routine
•Mạnh về hàm theo vết.
•Có lựa chọn nhận biết tràn ngăn xếp.
•Không giới hạn số task có thể tạo ra, phụ thuộc vào tài nguyên của chip. •Không giới hạn số mức ưu tiên được sử dụng.
•Không giới hạn số task cùng một mức ưu tiên.
•Hỗ trợ truyền thông và đồng bộ giữa các task hoặc giữa task và ngắt: queues, binary semaphores, counting semaphores and recursive mutexes.
•Mutexes với ưu tiên kế thừa.
•Các công cụ phát triển miễn phí, port cho Cortex-M3, ARM7, PIC, MSP430, H8/S, AMD, AVR, x86 và 8051.
•Miễn phí mã nguồn phần mềm nhúng. •Miễn phí trong ứng dụng thương mại.
•Tiền cấu hình cho các ứng dụng demo, từ đó dễ dàng tìm hiểu và phát triển.
4.3.2. Các file chính trong kernel
Trong kernel của FreeRTOS có năm file chính, tất cảcác chương trình port buộc phải có:
•FreeRTOS.h: kiểm tra xem FreeRTOSconfig,h đã định nghĩa các ứng dụng macro phụ thuộc vào từng chương trình một cách rõ ràng hay chưa.
•list.h: tạo ra các hàm và các macro liên quan đến việc tạo và xoá danh sách trạng thái các task như các danh sách ready, running, block, suppend, waiting.
•croutine.h: tạo ra các hàm và các macro liên quan đến task và queue nhưng chủ yếu dùng cho coorporative.
•portable.h: tạo tính linh động cho lớp API. Với mỗi chương trình port cho mỗi vi điều khiển và mỗi trình dịch khác nhau đều cần thay đổi file này để phù hợp các API
4.4. Giải quyết các vấn đềkhi đưa RTOS vào vi điều khiển
4.4.1 Quản lý và sử dụng RAM
Do quản lý sự kiện được xây dựng thành chức năng hàng đợi. Có nghĩa là