PDA

View Full Version : Bộ lọc Kalman


falleaf
14-01-2006, 07:39 PM
Ai có nhu cầu Kalman thì bay vô đây chơi... Mở ra nhưng lười viết bài quá, ai quan tâm thì F sẽ post một số tài liệu lên cho mọi người xem chơi..

F rất khôn, điều khiển thì chỉ học PID, mạch lọc thì chỉ học Kalman ... :confused: :eek:

Tài liệu tham khảo:
[1] Introduction to Random Signals and Applied Kalman Filtering của Brown và Hwang: http://www.tailieuvietnam.net/download/Kalman/Brown.pdf
[2] http://www.cs.unc.edu/~welch/kalman/index.html

falleaf
15-01-2006, 06:39 PM
Đọc một bài báo đơn giản sử dụng Indirect Kalman Filter

www.picvietnam.com/download/Kalman/PRE01.pdf

Đây là một báo cáo nói trong 5 phút về một bài báo liên quan đến Kalman. Đơn giản thôi, nhưng bài báo này tổng hợp cả phương pháp UMBmark, vì vậy, phải nắm bắt thật kỹ phương pháp UMBmark thì mới hiểu được bài báo này.

Điều quan trong nhất trong việc thực hiện một bộ lọc Kalman, đó là mô hình hóa được hệ thống. Vì vậy, trong bài báo cáo này, F chỉ dừng lại ở việc chỉ ra mô hình hóa của hệ thống.

Từng bước, F sẽ viết nhiều hơn về cái này, từ cơ bản. Nhưng trước tiên, các bạn chỉ cần nắm, làm việc với mạch lọc Kalman, tức là tìm ra mô hình của hệ thống.

Chúc vui.

falleaf
22-01-2006, 01:03 AM
Bộ lọc Kalman

1. Bộ lọc Kalman là gì?

Đầu tiên, bộ lọc Kalman là bộ lọc do một cái ông nào đó có tên Kalman nghĩ ra, ỗng sống chết thế nào không cần biết, mặt mũi ỗng thế nào không cần hay. Chỉ cần biết ỗng chế ra một bộ lọc dùng được, nên lấy tên mình đặt cho bộ lọc. Nhưng nói vậy chứ, ai tò mò muốn biết thì vào đây coi. Cực kỳ đẹp trai.

http://www.ieee.org/organizations/history_center/legacies/kalman.html

http://i32.photobucket.com/albums/d28/picvietnam/kalman.jpg

1.1. Bộ lọc là gì?

Bộ lọc là cái đồ để lọc, có nghĩa là có một thứ dơ bẩn nào đó, bỏ vào thì nó giữ lại những cái dơ và cho ra những cái sạch ở đầu bên kia.

Thiệt ra thì F về nhà hỏi bà nội F làm sữa đậu nành thế nào mới biết cái bộ lọc chỉ là cái miếng vải may lại rồi cứ thế đổ nước đậu và bã đậu vào.. cuối cùng bã đậu còn lại trong cái bị còn nước đậu chảy ra ngoài, hứng, nấu, khuấy đường... rồi uống.

1.2. Bộ lọc Kalman là gì?

Bộ lọc Kalman cũng là cái bịch vải của bà nội F thôi, nhưng mà ỗng không đổ bã đậu vào, mà ỗng đổ nhiễu tín hiệu vào đó, rồi có cả tín hiệu sạch, rồi đủ thứ hầm bà lằng trong đó, tóm lại là ỗng sẽ lấy ra được là tín hiệu sạch.

Tuy nhiên, cũng cần phải phân biệt rằng, cái vải lọc của bà nội F thì có lọc kiểu gì thì cũng là nước đậu, đâu có lọc ra nước tinh khiết được. Thế nên, tóm lại là cái bộ lọc Kalman cũng không hơn gì cái miếng vải của bà F, nó cũng chỉ lọc ra được tín hiệu sạch, theo nghĩa không còn nhiều nhiễu, nhưng cũng chỉ là ước lượng của tín hiệu thực, chứ không phải chính xác là tín hiệu thực.

Như vậy, người ta còn gọi bộ lọc Kalman là bộ lọc ước lượng, cũng vì lẽ đó.

Hôm nào rảnh lại viết tiếp, làm gì chứ nấu đậu nành chán lắm, tốt hơn là đi mua một ly đậu nành đá uống vẫn tốt hơn.

falleaf
22-01-2006, 01:13 PM
Để tiện theo dõi, các bạn download tài liệu này về để tham khảo:

www.picvietnam.com/download/Kalman/Course1.pdf

Phần 2, F sẽ nói lại vấn đề học bộ lọc Kalman như thế nào? Ông thầy F giảng rất hay về bộ lọc Kalman, chính vì thế, F không muốn thay đổi nhiều trong bài giảng của ông ấy, nhưng về phần tự đọc, F sẽ cung cấp thêm cho các bạn một số tài liệu cần thiết, ngoài ra, F cũng sẽ cung cấp một số bài tập và bài giải liên quan đến mạch lọc Kalman. Mục tiêu để các bạn hiểu và nắm được mạch lọc này, đến mức có thể tự đọc tiếp về nó.

Những ai đã nghiên cứu và có kinh nghiệm sử dụng mạch lọc Kalman, xin giúp F một tay để bổ sung những thiếu sót trong quá trình biên soạn tài liệu này.

Cách học ở đây sẽ như thế nào? Mỗi tuần, F sẽ chỉ đưa lên một vấn đề nhỏ, và đưa tài liệu kèm theo, chỉ viết lại những ý chính cần thiết.

Vì các công thức toán đưa lên rất mất công, mà F lại toàn viết bằng Latex, cũng không chép lại lý thuyết khi làm nhiều, cho nên rất khó copy cho các bạn xem. Tuy nhiên, F sẽ cố gắng trình bày một cách cô đọng, nhưng đầy đủ nhất. Trong các tài liệu, cần xem chương nào, F cũng sẽ nói thật rõ chương nào cần xem.

Chúc vui.

falleaf
26-01-2006, 02:56 PM
2. Học bộ lọc Kalman như thế nào?

2.1. Sơ kết

Chúng ta đã biết, bộ lọc chỉ đơn giản như trên, nhưng chúng ta chưa biết bộ lọc Kalman như thế nào?

http://i32.photobucket.com/albums/d28/picvietnam/mohinhhethong.jpg


Thực ra nó cũng chỉ đơn giản là từ một tín hiệu cần đo, khi chúng ta đo, sẽ có những sai số từ cảm biến, ảnh hưởng đến tín hiệu cần đo, môi trường đo có nhiễu... Tất cả những thứ này, tổng hợp lại, sẽ cho ta một kết quả đo.

Nó cũng giống như chúng ta bỏ cả nước đậu, bã đậu, và tất tần tật mọi thứ vào trong một cái túi vải để lọc. Hình ảnh sau có vẻ sẽ thân thiện với các bạn hơn?

http://i32.photobucket.com/albums/d28/picvietnam/boloc1.jpg


Chính vì vậy, học mạch lọc Kalman như thế nào?

Đây là một câu hỏi lớn không lớn, nhỏ không nhỏ, nhưng tính quan trọng của nó dành cho những người mới học là không thể chối cãi.

Chính vì vậy, F cũng đã được dạy phải học như thế nào, và ít ra thì F cũng đã học được một phần nào đó. Tuy chưa thể gọi là thấu đáo, tường tận, nhưng việc giúp các bạn có những ý tưởng cơ bản về mạch lọc Kalman, và bắt đầu nghiên cứu nó một cách phổ biến ở VN là điều F muốn làm.

Một hình ảnh đơn giản được đưa ra dưới đây để trả lời cho câu hỏi trên:

http://i32.photobucket.com/albums/d28/picvietnam/hocKalman.jpg


Ở đây F có mấy ý thay đổi theo cách giới thiệu, đó là F cho rằng các bạn chỉ cần ghi nhận, việc học xác suất, hiểu rõ nó, sẽ quyết định tất cả khi tìm hiểu về mạch lọc Kalman. Sau đó, F mới đi giải thích vì sao xác suất lại quyết định tất cả. Nhưng các bạn hãy tạo cho mình một niềm tin trước rằng, học bộ lọc Kalman hoàn toàn không khó. Thực tế F cũng học và hiểu được nó, chưa được hoàn chỉnh lắm, nhưng nó không quá khó và quá ghê gớm.

F cho rằng việc triển khai và ứng dụng mạch lọc Kalman ở VN là một việc làm đơn giản và dễ dàng. Chính vì vậy, F cung cấp thêm một cuốn sách nữa, để các bạn đọc sơ qua về xác suất.

F sẽ viết rất chậm, để các bạn có thời gian đọc về xác suất.

2.2. Một thí dụ nhỏ

Bây giờ F đưa ra một thí dụ sau, chúng ta lấy thước để đo chiều dài của một cây bút. Lần thứ nhất, chúng ta đo được là 10cm, lần thứ hai chúng ta đo được là 10.05cm chẳng hạn. Vậy thì nếu hỏi chiều dài cây bút là bao nhiêu?

Có phải trong đầu các bạn luôn cho một giá trị ước lượng tốt nhất là 10.025cm, có phải vậy không? Điều đó đúng, nhưng căn cứ vào đâu để các bạn ước lượng như vậy?

Rồi, nếu bây giờ, F lấy cây thước đo chiều dài, và được kết quả là 10.02 cm, và một bạn khác cũng lấy cây thước đo, và được chiều dài 10.07 cm. Nếu chỉ có hai kết quả này thôi, chúng ta sẽ lại ước lượng rằng chiều dài của cây thước là 10.045 cm. Đúng không nào?

Nhưng thực ra, nếu F cầm cây thước đo, cứ cho rằng, bạn kia là sinh viên đi, nếu thế thì rõ ràng kết quả đo của F sẽ đáng tin cậy hơn của một bạn sinh viên??? Còn nếu người kia là ông thầy F, thì các bạn sẽ tin ông thầy F hơn, đúng không???

Vậy thì, thực chất là không thể đánh đồng được chuyện đo đạc này, mà cần có một hệ số đánh giá.

Chiều dài cây thước là

chiều dài = alpha * 10.02 (của F đo) + (1-alpha)*10.07 (của người kia đo)

Vậy alpha sẽ là bao nhiêu? Căn cứ vào đâu để lựa chọn alpha?

F đã đưa ra một số ý tưởng phác thảo, để các bạn thấy được khái niệm về ước lượng. Phần sau, chúng ta sẽ nói rõ hơn và đưa ra một ví dụ rõ hơn, và lần sau chúng ta sẽ lấy ví dụ của thầy F để hiểu rõ vấn đề hơn.



Chúc các bạn ăn tết vui vẻ

falleaf
07-02-2006, 10:53 PM
Vì diễn đàn còn một số trục trặc về trình bày, cho nên F tạm thời viết không có các chức năng display tốt, các bạn thông cảm.

2.3. Một thí dụ về ước lượng

Chúng ta giả sử, có một chiếc xe di chuyển với vận tốc 20m/s theo một phương x. Vị trí ban đầu của xe là 0.

Khi đó, vận tốc của xe sẽ là:

v_xe(t) = 20m/s + v_s(t)

Trong đó, v_s(t) là nhiễu vận tốc đo.

Kết quả, nếu bây giờ chúng ta cần xác định vị trí của xe sau 2 phút. Và nếu, chúng ta giải sử chúng ta chỉ quan tâm đến cảm biến đo vị trí hoặc cảm biến đo vận tốc của xe. Chúng ta sẽ chỉ ra được 2 phương pháp ước lượng như sau:

a) Phương pháp 1:

^x1(0) = z1 = 0
^x1(1) = z2 (thời điểm tiếp theo)
^x1(2) = z3 (thời điểm tiếp theo nữa)
....

Đây là ước lượng vị trí của xe, chỉ nhờ vào cảm biến vị trí của xe, trong đó, zi là các giá trị vị trí xe đo được.

b) Phương pháp 2:

^x2(0) = x(0) = 0 (vị trí ban đầu của xe)
^x2(1) = 0 + 20 (vị trí tiếp theo nếu giả sử xe di chuyển với vận tốc 20m/s)
^x2(2) = ^x(1) + 20 = 0 + 20 + 20 (tiếp theo nữa)
...

Như vậy, cả hai phương pháp trên, cũng đều là một cách để chúng ta ước lượng vị trí của xe.

Vậy áp dụng lại 2.2, chúng ta sẽ thấy rằng, nếu dùng hai phương pháp ước lượng khác nhau, chúng ta cũng sẽ có các giá trị ước lượng khác nhau. Chúng ta sẽ tin cách ước lượng nào hơn?...

c) Phương pháp 3:

Vậy thì, chúng ta thử xem phương pháp ước lượng thứ ba như sau:

^x3(i) = alpha*^x1(i) + (1-alpha)*^x2(i)

Vậy các bạn có nhận xét gì về cách ước lượng này?

Một cách chung chung (không phải là tổng quát, chỉ là khái niệm sơ khởi), nhiệm vụ của bộ lọc Kalman, chính là tìm ra hệ số alpha tối ưu để tìm ^x(t) gần đúng với x(t) nhất.

Vậy nhiệm vụ của mạch lọc Kalman được phát biểu rõ hơn một chút, đó là tìm ước lượng ^x(t) gần đúng với x(t) nhất (giá trị ước lượng gần đúng với giá trị thực tế nhất) thông qua hiểu biết của chúng ta về mô hình của hệ thống.

Chúc vui.

falleaf
07-02-2006, 11:20 PM
3. Bản chất của bộ lọc Kalman

http://i32.photobucket.com/albums/d28/picvietnam/machloc.jpg

Quá trình dẫn dắt đã chỉ ra mạch lọc Kalman dùng để làm gì, như vậy, hình trên đây sẽ giúp chúng ta hiểu rõ về công việc chúng ta phải làm với mạch lọc Kalman.

Trước khi học mạch lọc Kalman, F cũng muốn nói rõ với các bạn luôn, đó là mạch lọc Kalman có các công thức có sẵn rồi, và mạch lọc Kalman cũng đã bị nghiên cứu đến nát luôn rồi. Vì thế, mạch lọc Kalman không có gì quá ghê gớm để phải quan tâm.

Vậy mạch lọc Kalman khó ở chỗ nào? Tín hiệu đo được thì dễ rồi, chúng ta cứ xách cảm biến ra cắm ở đâu là chúng ta đo được ở đó. Nhìn hình trên, chúng ta sẽ thấy rõ ràng rằng mạch có 4 khối, Khối Kalman thì các bạn cứ tin F là không khó, khối ^X là kết quả tính toán của mạch lọc Kalman, khối tín hiệu đo thì cắm là đo.. vậy, thực chất mạch lọc Kalman khó nhất ở phần mô hình hoá hệ thống.

Mô hình hoá hệ thống gồm những gì, như thế nào, chúng ta sẽ đề cập sau. Nhưng điều vừa nói trên, một lần nữa chứng tỏ cho cái hình của F đã post phía trên:


http://i32.photobucket.com/albums/d28/picvietnam/hocKalman.jpg


Phần mạch lọc Kalman không hề khó khăn. Vậy còn phần xác suất ngẫu nhiên vì sao lại khó? Bởi vì bản thân nó khó! F học xác suất ngẫu nhiên thấy khó! Thầy F học xác suất ngẫu nhiên cũng thấy khó! Ba mẹ F là giáo viên toán DH SP cũng thấy xác suất là khó! Còn bạn?...

Ngoài ra, cũng nói sơ thêm, đó là việc mô hình hoá hệ thống, có liên quan đến việc mô hình hoá các tín hiệu nhiễu, và nhiễu quá trình đo. Mà các nhiễu này là các giá trị ngẫu nhiên. Chính vì vậy, từ đây cũng gợi cho các bạn một chút liên tưởng rằng cái khó nhất nằm trong cái khó nhất của việc học Kalman, đó là mô hình hệ thống.

Hy vọng là chúng ta sẽ có thể hiểu được nó phần nào qua các bài viết sắp tới, nhưng việc trang bị cho mình kiến thức về xác suất vào thời điểm này để chuẩn bị nghiên cứu về Kalman là một việc làm vô cùng thiết thực.

Vậy thì, các bạn, chúng ta cùng chuẩn bị nhé.

Trong thời gian chờ đợi diễn đàn được hoàn thiện về các công cụ làm việc, các bạn có thể nghiên cứu sơ qua tài liệu sau đây để hiểu thêm phần nào về những gì chúng ta sẽ đi.

Tài liệu này hướng dẫn sử dụng matlab để làm việc với bộ lọc Kalman, nhưng chương 1 của nó, giới thiệu khá kỹ về lịch sử các bộ lọc, về lý thuyết xác suất, chương 2 của nó nói về các mô hình hệ thống, chương 3 của nó nói về tiến trình ngẫu nhiên...

3 Chương đầu này là 3 chương rất cần thiết cho các bạn để bắt đầu học về bộ lọc Kalman. Trong quá trình học về bộ lọc Kalman, chúng ta sẽ cùng tham khảo sách và tài liệu với nhau để có thể trao đổi thảo luận được tốt hơn.

www.picvietnam.com/download/Kalman/Matlab_Kalman.pdf

Chúc vui.

falleaf
11-02-2006, 07:02 PM
4. Các tiến trình ngẫu nhiên

Phải nói trước rằng, đây là một phần không dễ nhai, và cũng không phải là quá khó nhai. F nói về phần này, dựa trên việc các bạn đã được học về xác suất thống kê, như vậy, ít nhất các bạn phải là sinh viên năm thứ 3 trở lên, thì các bạn mới nên theo dõi tiếp.

Vì sao F không nói vấn đề này ngay từ đầu? Bởi vì thực ra, theo F nghĩ, mọi thứ không khó lắm nếu các bạn đã có khả năng. Những người nào học năm nhất về xác suất thống kê tốt, học toán tốt, thì có lẽ cũng đủ khả năng tìm hiểu đến phần này. Đối với F, một kiến thức mới, khi đã có cơ sở nền của 2 năm đại cương vững chắc, thì bất kỳ ai cũng có thể học được dễ dàng.

