PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Điều khiển (http://www.picvietnam.com/forum/forumdisplay.php?f=21)
-   -   Bộ lọc Kalman (http://www.picvietnam.com/forum/showthread.php?t=283)

ami 26-09-2006 08:43 PM

Tren PICVIETNAM, ami có để 2 baì bàn về bộ lọc Kalman. Bài thứ nhất diễn giãi các khái niệm xác xuất thống kê để tiếp cận với bộ lọc thích nghi, mà tiêu biểu là bộ lọc Kalman. Bài gần đạy hơn là trình bày một số quan điểm về Kalman với a.Falleaf. Mình nghĩ bạn nên đọc bài cũ của mình trước.

Kalman filter đã được chuẩn hóa trên trường hợp tuyến tính để dùng trong Matlab rồi. Sách về vấn đề này cũng đã được Falleaf giới thiệu ở các phần trên (cuốn sách dày khoảng 400 trang ), mong bạn tìm đọc và cùng trao đổi. Còn bộ lọc Kalman cho MCU, điển hình là cho PIC, mình cũng đã chuẩ hoá thành .C. Tùy mục địch của cac bạn, mình sẽ trao đổi trực tiếp để điều chỉnh theo yêu cầu của đề tài các bạn đang thực hiện

falleaf 28-09-2006 12:11 AM

Bạn có thể download một tài liệu về Kalman rất hay là cuốn:

Introduction to Random Signals and Applied Kalman Filtering của Brown và Hwang, nhưng mình chỉ có phiên bản cũ của Brown, nó cũng không khác gì với phiên bản mới.

Còn phiên bản mới, chỉ có sách, không có ebook, sách tương đối xấu

www.tailieuvietnam.net/download/Kalman/Brown.pdf

Chúc vui

hoanf 28-09-2006 10:24 AM

Cho em hỏi chút xíu!
Tại cái này kô biết hỏi ai mà cũng chả biết hỏi ở box nào cho đúng. Anh coi xong xóa dùm.
Cái trang web dientuvietnam.net nó bị cái gì mà em vào kô được cả 2 tuần nay. Coi bài kô được, đăng nhập kô được và đăng kí mới cũng kô được luôn. Hix
Hình như anh là Mod bên đó mong anh trả lời dùm.
Cám ơn anh F nhiều.
Thân
hoanf

NTVinh 28-09-2006 10:46 AM

Cảm nghĩ về bài viết của Falleaf như sau, Kalman Filtering của Falleaf đọc rất tuyệt, văn phong sáng, tính sư phạm cao.
Mong Falleaf dành thời gian để viết tiếp về các vấn đề này nhé, xung quanh bộ lọc Kalman:
- Falleaf nói thêm về những loại nhiễu tác động vào tín hiệu mong muốn mà Kalman Filter có thể lọc được...
- Nhiễu tác động vào tín hiệu mong muốn theo kiểu nhân (nhiễu x tín hiệu mong muốn) thì giải quyết thế nào...
- Nhiễu tác động vào tín hiệu mong muốn theo kiểu cộng (nhiễu + tín hiệu mong muốn) thì giải quyết như nào...
- Vấn đề như lí thuyết về bộ lọc Kalman mở rộng...
- Với những nhiễu kiểu như thế nào thì bộ lọc Kalman không thể tách ra được...
- Bộ lọc Kalman thuộc gia đình bộ lọc tuyến tính, vậy tính tuyến tính ấy thể hiện ở đâu...
- Với các nhiễu tác động vào tín hiệu mong muốn (bằng một cách nào đó), lúc ấy, với các "công cụ" thống kê bậc một không giải quyết được mà phải dùng các thống kê bậc cao hơn để tách được tín hiệu mong muốn... Falleaf cũng bàn tới nhé.
Nguyễn Thế Vinh.

falleaf 11-10-2006 02:44 PM

http://kho.tailieuvietnam.net/index....id=37&Itemid=2

Hiện nay F chưa thể có thời gian để viết tiếp các phần về Kalman, đây là các tài liệu cần thiết mà F sưu tập lại để các bạn tham khảo. Nó nằm trong thư mục: Điều khiển >> Các loại bộ lọc

Chúc vui.

HAI 31-10-2006 06:21 AM

Luồng hay thế này mà chưa có bác nào tiếp tục nhỉ?Mình đã đọc bài của bác Falleaf, bác benq, bác ami, bác bunyuki bài nào cũng hay cả.Nhờ mấy cái này mà mình đả thông được kinh mạch.Xin đa tạ các bác.
Có một số cái thu được mình mong được chia sẽ:
Bộ lọc là gì? giống như bác F đã nêu, lúc đầu ta cứ hiểu "đại khái" là một cái lưới.Nhưng nếu lọc dành cho tín hiệu thì cái lưới ở đây gì?Chúng ta hãy nhìn ở một mặt khác của tín hiệu, biến thiên của nó trên miền tần số (phổ của nó).Cái này nghe thì có vẻ ghê gớm nhưng thật ra cũng như thay đổi trong miền thời gian thôi (cái này nghe quen tai hơn).Nó thể hiện mặt năng lượng của tín hiệu.Năng lượng và thời gian là đôi bạn thân.Dân mình hay có câu thời gian là tiền bạc (một dạng năng lượng rất hấp dẫn), chắc cũng có hàm ý này.:D .Lại nói tiếp, nếu ta đã biết phổ của tín hiệu muốn "lọc" nó thì ta cứ hình dung "đại khái" là dùng một cái nơm chụp tín hiệu lại.Phần nào ở trong nơm thì ta lấy về nấu canh chua.Còn phần còn lại là của trời ta không ham.Như vậy cái nơm ở đây được hiểu chính là bộ lọc của ta.Và nếu ta tiếp tục bước song song theo miền thơì gian và miền tần số sẽ nảy sinh câu hỏi: vậy hành động "chụp nơm" trong miền tần số sẽ như thế nào trong miền thời
gian.Chúng ta cần tìm hiểu thêm một tí về phép biến đổi Fourier để trả lời cho câu hỏi này(biến đổi này giống như con đường nối giữa hai miền ).Nói chung, ta để ý một tính chất của nó "tích phổ của hai tín hiệu sẽ có phép biến đổi Fourier ngược là tích chập của các tín hiệu này trên miền thời gian".Cái này nghe có vẻ phức tạp nhưng chúng ta cứ tạm hiểu "đại khái" tích chập là kết quả tín hiệu của ta đã đi qua cái lưới lọc.Nếu chúng ta "rời rạc" mọi thứ ra thì sẽ dễ hình dung hơn.Lúc này thấy đúng là chúng ta có một cái lưới có p cái lỗ (p chính là cái bậc bộ lọc mà chúng ta nhập vào khi làm toán ấy).Tín hiệu chui qua đây, như vậy nên được gọi là bộ lọc.
Vấn đề tiếp là tối ưu, một phương pháp thường dùng nhất là bình phương cực tiểu.Cái này hiểu đơn giản là các sai số được bình phương lên rồi cộng tất cả lại, được một cục to, nhiệm vụ của chúng ta là "xoay sở" để cái cục này là bé nhất.Phương pháp này đi đâu cũng thấy, chúng ta nên học cho biết vì nhiều người biết nó lắm rồi.Không thế để mình vào dạng cần được xoá mù được:D .
Trở lại với lọc chúng ta thấy một trường hợp có thể có rất nhiều bộ lọc, vậy để đánh giá kết quả chúng ta làm thế nào?ta sẽ dùng chỉ tiêu là sai số của tín hiệu lọc và tín hiệu mong muốn.Muốn bộ lọc tốt thì dùng cái bình phương sai số cực tiểu (bài toán nêu ra ở trên).

HAI 31-10-2006 07:00 AM

Nói về không gian vecto có một cái rất hay.Vecto như một con người, không gian chính là một cái xã hội.Có một người A nọ muốn gia nhập một xã hội B, anh ta muốn tìm trong B một người bạn đời hợp với anh ta nhất (gần gũi về các mặt trong cuộc sống nhất).Cuối cùng anh ta tìm được một "người" rất ứng ý đó chính là cái "bóng" của anh ta trong cái xã hội B này.Như vậy một vecto a sẽ có có đánh giá tối ưu của nó trong không gian B chính là hình chiếu của nó trong B.
Sử dụng bộ lọc Kalman, người ta xây dựng một chuỗi các đánh giá tối ưu như vậy dựa trên không gian các giá trị đo và đặc tính của hệ thống.
Lần đầu mình nghe đến bộ lọc Kalman chính là khi đọc về bộ điều khiển phản hồi trạng thái.Người ta dùng Kalman để đánh giá gần đúng nhất giá trị các biến trạng thái của hệ thống, sau đó dùng cho bộ điều khiển phản hồi trạng thái.Cái này mình cũng mới đọc theo kiểu vu vơ cùng mây gió trên trời chưa hiểu thấu đáo cái gì cả.Bác nào hứng thú viết về cái này thêm thì hay hơn.
Trong bộ lọc Kalman người ta cho tất cả nhiễu đều là nhiễu trắng, cái này lợi cái là có ngay ma trận hệ số tương quan là ma trận chéo.Còn mấy cái nhiễu lung tung khác thì cần có thêm công đoạn làm trắng hoá nó.Cái này mình cũng chỉ nghe thiên hạ đồn đại thôi.Trong công đoạn này người ta dùng hệ cơ sở Loeve, sách ông này viết hay lắm nhưng đọc chẳng hiểu gì.:D .

falleaf 31-10-2006 07:05 AM

Vì bận quá, nên vẫn phải chiến đấu từ từ, F đánh kiểu diện rộng trên diễn đàn (kiểu amateur linh tinh), cho nên rất vui các pác tham gia nhiệt tình.

Sẽ thảo luận từ từ tiếp.

Chúc vui

HAI 06-11-2006 03:25 AM

Chẳng ai vào đây chơi tiếp nhỉ?Buồn thế!Thôi thì mình tự sướng vậy.:D
Thêm một điều cần lưu ý khi mới bắt đầu học Kalman là ta phải hiểu rằng nó là lọc một tiến trình ngẫu nhiên (một tín hiệu ngẫu nhiên).Như vậy ở mỗi vòng lặp ta chỉ thu được một đánh giá cho một điểm trên tiến trình ngẫu nhiên này thôi.Để dễ hình dung bạn hãy nhìn sơ đồ sau
x(t0):giá trị đầu
y(t0):giá trị chúng ta đo được
(x(t0),y(t0))---->bộ lọc---->x*(t1);hoàn thành một vòng lặp
(x*(t1),y(t1))----->bộ lọc ---->x*(t2) ;vòng lặp thứ hai
Cứ tiếp tục như vậy chúng ta sẽ có một tiến trình "đánh giá" cho tiến trình ngẫu nhiên đã cho (tín hiệu ngẫu nhiên)
Qua đó ta thấy Kalman nó có tính chất của bộ lọc tiên đoán.
À mà các bác F, benq, ami ,buynia, cho em hỏi bộ lọc Kalman được hiện thực hóa như thế nào?(phần cứng của nó ấy),nếu được thì mấy bác cho một ví dụ đơn giản để dễ hình dung nhé.Và nếu thời gian trễ của hệ thống lọc lớn hơn thời gian trích mẫu thì người ta sẽ xử lý như thế nào hả mấy bác?

candykitty 10-11-2006 03:47 PM

Bộ lọc thì cũng có nhiều loại, ngoài Kalman có Luenberger, và tổng quát. Người ta gọi là bộ giám sát thì đúng hơn (obsevers)dùng cho các đối tượng khác nhau, tuyến tính, phi tuyến, điều khiển rời rạc hay tương tự. Vấn đề là ở chỗ các bộ lọc khi đưa vào điều khiển sẽ làm cho hệ thống ổn định (với điều kiện chọn được các thông số của ma trận trạng thái thích hợp).

HAI 11-11-2006 01:40 AM

Hêhê, mãi mới có người vô đây chơi, mừng quá.Bác Candykitty có thể nói rõ hơn được không.Em vẫn không hình dung được bộ lọc Kalman nó như thế nào cho tín hiệu analog (nếu mình không trích mẫu nó đi), còn cái "chọn thông số của ma trận trạng thái " là thế nào hả bác.Nghe như là dùng để nhận dạng hệ thống, cái này em cũng không biết.Bác chỉ rõ hơn cho em nhé:D .

candykitty 11-11-2006 08:19 AM

Nói thế nào bây giờ nhỉ? Mỗi một hệ thống điều khiển đều có một ma trận trạng thái, bộ lọc Kalman cũng vậy. They nguyên lý ổn định Popov (197x) hoặc Lupanov (mấy cái tên này kg nhớ chính xác lắm), nếu chọn các thông số của ma trận này sao cho thỏa mãn tiêu chuẩn ổn định trên thì hệ ổn định. Việc chọn thồng số thường dùng theo phương pháp "trial and error" tức thử rồi kiểm tra cho đến khi đạt tối ưu và hội tụ.

HAI 11-11-2006 06:05 PM

Em vẫn chưa hiểu ý của bác.Ở đây việc chọn thông số cho ma trận trạng thái là cho hệ thống nào hả bác,cho bộ lọc hay là cho đối tượng điều khiển của mình?Nếu đối với bộ lọc Kalman thì ứng với mỗi giá trị trích mẫu của quá trình ngẫu nhiên ta sẽ được một giá trị K, (là số trọng lượng giữa giá trị trạng thái tiên đoán và giá trị đo của nó).K được tính ra dựa trên điều kiện trung bình sai số của chúng bằng không.Em tạm đưa ra cái mô hình như thế này.

x*(n) :giá trị đã đánh giá bước thứ n
y'(n+1):giá trị tiến đoán ở n+1
y(n+1):giá trị đo ở n+1

x*(n)------> (hệ thống của đối tượng điều khiển)------>y'(n+1) |
y(n+1) |
----->x*(n+1)
Nếu ý bác nói khi K thay đổi dẫn đến ma trận trạng thái của bộ lọc thay đổi thì tính ổn định của hệ thống mình cần điều khiển ở đây có mỗi quan hệ như thế nào đối với sự thay đổi của K?Cái này em không biết bác giải thích cho em chỗ này nhé.
Còn thêm một cái nữa em không hiểu, việc thử rồi chỉnh sửa hệ thống để đạt "hội tụ" là thế nào hả bác?
Cái tên ông toán học chuyên nghiên cứu về ổn định là liapunov (hay lanunov cũng được), em cũng mê ông này.Ý tưởng toán của ông thật là đẹp.Em cũng đang đọc về vấn đề này, khi nào có ít kiến thức sẽ tham gia bàn luận với mấy bác cho vui.

candykitty 12-11-2006 09:12 AM

Mình rất muốn trình bày về vấn đề này cụ thể hơn nhưng hiện giờ mình khá bận nên khó có thể nói rõ ràng hơn. Mình đã từng quan tâm rất lâu về lọc Kalman nói riêng và các bộ giám sát (observers) nói chung. Lọc Kalman có thể dùng cho các hệ stochastic (khó dịch quá) tuyến tính (linear). Lọc Luenberger có thể dùng cho các hệ deterministic. Nếu dùng với hệ phi tuyến thì dùng bộ lọc Kalman mở rộng (extended Kalman). Ngoài ra còn có bộ giám sát đầy đủ (full-oder) và giám sát extended Luenberger. Hai nguyên lý ổn định Popov và Lyapunov đều dùng để chứng minh rằng một hệ đưa ra là ổn định với việc chọn giá trị phù hợp cho các cực của bộ giám sát. Tất nhiên việc chọn này sẽ khác nhau ở từng người tùy theo kinh nghiệm và như vậy khả năng hội tụ của hệ (tức là khả năng tiến tới giá trị đặt của bộ điều khiển) nhanh hay chậm tùy vào các giá trị mình chọn.

falleaf 12-11-2006 04:32 PM

Đúng là cái này rất hay, nếu được chúng ta nên thảo luận lại và tìm cách thực hiện các đoạn tut ngắn, ai viết được phần nào thì viết. Chúng ta cứ viết loạn lên theo cái chúng ta quan tâm, sau một giai đoạn, chúng ta tập hợp lại thành một tài liệu ngắn.

F nghĩ như vậy sẽ hiệu quả hơn mỗi người suy nghĩ theo một hướng, khó trùng nhau, lại viết cùng một tài liệu. Hơi khó.

Chúc vui


Múi giờ GMT. Hiện tại là 04:30 PM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam