Bộ lọc Kalman

Collapse
This is a sticky topic.
X
X
 
  • Giờ
  • Show
Clear All
new posts
  • HAI
    Nhập môn đệ tử
    • Sep 2005
    • 10

    #46
    Em biết là mấy bác rất bận.Nhưng em nghĩ mấy bác phải có trách nhiệm truyền kinh nghiệm lại cho tụi em những đứa nhỏ mới bắt đầu học, đơn giản là mấy bác "già" hơn tụi em. Em nghĩ kiến thức nào cũng thế, nói một cách cụ thể, với đầy đủ công thức chứng minh thì không thể một hai dòng, một hai trang mà nói hết được, nhưng em thường thấy cái ý tưởng bên trong của một vấn đề thường rất trong sáng và dễ hiểu.Tuy nhiên, để ngộ ra được cái chân lý giản đơn bên trong một vấn đề quả thật là một việc không đơn giản, cần có một thời gian nghiên cứu và trải nghiệm và cái này chắc chắn là thuộc lĩnh vực của những người "già" như mấy bác.Cái đấy là cái chúng em cần để bám vào đó mà đọc thêm sách vở rồi tự ngộ ra những kiến thức ấy.
    Mấy bác nếu giúp được tụi em thế thì quả là đáng quý, nhưng tụi em chắc chắn chẳng đền ơn được mấy bác.Chỉ biết rằng đến khi tụi em già lại phải có trách nhiệm dẫn dắt cho thế hệ tiếp theo, cái nợ ở đời là thế thôi.
    Nói tóm lại bác phải giúp tụi em, đó là trách nhiệm của người già như các bác .

    Comment

    • candykitty
      Đệ tử 1 túi
      • Nov 2006
      • 15

      #47
      Với nguyên tắc một người đã từng ứng dụng các bộ lọc vào việc điều khiển động cơ không đồng bộ (mô phỏng thôi), mình thấy trước hết nên các bạn mới nên coi từ giải thuật điều khiển MRAS (Model Reference Adaptive System), sau đó hãy đi vào tìm hiểu các bộ lọc!

      Comment

      • HAI
        Nhập môn đệ tử
        • Sep 2005
        • 10

        #48
        Cám ơn bác candykitty, em sẽ tìm hiểu cái MRAS thử xem.Em đi từ bộ lọc tuyến tính rồi nghe mọi người quản cáo về bộ lọc Kalman nên tò mò đọc, em tiếp cận thuần tuý là ý toán của nó thôi chứ thực tế ứng dụng của nó thì mù tịt.Kiến thức về điều khiển của em thì phải nói là chưa có gì, cái nhìn hạn hẹp lắm nên hay hỏi những câu ngớ ngẩn.Chắc là vì chúng ngớ ngẩn quá nên chẳng ai trả lời cả.
        Thôi vậy, để khi nào mấy bác rãnh rỗi thì post bài thêm vậy.Em sẽ cố gắng để cái luồng này không bị chìm nghỉm, đợi một ngày đẹp trời các bác lại vào tham gia góp ý.

        Comment

        • HAI
          Nhập môn đệ tử
          • Sep 2005
          • 10

          #49
          Ý tưởng đầu tiên của bác F là viết về bộ lọc Kalman một cách cơ bản với một thứ ngôn ngữ dễ hiểu gần gũi với người mới bắt đầu học.Mình nghĩ vài trang đầu của luồng này đã đáp ứng được điều đó.Mình xin tóm tắt sơ bộ như sau:
          Thứ nhất bạn nắm được cơ bản thế nào là bộ lọc, vai trò của bộ lọc (nếu quên thì xem lại mấy bài của bác F)
          Thứ hai đối tượng của bộ lọc là các tiến trình ngẫu nhiên.
          Tính ngẫu nhiên của tiến trình do hai nguyên nhân chính (xem bài của bác ami)
          - nhiễu đo (nhiễu do các thiết bị đo)
          - nhiễu tiến trình (hay nhiễu hệ thống) (bản thân hệ thống có một độ không chắc chắn nào đó)
          Vì quá trình là ngẫu nhiên nên để đánh giá nó cần một thước đo, đó chính là hệ số tương quan, độ lệch bình phương...Các khái niệm này bác F cũng đã nói rồi.
          Ông Kalman trong bài báo cáo đầu tiên chỉ đề cập đến nhiễu hệ thống còn nhiễu đo thì sau này người ta mới thêm vào.Mục đích của ông là thiết kế một bộ lọc tuyến tính tối ưu sử dụng lợi nhất về bộ nhớ.Bạn để ý rằng để đánh giá bước thứ n+1 ta chỉ cẩn biết giá trị đo của nó và giá trị đánh giá thứ n, các bộ lọc khác thì cần biết đến n-p giá trị trước đó (p chính là bậc của bộ lọc).Thêm nữa ông cho tất cả các nhiễu đều là dạng ồn trắng, ma trận hệ số tương quan của chúng là ma trận đường chéo, điều này giúp cho dễ tín toán hơn.
          Thứ ba, tiêu chuẩn để thiết kế bộ lọc là tối ưu một hàm mục tiêu, cụ thể ở đây là trung bình bình phương sai số của tín hiệu đánh giá và tín hiệu thật bằng 0.Dựa trên điều này ông Kalman đã xây dựng một thuật toán truy hồi cho bộ lọc này.Một kết quả quan trọng trong đại số tuyến tính mà các bộ lọc tuyến tính thường sử dụng là "đánh giá tối ưu của một vecto a trong một không gian tuyến tính B chính là hình chiếu của nó lên không gian B".Những bài sau mình sẽ cố gắng đề cập kỹ hơn về nghiệm của hệ số Kalman.
          Ví dụ sử dụng Kalman thì mình thấy cái ví dụ trong Matlab rất khó hiểu khi mới đọc, tốt hơn hết là bạn dùng chương trình mà bác ami đã post ấy, cái này dễ tiếp thu hơn.
          Ứng dụng của Kalman cái này mấy bác nói mà mình chưa rõ nên chưa thể tóm tắt được.Bạn có thể xem thêm bài của bác benq, trong đấy có một vài ý hay, nhưng mình chưa làm thử.
          À mà nói thêm Kalman là người đã tìm ra được tính đỗi ngẫu giữa tính chất quan sát được và tính chất điều khiển được của một hệ thống.
          Last edited by HAI; 14-11-2006, 06:45 AM.

          Comment

          • hoangminh1234
            Đệ tử 1 túi
            • Nov 2005
            • 23

            #50
            trong luận văn segway anh ami đã áp dụng bộ lọc kalman tốt thật. Phần lý thuyết anh nói nhanh quá nên phải đọc thêm mới biết ảnh nói gì
            Last edited by hoangminh1234; 23-11-2006, 09:14 PM.

            Comment

            • hoangminh1234
              Đệ tử 1 túi
              • Nov 2005
              • 23

              #51
              Nguyên văn bởi bunyuki View Post
              hê hê Sorry,em nhầm chỗ:E{v.v'}=R.
              Trả lời Béo luôn:
              Khi tính toán bộ lọc Kalman là phải đưa ra giá trị ước lượng dựa các biến trạng thái trên các thông số tổng hợp của quá trình,đo,mô hình...một cách chân thực nhất để lam đầu vào cho bộ điều khiển.Khi tính toán người ta coi chia thành hai giai đoạn:Predict và Correct.Hai giai đoạn này bổ sung ,tác động lẫn nhau theo 1 vòng tròn khép kín(tao ko vẽ minh hoạ đc) đại loại là đoán trứơc rồi sửa cái đoán ấy cho phù hợp.Cho nên người ta còn gọi KALMAN FILTER là cái ESTIMATOR là vì thế.Trong đó,mỗi một giai đoạn người ta tính toán 1 thông số.Giai đoạn Predict người ta ước lượng trạng thái của hệ thống dựa trên trạng thái trươc đó đã có,cái giá trị ước lượng trong giai đoạn này gọi là 'a priori' tức là trạng thái trước,trạng thái sơ cấp ,trạng thái chưa đc bù kí hiệu là Xk-(a priori thời điểm k):
              Xk-=A*x(k-1)^+B*u
              Trong giai đoạn này ta tính covariance của sai lệch nhiễu luôn(cũng là trạng thái priori) Pk-=A*Pk-1*A'+Q
              Tuy nhiên giá trị priori này chưa mang tính chân thực về hệ thống,và ta cần phải Correct lại cho đúng dựa trên các giá trị đo đc từ các sensor.Đó chính là nhiẹm vụ của giai đoạn Correct(hay update này).Giá trị đc corect lúc này gọi là 'a posteriori' kí hiệu là Xk^:
              Xk^=Xk- + K(zk-H*Xk-)
              zk:giá trị nhận từ sensor
              K là hệ số Kalman phản hồi sai lệch trạng thái.Việc giải K khá phức tạp.Một trong cách đó là giải phương trình Riccacti.Cái này tao có nhưng chắc chẳng cần đọc,hoa mắt chóng mặt lắm.Đại loại là tính K theo covariance của sai lẹch trạng thái như sau:
              K=Pk-*H'*inv(H*Pk-*H'+R)
              Rồi tính thêm Pk=(I-K*H)*Pk- để cho vòng lặp sau
              thế đó,lằng nhằng vậy thôi
              khá lằng nhằng nhưng viết ra thấy mình hỉu đôi chút hêhê
              Bác FALLEAF đâu nhẩy,lâu lắm ko thấy
              zk là giá trị đo từ cảm biến hả bạn, theo công thức thì zk= xk + v (H=1). Mình băn khoăn chỗ này vì theo định nghĩa v là nhiễu Gauss, vậy xk lấy giá trị nào để tính x^k- à ?? Để mình tính lại thử xem, cảm ơn bạn nhé
              ////////tính toán xong thấy đúng như bạn nói, cám ơn you again
              Last edited by hoangminh1234; 23-11-2006, 09:02 PM.

              Comment

              • Mecha
                Trưởng lão PIC bang
                • Dec 2005
                • 315

                #52
                Bộ lọc Kalman thực chất là bộ quan sát trạng thái tối ưu cho hệ thống. Điều này có nghĩa là khi ứng dụng bộ lọc Kalman, hai điều kiện sau đây phải được thỏa mãn:
                - Cấu trúc và thông số của đối tượng và của mô hình mẫu phải tương đương nhau.
                - Nhiễu hệ thống (w) và nhiễu đo lường (v) phải là nhiễu ồn trắng với biên độ trung bình bằng 0 và thỏa mãn mối tương quan sau: E(w)=E(v)=0, E(wv')=0.

                Thêm một yếu tố nữa cần quan tâm là:
                Từ phương trình ddt(x)=Ax+Bu+Gw có thể thấy ngay là phải biết được biến trạng thái nào của đối tượng chịu tác động của nhiễu hệ thống w -> mới có thể xác định được ma trận G. Biết được G, thay vào phương trình Riccati để tìm ma trận P -> tìm được L -> ra được trạng thái ước lượng.

                Ví dụ: giả sử ta dk hệ động cơ DC kéo cục tải trên một mặt phẳng (gần đúng coi là đối tượng bậc 2 tuyến tính) -> có hai biến trạng thái là vị trí (x1) và tốc độ (x2). Nếu ta xác định được rằng nhiễu hệ thống (giả sử là ma sát giữa tải và mặt bàn) sẽ chỉ làm thay đổi x2 (tức là hệ số a22 của ma trận A bị thay đổi) -> G=[0;1].
                Sống là động nhưng lòng luôn bất động,
                Sống là thương nhưng lòng chẳng vấn vương,
                Sống yên vui danh lợi vẫn coi thường,
                Tâm bất biến giữa dòng đời vạn biến.


                Chú ý: đề nghị các thành viên đọc luồng dưới đây trước khi post bài:
                http://www.picvietnam.com/forum//showthread.php?t=1263

                Comment

                • HAI
                  Nhập môn đệ tử
                  • Sep 2005
                  • 10

                  #53
                  Cái yếu tố thứ ba về ma trận G hay quá, cái này chắc phải làm mới có được kinh nghiệm này.Còn cái ý đầu tiên em vẫn không hiểu lắm, cấu trúc và thông số của đối tượng và của mô hình mẫu phải "tương đương" nhau.Anh có thể nói rõ hơn cái ý "tương đương" này được không hả anh?
                  Nhân tiện nói về đối tượng với mô hình mẫu, anh cho em hỏi cái khái niệm nominal là thế nào hả anh?Em thấy có hàm truyền nominal, giá trị nominal(trong phương pháp đo), nó cứ lờ mờ, em không hiểu được.Em nghĩ nó giống như là cái gì đó cân bằng, ở không, hoàn toàn không có nhiễu, hay cái dạng na ná thế.Nhưng em thấy nó không đúng lắm.Anh giải thích cho em với nhé!

                  Comment

                  • tda
                    Đệ tử 3 túi
                    • Jul 2005
                    • 51

                    #54
                    Không biết đã nói chưa nhưng theo mình trước khi tiếp cận bộ lọc Kalman, bạn nên đọc phần "Điều khiển bằng hối tiếp trạng thái", "Quan sát trạng trái", kết hợp chúng là "Điều khiển bằng hối tiếp trạng thái quan sát". Rất may phần này thầy Dương Hoài Nghĩa có dạy hồi đầu năm tư nên khi đọc Kalman mình thấy nó na ná giông nhau nên cũng dễ hiểu.

                    Comment

                    • Mecha
                      Trưởng lão PIC bang
                      • Dec 2005
                      • 315

                      #55
                      Nguyên văn bởi HAI View Post
                      Cái yếu tố thứ ba về ma trận G hay quá, cái này chắc phải làm mới có được kinh nghiệm này.Còn cái ý đầu tiên em vẫn không hiểu lắm, cấu trúc và thông số của đối tượng và của mô hình mẫu phải "tương đương" nhau.Anh có thể nói rõ hơn cái ý "tương đương" này được không hả anh?
                      Nhân tiện nói về đối tượng với mô hình mẫu, anh cho em hỏi cái khái niệm nominal là thế nào hả anh?Em thấy có hàm truyền nominal, giá trị nominal(trong phương pháp đo), nó cứ lờ mờ, em không hiểu được.Em nghĩ nó giống như là cái gì đó cân bằng, ở không, hoàn toàn không có nhiễu, hay cái dạng na ná thế.Nhưng em thấy nó không đúng lắm.Anh giải thích cho em với nhé!
                      - Cấu trúc và thông số của đối tượng và của mô hình mẫu phải "tương đương" nhau nghĩa là: giả sử ta xác định được đối tượng dk có dạng bậc 4 tuyến tính => Mô hình mẫu cũng phải là bậc 4. Và khi vẽ mô hình trong Matlab hoặc 20-sim em sẽ có 4 đường tín hiệu từ đối tượng thực (y) và 4 đường tín hiệu ra từ mô hình mẫu (y_hat) thì mới tính được cái (y - y_hat) chứ đúng không. Từ đó thì sẽ xác định được trạng thái ước lượng theo công thức ddt(x)=Ax+By+L(y - y_hat) => ddt(x)=Ax+By+L(y-Cx-Du) với A,B,C,D là thông số của mô hình mẫu.

                      - Khái niệm nominal anh cũng không biết dịch ra tiếng Việt chuẩn nhất thì tương đương với khái niệm gì. Anh nghĩ có thể coi nominal = chuẩn hay lý tưởng. Ví dụ "Nominal plant model" có nghĩa là đối tượng có tính chất tường minh (no uncertainty). Hay "nominal feedback loop" có nghĩa là vòng lặp phản hồi được thiết kế với giả sử rằng, hệ thống không bị ảnh hưởng bởi cả nhiễu ngoài và nhiễu hệ thống.
                      Last edited by Mecha; 17-03-2007, 05:06 PM.
                      Sống là động nhưng lòng luôn bất động,
                      Sống là thương nhưng lòng chẳng vấn vương,
                      Sống yên vui danh lợi vẫn coi thường,
                      Tâm bất biến giữa dòng đời vạn biến.


                      Chú ý: đề nghị các thành viên đọc luồng dưới đây trước khi post bài:
                      http://www.picvietnam.com/forum//showthread.php?t=1263

                      Comment

                      • Mecha
                        Trưởng lão PIC bang
                        • Dec 2005
                        • 315

                        #56
                        Nguyên văn bởi HAI View Post
                        Cám ơn bác candykitty, em sẽ tìm hiểu cái MRAS thử xem.Em đi từ bộ lọc tuyến tính rồi nghe mọi người quản cáo về bộ lọc Kalman nên tò mò đọc, em tiếp cận thuần tuý là ý toán của nó thôi chứ thực tế ứng dụng của nó thì mù tịt.Kiến thức về điều khiển của em thì phải nói là chưa có gì, cái nhìn hạn hẹp lắm nên hay hỏi những câu ngớ ngẩn.Chắc là vì chúng ngớ ngẩn quá nên chẳng ai trả lời cả.
                        Thôi vậy, để khi nào mấy bác rãnh rỗi thì post bài thêm vậy.Em sẽ cố gắng để cái luồng này không bị chìm nghỉm, đợi một ngày đẹp trời các bác lại vào tham gia góp ý.
                        Bạn có thể tham khảo về MRAS ở luồng này:
                        Lý thuyết điều khiển và ứng dụng lý thuyết điều khiển trong những trường hợp thực tế

                        Trong đó có phần thiết kế bộ quan sát trạng thái thích nghị dựa trên Indirect MRAS.
                        Sống là động nhưng lòng luôn bất động,
                        Sống là thương nhưng lòng chẳng vấn vương,
                        Sống yên vui danh lợi vẫn coi thường,
                        Tâm bất biến giữa dòng đời vạn biến.


                        Chú ý: đề nghị các thành viên đọc luồng dưới đây trước khi post bài:
                        http://www.picvietnam.com/forum//showthread.php?t=1263

                        Comment

                        • candykitty
                          Đệ tử 1 túi
                          • Nov 2006
                          • 15

                          #57
                          Mình có đọc bài báo đó của bạn, kg biết bạn có làm thực tế chưa? Nếu chỉ dùng mô phỏng thì cách đây hai năm mình cũng có một bài báo về vấn đề MRAS này (điều khiển sesorless)

                          Comment

                          • candykitty
                            Đệ tử 1 túi
                            • Nov 2006
                            • 15

                            #58
                            Sensorless mới đúng!

                            Comment

                            • Mecha
                              Trưởng lão PIC bang
                              • Dec 2005
                              • 315

                              #59
                              Cái điều khiển sensorless thấy nhiều nhất trong biến tần. Điều khiển dựa trên mô hình nội (internal model). Tôi nghĩ chắc họ dùng Indirect MRAS để xác định các thông số của động cơ mà không cần đo trực tiếp.

                              Mình không chuyên về MRAS, đây là nội dung nghiên cứu của 1 anh khác trong Lab của mình nhưng mình làm về DK thông minh nên cũng biết một chút về nó. Các bộ điều khiển như PID, LQG, STR, I-MRAS, D-MRAS,... đều đã được kiểm tra trên mô hình thực hết rồi.
                              Sống là động nhưng lòng luôn bất động,
                              Sống là thương nhưng lòng chẳng vấn vương,
                              Sống yên vui danh lợi vẫn coi thường,
                              Tâm bất biến giữa dòng đời vạn biến.


                              Chú ý: đề nghị các thành viên đọc luồng dưới đây trước khi post bài:
                              http://www.picvietnam.com/forum//showthread.php?t=1263

                              Comment

                              • candykitty
                                Đệ tử 1 túi
                                • Nov 2006
                                • 15

                                #60
                                Sorry, quên là bạn đang ỡ Netherlands, mình tưởng bạn đang ở VN nên muốn hỏi về các kinh nghiệm khi làm thực tế (với các thiết bị hiện có tại VN), vấn đề này tại nước ngoài thì hầu như đã được nghiên cứu khá kỹ. (mình có kèm theo bài báo cáo cách đây 2 năm về MRAS).
                                Attached Files

                                Comment

                                Working...