Bởi vậy, F chỉ bảo là nên là sinh viên năm 3 trở lên, chứ F không hạn chế các bạn sinh viên năm nhất năm hai. Các bạn cứ thẳng tiến học cơ bản, năm sau các bạn quay lại đây thì diễn đàn vẫn còn đó, có khi bài học lại càng được sửa chữa tốt hơn.

Đây là lời nói đầu cho phần này vậy. Nó có nghĩa là, F không phải là giáo viên xác suất thống kê, cho nên viết ra cũng chỉ thật đơn giản và mang tính khái niệm, nếu có gì sai sót, thì mong mọi người cùng giúp F bổ sung và sửa chữa.

4.1. Động lực để học các tiến trình ngẫu nhiên:


http://i32.photobucket.com/albums/d28/picvietnam/donglucrandom.jpg


Các bạn quan sát hình trên, sẽ thấy rằng tín hiệu đo được thực tế là bị ảnh hưởng do các tác động của nhiễu. Bản thân tín hiệu trước khi vào cảm biến cũng có các ảnh hưởng của nhiễu. Mà nhiễu là các quá trình ngẫu nhiên. Vì vậy, chúng ta phải học các quá trình ngẫu nhiên.

4.2. Biến ngẫu nhiên (random variable):

Bây giờ, chúng ta xem một thí dụ như sau:

Trong một cái hộp kín, có 4 quả bóng A, B, C, D. Chúng ta tìm xác suất để khi bốc một lần thì được quả bóng A, hoặc bóng B?

Dễ dàng thấy là xác suất bốc được bóng A, hoặc B là 2/4. Nhưng ở đây F không đề cập đến vấn đề này. Vấn đề chúng ta đề cập, đó là:

P = ?

Thay vì viết như vậy, thì chúng ta có thể ký hiệu lại như thế này có được không?

"A" -> 1
"B" -> 2
"C" -> 3
"D" -> 4

Chẳng qua chỉ là việc gán các số đại diện cho các chữ cái mà thôi, việc này không ảnh hưởng gì.

Nhưng nếu bây giờ, chúng ta viết lại thế này, các bạn thấy thế nào?

P[X=1 or X =2] = ?

Phải chăng cách viết này đơn giản và dễ hiểu hơn? Khi viết như thế này, chúng ta gọi X là biến ngẫu nhiên. Ở đây F không nêu định nghĩa cụ thể biến ngẫu nhiên là gì, trong tài liệu [b]"Lý thuyết Xác suất và thống kê toán học" - nhóm tác giả Trần Tuấn Điệp, Lý Hoàng Tú có nói rất rõ. Đây là giáo trình chính thức của chương trình PFIEV khi học về xác suất thống kê, và F thấy rằng tài liệu này hay hơn so với rất nhiều tài liệu về xác suất thống kê khác mà F đã được đọc (F đọc rất ít).

F lại tiếp tục để thời gian, để các bạn đọc sơ lại về xác suất thống kê. Lần tới, chúng ta sẽ nói về các hàm phân bố xác suất, hàm mật độ xác suất, điểm qua một vài phân bố thông dụng, về trung bình, variance, về các tính chất độc lập, covariance... Đó là những khái niệm rất quan trọng trong xác suất.

Mong các bạn chuẩn bị đọc trước để khi F viết tiếp chúng ta đỡ mất thời gian.

Chúc vui.

falleaf
15-02-2006, 10:45 PM
4.3. Hàm phân bố xác suất

Gọi hàm phân bố xác suất là F_X(theta), thì hàm phân bố xác suất được định nghĩa như sau:

F_X(theta) = Prob[X<= theta] (ký hiệu <= : nhỏ hơn hoặc bằng)

Để tiện theo dõi về sau, tôi sẽ sử dụng cách viết bằng latex giả. Bởi vì một số bạn không biết latex, cho nên tôi sẽ viết mã giả latex bằng tiếng Việt.

Vd: tôi sẽ viết \nhbằng, thì có nghĩa là nhỏ hơn hoặc bằng. Và từ đây tôi sẽ giúp các bạn làm quen với kiểu viết latex, xem ra cũng hay hay.

Các bạn lưu ý, trong latex sử dụng ký tự \ để bắt đầu một lệnh hoặc một ký tự đặc biệt nào đó. Vì vậy, nếu viết theta, thì nó sẽ hiện ra chứ theta. Nhưng nếu viết \theta thì nó sẽ hiện ra ký tự "theta" trong toán học.

Chúng ta quay lại vấn đề hàm phân bố xác suất. Nhắc lại bài toán lần trước với 4 quả bóng A, B, C, D, và biến ngẫu nhiên X.

Vậy F_X(2) bằng bao nhiêu?

F_X(2) = Prob[X \nhbằng 2] = Prob[X=1 hoặc X=2] = Prob[Lấy được bóng A hoặc bóng B] = 1/2

Như vậy trong công thức này đã thể hiện hết các khái niệm từ đầu đến giờ chúng ta học phải không nhỉ.

Vậy trong trường hợp liên tục thì sao?

Giả sử xét một cây bút đặt trên mặt bàn, hệ quy chiếu là góc bàn và các cạnh bàn. Biến ngẫu nhiên \alpha là góc của cây bút theo chiều từ đuôi bút đến ngòi bút so với cạnh ngang của bàn.

Chúng ta thấy rõ ràng rằng. 0 \nhbằng \alpha < 2*Pi

Vậy F_alpha(Pi/4) = ?

F để cho các bạn tự trả lời câu hỏi này. Chúng ta sẽ thấy rằng, với biến ngẫu nhiên liên tục hay rời rạc, hoàn toàn nó không phải là vấn đề với định nghĩa này.

4.4. Hàm mật độ xác suất

Định nghĩa:

f_X(\theta) là đạo hàm của hàm phân bố xác suất theo \theta, hay có thể viết

f_X(\theta) = dF_X(\theta) / d(\theta) ~ Prob[X=\theta]

Các bạn có thể chứng minh dấu ~ này được không?

và chứng minh f_X(\theta) \thuộc [0;1]?

Khi nào có thời gian vẽ hình, F sẽ đưa các hình ảnh lên cho các bạn xem.

Thực ra, F rất băn khoăn khi chỉ giới hạn nói đến đây thôi có được không? Bởi vì muốn giải thích thật rõ lắm, nhưng nếu giải thích rõ thì sẽ rất mất nhiều thời gian. Chính vì vậy, thôi thì F cứ để nó đơn giản, chỉ là khái niệm, và các bạn chịu khó đọc sách về phần này. F sẽ đi thật chậm thôi.

Học xác suất thống kê, quan trọng nhất là hiểu được ý nghĩa vật lý của nó, thì khi đó nói đến vấn đề gì, khái niệm gì, chúng ta hình dung ra ngay. F tránh dùng thời gian của mình để phân tích những điểm này, vì bây giờ đơn giản, phân tích ý nghĩa vật lý còn dễ, sau đến lúc khó lên, chính F cũng phải hình dung phức tạp. Lúc đó giải thích ra không được tốt cho mọi ngừơi. Mà như vậy, thì các bài viết nó thiếu tính nhất quán.

F cũng tránh viết giải thích, bởi vì kiểu giải thích của F về xác suất thống kê, và hiểu về nó, nhiều người bạn của F cũng nghĩ rằng F suy nghĩ quá phức tạp, trong khi với F cái phức tạp đó lại quá đơn giản theo cách nghĩ của F...

Tóm lại, nếu các bạn quyết định theo khoá học này, F nghĩ các bạn nên cố gắng dành thời gian để trao đổi thêm với nhau, và đọc sách để có thể hiểu được những vấn đề F nói một cách quá vắn tắt như thế này.

Chúc vui.

falleaf
09-03-2006, 07:30 PM
4.5. Phân bố đơn vị

Phần này chẳng có gì đặc biệt, các bạn đọc thêm tài liệu ở các sách như cuốn F đã giới thiệu

4.6. Phân bố Gauss và phân bố chuẩn

Đây là vấn đề cần nhắc lại, nhưng vị nhắc cái đoạn này thì nó mất thời gian vẽ lại hình, cho nên F tạm thời không vẽ lại hình, F chỉ đưa ra lại công thức để nhắc lại thôi. Nếu có bạn nào cũng tham gia đọc theo tài liệu này, mong các bạn dành thời gian viết một vài điều về phân bố Gauss ở đây dùm F cái.

f_X(x) = \frac{1}{sqrt{2*\pi}*\sigma}exp(-\frac{1}{2\sigma^2}(x-m_x)^2)


Trong đó ký hiệu \frac{tử số}{mẫu số} = tử số / mẫu số

4.7. Trung bình

E(X) = \bar X (X gạch trên đầu) =~ (dấu bằng hình thức) \int_{-\inf}^{+\inf}{x*f_X(x)dx}

trong đó \inf = dấu vô cùng, đây là tích phân từ trừ vô cùng đến cộng vô cùng của tích x*f_X(x)

Bây giờ, chúng ta xem một thí dụ sau, trong một cái hộp kín, có 2 trái banh, tìm trung bình của số lần bốc được trái banh A.

Như vậy nếu chúng ta bốc trái banh ra 100 lần, có phải là chúng ta sẽ có

E = 1/100 (X(1) + X(2) + ... X(100))

Trong đó X(i) = 1 nếu như bốc được banh A, và X(i) = 0 nếu bốc được banh B.

Điều này không có gì lạ. Nhưng với quy luật ngẫu nhiên vừa rồi, thì có phải nếu chúng ta bốc 1000 lần, 100000000000...0000 lần, thì kết quả E sẽ tiến gần đến 1/2 phải vậy không?

Như vậy, có nghĩa là cái dấu =~ (bằng hình thức) ở công thức trên nói với chúng ta rằng, nếu như số lần lấy mẫu tiến ra vô cùng, thì xác suất mới có giá trị đúng.

Và F có một cái câu rất hay nói ngoài miệng khi quyết định một cái chuyện gì đó rằng: "Xác suất chỉ có ý nghĩa khi nó tiến ra vô cùng" để khẳng định rằng, mọi việc F làm ngày hôm nay đều đúng, bởi vì rằng khi quyết định làm gì, chúng ta chỉ có thể quyết định một lần. Chỉ khi nào nói rằng quyết định của chúng ta là đúng hay sai khi chúng ta có thể quyết định nhiều lần và quan sát được nó. Nhưng thời gian không cho phép quyết định được lặp lại, cho nên, nếu như đã có ý quyết định, thì hãy tin rằng mình quyết định đúng, bởi vì quyết định một lần, không bao giờ có khái niệm đúng hay là sai...

Hơi triết lý một chút, nhưng chúng ta tiếp tục vấn đề.

Chứng mình trung bình E[X] của phân phối chuẩn -1<= X <=1 là bằng 0

Chứng minh như sau:

E[X] = \int_{-1}^1{x*f_X(x)dx} = \int_{-1}^1{x*1/2dx}
=1/2*(1/2*x^2)|-1..1 = 0

Oki, như vậy, để bữa nào F vẽ cái hình phân bố chuẩn hay Gaussian lại cho các bạn xem. Thì các bạn sẽ thấy nó đối xứng, và nếu như nó đối xứng qua điểm 0 thì trung bình của nó phải là 0.

Oki, tạm dừng ở đây, các bạn về đọc tiếp nội dung của xác suất thống kê nhé... Thiệt tình phần này nếu viết thì dài, mà không viết thì không được, nên chỉ lướt lướt qua những điểm cần ôn và chú ý, chứ không thể đi hết được.

Chúc vui.

falleaf
22-03-2006, 01:24 PM
4.8. Variance

Var X = E[(X-E[X])^2] = E[X^2 - 2X*E[X] + E[X]^2]

= E[X^2] - 2E[X*E[X]] + E[E[X]^2]

Vì E(X) là hằng số, cho nên ta có thể rút ra ngoài hàm trung bình, và chúng ta có:

Var X = E[X^2] - E[X]^2

Lại tạm dừng ở đây, các bạn tiếp tục đọc thêm về phần Variance này trong cuốn sách mà F đã giới thiệu

"Lý thuyết xác suất và thống kê toán học" - Trần Tuấn Điệp & Lý Hoàng Tú

Xin nhắc lại đây là cuốn sách rất rất hay về xác suất thống kê ở Việt Nam mà F được biết đến. Các cuốn sách khác F cũng có xem qua bằng tiếng Việt, nhưng không thấy hài lòng cho lắm.

Chúc vui.

falleaf
22-03-2006, 01:38 PM
Bài tập 1:

Cho X là một biến ngẫn nhiên có phân bố đơn vị, và X nằm trong đoạn [0;1]. Tìm trung bình và Variance của X?

Đây là một bài tập rất đơn giản để các bạn hiểu rõ về trung bình và variance. Các bài tập tương tự có trong các sách mà F đã đề cập, vì vậy các bạn cố gắng làm thật nhiều bài tập để nắm rõ những khái niệm xác suất thống kê này. Khi chúng ta đi tới phần mạch lọc, sẽ rất khó khăn nếu các bạn không nắm rõ được những khái niệm này.

Một mặt vì F không có sách tiếng Việt, nên cũng hơi khó trình bày vì không còn nhớ từ ngữ chính xác bằng tiếng Việt, hơn nữa việc giảng về xác suất thống kê F cũng không có nhiều kinh nghiệm.

Để tìm hiểu về xác suất thống kê, có lẽ các bạn ở BK HCM nên xin học một lớp của thầy ThS. Cao Hào Thi (khoa Quản Lý Công Nghiệp), bất kể là thỉnh giảng hay có lớp chính thức... F không nắm thông tin này, nhưng có lẽ F được học với thầy 1 môn Xác suất thống kê, hồi quy và ra quyết định bằng phương pháp định lượng.. đây là một trong những môn học hay nhất mà F được học tại BK HCM. Đó là một điều may mắn lớn.

Thầy Cao Hào Thi có dịch lại cuốn sách xác suất thống kê dùng trong kinh tế, một cuốn sách khá dày, và các sinh viên PFIEV tại BK HCM có photo lại để học, phải nói cuốn sách này là một cuốn sách rất rất hay. Các bạn cố gắng tìm đọc và tham khảo.

Chúc vui.

ami
22-03-2006, 04:06 PM
Bộ lọc Kalman có thể tham khảo một cách đơn giản hơn với tài liệu này:
http://www.cs.unc.edu/~welch/kalman/index.html

http://www.cs.unc.edu/~welch/media/pdf/kalman_intro.pdf

Tui đã dịch sang tiếng Việt bộ lọc Kalman, xin hẹn gửi cho quý vị vào cuối tuần này.

Ngoại ra, có thể tham khảo source code bô lọc Kalman áp dụng cho PIC trong báo cáo luận văn Mr.Scooter.

Chào cả nhà.

ami
22-03-2006, 07:49 PM
Theo ý kiến của mình, xin đổi một tí trong bài của falleaf như sau:

Bài 4:
Nhiễu : gồm 2 loại là nhiễu tiến trình và nhiễu đo. Falleaf mới nói nhiễu đo, chưa đề cập nhiễu tiến trình. Đo tương quan của nhiễu tiến trình lại khó hơn nhiều so với nhiễu đo (bời thong số nhiễu đo có trên cảm biến). Ngoài ra có một dạng nữa là nhiễu đo trong tiến trình, noí cách khác nhiễu này chĩ xảy ra khi áp dụng cảm biến vào toàn bộ hệ thống, chứ caliber đơn cảm biến sẽ không nhận ra được.




4.8
Và F có một cái câu rất hay nói ngoài miệng khi quyết định một cái chuyện gì đó rằng: "Xác suất chỉ có ý nghĩa khi nó tiến ra vô cùng" : không chính xác vì nếu chọn một lượng mẫu phù hợp cho một đại lượng phụ hợp với một độ chính xác chấp nhận được (80% hay 95%), ta vẫn có thể xác định được chứ không cần phải tiến ra vô cùng.

benq
24-06-2006, 05:28 PM
...
làm việc với mạch lọc Kalman, tức là tìm ra mô hình của hệ thống.
...
Chúc vui.

Falleaf đã lạc đề sang xác suất. Tôi xin trở lại vấn đề Falleaf nêu ra.

Falleaf "nói oan" cho bộ lọc Kalman rồi; lọc Kalman chỉ tìm ra trạng thái ước lượng của hệ thôi. Nói như bạn, hóa ra dùng bộ lọc Kalman, ta có thể tìm được mô hình của đối tượng à??? Nếu (A, B, C, D) là biểu diễn trạng thái của hệ, thì ta cần phải biết ma trận A, C mới thiết kế bộ lọc Kalman được chứ.

Trong điều khiển tối ưu, bộ lọc Kalman chính là bộ ước lượng trạng thái tối ưu (hay bộ quan sát trạng thái tối ưu). Mục tiêu của bộ quan sát là tìm vectơ trạng thái ước lượng sao x^ sao cho x^ bám theo x (x là vector trạng thái "thật").

Tại sao phải dùng bộ quan sát trạng thái?
Trong thiết kế bộ điều khiển phản hồi trạng thái u = -Kx, ban đầu người ta có giả thiết là tất cả các trạng thái đều đo được; sau đó dùng các phương pháp thiết kế (pole placement, LQR,...) để tìm ra K. Nhưng thực tế thường không dễ dàng đo được tất cả các trạng thái vì ko có đủ cảm biến, hơn nữa có thể có những trạng thái ko có ý nghĩa vật lý. Vì thế, người ta dùng bộ quan sát trạng thái, để từ đầu vào (u) đầu ra (y) của đối tượng, ta có thể ước lượng được những trạng thái không đo được. Tóm lại, đầu vào của bộ quan sát là u, y; đầu ra là x^ (ước lượng của x).

