Thông báo

Collapse
No announcement yet.

Cách tìm hệ số Ki,Kp,Kd

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Cách tìm hệ số Ki,Kp,Kd

    Em đang thiết kế bộ điều khiển PID nhưng ko biết tìm các hệ số này thế nào cho hợp lý?
    Mong mọi người giúp đỡ!!
    Hi vọng bài viết giúp X được cho bạn.

  • #2
    vì phương pháp khá dài, khá mất thời gian để post lên đây vì có nhiều công thức và hình vẽ, nên tớ đề nghị bạn tham khảo trong sách Lý thuyết điều khiển tuyến tính của Nguyễn Doãn Phước, trang 311. Trong đó có nói nhiều cách xác định tham số. Tuy nhiên, xác định tham số bằng thực nghiệm vẫn được dùng nhiều nhất. Vì nó đơn giản, hiệu quả trong phạm vi ứng dụng thực tế.

    Cách của riêng tớ như sau, sau khi đã thiết kế bộ đk PID, bạn cứ chọn thông số Ti cho lớn khoảng 30 giây cho an toàn, Kp=1, Td nhỏ hơn một.
    Sau đó dựa vào những cái sau mà điều chỉnh.
    - Nếu quá trình quá độ không lớn thì có thể giảm Ti
    - Nếu quá trình bò mãi mới lên được giá trị đặt thì tăng Kp, giảm Ti
    - Nếu quá trình ổn định lâu thì nên xem lại thời gian trích mẫu.
    ..................... vân vân.....
    Và còn một điều nữa là phải giới hạn bộ Tích phân kẻo nó bị tràn.
    Lưu ý số âm số dương khi khai báo biến.
    Tạm thế, bạn cứ làm đi, có gì khó khăn lại hỏi tiếp. Mà tớ khuyến cáo là bạn phải làm đấy nhé, khi nào bí mới hỏi thôi, đừng có chưa làm đã hỏi là tớ không giúp đỡ nữa đâu đấy. Chúc bạn thành công.
    AFH

    Comment


    • #3
      Em muốn làm thực hành, lý thuyết, hay mô phỏng?

      Em muốn điều khiển cái gì? Hệ thống của em ra sao?

      Trong này có anh thevane, anh Hải Âu đều nghiên cứu về điều khiển, và anh HA đang dạy ở trường đại học ở Úc nữa. Vậy nên em đặt vấn đề câu hỏi thật rõ ràng, và em cố gắng viết ra tất cả những gì em đã làm được, các anh sẽ hướng dẫn cho em từng bước để thực hiện.

      Có rất nhiều anh cũng làm về điều khiển, và làm thực tế. Nhưng anh nói trước các thông tin sau:

      98% các hệ điều khiển trong công nghiệp là PID, 90% trong đó là các hệ SISO, 70% trong đó là các bộ điều khiển PI, và 50% trong số này hơ hơ.. là các bộ điều khiển không tốt !!! (không tốt có nghĩa là hệ số PID chọn không tốt).

      Đây là các con số thực tế của công nghiệp. Vậy nên, nếu các anh có chỉ cho em, và kết quả của em làm, cũng chỉ tàm tạm mà không thể nào tốt hơn được thì em cũng đừng nên thắc mắc rằng cách của các anh chỉ sai hay đúng nhé.

      Em cứ viết ra cụ thể, và đừng ngại gì cả.

      Chúc vui
      Falleaf
      Công ty TNHH Thương mại và Giao nhận R&P
      58/57 Nguyễn Minh Hoàng - Phường 12 - Quận Tân Bình - TP.HCM
      mail@falleaf.net - VP: (04) 36408561 - (08) 38119870

      Comment


      • #4
        Điều khiển PID là luật điều khiển (control law) đơn giản và thông dụng nhất do vậy khi thiết kế hệ thống PID việc chọn khuếch đại điều khiển (control gains) có thể làm bằng thực nghiệm hay nói cách khác là thử trực tiếp các giá trị Kp, Ki, và Kd rồi xem xét phản ứng bước (step response) của hệ thống như thế nào, xem overshoot (quá độ) lớn hay nhỏ như AFH đã trả lời là cách đơn giản và nhanh nhất. Để xác định khoảng giá trị Kp, Ki và Kd sao cho hệ thống điều khiển ổn định thì cần áp dụng các tiêu chuẩn ổn định (stability criteria) hoặc các phương pháp khác. Tuy nhiên việc áp dụng các tiêu chuẩn ổn định không đơn giản, đòi hỏi nhiều tính toán và mất nhiều thời gian hơn.

        PID control ban đầu được thực hiện bằng thuật toán trong đó có ba giá trị khuyếch đại điều khiển (tỷ lệ, tích phân và vi phân) được coi là không đổi, để lựa chọn các giá trị hệ số khuyếch đại khác nhau được thực hiện bằng tay (thường dùng biến trở trong mạch điện của analogue PID controllers) và bằng bàn phím (hoặc núm bấm cho các digital PID controllers hay còn có thể gọi các bộ điều khiển PID dùng microprocessors - microprocessor-based PID controllers). Đến nay các hệ thống điều khiển bằng máy tính ra đời, người ta có thể thiết kế hệ thống điều khiển PID có khuyếch đại điều khiển (Kp, Ki, Kd) là các tham số biến đổi, được tự điều chỉnh tới giá trị tối ưu nhất bằng những thuật toán phức tạp hơn. Ví dụ, tôi đã từng làm thí nghiệm với hệ thống điều khiển PID bằng thuật toán điều khiển self-tuning pole assignment control (điều khiển gán cực tự điều hưởng) để điều chỉnh 3 hệ số khuyếch đại điều khiển Kp, Ki và Kd trong việc điều khiển tàu biển, kết quả rất tốt. Khi điều kiện trong hệ thống điều khiển thay đổi (đổi giá trị input, dòng chảy gió sóng thay đổi...) thì các giá trị Kp, Ki, Kd cũng thay đổi theo, còn điều kiện không thay đổi thì ba giá trị này thường hội tụ (converge) ở một giá trị nào đó (có thể nhìn được ngay trên màn hình khi chạy chương trình thí nghiệm). Bạn hãy thử thiết kế hệ thống điều khiển PID có các khuếch đại thay đổi theo một thuật toán nào đó thử xem sao (eg. optimal, fuzzy, neural network...).

        H.A.

        Comment


        • #5
          Nguyên văn bởi HaiAu2005
          Ví dụ, tôi đã từng làm thí nghiệm với hệ thống điều khiển PID bằng thuật toán điều khiển self-tuning pole assignment control (điều khiển gán cực tự điều hưởng) để điều chỉnh 3 hệ số khuyếch đại điều khiển Kp, Ki và Kd trong việc điều khiển tàu biển, kết quả rất tốt. Khi điều kiện trong hệ thống điều khiển thay đổi (đổi giá trị input, dòng chảy gió sóng thay đổi...) thì các giá trị Kp, Ki, Kd cũng thay đổi theo, còn điều kiện không thay đổi thì ba giá trị này thường hội tụ (converge) ở một giá trị nào đó (có thể nhìn được ngay trên màn hình khi chạy chương trình thí nghiệm).
          Em tuy ko học điều khiển nhưng rất thích vấn đề này, về PID hệ số cố định em cũng đã từng test thử, nhưng để autotuning thì có lẽ rất khó. Rất mong anh cung cấp một số thông tin.

          Comment


          • #6
            anh HAI AU 2005 có thể nói rõ cho em về thuật toán điều khiển self-tuning pole assignment control vì em đang làm bộ điều khiển PID điều khiển các loại động cơ DC
            giúp em với

            Comment


            • #7
              - Việc xác định các hệ số Ki,Kp,Kd bằng thực nghiệm có lẽ là giải pháp tốt cho một hệ thống điều khiển. Em có xem qua phương pháp bằng thực nghiệm nhưng làm cách nào để quan sát đáp ứng của hệ thống để biết hệ số Kp bằng bao nhiêu là thích hợp? công nhận điều khiển PID là cách điều khiển thông minh (em chưa xem Fuzzy, mờ là thế nào?) mà loại bỏ được nhiễu và sai số của hệ thống so với lý thuyết. Có bác nào đã làm một hệ thống điều khiển PID thực chưa. Và một điểm quan trọng là tuning các giá trị!! Em có biết có điều khiển PID cứng và "mềm". Nếu hệ số Ki,Kp,Kd mà tự động điều chỉnh thì quả là tuyệt vời...!!
              Hi vọng bài viết giúp X được cho bạn.

              Comment


              • #8
                Thực tế cho thấy, các bộ điều khiển PID tự chỉnh thường không đem lại được một đặc tính đk tốt nhất. Nhưng nó lại đem lại sự tiện lợi cho người điều khiển. Vì sao lại như thế? Bởi vì các hệ thống tự chỉnh được tính theo một mô hình động. Các phương pháp chỉnh định trong lý thuyết cũng vậy, dựa vào thông số đo được là e và đạo hàm của e (hoặc có thể thêm đạo hàm bậc 2 của e nữa). các thông số này cho ta biết trạng thái của đối tượng hiện thời, nhưng nếu có nhiễu nó cũng sẽ hiểu sai. Nhưng may thay, không phải cái gì cũng đòi hỏi tốt nhất, chỉ cần đủ tốt, đủ bền, đủ đơn giản trong sử dụng, đủ rẻ, đủ tin cậy là được rồi. Thực tế ngày nay cũng đã xuất hiện nhiều bộ điều khiển như thế. Có lọc nhiễu, có Fuzzy, có chỉnh định bằng một phương pháp nào đó, thực hiện trên một chíp rẻ tiền nhưng đủ mạnh để thực thi... vân vân.

                Thực tế đa số các bộ đk PID được các kỹ sư chế tạo đều là loại chỉnh tay hết. Tất nhiên tùy từng trường hợp cụ thể. Còn các bài toán khác thì có thể sử dụng các bộ đk lai.
                Một lời khuyên là: nếu bạn định thiết kế phần PID auto-turning thì trước hết bạn phải hiểu kỹ lưỡng về bộ đk PID đã. Và phải có một bề dày kinh nghiệm trong việc sử dụng PID. Thiếu một trong hai cái này sẽ làm cho bạn rất khó khăn và vất vả để thiết kế đó. Và cái vất vả đó cũng chính là bề dầy kinh nghiệm trong viêc thiết kế và sử dụng bộ đk PID.
                AFH

                Comment


                • #9
                  Ai quan tâm tìm hiểu về self-tuning pole assignment control thì tìm những tài liệu sau đọc:

                  Clarke, D.W. (1985), Chapter 2 Introduction to Self-tuning Controllers, Self-tuning and Adaptive Control: Theory and Application, pp.37-71. Peter Peregrinus Ltd., UK.

                  Clarke, D.W. (1985), Chapter 6 Implementation of Self-tuning Controllers, Self-tuning and Adaptive Control: Theory and Application, pp.145-165. Peter Peregrinus Ltd., UK.

                  Hang, C.C., Lee, T.H. and Ho, W.K (1993), Adaptive Contorl, Intrument Society of America, North Carolina, USA.

                  Wellstead, P.E. and M.B. Zarrop (1991). Self-tuning Systems: Control and Signal Processing, John Wiley and Sons Ltd., UK.

                  Internet sources:

                  http://www.fee.unicamp.br/revista_sba/vol11/v11a209.pdf
                  http://www.fee.unicamp.br/revista_sba/vol11/v11a209.htm
                  http://www.eeng.dcu.ie/~ee490/Adapti...olesss_stc.htm
                  http://www.personal.rdg.ac.uk/~sis01xh/teaching/ComputerControl/adaslide4.pdf#search='selftuning%20pole%20assignme nt%20control'

                  Tôi xin có thêm chút thông tin về điều khiển gán cực tự điều hưởng như sau (xin lỗi nếu có nhiều chỗ tôi dùng từ tiếng Anh mà không dịch được hoặc dịch không đúng sang tiếng Việt vì từ lúc nghiên cứu về điều khiển tôi không có và không tham khảo tài liệu tiếng Việt).

                  Điều khiển gán cực tự điều hưởng
                  Self-tuning pole assignment control
                  (Điều khiển PID gán cực tự điều hưởng)

                  Phương pháp điều khiển gán cực tự điều hưởng là một phương pháp điều khiển dựa trên lý thuyết điều khiển số (digital control), giả thiết rằng hệ thống được điều khiển (quá trình, process, hoặc plant) được mô tả bằng một phương trình toán học (difference equation) như sau:

                  y(k) + a1y(k-1) + a 2y(k-2) = b0u(k-1) hoặc viết theo cách khác:

                  y(k) = [b0z^(-1)/(1+a1z^(-1)+a 2z^(-2))]*u(k)

                  (lưu ý dấu ^ chỉ lũy thừa) trong đó y(k) va` u(k) là output và input, a1, a2 va` b0 là các tham số (coefficients) của hệ thống, các tham số này coi là biến đổi theo thời gian. Bộ điều khiển PID được tính toán bằng biểu thức sau:

                  u(k) = r(k)[(g0+g1+g2) - (g0+g1z^(-1)+g2z^(-2))y(k)]/(1-z^(-1))

                  trong đó các hệ số g0, g1, g2 được tính toán dựa trên thuật toán gán cực (tức là gán cực cho toàn bộ hệ thống vòng kín bằng cực nằm trong miền ổn định). Các hệ số g0, g1, và g2 liên quan tới khuếch đại điều khiển kp, ki, kd như sau:

                  kp = g1 - 2g2
                  ki = g0 + g1 + g2
                  kd = g2

                  Sau khi tổng hợp xong hệ thống vòng kín (closed-loop) chúng ta có mối quan hệ giữa tín hiệu ra y(k), hay có thể gọi là biến quá trình (process variable) và tín hiệu vào r(k) như sau:

                  y(k) = [num/den]*r(k)

                  trong đó num (numerator, tử số) = b0z^(-1)*(go+g1+g2)
                  den (denominator, mẫu số) = (1-z^(-1))(1+a1z^(-1)+a2z^(-2))+bz^(-1)(g0+g1z^(-1)+g2^(-2))

                  Từ phương trình vòng kín này có những cực khác nhau (theo đa thức ở mẫu sồ của hàm truyền), chúng ta gán cho hệ thống bằng cực mà chúng ta lựa chọn, ví dụ bằng biểu thức bậc 2 sau: T = 1+t1z^(-1)+t2z^(-2). Cuối cùng bằng phép gán cực chúng ta có thể tính được các hệ số:

                  g0 = [t1+(1-a1)]/b0
                  g1 = [t2+(a1-a2)]/b0
                  g2 = a2/b0

                  Điểm mấu chốt của phương pháp điều khiển gán cực là phải xác định được hệ số a1, a2, b0 của hệ thống. Trong lý thuyết điều khiển có nhiều phương pháp xác định các hệ số này, ví dụ recursive least squares algorithm (thuật toán bình phương nhỏ nhất đệ quy), hoặc recursive prediction error algorithm (thuật toán sai số dự đoán đệ quy), maximum likelihood method (chưa dịch được!), vân vân...Còn hệ số t1, t2 của đa thức T (cực tự chọn) thì lựa chọn đơn giản hơn việc lựa chọn kp, ki và kd vì chúng ta có thể tự chọn cực của hệ thống sao cho chúng nằm ở miền mà hệ thống ổn định (eg bên trái mặt phẳng số phức và nằm trong vòng tròn đơn vị). Một cách lựa chọn các hệ số t1 và t2 là áp dụng gán cực cho hệ thống là bậc 2, chúng ta sẽ điều chỉnh đặc tính của hệ thống bằng hai giá trị tần số tự nhiên (natural frequency) và hệ số giảm dao động (damping ratio) theo biểu thức sau:

                  t1 = -2*exp(-omega*xi*tau)*cos(omega*tau*sqrt(1-xi))
                  t2 = exp(-2*omega*xi*tau)

                  trong đó omega = natural frequency, xi = damping ratio, tau = sampling interval. Như vậy bài toán từ việc xác định ba khuếch đại điều khiển kp, ki và kd thì chúng ta có thể chọn hai tham số natural frequency và damping ratio của một hệ thống bậc 2. Còn sampling interval sẽ được chọn sao cho phù hợp với sampling interval của thiết bị đo tín hiệu y(k) - process variable. Các hệ số của hệ thống a1, a2, b0, g0, g1, g2 (hay tương đương với ba khuếch đại điều khiển kp, ki, kd) hoàn toàn được tự điều chỉnh trong quá trình thực hiện hệ thống điều khiển. Nếu hệ thống ổn định không có nhiễu, các hệ số của hệ thống sẽ hội tụ ở những giá trị nhất định nào đó. Mối quan tâm của người sử dụng hệ thống điều khiển PID gán cực tự điều hưởng là làm sao để cho hệ thống ổn định nhanh, dao động ít. Mà như chúng ta biết, từ một hệ thống phức tạp, qua phép gán cực chúng ta chuyển thành hệ thống bậc 2 (phụ thuộc vào lũy thừa của đa thức T), và đặc tính hệ thống bậc hai được quyết định bởi damping ratio, và natural frequency. Giá trị tốt nhất cho hệ thống điều khiển PID tự điều hưởng thường được chọn trong khoảng 0.6-0.7 (giá trị mà tại đó nếu input là step function thì system response đạt tới giá trị mong muốn nhanh nhất và có overshoot nhỏ nhất, còn nếu input là sinewave thì tại đó có hiện tượng cộng hưởng - resonance phenomenon).

                  Hi vọng chút thông tin này sẽ giúp các bạn có thêm ý tưởng và tìm tòi tới nhiều thuật toán điều khiển khác tốt hơn.

                  Hải Âu
                  Last edited by HaiAu2005; 24-02-2006, 04:25.

                  Comment


                  • #10
                    Anh HaiAu ơi, lúc nào anh có thời gian thì post tiếp nhé, em đang theo dõi từng chữ của anh đây

                    Comment


                    • #11
                      Theo em hiểu thì đây không phải là bộ điều khiển PID và cũng không phải bộ chỉnh định tham số PID. Vì thuật toán của anh tác động trực tiếp tới tín hiệu điều khiển. Đây là bộ điều khiển gán điểm cực. Nghĩa là nó luôn đưa hệ thống về trạng thái ổn định bằng cách dồn các điểm cực về bên trái trục ảo. Hệ thống này phản ứng rất mạnh với nhiễu lớn hay đột ngột thay đổi giá trị đặt. Và thông thường khi sử dụng bộ điều khiển này ta phải có một khâu lọc nhiễu hữu hiệu để tránh hiện tượng cộng hưởng do nhiễu gây ra. Đó là ý kiến của em, còn anh HaiAu thấy có đúng kô?
                      AFH

                      Comment


                      • #12
                        Em không phải dân đièu khiển nên mong các bác chỉ giáo, em thấy trong điều khiển động cơ người ta dùng thêm khâu nhận dạng động cơ, cách này tính toán nhiều, hay dùng bộ fuzzy đầu vào là e và đạo hàm của e đầu ra là tham số bộ biến đổi cách này thu được kết quả theo mô phỏng cũng tương đối nhưng khó là phải hiểu động cơ, tính toán cũng giảm so với điều khiển thích nghi ....Kiến thức còn kém, mong các bác chỉ giáo

                        Comment


                        • #13
                          Tiện thể bác nào cho em hỏi chọn chu kì cắt mẫu đối với hệ điều khiển số thế nào cho hợp lí .Nói về động cơ càng tốt vì em chỉ quan tâm đến nó, Còn hệ thống em không học

                          Comment


                          • #14
                            Em đang học cái này, Môn Điều Khiển Số của thầy Phùng Quang. Dài lắm!!!
                            PNLab
                            Mạch nạp/debug ULink2, Jlink ARM USB
                            Mạch nạp AVR, PIC, 8051, MSP430 USB
                            Mạch phát triển STM32, ARM9, ARM11
                            more...www.pnlabvn.com

                            Comment


                            • #15
                              Chào các bác, tôi cũng may mắn là được chỉnh hệ số Kp, Ki, Kd cho một số đối tượng thực, nói chung là rất khó khăn. Về lý thuyết mà nói thì để tìm các hệ số này ta có rất nhiều cách, tùy thuộc vào đối tượng cụ thể mà ta lựa chọn. Nhưng thực tế do đối tượng cần điều khiển của ta bị phụ thuộc rất nhiều các tham số khác nhau nên chúng tôi chủ yếu là "mò" theo kinh nghiệm.

                              Comment

                              Về tác giả

                              Collapse

                              lick Tìm hiểu thêm về lick

                              Bài viết mới nhất

                              Collapse

                              Đang tải...
                              X