Hình này giúp các bạn từ các khối phần cứng liên hệ cụ thể với mô hình điều khiển một cách trực quan.
Từ trước tới nay, điều khó khăn trên các lớp học, chính là việc dạy điều khiển chỉ có các sơ đồ khối, không hiểu sơ đồ khối đó là cái gì, làm cái gì?!! Thực sự F cũng đã gặp khó khăn khi cố gắng hình dung ra nó là cái gì, và mình phải làm nó như thế nào?
Tất nhiên, mô hình điều khiển này chưa hoàn toàn đầy đủ, chúng ta sẽ phải làm nhiều thứ khác nữa, nhưng từ mô hình này, các bạn thấy rất đơn giản.
Khối điều khiển PID, chính là cái card PIC16LF877A của các bạn, phần mạch cầu H là phần khuếch đại, phần động cơ, tín hiệu ra là góc quay hay vận tốc góc của động cơ, được đọc về bởi encoder, đây là ngõ hồi tiếp tín hiệu. Giá trị này sau đó được so sánh với giá trị đặt. Dựa trên sai số giữa giá trị đặt (giá trị mong muốn = vận tốc hoặc vị trí), chúng ta sẽ phải xác định xem cần phải tăng hay giảm độ rộng xung PWM trước khi đưa vào mạch cầu H.
Nếu như giá trị đọc về của encoder nhỏ hơn giá trị đặt, như vậy rõ ràng chúng ta phải tăng PWM. Như vậy, tăng PWM là tăng bao nhiêu? Hoặc khi giá trị đặt lớn hơn giá trị đọc về của encoder, thì chúng ta phải giảm PWM, như vậy giảm bao nhiêu?
Bộ điều khiển PID giúp chúng ta trả lời câu hỏi này. Khi có giá trị hồi tiếp, giá trị đặt, và biết được sai số của chúng ở từng thời điểm, chúng ta sẽ điều khiển được tín hiệu điều khiển để nó tăng giảm bao nhiêu là hợp lý.
Như vậy, mọi bộ điều khiển tự động (automatic controller) đều làm công việc này, tăng giảm bao nhiêu thì vừa.
Những bộ điều khiển phức tạp, làm nhiều việc hơn, vì nó có thể có nhiều ngõ vào, nhiều ngõ ra, nhiều ngõ hồi tiếp hơn, nhưng suy cho cùng, nói một cách nôm na, cũng chỉ là tăng hay giảm bao nhiêu thì vừa.
Nếu như chúng ta dùng cách điều khiển liệt kê, vd: -1000 xung, -999 xung, - 998 xung.... 0 xung, 1 xung, ... 999 xung, 1000 xung... Chúng ta liệt kê hết tất cả các giá trị sai lệch này ra, và áp cho nó một giá trị điều khiển (độ rộng PWM phù hợp với từng giá trị sai lệch), thì chúng ta thực sự không cần bộ điều khiển PID làm gì nữa.
Nhưng vấn đề chúng ta cần bộ điều khiển PID để biết xem được nếu -1000 xung sai lệch thì giá trị đó bằng bao nhiêu? Đó là điểm thứ nhất. Điểm thứ hai, về mặt lập trình, chúng ta không thể ngồi liệt kê hết từng trường hợp như vậy. Thực chất, trong một số trường hợp điều khiển, giả sử như chỉ có khoảng 100 trường hợp, nếu mà cho tính toán PID với số thực, quả thực rất lâu, người ta có thể tính toán ra ngoài trước, và khi lập trình cho sản phẩm, người ta đưa bảng tra vào luôn. Khi đó đáp ứng sẽ rất nhanh, vì nó không phải tính toán bộ điều khiển PID nữa.
Nhưng nói như vậy là F nói một cách hình dung, cho bộ điều khiển P thôi, không phải PID, vì điều khiển PID còn liên quan đến độ sai lệch trước đó, và độ sai lệch sau đó. Nếu đem 100 trường hợp, và liệt kê, thì P sẽ là 100 trường hợp, I sẽ 100 trường hợp, D sẽ 100 trường hợp. Tổ hợp của các trường hợp này là bao nhiêu?
Thực sự F không dám tính toán, và không dám liệt kê.
Đó là lý do vì sao người ta phải dùng bộ điều khiển mà không dùng phương pháp liệt kê.
Đôi nét dạo đầu và những khái niệm nôm na về bộ điều khiển như vậy, F không khuyến khích mọi người tập trung vào phần điều khiển vào lúc này, nhưng F biết mọi người cũng đang đọc từ từ về điều khiển PID, nhất là những người đang theo dõi luồng này mà không làm mô hình, vì họ muốn học dạng lý thuyết, hoặc không có thời gian, hoặc điều kiện tài chính để tham gia làm mô hình... Điều này sẽ giúp cho các bạn hình dung một cách trực quan hơn những gì chúng ta đang làm, và một chút gì đó về lý lẽ để các bạn cảm thấy dễ hiểu hơn về vấn đề điều khiển.
Ở đây, chúng ta chỉ đang tiếp cận với Automatic Control, chứ chúng ta chưa tiếp cận đến Intelligent Control, cho nên F chỉ đưa khái niệm tăng giảm ngõ ra như trên, để tránh tình trạng như trong phần Kalman, có bạn nghiên cứu về vấn đề này, sẽ vào thảo luận rằng khái niệm hình dung này không chính xác. Thực sự là không có cái gì hoàn toàn chính xác, theo F nghĩ vậy. Cho nên, làm thế nào để hiểu được nó một cách đơn giản nhất, truyền đạt lại nó một cách đơn giản nhất, thảo luận với nhau một cách đơn giản nhất, đó là cách mà chúng ta sẽ làm và xây dựng ở đây.
Chúc vui