Ta thấy bài toán thiết kế bộ quan sát tương tự như bài toán thiết kế bộ điều khiển hồi tiếp trạng thái.
- Thiết kế bộ điều khiển: tìm ma trận K sao cho y bám theo y_đặt.
- Thiết kế bộ quan sát: tìm ma trận L sao cho x^ bám theo x.
Đây là 2 bài toán có tính đối ngẫu (duality).

Trong MATLAB nếu dùng 'place' để thiết kế bộ điều khiển thì ta cũng có thể dùng 'place' để thiết kế bộ quan sát bằng cách thay đổi tham số vào: A thay bằng A' (A chuyển vị), B thay bằng C'.Bằng cách chỉ định cực của bộ quan sát, ta có thể thay đổi cách x^ bám theo x như ý muốn. Trong trường hợp này ta có bộ quan sát Luenberger.

Trong trường hợp thiết kế bộ điều khiển tối ưu LQR, ta tìm K tối ưu cực tiểu hóa phiếm hàm J bằng cách giải 1 phương trình Riccati. Thông số thiết kế trong bài toán LQR là ma trận trọng số Q, R (xem tài liệu về LQR để biết cụ thể). Tương tự như vậy, nếu ta tìm được L tối ưu bằng cách giải 1 phương trình Riccati tương tự phương trình Riccati trên, thì ta sẽ được bộ quan sát trạng thái tối ưu. Đây chính là bộ lọc Kalman . "Thông số thiết kế" (tạm gọi như vậy) trong trường hợp này là W, V (covariance của nhiễu ngẫu nhiên).

Trong MATLAB, nếu dùng hàm 'lqr' để thiết kế bộ điều khiển tối ưu LQR, thì ta cũng có thể dùng 'lqr' để thiết kế bộ lọc Kalman bằng cách thay A bằng A', B bằng C', Q bằng W, R bằng V.

Nói thêm, LQR + bộ lọc Kalman = LQG (Linear Quadratic Gaussian).

Cụ thể thế nào thì các bạn tìm tài liệu đọc thêm.

Ghi chú: bộ quan sát trạng thái = bộ ước lượng trạng thái = bộ quan sát (nói tắt) = bộ ước lượng (nói tắt).

Keywords: Optimal control, LQR (Linear Quadratic Regulator), LQG (Linear Quadratic Gaussian), state feedback control, state observer, state estimator, Kalman filter, Luenberger filter.

falleaf
24-06-2006, 10:03 PM
Xin giải thích rõ ý câu nói trên, bởi vì nguyên tắc thiết kế bộ lọc Kalman đã có sẵn và không phải là vấn đề khó. Cho nên, mấu chốt của bài toán bộ lọc Kalman, đó là phải có được mô hình của hệ thống.

Thành ra F mới nói, làm việc với bộ lọc Kalman, tức là tìm ra mô hình của hệ thống, bởi vì toàn bộ các vấn đề của bộ lọc Kalman đã được thực hiện khá đầy đủ. Bất kể khi nào người ta chỉ cần đưa ra A, B, C, D ở trạng thái rời rạc hoặc liên tục, đều có thể thiết kế được bộ lọc Kalman cho nó.

Có lẽ bạn hiểu nhầm ý của F ở trên thì phải.

Phần tiếp theo, có lẽ F sẽ đi thẳng vào vấn đề bộ lọc Kalman để tránh mất thời gian của các bạn, bởi vì phần đầu về xác suất là rất khó, khó cả cho người viết và khó cả cho người đọc, nhưng một nghịch lý là để hiểu nó thì lại không quá khó.

Chúc vui

benq
24-06-2006, 11:12 PM
...
Thành ra F mới nói, làm việc với bộ lọc Kalman, tức là tìm ra mô hình của hệ thống, bởi vì toàn bộ các vấn đề của bộ lọc Kalman đã được thực hiện khá đầy đủ. Bất kể khi nào người ta chỉ cần đưa ra A, B, C, D ở trạng thái rời rạc hoặc liên tục, đều có thể thiết kế được bộ lọc Kalman cho nó.
...
Chúc vui

Tôi đưa ra (A, B, C, D) nhưng hệ thống undetectable, bạn có thể thiết kế được bộ lọc Kalman không?

falleaf
25-06-2006, 02:31 AM
Lúc nãy F có viết một bài trả lời chung chung, nhưng sau đó xoá đi. Thực sự, F rất muốn trả lời một cách hình thức, để không làm các bạn mới học phải cảm thấy khó khăn, nhưng sau đó lại nghĩ lại rằng, nếu như trả lời không thoả đáng cho bạn, thì chúng ta sẽ phải mất thời gian đi sâu vào đó quá. Mà hiện này, F không thể có đủ thời gian tập trung cho cả hai đề tài (vì đang làm bộ PID).

Do vậy, F trả lời luôn, mong rằng các bạn mới học, nếu tham khảo luồng này, có thể tạm bỏ qua các bài thảo luận này.

Trước tiên, xin nói về vấn đề viết tài liệu hướng dẫn. Bạn beng, nếu bạn đã hiểu biết về Kalman, rất mong bạn viết những bài viết chi tiết, và cụ thể, giúp đỡ các thành viên diễn đàn. Các vấn đề tranh luận là không cần thiết, vì quan trọng là chúng ta làm được gì cho cộng đồng.

F đi vào câu hỏi của bạn: một hệ undetectable, có rất nhiều nghĩa, theo F hiểu, có thể là unobservable, có thể unpredictable. Nếu như hệ của bạn, là hệ unpredictable, thì hoàn toàn có thể dùng bộ lọc thích nghi để giải quyết vấn đề. Đó là câu trả lời của F.

Dưới đây miêu tả bằng lời để các bạn khác dễ hình dung.

Đó là, nếu như bây giờ, chúng ta có mô hình của hệ, nhưng không rõ được, mô hình của hệ như thế nào. Nhưng chúng ta biết được rằng, có một vài mô hình khả dĩ nào đó, có thể đại diện cho toàn bộ tập các mô hình có thể cho hệ thống của chúng ta.

Tất cả mọi việc của bộ lọc Kalman, các bạn hiểu đơn giản là việc tìm ra một hệ số Kalman nào đó phù hợp, chúng ta gọi là K.

Khi đó, chúng ta có một số mô hình tham khảo. Mỗi mô hình, chúng ta sẽ tìm được K_1, K_2, K_3... chẳng hạn vậy.

Như vậy, làm sao để ước lượng được K nào là tốt?
Khi đó, chúng ta có thể thấy, một cách ước lượng đơn giản:

K = \frac{\alpha K_1 + \beta K_2 + ...}{\alpha + \beta +... = 1}

khi đó, vòng lặp tìm K cũng sẽ cho chúng ta kết quả, mà chúng ta không cần quan tâm nhiều.

Đối với hệ, undetectable, theo nghĩa unobservable, thì cái này thực sự F chưa tìm hiểu sâu nên không biết, rất mong nếu bạn đã tìm hiểu sâu về Kalman, có thể giúp đỡ mọi người, chúng ta cố gắng thực hiện các bài viết trên tinh thần xây dựng, điều này sẽ tốt cho thành viên rất nhiều.

Hiện nay F đang tập trung vào việc thực hiện dự án điều khiển PID của picvietnam, cho nên tạm thời F chưa tập trung lại về vấn đề Kalman. Nếu như có những gì F còn sai sót, mong bạn giúp đỡ sửa chữa và bổ sung.

Chúc vui

benq
25-06-2006, 02:02 PM
...
Do vậy, F trả lời luôn, mong rằng các bạn mới học, nếu tham khảo luồng này, có thể tạm bỏ qua các bài thảo luận này.

Trước tiên, xin nói về vấn đề viết tài liệu hướng dẫn. Bạn beng, nếu bạn đã hiểu biết về Kalman, rất mong bạn viết những bài viết chi tiết, và cụ thể, giúp đỡ các thành viên diễn đàn. Các vấn đề tranh luận là không cần thiết, vì quan trọng là chúng ta làm được gì cho cộng đồng.
...



Tại sao trong 1 diễn đàn mà tranh luận lại không cần thiết nhỉ?

Tôi thấy Falleaf có những câu phát biểu dễ gây hiểu lầm, nên tôi đặt câu hỏi hỏi ngược lại bạn để bạn tự đính chính và để những người khác tránh hiểu sai.

Đã viết tài liệu hướng dẫn thì nên cố gắng viết chính xác; còn những điều bạn ko biết rõ, thì không nên viết hoặc chỉ viết dưới dạng những trao đổi ngắn.

Bạn không thấy bài viết trước của tôi giúp những bạn sinh viên đã học môn Điều khiển tự động 2 (trong chương trình ĐH dành cho SV chuyên ngành Tự động hóa) hiểu được bộ lọc Kalman là gì sao? Tôi không có thời gian để viết chi tiết và cụ thể. Hơn nữa, vấn đề này đã có rất nhiều sách viết về nó. Tôi chỉ viết theo cách hướng dẫn các bạn đọc sách cho dễ thôi. Cuối bài tôi có đưa ra các keywords cho ai muốn tìm hiểu kỹ thì có thể search tài liệu trên mạng để đọc thêm.



F đi vào câu hỏi của bạn: một hệ undetectable, có rất nhiều nghĩa, theo F hiểu, có thể là unobservable, có thể unpredictable. Nếu như hệ của bạn, là hệ unpredictable, thì hoàn toàn có thể dùng bộ lọc thích nghi để giải quyết vấn đề. Đó là câu trả lời của F.



Hệ thỏa điều kiện dectectable nghĩa là tất cả các mode không không ổn định của hệ đều quan sát được (observable); còn các mode ổn định thì có thể không quan sát được. Ngược lại, hệ undetectable là hệ có chứa mode không ổn định không quan sát được.

Tôi đặt câu hỏi đó để Falleaf thấy rằng, câu phát biểu của bạn:

"Bất kể khi nào người ta chỉ cần đưa ra A, B, C, D ở trạng thái rời rạc hoặc liên tục, đều có thể thiết kế được bộ lọc Kalman cho nó."

là chưa chính xác.

(Keywords: stabiliability, detectability)

Cám ơn Falleaf. Những điều bạn viết về bộ lọc Kalman rất mới lạ đối với tôi, tôi đang chờ những bài viết tiếp theo của bạn.

falleaf
25-06-2006, 05:00 PM
Trước tiên, F trình bày một số điểm để bạn hiểu hơn về picvietnam:

1) Việc mà picvietnam cố gắng làm, đó là phổ biến kiến thức đến mọi người, và kêu gọi mọi người chia sẻ đóng góp, dựa trên một nền tảng khoa học và các lý luận khoa học. Đồng thời truyền cho mọi người một ý tưởng, và một cách nghĩ để giải quyết vấn đề, khơi dậy tinh thần học tập và chia sẻ của mọi người. Chính vì vậy, picvietnam cố gắng phất ngọn cờ, để cho mọi người tham gia.

2) Để làm được điều này, picvietnam hạn chế những vấn đề tranh luận, mà chỉ trình bày. Nếu như có gì sai về mặt kỹ thuật, mọi người đều có thể trình bày một cách khoa học để giải thích. Tuy vậy, nó có một số điểm nhạy cảm, mà F cũng sẽ trình bày luôn như sau:

a) Nếu như bạn trình bày một vấn đề, mà vấn đề đó có một độ phức tạp nhất định, bạn cố gắng nói hết các vấn đề phức tạp đó để cho người đọc thấy vấn đề quá phức tạp. Và tất nhiên, điều bạn nói sẽ là đúng. Cũng giống như việc bạn dạy một người học tiếng Anh về cách chia động từ ở thì quá khứ. Bạn có quyền đưa ra 300 động từ bất quy tắc để nói trước rồi sau đó nói đến những động từ có quy tắc.

b) Cách làm của F mà F vẫn làm, đó là nói rằng. Chẳng có gì phải sợ chia động từ cả, hãy đơn giản là mọi động từ đều có quy tắc, và cách chia của nó là thêm -ed.

Đứng trên quan điểm này, cái nào là chính xác, cái nào là không chính xác. Điều này rất là khó nói. Với quan điểm của F, khi trình bày rằng, oh, tất cả mọi thứ đều có quy tắc và đơn giản như vậy, F cho rằng nó thích hợp với người mới tiếp cận, và nó kích thích được sự tìm tòi của họ. Một khi họ đã nắm tất cả các quy tắc rồi, tự bản thân họ đã vượt lên một trình độ khác, và hoàn toàn có thể tự học những động từ không có quy tắc, và chúng ta không cần phải nói nữa, mà nói thật, bản thân F cũng không biết hết và cũng không thuộc hết các động từ bất quy tắc để mà nói cho họ, thực tế rằng cũng rất ít người biết hết các động từ bất quy tắc, chứ đừng nói đến là thuộc hết để mà nói. Nhưng nếu để mọi người chắc chắn nắm được động từ bất quy tắc, và có thể tự học, F nghĩ rằng con đường F đi là hợp lý.

Do vậy, có rất nhiều câu, từ, như câu mà bạn bắt bẻ F ở trên, mong bạn suy xét lại. Đứng dưới trình độ của một người đã biết, và hiểu về Kalman, chúng ta có thể trao đổi ở một khía cạnh khác. F rất muốn trao đổi với bạn ở mức độ cao hơn, hoặc mức độ nghiên cứu ứng dụng vào một đề tài nào đó, và chúng ta sẽ cùng trao đổi.

Tuy nhiên, ở đây trao đổi vấn đề cơ bản, rất mong bạn hiểu và thông cảm với những câu chữ như vậy. Cái gì giấu được thì giấu, đó là nguyên tắc.

Sẵn đây, F trả lời về vấn đề kỹ thuật và chúng ta ngừng lại việc đi quá xa ở đây, ở đây không phải là chỗ để chúng ta tranh cãi về mặt kiến thức, hoặc bắt bẻ nhau đâu. picvietnam không làm chuyện đó bạn ạ.

Về mặt prediction, F đã trả lời cho bạn như vậy, trong trường hợp unobservable, như F đã nói, trường hợp này F không trả lời được.

Tuy nhiên, để giải thích vì sao việc bắt bẻ của bạn rơi vào trường hợp ở trên mà F nói. Hệ unobservable là một thí dụ, nhưng bây giờ thử đặt vấn đề một hệ biến đổi theo thời gian, chuyện gì sẽ xảy ra? Như vậy, để chỉ ra được một thí dụ mà Kalman không làm được, là một điều rất dễ dàng.

Khi đặt câu hỏi này, một hệ biến đổi theo thời gian có làm được Kalman không? Xin thưa là được, nhưng có ngoại lệ không? Đó là trường hợp hệ có hàm delay biến đổi.

Mọi việc đều có thể làm được, và mọi việc đều có ngoại lệ. Nhưng cách F nói, đó là các bạn chẳng cần gì cả, chỉ cần hiểu biết về mô hình hệ thống, là có thể làm được Kalman.

Như vậy, chắc bạn đã hiểu những câu "thừa" mà F đưa vào trong các bài viết. Cho đến thời điểm hiện tại, những nội dung về kỹ thuật mà F cung cấp, có gì sai sót, mong bạn giúp đỡ sửa chữa và bổ sung. Cái gì thiếu, mong bạn đóng góp thêm.

Mỗi người chúng ta, có cách tiếp cận vấn đề khác nhau, và trình bày vấn đề cũng khác nhau, và có thể có sự hiểu lầm. Nhưng chúng ta đang cùng có một điểm chung, đó là mong muốn chia sẻ và thảo luận, vậy rất mong những đóng góp của bạn.

Nếu có bạn cùng viết, chúng ta sẽ có thể cùng làm được rất nhiều thứ. Điều này là chắc chắn rồi. Người đọc, có thể nhìn từ cách nhìn của F, và cũng có thể nhìn từ cách nhìn của bạn, như vậy, người ta sẽ có rất nhiều cách nhìn.

Nếu bạn muốn trao đổi thêm một cách riêng tư, tranh luận, cứ email cho F falleaf.pic@gmail.com, còn ở đây, chúng ta cần bám sát vào mục tiêu đặt ra, làm sao cho người đọc tiếp cận vấn đề dễ dàng nhất, nhanh nhất.

Chúc vui

benq
25-06-2006, 07:53 PM
Một lần nữa Falleaf lại kéo tôi đi lạc đề.

Tôi chẳng muốn "vạch lá tìm sâu" để làm gì. Tuy nhiên, xin nói lại 1 lần nữa, vì những câu chữ của bạn dễ làm người khác hiểu sai, nên tôi nói để bạn đính chính. Viết nhiều thì sai nhiều; chỉ có không viết mới không sai. Tôi hiểu điều đó. Nhưng những chỗ tôi nêu ra là những chỗ quan trọng. Tôi không làm rõ, thì sẽ có nhiều người hiểu sai. Tai hại vô cùng!

Bạn thật mâu thuẫn khi nói rằng "... những nội dung về kỹ thuật mà F cung cấp, có gì sai sót, mong bạn giúp đỡ sửa chữa và bổ sung...", nhưng khi tôi làm điều đó thì bạn lại tỏ ra không hài lòng. Chúng ta có chung tiếng mẹ đẻ, nhưng tiếc là cách diễn đạt và cách hiểu lại khác nhau. Vì vậy, từ nay về sau tôi sẽ không bắt bẻ từng câu chữ của bạn, mà sẽ cố gắng hiểu theo ý của bạn. Được chứ?

falleaf
25-06-2006, 08:12 PM
Nope, bạn vẫn chưa hiểu ý F. Ý F ở đây nói rằng, những cái F nói, mang tính chất gộp chung, giống như trình bày vấn đề chia động từ tiếng Anh mà F lấy làm thí dụ.

F hoàn toàn không có không hài lòng gì cả, F chỉ phần tích và thuyết phục bạn về vấn đề, hiện nay chúng ta đang trình bày một vấn đề khá mới mẻ ở VN (chưa được đưa vào dạy chính thức, ít nhất là ở BK HCM, có lẽ bạn ở BK HN có dạy cũng nên, F không rõ). Nếu bạn không thuyết phục được người đọc rằng, mọi thứ đều đơn giản, không có nhiều ngoại lệ, và bài toán chỉ đơn giản như vậy thôi. Để cho người ta học, và làm được đã. Khi đó, họ hiểu bài toán rồi, chúng ta sẽ cung cấp thêm những kiến thức mở rộng sau, nếu cần. Còn không, thì khi họ đã hiểu những cái gì căn bản rồi, thì họ có thể tự học và tự mở rộng sau bằng các tài liệu tham khảo.

Bạn thấy rõ một điều, từ khi mở luồng này, rất ít người vào đọc và thảo luận. Cái gì cũng có những hiệu ứng của nó. Hôm nay bạn đã vào thảo luận, đó là một điều tốt mà luồng này đem lại.

Tối nay F sẽ viết tiếp về phần mở đầu của Kalman, và cách tiếp cận của F sẽ đi từ hệ rời rạc sang hệ tiên tục, giống như được trình bày trong cuốn sách mà F giới thiệu.

Các bạn hãy bổ sung vào phần trình bày, và minh hoạ nhiều hơn, chúng ta tiếp tay nhau viết, đó là cách mà chúng ta nên làm. Nếu bạn thầy F viết bậy nhiều quá, tất yếu bạn sẽ có thể viết nhiều hơn F. Điều này sẽ làm cho các bài viết thêm phong phú và hiệu quả cho người đọc.

Chúc vui

hungbkhn
29-06-2006, 07:31 PM
Tôi ko có ý định viết hì (mục đích chính ở dưới)
Phụ:
Tôi thấy mấy tranh luận của H và bạn trên làm sv càng phức tạp.
Theo tôi trước hết vào matlab / search - Kalman.
Kalman tuyến tính đã xong với một vài ví dụ ở đấy.
Tiếp tục từ khóa Kalman wiki, có mấy loại mở rộng ở đây.
Để viết trên matlab thì chắc là ko có source, phải tự viết lấy.
Bây giờ tìm sách đọc một vài ví dụ chuyển đổi từ phi tuyến sang tuyến tính.
Đến đây là ok rồi đây.
Sau đấy thì nếu gặp ứng dụng cụ thể thì làm tiếp.

Giờ có việc chính nhờ mọi người ở hà nội tí:
Tôi đang cần thuê nhà trọ, gần bk hà nội, giá cỡ 300 ng là chịu được. Ai biết thông tin trực tiếp tôi với. Nick là hungbkhnmc.

Nếu bạn sv nào có phòng rộng rãi sharing càng tốt, tôi sharing lại nguồn kiến thức và tài liệu :). Tuổi 29, nghề gv, đẹp trai chưa vợ. hì.
Hi vọng nhận được tin ai đấy. Giờ thuê nhà khó quá, vào diển đàn tìm nơi post một bài hì.

sunwishbmw
25-07-2006, 05:25 AM
Tôi ủng hộ ý tưởng của F, bởi thực chất chúng ta nên hiểu thế này, với người mới học,việc nêu quá chính xác, quá chi tiết, làm cho họ cảm thấy càng không hiểu, đó là bản thân em đó. Em đọc bài biết của anh F, nhận ra cái chung nhất và côt lõi nhất của Kalman.
Còn vấn đề học thuật, tính khoa học, đến khi chúng ta làm đến mức đó, thì họ không kém kỏi gì mà dựa vào bài viết này (mang tính phổ cập) làm luận cứ khoa học cho nghiên cứu phát triển.
Tuy nhiên, em cung mong những anh hiểu biết, cho thêm những ngoại lệ, để biết đựoc rằng : vấn đề này còn nhiều phức tạp lắm.

sunwishbmw
27-07-2006, 04:01 AM
Úi trời, đọc cái Kalman này khó thật. Anh Faleaf ơi, thế cái Kalman này áp dụng trong trường hợp xe Scooter có quá thừa chức năng không ? Bởi em thấy, Kalman nó làm việc quá bài bản, dường như xe Scooter vấn đề nhiễu chưa đến mức như vậy. Hehehe ko biết ý các anh thế nào

sunwishbmw
27-07-2006, 04:07 AM
Các anh thử lấy ví dụ trường hợp nào thực sự cần bộ Kalman này, vì em thấy nó hoạt động phức tạp quá, không biết VĐK bình thường có đáp ứng đủ cái này ko (vì VĐK còn phải làm nhiều cái khác nữa mà).
Hehehe, em đọc Kalman_intro.pdf, có từ này ko dịch đựoc :
"a priori estimate state".

HaiAu2005
27-07-2006, 08:44 AM
Có ai có nhu cầu tìm hiểu về lý thuyết lọc thích ứng (Adaptive Filtering Theory) thì download cuốn sách ở địa chỉ sau. Trong cuốn này có Chương 7 viết về các bộ lọc Kalman (Chapter 7 Kalman Filters).

Adaptive Filtering Theory
SBN: 013322760X
Title: Adaptive Filter Theory (3rd Edition)
Author: Simon S. Haykin Simon Haykin
Publisher: Prentice Hall
Publication Date: 1995-12-27
Number Of Pages: 989

Download (91.7MB):
http://e-books.amagrammer.net/%EC%88%98%ED%95%99%EA%B4%80%EB%A0%A8/Mathematics%20-%20Adaptive%20Filter%20Theory%20(3rd%20Ed.).pdf

Download một số sách khác về toán:
http://e-books.amagrammer.net/%EC%88%98%ED%95%99%EA%B4%80%EB%A0%A8/

H.A.

bunyuki
27-07-2006, 01:46 PM
Các nhiếu bao gồm nhiễu quá trình và nhiễu đo +các thứ tạp pí lù khác thì lão Kalman đã qui về dạng duy nhất (chắc là để cho phù hợp về mặt toán học) là dạng nhiễu ồn trắng (white noise).thể laọi nhiễu này tuân theo phân bố xác suất chuẩn của Gauss mà anh em mình học suốt năm 1 ý.Cái này bác falleaf viết cũng qua qua roài đó.Như để biểu diễn các nhiễu tác động vào hệ thống của mình,thay cho việc phải cộng các nhiễu vào các quá trình(mà nó thì ngẫu nhiên ai mà bít bao nhiêu) người ta biểu diễn thông qua các ma trận Q,R gọi là các Covariance của cá nhiễu quá trình(w) và nhiẽu đo(v).Cái Covariance đó đại loại như là các kỳ vọng của các biến xác suất(chính là các nhiễu) xác định như sau:
E{w}=0
E{v}=0--->do w,v là các nhiễu ồn trắng nên trung bình bằng 0;
E{w.w'}=Q;
E{v.v'}=N;

E:sai lệch trung bình toàn phương,có công thức cụ thể trong toán XSTK
Mục tiêu tối ưu khi tính toán lọc Kalman là quan sát(tính x^) vectơ trạng thái x sao cho giá trị toàn phương trung bình của sai lệch là nhỏ nhất:
P=limE{(x-x^)(x-x^)'}=min
Nhưng quan trọng ban đầu là xđ Q,R như thế nào cho chính xác quyết đinhj rất nhiều tới độ chính xác của bộ lọc.Cái này lại nhờ các bác chuyên gia trả lời giúp thôi

bunyuki
27-07-2006, 03:03 PM
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

hiall154
21-09-2006, 03:00 PM
Xin chào,mình là gi@p.bv.Mình biết đến picvietnam khi mình tìm hiểu về vi điều khiển,nhưng đến với topic này qua google khi mình cần tìm tài liệu về bộ lọc kalman,viết các mô phỏng và ứng dụng của nó.Mình có một số nhận xét như sau:
Mình hoàn toàn hưởng ứng và ủng hộ tư tưởng truyền đạt sự hiểu biết của falleaf.Rất tâm đắc với tư tưởng của bạn.Mình đoán là đáng lẽ chủ đề này đã có thể hoàn chỉnh nếu như không có vài bạn tranh luận tiêu cực làm loãng.
Falleaf hoàn toàn có lý khi tập trung vào kiến thức xác suất.Mình học môn XLTH ngẫu nhiên ban đầu thầy dạy cũng toàn là xác suất mặc dù đã học năm 2 rồi mà bây giờ là năm 4(ở P F I E_V - BKHN).Nếu như có thể đi từ "trực quan sinh động đến tư duy trừu tượng" thì rất tốt.
Mình mới bắt đầu tìm hiểu về bộ lọc kalman,tìm tài liệu thì đúng hơn.Bản thân lọc kalman là một mô hình toán học,xây dựng trên cơ sở toán.Vậy bạn nào biết tài liệu thì chỉ cho mình chỗ mua với(ở HN nhé chứ bảo sang Thái lan hay Mỹ thì thôi.).Chủ đề của mình là "lọc kalman,các ứng dụng và viết mô phỏng".
Mấy bài viết của bạn bunyuki với ami mình đọc rồi nhưng không hiểu gì hết :D

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.php?option=com_docman&task=cat_view&gid=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

HAI
13-11-2006, 07:00 AM
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.:D 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:D .

candykitty
13-11-2006, 03:15 PM
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!

HAI
13-11-2006, 06:56 PM
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 ý.:)

HAI
14-11-2006, 06:35 AM
Ý 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 :D 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.

hoangminh1234
22-11-2006, 03:34 PM
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ì :D

hoangminh1234
23-11-2006, 07:40 PM
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

Mecha
16-03-2007, 12:54 AM
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].

HAI
17-03-2007, 07:39 AM
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é!:)

tda
17-03-2007, 09:56 AM
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.

Mecha
17-03-2007, 04:41 PM
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.

Mecha
17-03-2007, 05:16 PM
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:
http://www.picvietnam.com/forum//showthread.php?t=473
Trong đó có phần thiết kế bộ quan sát trạng thái thích nghị dựa trên Indirect MRAS.

candykitty
18-03-2007, 07:23 AM
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)

candykitty
18-03-2007, 07:31 AM
Sensorless mới đúng!

Mecha
18-03-2007, 08:16 AM
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.

candykitty
18-03-2007, 10:15 AM
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).

Mecha
18-03-2007, 04:09 PM
MRAS bắt đầu được nghiên cứu từ thập niên 70. Cho đến nay, hiên vẫn còn rất nhiều người tiếp tục nghiên cứu về nó nhưng ở mức độ sâu hơn và mở rộng hơn.

Trong bài báo bạn gửi có phần nói đến dùng low-pass filter. Cái này dập được nhiễu đo lường nhưng lại gây hiện tượng dịch pha (phase shifts) giữa tín hiệu reference và tín hiệu feedback. Không thấy tác giả bài báo đề cập đến cách khắc phục vì lêch pha sẽ làm cho hệ thống DK mất ổn định.

candykitty
18-03-2007, 05:51 PM
Mình là tác giả bài báo đó, bài này mình viết cách đây 2 năm rồi, sau đó mình đã thay thế MRAS bằng các bộ observer (Kalman Filter), kết quả tốt hơn nhiều, đặc biệt với việc giảm tác động do sự biến thiên các thông số đông cơ trong quá trình điều khiển (do tác nhân nhiệt độ, bão hòa từ,VV), observer hoạt động rất tốn. Tiếc là mình kg tổng kết lại các kết quả sau đó để đưa ra một báo cáo khác.
Về low-pass filter, đúng là có tác nhân gây mất ổn định do hiện tượng dịch pha. Mình cũng có xem xét tới nhưng chưa thật sự quan tâm lắm vì hiện nay mình đang quan tâm tới điều khiển PM Synchronous Machines (có lẽ hơi ôm đồm quá).

falleaf
23-05-2007, 10:17 AM
Càng đọc càng thấy hay, nhưng mà sau khi xem lại thì thấy rằng chúng ta đang đi quá xa vấn đề thì phải.

Anh em quay trở về vấn đề bộ lọc Kalman lại nhé :D

Chúc vui.

Hinfinity
05-10-2007, 02:54 PM
Hiện nay tôi đang nghiên cứu về LQG/LTR (Loop transfer recovery). Có bác nào có tài liệu về cái này không?

vutiendungbkhn
25-09-2008, 12:34 PM
Bộ lọc Kalman

1. Bộ lọc Kalman là gì?

Đầu tiên, bộ lọc Kalman là bộ lọc do một cái ông nào đó có tên Kalman nghĩ ra, ỗng sống chết thế nào không cần biết, mặt mũi ỗng thế nào không cần hay. Chỉ cần biết ỗng chế ra một bộ lọc dùng được, nên lấy tên mình đặt cho bộ lọc. Nhưng nói vậy chứ, ai tò mò muốn biết thì vào đây coi. Cực kỳ đẹp trai.

http://www.ieee.org/organizations/history_center/legacies/kalman.html

http://i32.photobucket.com/albums/d28/picvietnam/kalman.jpg

1.1. Bộ lọc là gì?

Bộ lọc là cái đồ để lọc, có nghĩa là có một thứ dơ bẩn nào đó, bỏ vào thì nó giữ lại những cái dơ và cho ra những cái sạch ở đầu bên kia.

Thiệt ra thì F về nhà hỏi bà nội F làm sữa đậu nành thế nào mới biết cái bộ lọc chỉ là cái miếng vải may lại rồi cứ thế đổ nước đậu và bã đậu vào.. cuối cùng bã đậu còn lại trong cái bị còn nước đậu chảy ra ngoài, hứng, nấu, khuấy đường... rồi uống.

1.2. Bộ lọc Kalman là gì?

Bộ lọc Kalman cũng là cái bịch vải của bà nội F thôi, nhưng mà ỗng không đổ bã đậu vào, mà ỗng đổ nhiễu tín hiệu vào đó, rồi có cả tín hiệu sạch, rồi đủ thứ hầm bà lằng trong đó, tóm lại là ỗng sẽ lấy ra được là tín hiệu sạch.

Tuy nhiên, cũng cần phải phân biệt rằng, cái vải lọc của bà nội F thì có lọc kiểu gì thì cũng là nước đậu, đâu có lọc ra nước tinh khiết được. Thế nên, tóm lại là cái bộ lọc Kalman cũng không hơn gì cái miếng vải của bà F, nó cũng chỉ lọc ra được tín hiệu sạch, theo nghĩa không còn nhiều nhiễu, nhưng cũng chỉ là ước lượng của tín hiệu thực, chứ không phải chính xác là tín hiệu thực.

Như vậy, người ta còn gọi bộ lọc Kalman là bộ lọc ước lượng, cũng vì lẽ đó.

Hôm nào rảnh lại viết tiếp, làm gì chứ nấu đậu nành chán lắm, tốt hơn là đi mua một ly đậu nành đá uống vẫn tốt hơn.

Bang chủ nói hay ghê, tuyet voi do,rat don gian va di vao cuoc song,de hieu, pro

binhlt
27-11-2008, 10:45 AM
Có vài câu hỏi mong bác F và các bác đã từng nghiên cứu Kalman trả lời:
1. Kalman có cần thiết phải dùng 2 nguồn dữ liệu không hay chỉ cần 1 nguồn dữ liệu đọc nhiều lần là đủ (tôi nghĩ 1 đầu đọc dùng nhiều lần)
2. Để xác định các hệ số của Kalman có cần phải biết dạng hàm của kết quả đo không? (chắc là không nhưng nếu có thì lọc có tốt hơn không)
3. Các bác có cái hàm nào đầu vào là 1 mảng dữ liệu đầu ra là 1 mảng dữ liệu đã lọc nhiễu không?
4. Nếu muốn dự đoán kết quả sau đó 10s thì dùng Kalman có được không?
5. Thông thường để gọt các giá trị nhiễu thường sẽ làm nảy sinh các sai số hệ thống. Vây lọc Kalman có làm nảy sinh các sai số hệ thống không?

Cuối cùng tôi thấy ở http://www.codeproject.com/KB/cs/UniversalEnggFrmwork6.aspx là 1 project khá lớn có sử dụng Kalman (đủ cả source code) bác nào có time bỏ chút ra nghiên cứu rồi viết lại cho anh em 1 cái TUT thì tốt.

NGOCNGO
22-12-2009, 11:29 AM
Có cái ví dụ nào cụ thể, thực tế để dễ hiểu hơn không?viết cho Pic chẳng hạn

thanhtung1010
19-09-2010, 11:05 AM
Vấn đề là mình muốn xác định góc nghiên từ hai cảm biến accelometer và gyro (dùng bộ lọc kalman). Mình chưa hiểu ở chỗ:
- Trong bộ lọc Kalman ma trận R, Q xác định bằng thực nghiệm như thế nào?
- Tín hiệu đọc từ cảm biến accelometer hay gyro dùng để đánh giá giá trị ước lượng "predict" ?
- Mình cũng đọc qua một đoạn code mẫu về bộ lọc Kalman nhưng vẫn không biết sử dụng như thế nào? Có ai biết chỉ mình với!! huhu..

Dolphin
31-01-2011, 07:01 PM
Ai có đĩa matlab file kèm theo sách Introduction to Random Signals and Applied Kalman filtering cho mình xin. Cám ơn.

namsangmi
20-08-2011, 10:32 AM
trở lại và tiếp tục về bộ lọc Kalman đi bác F ơi,đang hấp dẫn sao nghỉ ngang vậy?? hix,e vẫn chưa hình dung được lập trình bộ lọc Kalman bằng vdk như thế nào cả ?
Chắc a F bận quá nên ko có thời gian,có bác nào phụ a F 1 tay ko? topic này đã bị bỏ lâu quá rồi.

Trung_Thanh
03-07-2013, 12:03 AM
Toppic này sau 1 hồi tranh luận bị dừng lâu quá! Anh F sau khi đi sâu vào xác suất lại không thấy đề cập gì nữa! Mong a F tiếptục toppic để làm làm tài liệu hướng dẫn cho thế hệ sau như chúng e! Thanks