Có một số điểm tại sao dạng biến đổi Z có tiện ích cao hơn.
Hỏi bất cứ ai thúc đẩy cách tiếp cận dựa trên thời gian / đơn giản / sans-PHD, điều gì đã đặt ra thuật ngữ Kd của họ. Họ có khả năng trả lời 'không' và có khả năng họ nói D không ổn định (không có bộ lọc thông thấp). Trước khi tôi học được cách tất cả những thứ này kết hợp với nhau, tôi sẽ có và đã nói những điều như vậy.
Điều chỉnh Kd là khó khăn trong miền thời gian. Khi bạn có thể thấy chức năng chuyển (biến đổi Z của hệ thống phụ PID), bạn có thể dễ dàng thấy nó ổn định như thế nào. Bạn cũng dễ dàng thấy thuật ngữ D ảnh hưởng đến bộ điều khiển như thế nào so với các tham số khác. Nếu tham số Kd của bạn đóng góp 0,00001 cho các hệ số đa thức z nhưng thuật ngữ Ki của bạn được đặt trong 10,5 thì thuật ngữ D của bạn quá nhỏ để có ảnh hưởng thực sự đến hệ thống. Bạn cũng có thể thấy sự cân bằng giữa các điều khoản Kp & Ki.
DSP được thiết kế để tính toán phương trình sai phân hữu hạn (FDE). Chúng có các mã op sẽ nhân một hệ số, tính tổng cho một bộ tích lũy và dịch chuyển một giá trị trong bộ đệm trong một chu kỳ lệnh. Điều này khai thác bản chất song song của FDE. Nếu máy thiếu mã op này ... thì đó không phải là DSP. Các PowerPC nhúng (MPC) có một thiết bị ngoại vi dành riêng cho việc tính toán FDE (họ gọi nó là đơn vị số thập phân). DSP được thiết kế để tính toán FDE vì việc chuyển đổi hàm truyền thành FDE là chuyện nhỏ. 16-bit không đủ phạm vi động để dễ dàng định lượng hệ số. Nhiều DSP đầu tiên thực sự có các từ 24 bit vì lý do này (tôi tin rằng các từ 32 bit là phổ biến ngày nay.)
IIRC, biến đổi được gọi là biến đổi song tuyến có hàm truyền (biến đổi z của bộ điều khiển miền thời gian) và biến nó thành FDE. Chứng minh nó là "khó", sử dụng nó để thu được kết quả là không đáng kể - bạn chỉ cần dạng mở rộng (nhân mọi thứ ra) và các hệ số đa thức là các hệ số FDE.
Bộ điều khiển PI không phải là một cách tiếp cận tuyệt vời - một cách tiếp cận tốt hơn là xây dựng một mô hình về cách hệ thống của bạn hoạt động và sử dụng PID để sửa lỗi. Mô hình nên đơn giản và dựa trên vật lý cơ bản của những gì bạn đang làm. Đây là nguồn cấp dữ liệu vào khối điều khiển. Sau đó, một khối PID sửa lỗi bằng cách sử dụng phản hồi từ hệ thống được kiểm soát.
Nếu bạn sử dụng các giá trị được chuẩn hóa, [-1 .. 1] hoặc [0 ... 1], cho điểm đặt (tham chiếu), phản hồi và chuyển tiếp nguồn cấp dữ liệu thì bạn có thể thực hiện một thuật toán 2 cực 2 cực trong lắp ráp DSP được tối ưu hóa và bạn có thể sử dụng nó để thực hiện bất kỳ bộ lọc bậc 2 nào bao gồm bộ lọc PID và bộ lọc thông thấp (hoặc thông cao) cơ bản nhất. Đây là lý do tại sao DSP có các mã op giả định các giá trị được chuẩn hóa, ví dụ: một mã sẽ đưa ra ước tính của squareroot nghịch đảo cho phạm vi (0..1] Bạn có thể đặt hai bộ lọc 2p2z nối tiếp và tạo bộ lọc 4p4z, điều này cho phép bạn tận dụng mã DSP 2p2z của mình để thực hiện bộ lọc Butterworth vượt qua 4 chạm.
Hầu hết việc thực hiện miền thời gian nướng thuật ngữ dt vào các tham số PID (Kp / Ki / Kd). Hầu hết các triển khai tên miền z không. dt được đưa vào các phương trình lấy Kp, Ki, & Kd và biến chúng thành các hệ số [] & b [] để hiệu chuẩn (điều chỉnh) của bộ điều khiển PID hiện không phụ thuộc vào tốc độ điều khiển. Bạn có thể làm cho nó chạy nhanh hơn mười lần, tạo ra toán học [] & b [] và bộ điều khiển PID sẽ có hiệu suất ổn định.
Một kết quả tự nhiên của việc sử dụng FDE là thuật toán hoàn toàn "không ổn". Bạn có thể thay đổi mức tăng (Kp / Ki / Kd) khi đang chạy và nó hoạt động tốt - tùy thuộc vào việc triển khai miền thời gian, điều này có thể xấu.
Rất nhiều nỗ lực thường được dành cho các bộ điều khiển PID miền thời gian để ngăn chặn việc tích hợp. Có một mẹo đơn giản với biểu mẫu FDE làm cho PID hoạt động tốt, bạn có thể kẹp giá trị của nó trong bộ đệm lịch sử. Tôi chưa thực hiện phép toán để xem điều này ảnh hưởng đến hoạt động của bộ lọc (liên quan đến các tham số Kp / Ki / Kd), nhưng kết quả theo kinh nghiệm là nó 'trơn tru'. Điều này đang khai thác bản chất 'không ổn định' của biểu mẫu FDE. Một mô hình chuyển tiếp thức ăn góp phần ngăn chặn việc tích hợp và việc sử dụng thuật ngữ D giúp cân bằng thuật ngữ I. PID thực sự không hoạt động như dự định với mức tăng D. (Điểm đặt vòng xoay là một tính năng quan trọng khác để ngăn gió quá mức.)
Cuối cùng, biến đổi Z là một chủ đề chưa được nâng cấp, không phải là "Ph.D." Bạn nên tìm hiểu tất cả về chúng trong Phân tích phức tạp. Đây là nơi bạn học đại học, người hướng dẫn bạn có, và nỗ lực bạn học toán và học cách sử dụng các công cụ có sẵn có thể tạo ra sự khác biệt đáng kể trong khả năng thực hiện trong ngành. (Lớp phân tích phức tạp của tôi thật kinh khủng.)
Công cụ công nghiệp defacto là Simulink (thiếu hệ thống đại số máy tính, CAS, vì vậy bạn cần một công cụ khác để tạo ra các phương trình tổng quát). MathCAD hoặc wxMaxima là những người giải quyết biểu tượng bạn có thể sử dụng trên PC và tôi đã học cách làm điều đó bằng máy tính TI-92. Tôi nghĩ TI-89 cũng có hệ thống CAS.
Bạn có thể tra cứu các phương trình miền z hoặc tên miền laplace trên wikipedia cho các bộ lọc PID & low-pass. Có một bước ở đây mà tôi không mò mẫm, tôi tin rằng bạn cần dạng miền thời gian rời rạc của bộ điều khiển PID sau đó cần thực hiện chuyển đổi z của nó. Biến đổi laplace phải rất giống với biến đổi z và được đưa ra dưới dạng PID {s} = Kp + Ki / s + Kd · s Tôi nghĩ rằng biến đổi z sẽ giải thích tốt hơn cho các Dt trong các phương trình sau. Dt là delta-t [ime], tôi sử dụng Dt để không nhầm lẫn hằng số này với đạo hàm 'dt'.
b[0] = Kp + (Ki*Dt/2) + (Kd/Dt)
b[1] = (Ki*Dt/2) - Kp - (2*Kd/Dt)
b[2] = Kd/Dt
a[1] = -1
a[2] = 0
Và đây là FDE 2p2z:
y[n] = b[0]·x[n] + b[1]·x[n-1] + b[2]·x[n-2] - a[1]·y[n-1] - a[2]·y[n-2]
DSP thường chỉ có bội số & cộng (không phải bội & trừ) để bạn có thể thấy phủ định được đưa vào hệ số []. Thêm nhiều b cho nhiều cực hơn, thêm nhiều hơn cho nhiều số không.