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 .
|
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ụ.
|
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. |
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.
|
Đú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 |
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 . |
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!
|
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 ý.:) |
Ý 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. |
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
|
Trích:
////////tính toán xong thấy đúng như bạn nói, cám ơn you again |
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]. |
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é!:) |
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.
|
Trích:
- 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. |
Trích:
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. |
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)
|
Sensorless mới đúng!
|
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. |
1 Attachment(s)
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).
|
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. |
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á). |
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. |
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?
|
Trích:
|
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/Uni...gFrmwork6.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. |
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
|
Accelemeter và Gyro
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.. |
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.
|
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. |
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
|
Múi giờ GMT. Hiện tại là 10:12 AM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam