Chào các bạn.
Mình đang làm về PID điều khiển nhiệt độ sử dụng AT89C51. Các bạn có thể chỉ giáo cho tôi mấy chiêu về PID được không.
Tôi đã viết PID trên C và:
Phương trình sai phân của PID số được viết dưới dạngsai phân sau:
U(i+1) = Kp*e + Kd* [e(i+1)-e(i)]/Ts + Ki*Se(i)*Ts
Ở đây: e là sai số.
Ts là thời gian lấy mẫu.
U là đầu ra.
Vấn đề là ở chỗ góc mở a cho Triac của bộ tạo nhiệt.
Ta có a nằm trong khoảng 0o đến 180o.
Khi đó nhiệt độ đầu ra tương ứng là toout = Tmax¸ 0.
Trong lập trình thì góc mở a tương ứng với thời gian trễ của góc mở so với tín hiệu đồng pha được phát hiện bởi ngắt ngoài.
Do đó a = 0o¸ 180o tương ứng a = 0 ¸ 10000ms (ở đây tần số công nghiệp là 50Hz).
Vấn đề là mình không tìm được mối quan hệ giữa đầu ra của PID là U và góc mở Triac a.
Mình có suy nghĩ như thế này không biết ý các cao nhân thế nào:
Tức là ứng với giá trị nhiệt độ đặt là td thì ta có góc mở là ad. Như vậy góc mở tại thời điểm i là:
a(i) = ad - au.
trong đó au = f(U).
Vấn đề là hàm f(U) xác định như thế nào?
Mình chưa làm thực tế về PID bao giờ nên bỡ ngỡ quá. Các bạn chỉ cho mình mấy chiêu được không.
Mình cảm ơn anh nha!
Chào.
Chúc vui vẻ.
Mình đang làm về PID điều khiển nhiệt độ sử dụng AT89C51. Các bạn có thể chỉ giáo cho tôi mấy chiêu về PID được không.
Tôi đã viết PID trên C và:
Phương trình sai phân của PID số được viết dưới dạngsai phân sau:
U(i+1) = Kp*e + Kd* [e(i+1)-e(i)]/Ts + Ki*Se(i)*Ts
Ở đây: e là sai số.
Ts là thời gian lấy mẫu.
U là đầu ra.
Vấn đề là ở chỗ góc mở a cho Triac của bộ tạo nhiệt.
Ta có a nằm trong khoảng 0o đến 180o.
Khi đó nhiệt độ đầu ra tương ứng là toout = Tmax¸ 0.
Trong lập trình thì góc mở a tương ứng với thời gian trễ của góc mở so với tín hiệu đồng pha được phát hiện bởi ngắt ngoài.
Do đó a = 0o¸ 180o tương ứng a = 0 ¸ 10000ms (ở đây tần số công nghiệp là 50Hz).
Vấn đề là mình không tìm được mối quan hệ giữa đầu ra của PID là U và góc mở Triac a.
Mình có suy nghĩ như thế này không biết ý các cao nhân thế nào:
Tức là ứng với giá trị nhiệt độ đặt là td thì ta có góc mở là ad. Như vậy góc mở tại thời điểm i là:
a(i) = ad - au.
trong đó au = f(U).
Vấn đề là hàm f(U) xác định như thế nào?
Mình chưa làm thực tế về PID bao giờ nên bỡ ngỡ quá. Các bạn chỉ cho mình mấy chiêu được không.
Mình cảm ơn anh nha!
Chào.
Chúc vui vẻ.
Comment